Changes for page MongoDB
on 2015/06/11 11:05
on 2015/06/11 11:16
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -8,4 +8,149 @@ 8 8 In the System Parameters, modify MongoHost, MongoPort, MongoDatabase, MongoUser and MongoPassword 9 9 [[image:Capturedecran2015-06-04a15.45.54.png]] 10 10 11 -You have now to create a java class in order to make your bundle to listen to the service **TimeSerieMongoClientService** 11 +You have now to create a java class in order to make your bundle to listen to the service **TimeSerieMongoClientService**. In the pom file’s directory of your bundle execute following command: 12 + 13 +* mvm clean install 14 +* mvn eclipse:eclipse 15 + 16 +Then import the bundle as an eclipse project to add that class which activate the service : 17 +Right click -> Import -> General -> existing project into workspace and specify the folder of your bundle in tomcat/dysoweb.home/application 18 + [[image:Capturedecran2015-06-04a16.13.56.png]] 19 + 20 +Create a class Activator in the folder src/main/java: 21 + 22 +{{code language="java"}} 23 +public class Activator implements BundleActivator { 24 + 25 + private BundleContext fContext; 26 + private IApplicationService fApplicationService; 27 + private static Activator fInstance; 28 + private ITimeSeriesMongoClientService fMongoService; 29 + 30 + public Activator() { 31 + 32 + } 33 + 34 + public void start(BundleContext context) throws Exception { 35 + fContext = context; 36 + registerApplicationServiceListener(context); 37 + registerMongoServiceListener(context); 38 + fInstance = this; 39 + } 40 + 41 + public void stop(BundleContext context) throws Exception { 42 + fContext = null; 43 + fInstance = null; 44 + } 45 + 46 + public static Activator getDefault() { 47 + return fInstance; 48 + } 49 + 50 + public IApplicationService getApplicationService() { 51 + // retrieve the import service for the running instance 52 + return fApplicationService; 53 + } 54 + 55 + private void registerApplicationServiceListener(BundleContext context) throws InvalidSyntaxException { 56 + // get the service ref if the auth plugin is already started 57 + ServiceReference sr = context.getServiceReference(IApplicationService.class.getName()); 58 + if(sr != null) { 59 + fApplicationService = (IApplicationService)context.getService(sr); 60 + } 61 + 62 + ServiceListener sl = new ServiceListener() { 63 + 64 + @Override 65 + public void serviceChanged(ServiceEvent ev) { 66 + ServiceReference sr = ev.getServiceReference(); 67 + switch (ev.getType()) { 68 + case ServiceEvent.REGISTERED: { 69 + fApplicationService = (IApplicationService)fContext.getService(sr); 70 + } 71 + break; 72 + case ServiceEvent.UNREGISTERING: { 73 + fApplicationService = null; 74 + } 75 + break; 76 + } 77 + } 78 + }; 79 + 80 + String filter = "(objectclass=" 81 + + IApplicationService.class.getName() + ")"; 82 + context.addServiceListener(sl, filter); 83 + } 84 + 85 + private void registerMongoServiceListener(BundleContext context) throws InvalidSyntaxException { 86 + // get the service ref if the auth plugin is already started 87 + ServiceReference sr = context.getServiceReference(ITimeSeriesMongoClientService.class.getName()); 88 + if(sr != null) { 89 + fMongoService = (ITimeSeriesMongoClientService)context.getService(sr); 90 + } 91 + 92 + ServiceListener sl = new ServiceListener() { 93 + 94 + @Override 95 + public void serviceChanged(ServiceEvent ev) { 96 + ServiceReference sr = ev.getServiceReference(); 97 + switch (ev.getType()) { 98 + case ServiceEvent.REGISTERED: { 99 + fMongoService = (ITimeSeriesMongoClientService)fContext.getService(sr); 100 + } 101 + break; 102 + case ServiceEvent.UNREGISTERING: { 103 + fMongoService = null; 104 + } 105 + break; 106 + } 107 + } 108 + }; 109 + 110 + String filter = "(objectclass=" 111 + + ITimeSeriesMongoClientService.class.getName() + ")"; 112 + context.addServiceListener(sl, filter); 113 + } 114 + 115 + public ITimeSeriesMongoClientService getMongoService() { 116 + return this.fMongoService; 117 + } 118 +} 119 + 120 +{{/code}} 121 + 122 +To solve import errors, edit the pom.xml file: 123 + 124 +* add a dependency: 125 + 126 +{{code language="xml"}} 127 + <dependency> 128 + <groupId>com.requea.dynapage</groupId> 129 + <artifactId>com.requea.dynapage.mongo</artifactId> 130 + <scope>provided</scope> 131 + <version>4.0.245</version> 132 + </dependency> 133 + 134 +{{/code}} 135 + 136 +* add an import package: 137 + 138 +com.requea.dynapage.mongo, 139 + 140 +* add a field bundle-activator after Import-Package mark: 141 + 142 +{{code language="xml"}} 143 +<Bundle-Activator>com.requea.schneider.dlvm.Activator</Bundle-Activator> 144 +{{/code}} 145 + 146 + 147 +Under src/main/META-INF, edit MANIFEST.MF: 148 + 149 +* add com.requea.dynapage.mongo in the section Import-Package 150 +* add the section Bundle-Activator: com.requea.name.Activator 151 + 152 +Recompile the bundle with the command line mvm eclipse:eclipse 153 + 154 +You can now add your bundle by typing that command in the shell platform (under http://localhost:8080/dysoweb/dysoweb/panel/secure/shell.jsp): 155 + 156 +start reference:file: /path to the bundle //com.requea.name///src/main