Search in sources :

Example 1 with CCInProcessRuntimeModule

use of io.joynr.runtime.CCInProcessRuntimeModule in project joynr by bmwcarit.

the class MyGpsProviderApplication method main.

public static void main(String[] args) throws Exception {
    // Get the provider domain from the command line
    if (args.length != 1 && args.length != 2) {
        LOG.error("\n\nUSAGE: java {} <local-domain> [websocket] \n\n NOTE: Providers are registered on the local domain.", MyGpsProviderApplication.class.getName());
        return;
    }
    String localDomain = args[0];
    LOG.debug("Registering provider on domain \"{}\"", localDomain);
    // joynr config properties are used to set joynr configuration at
    // compile time. They are set on the
    // JoynrInjectorFactory.
    Properties joynrConfig = new Properties();
    // Set a custom static persistence file (default is joynr.properties in
    // the working dir) to store
    // joynr configuration. It allows for changing the joynr configuration
    // at runtime. Custom persistence
    // files support running the consumer and provider applications from
    // within the same directory.
    joynrConfig.setProperty(MessagingPropertyKeys.PERSISTENCE_FILE, STATIC_PERSISTENCE_FILE);
    // How to use custom infrastructure elements:
    // 1) Set them programmatically at compile time using the joynr
    // configuration properties at the
    // JoynInjectorFactory. E.g. uncomment the following lines to set a
    // certain joynr server
    // instance.
    // joynrConfig.setProperty(MessagingPropertyKeys.BOUNCE_PROXY_URL,
    // "http://localhost:8080/bounceproxy/");
    // joynrConfig.setProperty(MessagingPropertyKeys.DISCOVERYDIRECTORYURL,
    // "http://localhost:8080/discovery/channels/discoverydirectory_channelid/");
    // Each joynr instance has a local domain. It identifies the execution
    // device/platform, e.g. the
    // vehicle. Normally, providers on that instance are registered for the
    // local domain.
    joynrConfig.setProperty(PROPERTY_JOYNR_DOMAIN_LOCAL, localDomain);
    // NOTE: When running this application to test the android-location-provider, you must use
    // the concrete hostname (and _not_ localhost) in the bounceproxy URL, since this URL
    // is registered in the global discovery directory and must be resolvable by the Android
    // device.
    joynrConfig.setProperty(MessagingPropertyKeys.BOUNCE_PROXY_URL, "http://<concrete host>:8080/bounceproxy/");
    // 2) Or set them in the static persistence file (default:
    // joynr.properties in working dir) at
    // runtime. If not available in the working dir, it will be created
    // during the first launch
    // of the application. Copy the following lines to the custom
    // persistence file to set a
    // certain joynr server instance.
    // NOTE: This application uses a custom static persistence file
    // provider-joynr.properties.
    // Copy the following lines to the custom persistence file to set a
    // certain joynr server
    // instance.
    // joynr.messaging.bounceproxyurl=http://localhost:8080/bounceproxy/
    // joynr.messaging.discoverydirectoryurl=http://localhost:8080/discovery/channels/discoverydirectory_channelid/
    // 3) Or set them in Java System properties.
    // -Djoynr.messaging.bounceProxyUrl=http://localhost:8080/bounceproxy/
    // -Djoynr.messaging.capabilitiesDirectoryUrl=http://localhost:8080/discovery/channels/discoverydirectory_channelid/
    // NOTE:
    // Programmatically set configuration properties override properties set
    // in the static persistence file.
    // Java system properties override both
    // Application-specific configuration properties are injected to the
    // application by setting
    // them on the JoynApplicationModule.
    Properties appConfig = new Properties();
    provisionAccessControl(joynrConfig, localDomain);
    Module runtimeModule = null;
    if (args.length == 2 && args[1].equalsIgnoreCase("websocket")) {
        joynrConfig.setProperty(WebsocketModule.PROPERTY_WEBSOCKET_MESSAGING_HOST, "localhost");
        joynrConfig.setProperty(WebsocketModule.PROPERTY_WEBSOCKET_MESSAGING_PORT, "4242");
        joynrConfig.setProperty(WebsocketModule.PROPERTY_WEBSOCKET_MESSAGING_PROTOCOL, "ws");
        joynrConfig.setProperty(WebsocketModule.PROPERTY_WEBSOCKET_MESSAGING_PATH, "");
        runtimeModule = new LibjoynrWebSocketRuntimeModule();
    } else {
        runtimeModule = Modules.override(new CCInProcessRuntimeModule()).with(new AtmosphereMessagingModule());
    }
    LOG.debug("Using the following runtime module: " + runtimeModule.getClass().getSimpleName());
    JoynrApplication joynrApplication = new JoynrInjectorFactory(joynrConfig, new StaticDomainAccessControlProvisioningModule(), runtimeModule).createApplication(new JoynrApplicationModule(MyGpsProviderApplication.class, appConfig));
    joynrApplication.run();
    joynrApplication.shutdown();
}
Also used : LibjoynrWebSocketRuntimeModule(io.joynr.runtime.LibjoynrWebSocketRuntimeModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) Properties(java.util.Properties) Module(com.google.inject.Module) LibjoynrWebSocketRuntimeModule(io.joynr.runtime.LibjoynrWebSocketRuntimeModule) StaticDomainAccessControlProvisioningModule(io.joynr.accesscontrol.StaticDomainAccessControlProvisioningModule) AtmosphereMessagingModule(io.joynr.messaging.AtmosphereMessagingModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) JoynrApplicationModule(io.joynr.runtime.JoynrApplicationModule) WebsocketModule(io.joynr.messaging.websocket.WebsocketModule) StaticDomainAccessControlProvisioningModule(io.joynr.accesscontrol.StaticDomainAccessControlProvisioningModule) JoynrApplicationModule(io.joynr.runtime.JoynrApplicationModule) AtmosphereMessagingModule(io.joynr.messaging.AtmosphereMessagingModule) JoynrApplication(io.joynr.runtime.JoynrApplication) AbstractJoynrApplication(io.joynr.runtime.AbstractJoynrApplication) JoynrInjectorFactory(io.joynr.runtime.JoynrInjectorFactory)

Example 2 with CCInProcessRuntimeModule

use of io.joynr.runtime.CCInProcessRuntimeModule in project joynr by bmwcarit.

the class MyRadioProviderApplication method getRuntimeModule.

private static Module getRuntimeModule(String transport, String host, int port, Properties joynrConfig) {
    Module runtimeModule;
    if (transport != null) {
        if (transport.contains("websocketcc")) {
            configureWebSocket(host, port, joynrConfig);
            runtimeModule = new CCWebSocketRuntimeModule();
        } else if (transport.contains("websocket")) {
            configureWebSocket(host, port, joynrConfig);
            runtimeModule = new LibjoynrWebSocketRuntimeModule();
        } else {
            runtimeModule = new CCInProcessRuntimeModule();
        }
        Module backendTransportModules = Modules.EMPTY_MODULE;
        if (transport.contains("http")) {
            backendTransportModules = Modules.combine(backendTransportModules, new AtmosphereMessagingModule());
        }
        if (transport.contains("mqtt")) {
            configureMqtt(joynrConfig);
            backendTransportModules = Modules.combine(backendTransportModules, new MqttPahoModule());
        }
        return Modules.override(runtimeModule).with(backendTransportModules);
    }
    return Modules.override(new CCInProcessRuntimeModule()).with(new MqttPahoModule());
}
Also used : LibjoynrWebSocketRuntimeModule(io.joynr.runtime.LibjoynrWebSocketRuntimeModule) MqttPahoModule(io.joynr.messaging.mqtt.paho.client.MqttPahoModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) CCWebSocketRuntimeModule(io.joynr.runtime.CCWebSocketRuntimeModule) Module(com.google.inject.Module) CCWebSocketRuntimeModule(io.joynr.runtime.CCWebSocketRuntimeModule) LibjoynrWebSocketRuntimeModule(io.joynr.runtime.LibjoynrWebSocketRuntimeModule) StaticDomainAccessControlProvisioningModule(io.joynr.accesscontrol.StaticDomainAccessControlProvisioningModule) AtmosphereMessagingModule(io.joynr.messaging.AtmosphereMessagingModule) MqttPahoModule(io.joynr.messaging.mqtt.paho.client.MqttPahoModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) JoynrApplicationModule(io.joynr.runtime.JoynrApplicationModule) WebsocketModule(io.joynr.messaging.websocket.WebsocketModule) AtmosphereMessagingModule(io.joynr.messaging.AtmosphereMessagingModule)

Example 3 with CCInProcessRuntimeModule

use of io.joynr.runtime.CCInProcessRuntimeModule in project joynr by bmwcarit.

the class CapabilitiesDirectoryLauncher method start.

public static void start(Properties joynrConfig) {
    // LongPollingMessagingModule is only added in main(), since the servletMessagingModule will be used otherwise
    JoynrInjectorFactory injectorFactory = new JoynrInjectorFactory(joynrConfig, Modules.override(new JpaPersistModule("CapabilitiesDirectory"), new CCInProcessRuntimeModule()).with(new TestGlobalAddressModule(), new CapabilitiesDirectoryModule()));
    capabilitiesDirectoryLauncher = injectorFactory.createApplication(new JoynrApplicationModule("capabilitiesDirectoryLauncher", CapabilitiesDirectoryLauncher.class));
    capabilitiesDirectoryLauncher.run();
    capabilitiesDirectory = injectorFactory.getInjector().getInstance(CapabilitiesDirectoryImpl.class);
}
Also used : TestGlobalAddressModule(io.joynr.messaging.routing.TestGlobalAddressModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) JoynrApplicationModule(io.joynr.runtime.JoynrApplicationModule) JpaPersistModule(com.google.inject.persist.jpa.JpaPersistModule) JoynrInjectorFactory(io.joynr.runtime.JoynrInjectorFactory)

Example 4 with CCInProcessRuntimeModule

use of io.joynr.runtime.CCInProcessRuntimeModule in project joynr by bmwcarit.

the class BroadcastEnd2EndTest method getRuntime.

@Override
protected JoynrRuntime getRuntime(Properties joynrConfig, Module... modules) {
    Module runtimeModule = Modules.override(new CCInProcessRuntimeModule()).with(new AtmosphereMessagingModule());
    Module modulesWithRuntime = Modules.override(modules).with(runtimeModule);
    DummyJoynrApplication application = (DummyJoynrApplication) new JoynrInjectorFactory(joynrConfig, modulesWithRuntime).createApplication(DummyJoynrApplication.class);
    dummyApplications.add(application);
    return application.getRuntime();
}
Also used : DummyJoynrApplication(io.joynr.integration.util.DummyJoynrApplication) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) Module(com.google.inject.Module) AtmosphereMessagingModule(io.joynr.messaging.AtmosphereMessagingModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) AtmosphereMessagingModule(io.joynr.messaging.AtmosphereMessagingModule) JoynrInjectorFactory(io.joynr.runtime.JoynrInjectorFactory)

Example 5 with CCInProcessRuntimeModule

use of io.joynr.runtime.CCInProcessRuntimeModule in project joynr by bmwcarit.

the class LocalDiscoveryTest method setUp.

@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
    when(localDiscoveryEntryStoreMock.hasDiscoveryEntry(any(DiscoveryEntry.class))).thenReturn(true);
    // use default freshnessUpdateIntervalMs: 3600000ms (1h)
    final LocalCapabilitiesDirectoryImpl localCapabilitiesDirectory = new LocalCapabilitiesDirectoryImpl(capabilitiesProvisioningMock, globalAddressProviderMock, localDiscoveryEntryStoreMock, globalDiscoveryEntryCacheMock, messageRouterMock, globalCapabilitiesDirectoryClientMock, expiredDiscoveryEntryCacheCleanerMock, 3600000, capabilitiesFreshnessUpdateExecutorMock, defaultDiscoveryRetryIntervalMs, shutdownNotifier);
    Module testModule = Modules.override(new CCInProcessRuntimeModule()).with(new TestGlobalAddressModule(), new AbstractModule() {

        @Override
        protected void configure() {
            bind(JoynrMessagingConnectorFactory.class).annotatedWith(Names.named("connectorFactoryMock")).toInstance(joynrMessagingConnectorFactoryMock);
            bind(LocalCapabilitiesDirectory.class).toInstance(localCapabilitiesDirectory);
            bind(LocalCapabilitiesDirectoryImpl.class).toInstance(localCapabilitiesDirectory);
            bind(ProxyInvocationHandlerFactory.class).to(ProxyInvocationHandlerFactoryImpl.class);
        }
    });
    Properties joynrProperties = new Properties();
    Injector injector = new JoynrInjectorFactory(new JoynrBaseModule(joynrProperties, testModule)).getInjector();
    runtime = injector.getInstance(JoynrRuntime.class);
}
Also used : TestGlobalAddressModule(io.joynr.messaging.routing.TestGlobalAddressModule) DiscoveryEntry(joynr.types.DiscoveryEntry) GlobalDiscoveryEntry(joynr.types.GlobalDiscoveryEntry) LocalCapabilitiesDirectoryImpl(io.joynr.capabilities.LocalCapabilitiesDirectoryImpl) JoynrBaseModule(io.joynr.runtime.JoynrBaseModule) Properties(java.util.Properties) AbstractModule(com.google.inject.AbstractModule) JoynrInjectorFactory(io.joynr.runtime.JoynrInjectorFactory) JoynrRuntime(io.joynr.runtime.JoynrRuntime) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) JoynrMessagingConnectorFactory(io.joynr.proxy.JoynrMessagingConnectorFactory) Injector(com.google.inject.Injector) Module(com.google.inject.Module) JoynrBaseModule(io.joynr.runtime.JoynrBaseModule) TestGlobalAddressModule(io.joynr.messaging.routing.TestGlobalAddressModule) CCInProcessRuntimeModule(io.joynr.runtime.CCInProcessRuntimeModule) AbstractModule(com.google.inject.AbstractModule) Before(org.junit.Before)

Aggregations

CCInProcessRuntimeModule (io.joynr.runtime.CCInProcessRuntimeModule)20 Module (com.google.inject.Module)17 JoynrInjectorFactory (io.joynr.runtime.JoynrInjectorFactory)15 AtmosphereMessagingModule (io.joynr.messaging.AtmosphereMessagingModule)10 DummyJoynrApplication (io.joynr.integration.util.DummyJoynrApplication)8 MqttPahoModule (io.joynr.messaging.mqtt.paho.client.MqttPahoModule)8 Properties (java.util.Properties)8 JoynrApplicationModule (io.joynr.runtime.JoynrApplicationModule)7 WebsocketModule (io.joynr.messaging.websocket.WebsocketModule)6 LibjoynrWebSocketRuntimeModule (io.joynr.runtime.LibjoynrWebSocketRuntimeModule)6 AbstractModule (com.google.inject.AbstractModule)5 StaticDomainAccessControlProvisioningModule (io.joynr.accesscontrol.StaticDomainAccessControlProvisioningModule)5 TestGlobalAddressModule (io.joynr.messaging.routing.TestGlobalAddressModule)5 MqttModule (io.joynr.messaging.mqtt.MqttModule)3 AbstractJoynrApplication (io.joynr.runtime.AbstractJoynrApplication)3 JoynrApplication (io.joynr.runtime.JoynrApplication)3 Before (org.junit.Before)3 CCWebSocketRuntimeModule (io.joynr.runtime.CCWebSocketRuntimeModule)2 ProviderQos (joynr.types.ProviderQos)2 Injector (com.google.inject.Injector)1