- public java.lang.AutoCloseable createInstance() {
- DataBroker dataBrokerService = getDataBrokerDependency();
- NotificationProviderService notificationProvider = getNotificationServiceDependency();
-
- // Add routed RPC registration for car purchase
- final PurchaseCarProvider purchaseCar = new PurchaseCarProvider();
- purchaseCar.setNotificationProvider(notificationProvider);
-
- final BindingAwareBroker.RoutedRpcRegistration<CarPurchaseService> purchaseCarRpc = getRpcRegistryDependency()
- .addRoutedRpcImplementation(CarPurchaseService.class, purchaseCar);
-
- // Add people provider registration
- final PeopleProvider people = new PeopleProvider();
- people.setDataProvider(dataBrokerService);
-
- people.setRpcRegistration(purchaseCarRpc);
-
- final BindingAwareBroker.RpcRegistration<PeopleService> peopleRpcReg = getRpcRegistryDependency()
- .addRpcImplementation(PeopleService.class, people);
-
-
-
- final PeopleCarListener peopleCarListener = new PeopleCarListener();
- peopleCarListener.setDataProvider(dataBrokerService);
-
- final ListenerRegistration<NotificationListener> listenerReg =
- getNotificationServiceDependency().registerNotificationListener( peopleCarListener );
-
- // Wrap toaster as AutoCloseable and close registrations to md-sal at
- // close()
- final class AutoCloseableToaster implements AutoCloseable {
-
- @Override
- public void close() throws Exception {
- peopleRpcReg.close();
- purchaseCarRpc.close();
- people.close();
- purchaseCar.close();
- listenerReg.close();
- }
- }
-
- AutoCloseable ret = new AutoCloseableToaster();
- return ret;