+++ /dev/null
-/*
- * Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.config.yang.config.legacy_entity_ownership_service_provider;
-
-import com.google.common.reflect.AbstractInvocationHandler;
-import com.google.common.reflect.Reflection;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.opendaylight.controller.config.api.ModuleIdentifier;
-import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
-import org.osgi.framework.BundleContext;
-
-/**
- * Deprecated.
- *
- * @deprecated Replaced by blueprint wiring
- */
-@Deprecated
-public class LegacyEntityOwnershipServiceProviderModule extends AbstractLegacyEntityOwnershipServiceProviderModule {
- private BundleContext bundleContext;
-
- public LegacyEntityOwnershipServiceProviderModule(ModuleIdentifier identifier,
- DependencyResolver dependencyResolver) {
- super(identifier, dependencyResolver);
- }
-
- public LegacyEntityOwnershipServiceProviderModule(ModuleIdentifier identifier,
- DependencyResolver dependencyResolver,
- LegacyEntityOwnershipServiceProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
- super(identifier, dependencyResolver, oldModule, oldInstance);
- }
-
- @Override
- public void customValidation() {
- // add custom validation form module attributes here.
- }
-
- @Override
- public AutoCloseable createInstance() {
- final WaitingServiceTracker<EntityOwnershipService> tracker = WaitingServiceTracker.create(
- EntityOwnershipService.class, bundleContext);
- final EntityOwnershipService service = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
-
- return Reflection.newProxy(AutoCloseableEntityOwnershipService.class, new AbstractInvocationHandler() {
- @Override
- @SuppressWarnings("checkstyle:AvoidHidingCauseException")
- protected Object handleInvocation(Object proxy, Method method, Object[] args) throws Throwable {
- if (method.getName().equals("close")) {
- tracker.close();
- return null;
- } else {
- try {
- return method.invoke(service, args);
- } catch (InvocationTargetException e) {
- // https://bugs.opendaylight.org/show_bug.cgi?id=6564
- // http://stackoverflow.com/a/10719613/421602
- // https://amitstechblog.wordpress.com/2011/07/24/java-proxies-and-undeclaredthrowableexception/
- throw e.getCause();
- }
- }
- }
- });
- }
-
- public void setBundleContext(final BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-
- private interface AutoCloseableEntityOwnershipService extends EntityOwnershipService, AutoCloseable {
- }
-
-}