branch feature/7458 updated (6609e00 -> 57c39cc)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458 in repository observe. See http://git.codelutin.com/observe.git from 6609e00 add some service for longline (refs #7458). new 57c39cc debut de services rest + restructuration des paquetages The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 57c39cc277aba366fc6dd24cae60f3a41a01903a Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 20 09:25:53 2015 +0200 debut de services rest + restructuration des paquetages Summary of changes: observe-services-api/pom.xml | 18 +++ .../observe/services/ObserveServiceContext.java | 4 +- .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveDataSourceConfiguration.java | 10 ++ .../services/ObserveServiceApplicationContext.java | 8 +- .../observe/services/ObserveServiceContext.java | 4 + .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveServiceFactorySupport.java | 4 +- .../services/ObserveServiceMainFactory.java | 30 ++--- .../services/FakeObserveServiceContext.java | 22 ---- .../services/FakeObserveServiceFactory.java | 19 --- .../services/ObserveServiceMainFactoryTest.java | 23 ---- .../fr.ird.observe.services.ObserveServiceFactory | 1 - .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 46 ++------ .../ObserveRestClientDataSourceConfiguration.java | 39 +++++++ .../rest/client/ObserveRestClientService.java | 17 +++ .../client/ObserveRestClientServiceContext.java | 38 ++++++ .../client/ObserveRestClientServiceFactory.java | 46 ++++++++ .../service/ReferentialServiceRestClient.java | 14 +-- .../fr.ird.observe.services.ObserveServiceFactory | 1 + .../client/service/ReferentialServiceRestTest.java | 45 +++++++ .../src/test/resources/log4j.properties | 0 .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 59 +++++----- .../wm/ObserveRestWebMotionApplicationContext.java | 81 +++++++++++++ .../ObserveRestWebMotionApplicationListener.java | 42 +++++++ .../rest/wm/ObserveRestWebMotionController.java | 11 ++ .../rest/wm/ObserveRestWebMotionFilter.java | 55 +++++++++ .../rest/wm/ObserveRestWebMotionJsonHelper.java | 130 +++++++++++++++++++++ .../rest/wm/ObserveRestWebMotionRender.java | 52 +++++++++ .../rest/wm/service/ReferentialServiceRest.java | 66 +++++++++++ .../src/main/resources/mapping | 12 ++ .../src/main/webapp/WEB-INF/web.xml | 25 ++++ .../services/ObserveServiceFactoryRest.java | 33 ------ .../ird/observe/services/ObserveServiceRest.java | 17 --- .../rest/wm/ObserveRestApplicationContext.java | 42 +++++++ .../rest/wm/ObserveRestApplicationListener.java | 42 +++++++ .../rest/wm/ObserveRestWebMotionFilter.java | 62 ++++++++++ .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-rest/src/main/resources/mapping | 28 +++++ .../src/main/webapp/WEB-INF/web.xml | 36 ++++++ .../referential/ReferentialServiceRestTest.java | 37 ------ .../observe/services/AbstractObserveService.java | 5 +- .../services/ObserveServiceContextTopia.java | 45 ------- .../services/{dto => topia}/ObserveDtoBinders.java | 3 +- .../{dto => topia}/ObserveDtosInitializer.java | 4 +- .../services/{ => topia}/ObserveServiceTopia.java | 11 +- .../topia/ObserveTopiaDataSourceConfiguration.java | 22 ++++ .../services/topia/ObserveTopiaServiceContext.java | 54 +++++++++ .../ObserveTopiaServiceFactory.java} | 41 ++++--- .../{ => topia}/builder/DtoToEntityBuilder.java | 6 +- .../{ => topia}/builder/EntityToDtoBuilder.java | 6 +- .../builder/EntityToReferenceDtoBuilder.java | 4 +- .../EntityToReferentialReferenceDtoBuilder.java | 4 +- .../service/ReferentialServiceTopia.java | 9 +- .../ActivitySeineObservedSystemServiceTopia.java | 8 +- .../service/seine/ActivitySeineServiceTopia.java | 5 +- .../service/seine/FloatingObjectServiceTopia.java | 7 +- .../fr.ird.observe.services.ObserveServiceFactory | 2 +- .../{ => topia}/ApplicationContextResource.java | 17 ++- .../service/{ => topia}/DataSourceResource.java | 2 +- .../service}/ReferentialServiceTopiaTest.java | 24 ++-- .../builder/DtoToEntityBuilderTest.java | 4 +- .../builder/EntityToDtoBuilderTest.java | 4 +- pom.xml | 53 +++++++-- 68 files changed, 1199 insertions(+), 369 deletions(-) create mode 100644 observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java rename observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java => observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java (78%) delete mode 100644 observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java delete mode 100644 observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java delete mode 100644 observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java delete mode 100644 observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory rename {observe-services-rest => observe-services-rest-client}/LICENSE.txt (100%) rename {observe-services-rest => observe-services-rest-client}/README.txt (100%) copy {observe-services-topia => observe-services-rest-client}/pom.xml (64%) create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java create mode 100644 observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java rename observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java => observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java (77%) create mode 100644 observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory create mode 100644 observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java rename {observe-services-rest => observe-services-rest-client}/src/test/resources/log4j.properties (100%) copy {observe-validation => observe-services-rest-wm}/LICENSE.txt (100%) copy {observe-validation => observe-services-rest-wm}/README.txt (100%) rename {observe-services-rest => observe-services-rest-wm}/pom.xml (67%) create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java create mode 100644 observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java create mode 100644 observe-services-rest-wm/src/main/resources/mapping create mode 100644 observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml delete mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java delete mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java create mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java create mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java create mode 100644 observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java delete mode 100644 observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory create mode 100644 observe-services-rest/src/main/resources/mapping create mode 100644 observe-services-rest/src/main/webapp/WEB-INF/web.xml delete mode 100644 observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java delete mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java rename observe-services-topia/src/main/java/fr/ird/observe/services/{dto => topia}/ObserveDtoBinders.java (94%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{dto => topia}/ObserveDtosInitializer.java (99%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/ObserveServiceTopia.java (92%) create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java create mode 100644 observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java rename observe-services-topia/src/main/java/fr/ird/observe/services/{ObserveServiceFactoryTopia.java => topia/ObserveTopiaServiceFactory.java} (65%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/builder/DtoToEntityBuilder.java (97%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/builder/EntityToDtoBuilder.java (97%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/builder/EntityToReferenceDtoBuilder.java (94%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/builder/EntityToReferentialReferenceDtoBuilder.java (95%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/service/ReferentialServiceTopia.java (94%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/service/seine/ActivitySeineObservedSystemServiceTopia.java (78%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/service/seine/ActivitySeineServiceTopia.java (84%) rename observe-services-topia/src/main/java/fr/ird/observe/services/{ => topia}/service/seine/FloatingObjectServiceTopia.java (82%) rename observe-services-topia/src/test/java/fr/ird/observe/services/service/{ => topia}/ApplicationContextResource.java (76%) rename observe-services-topia/src/test/java/fr/ird/observe/services/service/{ => topia}/DataSourceResource.java (98%) rename observe-services-topia/src/test/java/fr/ird/observe/services/service/{ => topia/service}/ReferentialServiceTopiaTest.java (88%) rename observe-services-topia/src/test/java/fr/ird/observe/services/{ => topia}/builder/DtoToEntityBuilderTest.java (98%) rename observe-services-topia/src/test/java/fr/ird/observe/services/{ => topia}/builder/EntityToDtoBuilderTest.java (98%) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7458 in repository observe. See http://git.codelutin.com/observe.git commit 57c39cc277aba366fc6dd24cae60f3a41a01903a Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Aug 20 09:25:53 2015 +0200 debut de services rest + restructuration des paquetages --- observe-services-api/pom.xml | 18 +++ .../observe/services/ObserveServiceContext.java | 4 +- .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveDataSourceConfiguration.java | 10 ++ .../services/ObserveServiceApplicationContext.java | 8 +- .../observe/services/ObserveServiceContext.java | 4 + .../observe/services/ObserveServiceFactory.java | 4 +- .../services/ObserveServiceFactorySupport.java | 4 +- .../services/ObserveServiceMainFactory.java | 30 ++--- .../services/FakeObserveServiceContext.java | 22 ---- .../services/FakeObserveServiceFactory.java | 19 --- .../services/ObserveServiceMainFactoryTest.java | 23 ---- .../fr.ird.observe.services.ObserveServiceFactory | 1 - .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 43 +------ .../ObserveRestClientDataSourceConfiguration.java | 39 +++++++ .../rest/client/ObserveRestClientService.java | 17 +++ .../client/ObserveRestClientServiceContext.java | 38 ++++++ .../client/ObserveRestClientServiceFactory.java | 46 ++++++++ .../service/ReferentialServiceRestClient.java | 14 +-- .../fr.ird.observe.services.ObserveServiceFactory | 1 + .../client/service/ReferentialServiceRestTest.java | 45 +++++++ .../src/test/resources/log4j.properties | 0 .../LICENSE.txt | 0 .../README.txt | 0 .../pom.xml | 59 +++++----- .../wm/ObserveRestWebMotionApplicationContext.java | 81 +++++++++++++ .../ObserveRestWebMotionApplicationListener.java | 42 +++++++ .../rest/wm/ObserveRestWebMotionController.java | 11 ++ .../rest/wm/ObserveRestWebMotionFilter.java | 55 +++++++++ .../rest/wm/ObserveRestWebMotionJsonHelper.java | 130 +++++++++++++++++++++ .../rest/wm/ObserveRestWebMotionRender.java | 52 +++++++++ .../rest/wm/service/ReferentialServiceRest.java | 66 +++++++++++ .../src/main/resources/mapping | 12 ++ .../src/main/webapp/WEB-INF/web.xml | 25 ++++ .../services/ObserveServiceFactoryRest.java | 33 ------ .../ird/observe/services/ObserveServiceRest.java | 17 --- .../rest/wm/ObserveRestApplicationContext.java | 42 +++++++ .../rest/wm/ObserveRestApplicationListener.java | 42 +++++++ .../rest/wm/ObserveRestWebMotionFilter.java | 62 ++++++++++ .../fr.ird.observe.services.ObserveServiceFactory | 1 - observe-services-rest/src/main/resources/mapping | 28 +++++ .../src/main/webapp/WEB-INF/web.xml | 36 ++++++ .../referential/ReferentialServiceRestTest.java | 37 ------ .../observe/services/AbstractObserveService.java | 5 +- .../services/ObserveServiceContextTopia.java | 45 ------- .../services/{dto => topia}/ObserveDtoBinders.java | 3 +- .../{dto => topia}/ObserveDtosInitializer.java | 4 +- .../services/{ => topia}/ObserveServiceTopia.java | 11 +- .../topia/ObserveTopiaDataSourceConfiguration.java | 22 ++++ .../services/topia/ObserveTopiaServiceContext.java | 54 +++++++++ .../ObserveTopiaServiceFactory.java} | 41 ++++--- .../{ => topia}/builder/DtoToEntityBuilder.java | 6 +- .../{ => topia}/builder/EntityToDtoBuilder.java | 6 +- .../builder/EntityToReferenceDtoBuilder.java | 4 +- .../EntityToReferentialReferenceDtoBuilder.java | 4 +- .../service/ReferentialServiceTopia.java | 9 +- .../ActivitySeineObservedSystemServiceTopia.java | 8 +- .../service/seine/ActivitySeineServiceTopia.java | 5 +- .../service/seine/FloatingObjectServiceTopia.java | 7 +- .../fr.ird.observe.services.ObserveServiceFactory | 2 +- .../{ => topia}/ApplicationContextResource.java | 17 ++- .../service/{ => topia}/DataSourceResource.java | 2 +- .../service}/ReferentialServiceTopiaTest.java | 24 ++-- .../builder/DtoToEntityBuilderTest.java | 4 +- .../builder/EntityToDtoBuilderTest.java | 4 +- pom.xml | 53 +++++++-- 68 files changed, 1193 insertions(+), 372 deletions(-) diff --git a/observe-services-api/pom.xml b/observe-services-api/pom.xml index 0a79ce5..590f6e8 100644 --- a/observe-services-api/pom.xml +++ b/observe-services-api/pom.xml @@ -59,5 +59,23 @@ </dependencies> + <build> + + <plugins> + <plugin> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer-maven-plugin</artifactId> + <executions> + <execution> + <id>extract-paranamer</id> + <goals> + <goal>generate</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + + </build> </project> \ No newline at end of file diff --git a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java index 320d53e..dbf5fcf 100644 --- a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java +++ b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceContext.java @@ -40,9 +40,9 @@ public class ObserveServiceContext { /** * Application context. */ - protected ObserveApplicationContext applicationContext; + protected ObserveServiceApplicationContext applicationContext; - public ObserveServiceContext(ObserveApplicationContext applicationContext, DataSource dataSource) { + public ObserveServiceContext(ObserveServiceApplicationContext applicationContext, DataSource dataSource) { this.applicationContext = applicationContext; this.config = applicationContext.getConfig(); this.dataSource = dataSource; diff --git a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java index 25dcb33..551985d 100644 --- a/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java +++ b/observe-services-api/src/main/fromRefactor/fr/ird/observe/services/ObserveServiceFactory.java @@ -21,11 +21,11 @@ public class ObserveServiceFactory { /** Logger. */ private static final Log log = LogFactory.getLog(ObserveServiceFactory.class); - protected final ObserveApplicationContext applicationContext; + protected final ObserveServiceApplicationContext applicationContext; protected static Set<ObserveServiceFactoryProvider> providers; - public ObserveServiceFactory(ObserveApplicationContext applicationContext) { + public ObserveServiceFactory(ObserveServiceApplicationContext applicationContext) { this.applicationContext = applicationContext; if (log.isInfoEnabled()) { log.info("Init new ServiceFactory for applicationContext: " + applicationContext); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java new file mode 100644 index 0000000..ae1da54 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveDataSourceConfiguration.java @@ -0,0 +1,10 @@ +package fr.ird.observe.services; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public interface ObserveDataSourceConfiguration { + +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java similarity index 78% rename from observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java rename to observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java index d9efbdf..542f8e3 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceContextRest.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceApplicationContext.java @@ -3,15 +3,17 @@ package fr.ird.observe.services; import fr.ird.observe.services.dto.constants.ReferentialLocale; /** - * Created on 16/08/15. + * Created on 19/08/15. * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveServiceContextRest implements ObserveServiceContext { +public class ObserveServiceApplicationContext { + /** + * La locale du référentiel. + */ protected ReferentialLocale referentialLocale; - @Override public ReferentialLocale getReferentialLocale() { return referentialLocale; } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java index 9b1a3e2..d854949 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceContext.java @@ -2,6 +2,8 @@ package fr.ird.observe.services; import fr.ird.observe.services.dto.constants.ReferentialLocale; +import java.util.Date; + /** * Created on 16/08/15. * @@ -11,4 +13,6 @@ public interface ObserveServiceContext { ReferentialLocale getReferentialLocale(); + Date now(); + } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java index 92549e8..1f86f6d 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java @@ -7,8 +7,8 @@ package fr.ird.observe.services; */ public interface ObserveServiceFactory { - <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType); + <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType); - <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType); + <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java index dbae6c6..a449e99 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceFactorySupport.java @@ -31,14 +31,14 @@ public abstract class ObserveServiceFactorySupport implements ObserveServiceFact } } - public static LoadingCache<Class<?>, Class<?>> newAddSuffixClassCache(final String suffix) { + public static LoadingCache<Class<?>, Class<?>> newAddSuffixClassCache(final String prefix, final String suffix) { return CacheBuilder.newBuilder().build(new CacheLoader<Class<?>, Class<?>>() { @Override public Class<?> load(Class<?> key) throws Exception { - String fqn = key.getName() + suffix; + String fqn = prefix + key.getSimpleName() + suffix; try { Class<?> classImpl = Class.forName(fqn); return classImpl; diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java index 1dd0b7b..116f6ad 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/ObserveServiceMainFactory.java @@ -26,29 +26,33 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { } @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { + public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - ObserveServiceFactory factory = getFactory(serviceContext, serviceType); - return factory.accept(serviceContext, serviceType); + ObserveServiceFactory factory = getFactory(dataSourceConfiguration, serviceType); + return factory != null; } @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { + public <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); + Preconditions.checkNotNull(applicationContext, "applicationContext can't be null."); + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); Preconditions.checkNotNull(serviceType, "serviceType can't be null."); - ObserveServiceFactory factory = getFactory(serviceContext, serviceType); + ObserveServiceFactory factory = getFactory(dataSourceConfiguration, serviceType); + Preconditions.checkNotNull(factory, "factory can't be null."); if (log.isDebugEnabled()) { log.debug("Using factory: " + factory); } - S service = factory.newService(serviceContext, serviceType); + S service = factory.newService(applicationContext, dataSourceConfiguration, serviceType); + if (log.isInfoEnabled()) { - log.info("New service created: " + service + " for serviceContext: " + serviceContext); + log.info("New service created: " + service); } + return service; } @@ -69,17 +73,17 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { delegateFactories = builder.build(); } - protected <S extends ObserveService> ObserveServiceFactory getFactory(ObserveServiceContext serviceContext, Class<S> serviceType) { + protected <S extends ObserveService> ObserveServiceFactory getFactory(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { ObserveServiceFactory result = null; - for (ObserveServiceFactory provider : delegateFactories) { - if (provider.accept(serviceContext, serviceType)) { - result = provider; + for (ObserveServiceFactory serviceFactory : delegateFactories) { + if (serviceFactory.accept(dataSourceConfiguration, serviceType)) { + result = serviceFactory; break; } } - Preconditions.checkState(result != null, String.format("No factory found for serviceContext: %s and serviceType: %s", serviceContext, serviceType.getName())); + Preconditions.checkState(result != null, String.format("No factory found for dataSourceConfiguration: %s and serviceType: %s", dataSourceConfiguration, serviceType.getName())); return result; } diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java b/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java deleted file mode 100644 index 5ab54bb..0000000 --- a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceContext.java +++ /dev/null @@ -1,22 +0,0 @@ -package fr.ird.observe.services; - -import fr.ird.observe.services.dto.constants.ReferentialLocale; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class FakeObserveServiceContext implements ObserveServiceContext { - - private ReferentialLocale referentialLocale; - - @Override - public ReferentialLocale getReferentialLocale() { - return referentialLocale; - } - - public void setReferentialLocale(ReferentialLocale referentialLocale) { - this.referentialLocale = referentialLocale; - } -} diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java b/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java deleted file mode 100644 index e6d8cc6..0000000 --- a/observe-services-api/src/test/java/fr/ird/observe/services/FakeObserveServiceFactory.java +++ /dev/null @@ -1,19 +0,0 @@ -package fr.ird.observe.services; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class FakeObserveServiceFactory implements ObserveServiceFactory { - - @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { - return serviceContext != null && serviceType != null; - } - - @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { - return null; - } -} diff --git a/observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java b/observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java deleted file mode 100644 index 92ee0e8..0000000 --- a/observe-services-api/src/test/java/fr/ird/observe/services/ObserveServiceMainFactoryTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.ird.observe.services; - -import fr.ird.observe.services.service.ReferentialService; -import org.junit.Test; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceMainFactoryTest { - - protected ReferentialService service; - - @Test - public void testGetReferentialService() { - - FakeObserveServiceContext context = new FakeObserveServiceContext(); - service = ObserveServiceMainFactory.get().newService(context, ReferentialService.class); - - } - -} \ No newline at end of file diff --git a/observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory deleted file mode 100644 index 7db991e..0000000 --- a/observe-services-api/src/test/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory +++ /dev/null @@ -1 +0,0 @@ -fr.ird.observe.services.FakeObserveServiceFactory \ No newline at end of file diff --git a/observe-services-rest/LICENSE.txt b/observe-services-rest-client/LICENSE.txt similarity index 100% copy from observe-services-rest/LICENSE.txt copy to observe-services-rest-client/LICENSE.txt diff --git a/observe-services-rest/README.txt b/observe-services-rest-client/README.txt similarity index 100% copy from observe-services-rest/README.txt copy to observe-services-rest-client/README.txt diff --git a/observe-services-rest/pom.xml b/observe-services-rest-client/pom.xml similarity index 61% copy from observe-services-rest/pom.xml copy to observe-services-rest-client/pom.xml index 7e4cce5..ae97bff 100644 --- a/observe-services-rest/pom.xml +++ b/observe-services-rest-client/pom.xml @@ -10,10 +10,10 @@ <version>4.0.2-SNAPSHOT</version> </parent> - <artifactId>observe-services-rest</artifactId> + <artifactId>observe-services-rest-client</artifactId> - <name>ObServe :: Services (impl REST)</name> - <description>ObServe services (Implementation REST)</description> + <name>ObServe :: Services (client REST)</name> + <description>ObServe services (client REST)</description> <dependencies> @@ -28,17 +28,6 @@ <artifactId>observe-services-api</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>observe-entities</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>observe-business</artifactId> - <version>${project.version}</version> - </dependency> - <!-- commons dependencies --> @@ -55,10 +44,6 @@ <artifactId>commons-collections4</artifactId> </dependency> <dependency> - <groupId>commons-jxpath</groupId> - <artifactId>commons-jxpath</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> @@ -72,28 +57,6 @@ <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> </dependency> - <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> - </dependency> - - <!-- persistence --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-persistence</artifactId> - </dependency> - <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-service-replication</artifactId> - </dependency> <!-- Logging --> <dependency> diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java new file mode 100644 index 0000000..45a2074 --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientDataSourceConfiguration.java @@ -0,0 +1,39 @@ +package fr.ird.observe.services.rest.client; + +import fr.ird.observe.services.ObserveDataSourceConfiguration; + +import java.net.URL; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientDataSourceConfiguration implements ObserveDataSourceConfiguration { + + /** + * L'url du serveur à utiliser. + */ + protected URL serverUrl; + + /** + * Le token d'authentification. + */ + protected String authenticationToken; + + public URL getServerUrl() { + return serverUrl; + } + + public void setServerUrl(URL serverUrl) { + this.serverUrl = serverUrl; + } + + public String getAuthenticationToken() { + return authenticationToken; + } + + public void setAuthenticationToken(String authenticationToken) { + this.authenticationToken = authenticationToken; + } +} diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java new file mode 100644 index 0000000..ba49921 --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientService.java @@ -0,0 +1,17 @@ +package fr.ird.observe.services.rest.client; + +import fr.ird.observe.services.ObserveService; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientService implements ObserveService { + + protected ObserveRestClientServiceContext serviceContext; + + public void setServiceContext(ObserveRestClientServiceContext serviceContext) { + this.serviceContext = serviceContext; + } +} diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java new file mode 100644 index 0000000..2083a1a --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceContext.java @@ -0,0 +1,38 @@ +package fr.ird.observe.services.rest.client; + +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceContext; +import fr.ird.observe.services.dto.constants.ReferentialLocale; + +import java.util.Date; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientServiceContext implements ObserveServiceContext { + + protected ObserveServiceApplicationContext applicationContext; + + protected ObserveRestClientDataSourceConfiguration dataSourceConfiguration; + + @Override + public ReferentialLocale getReferentialLocale() { + return applicationContext.getReferentialLocale(); + } + + @Override + public Date now() { + return new Date(); + } + + public void setDataSourceConfiguration(ObserveRestClientDataSourceConfiguration dataSourceConfiguration) { + this.dataSourceConfiguration = dataSourceConfiguration; + } + + public void setApplicationContext(ObserveServiceApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + +} diff --git a/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java new file mode 100644 index 0000000..054661c --- /dev/null +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/ObserveRestClientServiceFactory.java @@ -0,0 +1,46 @@ +package fr.ird.observe.services.rest.client; + +import com.google.common.base.Preconditions; +import com.google.common.cache.LoadingCache; +import fr.ird.observe.services.ObserveDataSourceConfiguration; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceFactorySupport; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestClientServiceFactory extends ObserveServiceFactorySupport { + + protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("fr.ird.observe.services.rest.client.service.", "RestClient"); + + @Override + public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkNotNull(serviceType, "serviceType can't be null."); + return dataSourceConfiguration instanceof ObserveRestClientDataSourceConfiguration; + } + + @Override + public <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + + Preconditions.checkNotNull(applicationContext, "applicationContext can't be null."); + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkArgument(dataSourceConfiguration instanceof ObserveRestClientDataSourceConfiguration, "dataSourceConfiguration must be of type ObserveRestClientDataSourceConfiguration"); + Preconditions.checkNotNull(serviceType, "serviceType can't be null."); + + Class<S> serviceTypeImpl = getServiceClassType(serviceTypeCache, serviceType); + Preconditions.checkNotNull(serviceTypeImpl, "serviceTypeImpl not found for : " + serviceType.getName()); + + ObserveRestClientServiceContext serviceContext = new ObserveRestClientServiceContext(); + serviceContext.setApplicationContext(applicationContext); + serviceContext.setDataSourceConfiguration((ObserveRestClientDataSourceConfiguration) dataSourceConfiguration); + + S service = newServiceInstance(serviceTypeImpl, serviceContext); + return service; + + } + +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java similarity index 77% rename from observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java rename to observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java index fa73b4a..431c831 100644 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/service/ReferentialServiceRest.java +++ b/observe-services-rest-client/src/main/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestClient.java @@ -1,10 +1,10 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.rest.client.service; -import fr.ird.observe.services.ObserveServiceContext; -import fr.ird.observe.services.ObserveServiceRest; +import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.rest.client.ObserveRestClientService; +import fr.ird.observe.services.service.ReferentialService; import java.util.Collection; @@ -13,7 +13,7 @@ import java.util.Collection; * * @author Tony Chemit - chemit@codelutin.com */ -public class ReferentialServiceRest extends ObserveServiceRest implements ReferentialService { +public class ReferentialServiceRestClient extends ObserveRestClientService implements ReferentialService { @Override public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { @@ -51,8 +51,4 @@ public class ReferentialServiceRest extends ObserveServiceRest implements Refere } - @Override - public void setServiceContext(ObserveServiceContext serviceContext) { - - } } diff --git a/observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory new file mode 100644 index 0000000..9753b48 --- /dev/null +++ b/observe-services-rest-client/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory @@ -0,0 +1 @@ +fr.ird.observe.services.rest.client.ObserveRestClientServiceFactory \ No newline at end of file diff --git a/observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java b/observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java new file mode 100644 index 0000000..dd93de8 --- /dev/null +++ b/observe-services-rest-client/src/test/java/fr/ird/observe/services/rest/client/service/ReferentialServiceRestTest.java @@ -0,0 +1,45 @@ +package fr.ird.observe.services.rest.client.service; + +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceMainFactory; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.rest.client.ObserveRestClientDataSourceConfiguration; +import fr.ird.observe.services.service.ReferentialService; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialServiceRestTest { + + protected ReferentialService service; + + @Before + public void setUp() throws Exception { + + ObserveRestClientDataSourceConfiguration dataSourceConfiguration = new ObserveRestClientDataSourceConfiguration(); + dataSourceConfiguration.setServerUrl(null); + dataSourceConfiguration.setAuthenticationToken(null); + + ObserveServiceApplicationContext serviceApplicationContext = new ObserveServiceApplicationContext(); + serviceApplicationContext.setReferentialLocale(ReferentialLocale.FR); + + service = ObserveServiceMainFactory.get().newService(serviceApplicationContext, dataSourceConfiguration, ReferentialService.class); + + } + + @Test + public void testGetReferentialLabelSet() throws Exception { + + ReferenceSetDto referentialLabelSet = service.getReferentialReferenceSet(SexDto.class); + Assert.assertNotNull(referentialLabelSet); + + } + +} \ No newline at end of file diff --git a/observe-services-rest/src/test/resources/log4j.properties b/observe-services-rest-client/src/test/resources/log4j.properties similarity index 100% rename from observe-services-rest/src/test/resources/log4j.properties rename to observe-services-rest-client/src/test/resources/log4j.properties diff --git a/observe-services-rest/LICENSE.txt b/observe-services-rest-wm/LICENSE.txt similarity index 100% rename from observe-services-rest/LICENSE.txt rename to observe-services-rest-wm/LICENSE.txt diff --git a/observe-services-rest/README.txt b/observe-services-rest-wm/README.txt similarity index 100% rename from observe-services-rest/README.txt rename to observe-services-rest-wm/README.txt diff --git a/observe-services-rest/pom.xml b/observe-services-rest-wm/pom.xml similarity index 67% rename from observe-services-rest/pom.xml rename to observe-services-rest-wm/pom.xml index 7e4cce5..bf01c47 100644 --- a/observe-services-rest/pom.xml +++ b/observe-services-rest-wm/pom.xml @@ -10,10 +10,10 @@ <version>4.0.2-SNAPSHOT</version> </parent> - <artifactId>observe-services-rest</artifactId> + <artifactId>observe-services-rest-wn</artifactId> - <name>ObServe :: Services (impl REST)</name> - <description>ObServe services (Implementation REST)</description> + <name>ObServe :: Services (impl WebMotion)</name> + <description>ObServe services (impl WebMotion)</description> <dependencies> @@ -30,16 +30,10 @@ </dependency> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>observe-entities</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>observe-business</artifactId> + <artifactId>observe-services-topia</artifactId> <version>${project.version}</version> </dependency> - <!-- commons dependencies --> <dependency> @@ -55,10 +49,6 @@ <artifactId>commons-collections4</artifactId> </dependency> <dependency> - <groupId>commons-jxpath</groupId> - <artifactId>commons-jxpath</artifactId> - </dependency> - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> @@ -72,29 +62,44 @@ <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> </dependency> + + <!-- WebMotion --> <dependency> - <groupId>org.nuiton</groupId> - <artifactId>nuiton-decorator</artifactId> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion</artifactId> </dependency> <dependency> - <groupId>org.nuiton.i18n</groupId> - <artifactId>nuiton-i18n</artifactId> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion-unittest</artifactId> + <exclusions> + <exclusion> + <groupId>org.apache.tomcat.embed</groupId> + <artifactId>tomcat-embed-logging-juli</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.tomcat.embed</groupId> + <artifactId>tomcat-embed-jasper</artifactId> + </exclusion> + <exclusion> + <groupId>org.eclipse.jdt.core.compiler</groupId> + <artifactId>ecj</artifactId> + </exclusion> + </exclusions> </dependency> - <!-- persistence --> - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - </dependency> <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-persistence</artifactId> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> </dependency> + + <!-- Paranamer --> <dependency> - <groupId>org.nuiton.topia</groupId> - <artifactId>topia-service-replication</artifactId> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer</artifactId> </dependency> + + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java new file mode 100644 index 0000000..6c15c17 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationContext.java @@ -0,0 +1,81 @@ +package fr.ird.observe.services.rest.wm; + +import com.google.common.base.Preconditions; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.topia.ObserveTopiaServiceFactory; +import org.debux.webmotion.server.call.HttpContext; + +import javax.servlet.ServletContext; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public class ObserveRestWebMotionApplicationContext { + + public static final String APPLICATION_CONTEXT_PARAMETER = ObserveRestWebMotionApplicationContext.class.getName(); + + public static final String MISSING_APPLICATION_CONTEXT = + ObserveRestWebMotionApplicationContext.class.getSimpleName() + " not found. You probably forgot to" + + " register " + ObserveRestWebMotionApplicationListener.class.getName() + " in your web.xml"; + + protected ObserveTopiaServiceFactory serviceFactory; + + protected ObserveServiceApplicationContext serviceApplicationContext; + + protected static ObserveRestWebMotionApplicationContext getApplicationContext(HttpContext context) { + + ServletContext servletContext = context.getServletContext(); + ObserveRestWebMotionApplicationContext result = + (ObserveRestWebMotionApplicationContext) servletContext + .getAttribute(ObserveRestWebMotionApplicationContext.APPLICATION_CONTEXT_PARAMETER); + + Preconditions.checkState(result != null, ObserveRestWebMotionApplicationContext.MISSING_APPLICATION_CONTEXT); + + return result; + + } + +// protected ObserveServiceConfig serviceConfig; +// +// protected ObserveTopiaApplicationContext rootContext; + + public void init() { + + serviceFactory = new ObserveTopiaServiceFactory(); + serviceApplicationContext = new ObserveServiceApplicationContext(); + +// ObserveServiceConfig config = new ObserveServiceConfig(null); +// serviceConfig = config; +// Properties rootProperties = serviceConfig.getFlatOptions(); +// rootProperties.setProperty(TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, ObserveEntityEnum.getImplementationClassesAsString()); +// +// rootContext = TopiaApplicationContextCache.getContext(rootProperties, ObserveConfigurationHelper.getCreateTopiaContextFunction(config)); + } + +// public ObserveServiceConfig getServiceConfig() { +// return serviceConfig; +// } + +// public ObserveTopiaPersistenceContext newTransaction() { +// ObserveTopiaPersistenceContext persistenceContext = rootContext.newPersistenceContext(); +// return persistenceContext; +// } + + public void close() { +// if (rootContext != null) { +// rootContext.closeContext(); +// } + } + + public boolean isDevMode() { + return true; + } + + public ObserveTopiaServiceFactory getServiceFactory() { + return serviceFactory; + } + + public ObserveServiceApplicationContext getServiceApplicationContext() { + return serviceApplicationContext; + } +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java new file mode 100644 index 0000000..132c765 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionApplicationListener.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.rest.wm; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public class ObserveRestWebMotionApplicationListener implements ServletContextListener { + + private static final Log log = LogFactory.getLog(ObserveRestWebMotionApplicationListener.class); + + protected ObserveRestWebMotionApplicationContext context; + + @Override + public void contextInitialized(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Initializing " + ObserveRestWebMotionApplicationListener.class.getName()); + } + + context = new ObserveRestWebMotionApplicationContext(); + context.init(); + + sce.getServletContext().setAttribute(ObserveRestWebMotionApplicationContext.APPLICATION_CONTEXT_PARAMETER, context); + + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Destroying " + ObserveRestWebMotionApplicationListener.class.getName()); + } + + context.close(); + } + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java new file mode 100644 index 0000000..19c85d8 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionController.java @@ -0,0 +1,11 @@ +package fr.ird.observe.services.rest.wm; + +import fr.ird.observe.services.ObserveService; +import org.debux.webmotion.server.WebMotionController; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public abstract class ObserveRestWebMotionController extends WebMotionController implements ObserveService { + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java new file mode 100644 index 0000000..e5ed46c --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java @@ -0,0 +1,55 @@ +package fr.ird.observe.services.rest.wm; + +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.topia.ObserveTopiaServiceFactory; +import org.debux.webmotion.server.WebMotionFilter; +import org.debux.webmotion.server.call.HttpContext; + +import javax.servlet.http.HttpServletRequest; + +/** + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestWebMotionFilter extends WebMotionFilter { + +// protected ObserveTopiaPersistenceContext getTopiaContext(HttpContext context) { +// HttpServletRequest servletRequest = context.getRequest(); +// ObserveTopiaPersistenceContext result = (ObserveTopiaPersistenceContext) +// servletRequest +// .getAttribute(TopiaTransactionFilter.TOPIA_TRANSACTION_REQUEST_ATTRIBUTE); +// +// Preconditions.checkState(result != null, "TopiaContext not available"); +// +// return result; +// } + + public void inject(HttpContext context) { + +// final ObserveTopiaPersistenceContext persistenceContext = getTopiaContext(context); + + ObserveRestWebMotionApplicationContext applicationContext = + ObserveRestWebMotionApplicationContext.getApplicationContext(context); + + HttpServletRequest request = context.getRequest(); + + String authenticationToken = request.getHeader("authenticationToken"); + + //TODO Recuperation de la configuration de la base à partir du token + + //TODO En déduire la ser + +// DefaultServiceContext serviceContext = new DefaultServiceContext(applicationContext.getServiceConfig(), new Supplier<ObserveTopiaPersistenceContext>() { +// @Override +// public ObserveTopiaPersistenceContext get() { +// return persistenceContext; +// } +// }, authenticationToken); +// +// ServiceFactory serviceFactory = serviceContext.getServiceFactory(); +// request.setAttribute("serviceFactory", serviceFactory); + + doProcess(); + } + + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java new file mode 100644 index 0000000..e0858ae --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionJsonHelper.java @@ -0,0 +1,130 @@ +package fr.ird.observe.services.rest.wm; + +/* + * #%L + * Pollen :: Rest Api + * %% + * Copyright (C) 2009 - 2014 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + +import com.google.gson.ExclusionStrategy; +import com.google.gson.FieldAttributes; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonNull; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; + +import java.lang.reflect.Type; +import java.util.Date; + +/** + * Created on 5/24/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.0 + */ +public class ObserveRestWebMotionJsonHelper { + + private final Gson gson; + + public ObserveRestWebMotionJsonHelper(boolean prettyPrint) { + + GsonBuilder gsonBuilder = new GsonBuilder(); + + gsonBuilder.setExclusionStrategies(new ExclusionStrategy() { + + @Override + public boolean shouldSkipField(FieldAttributes f) { + return false; + } + + @Override + public boolean shouldSkipClass(Class<?> clazz) { + return clazz == Class.class; + } + }); + + gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + + @Override + public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) { + + JsonElement result; + + if (src == null) { + + result = JsonNull.INSTANCE; + + } else { + + result = new JsonPrimitive(src.getTime()); + + } + + return result; + + } + + }); + + gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { + + @Override + public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + return new Date(json.getAsLong()); + } + + }); + + if (prettyPrint) { + + gsonBuilder.setPrettyPrinting(); + + } + + this.gson = gsonBuilder.create(); + + } + + public String toJson(Object model) { + + String json = gson.toJson(model); + return json; + + } + + public <O> O fromJson(String json, Class<O> type) { + + O o = gson.fromJson(json, type); + return o; + + } + + public <O> O fromJson(String json, Type type) { + + O o = gson.fromJson(json, type); + return o; + + } + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java new file mode 100644 index 0000000..0338207 --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionRender.java @@ -0,0 +1,52 @@ +package fr.ird.observe.services.rest.wm; + +import org.debux.webmotion.server.call.Call; +import org.debux.webmotion.server.call.HttpContext; +import org.debux.webmotion.server.mapping.Mapping; +import org.debux.webmotion.server.render.Render; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + +/** + * To render any entities. + * + * @author Tony chemit - chemit@codelutin.com + */ +public class ObserveRestWebMotionRender<T> extends Render { + + protected T model; + + public ObserveRestWebMotionRender(T model) { + this.model = model; + } + + @Override + public void create(Mapping mapping, Call call) throws IOException, ServletException { + + HttpContext context = call.getContext(); + HttpServletResponse response = context.getResponse(); + response.setContentType("application/json"); + + ObserveRestWebMotionApplicationContext applicationContext = + ObserveRestWebMotionApplicationContext.getApplicationContext(context); + +// if (model instanceof InvalidFormException || model instanceof FavoriteListImportException) { +// +// response.setStatus(HttpServletResponse.SC_BAD_REQUEST); +// +// } + + boolean devMode = applicationContext.isDevMode(); + + ObserveRestWebMotionJsonHelper gson = new ObserveRestWebMotionJsonHelper(devMode); + String json = gson.toJson(model); + + PrintWriter out = context.getOut(); + out.print(json); + + } + +} diff --git a/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java new file mode 100644 index 0000000..aabf0cb --- /dev/null +++ b/observe-services-rest-wm/src/main/java/fr/ird/observe/services/rest/wm/service/ReferentialServiceRest.java @@ -0,0 +1,66 @@ +package fr.ird.observe.services.rest.wm.service; + +import fr.ird.observe.services.ObserveServiceContext; +import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.rest.wm.ObserveRestWebMotionController; +import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.spi.Write; + +import java.util.Collection; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialServiceRest extends ObserveRestWebMotionController implements ReferentialService { + + //TODO A injecter + protected ReferentialService referentialService; + + @Override + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { + return referentialService.getReferentialReferenceSet(type); + } + + @Override + public <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException { + return referentialService.loadToRead(type, id); + } + + @Override + public <R extends ReferentialDto> FormDto<R> loadToEdit(Class<R> type, String id) throws DataNotFoundException { + return referentialService.loadToEdit(type, id); + } + + @Override + public <R extends ReferentialDto> FormDto<R> preCreate(Class<R> type) { + return referentialService.preCreate(type); + } + + @Override + @Write + public <R extends ReferentialDto> String save(FormDto<R> form) { + return referentialService.save(form); + } + + @Override + @Write + public <R extends ReferentialDto> void delete(Class<R> type, String id) throws DataNotFoundException { + referentialService.delete(type, id); + } + + @Override + @Write + public <R extends ReferentialDto> void delete(Class<R> type, Collection<String> ids) throws DataNotFoundException { + referentialService.delete(type, ids); + } + + @Override + public void setServiceContext(ObserveServiceContext serviceContext) { + // Non utilisé ici + } +} diff --git a/observe-services-rest-wm/src/main/resources/mapping b/observe-services-rest-wm/src/main/resources/mapping new file mode 100644 index 0000000..ae059ed --- /dev/null +++ b/observe-services-rest-wm/src/main/resources/mapping @@ -0,0 +1,12 @@ +[config] +package.base=fr.ird.observe.services.rest.wm.service +default.render=fr.ird.observe.services.rest.wm.ObserveRestWebMotionRender +server.controller.scope=request +server.listener.class=fr.ird.observe.services.rest.wm.ObserveRestServerListener + +[filters] +* /* fr.ird.observe.services.rest.wm.ObserveRestWebMotionFilter.inject + +[actions] +GET,POST /referential/{method} action:ReferentialServiceRest.{method} + diff --git a/observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml b/observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..35a2e2f --- /dev/null +++ b/observe-services-rest-wm/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,25 @@ +<web-app version="3.0" + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > + + <display-name>Observe REST API by WebMotion</display-name> + + <!--filter> + <filter-name>topiaTransaction</filter-name> + <filter-class> + fr.ird.observe.services.rest.ObserveRestTransactionFilter + </filter-class> + </filter--> + + <!--filter-mapping> + <filter-name>topiaTransaction</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping--> + + <listener> + <listener-class>fr.ird.observe.services.rest.wm.ObserveRestWebMotionApplicationListener</listener-class> + </listener> + +</web-app> diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java deleted file mode 100644 index 59853f0..0000000 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceFactoryRest.java +++ /dev/null @@ -1,33 +0,0 @@ -package fr.ird.observe.services; - -import com.google.common.base.Preconditions; -import com.google.common.cache.LoadingCache; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport { - - protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("Rest"); - - @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { - return serviceContext != null && serviceContext instanceof ObserveServiceContextRest && serviceType != null; - } - - @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { - - Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); - Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextRest, "serviceContext must be of type " + ObserveServiceContextRest.class.getName()); - Preconditions.checkNotNull(serviceType, "serviceType can't be null."); - - Class<S> serviceTypeImpl = getServiceClassType(serviceTypeCache, serviceType); - S service = newServiceInstance(serviceTypeImpl, serviceContext); - return service; - - } - -} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java b/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java deleted file mode 100644 index 431acf8..0000000 --- a/observe-services-rest/src/main/java/fr/ird/observe/services/ObserveServiceRest.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.ird.observe.services; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceRest implements ObserveService { - - protected ObserveServiceContext serviceContext; - - @Override - public void setServiceContext(ObserveServiceContext serviceContext) { - - this.serviceContext = serviceContext; - } -} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java new file mode 100644 index 0000000..b950a16 --- /dev/null +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationContext.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.rest.wm; + +/** + * @author Tony Chemit : chemit@codelutin.com + */ +public class ObserveRestApplicationContext { + + public static final String APPLICATION_CONTEXT_PARAMETER = ObserveRestApplicationContext.class.getName(); + + public static final String MISSING_APPLICATION_CONTEXT = + ObserveRestApplicationContext.class.getSimpleName() + " not found. You probably forgot to" + + " register " + ObserveRestApplicationListener.class.getName() + " in your web.xml"; + +// protected ObserveServiceConfig serviceConfig; +// +// protected ObserveTopiaApplicationContext rootContext; + + public void init() { + +// ObserveServiceConfig config = new ObserveServiceConfig(null); +// serviceConfig = config; +// Properties rootProperties = serviceConfig.getFlatOptions(); +// rootProperties.setProperty(TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, ObserveEntityEnum.getImplementationClassesAsString()); +// +// rootContext = TopiaApplicationContextCache.getContext(rootProperties, ObserveConfigurationHelper.getCreateTopiaContextFunction(config)); + } + +// public ObserveServiceConfig getServiceConfig() { +// return serviceConfig; +// } + +// public ObserveTopiaPersistenceContext newTransaction() { +// ObserveTopiaPersistenceContext persistenceContext = rootContext.newPersistenceContext(); +// return persistenceContext; +// } + + public void close() { +// if (rootContext != null) { +// rootContext.closeContext(); +// } + } +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java new file mode 100644 index 0000000..9f0d70b --- /dev/null +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestApplicationListener.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.rest.wm; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +/** + * @author Arnaud Thimel : thimel@codelutin.com + */ +public class ObserveRestApplicationListener implements ServletContextListener { + + private static final Log log = LogFactory.getLog(ObserveRestApplicationListener.class); + + protected ObserveRestApplicationContext context; + + @Override + public void contextInitialized(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Initializing " + ObserveRestApplicationListener.class.getName()); + } + + context = new ObserveRestApplicationContext(); + context.init(); + + sce.getServletContext().setAttribute(ObserveRestApplicationContext.APPLICATION_CONTEXT_PARAMETER, context); + + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + + if (log.isInfoEnabled()) { + log.info("Destroying " + ObserveRestApplicationListener.class.getName()); + } + + context.close(); + } + +} diff --git a/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java new file mode 100644 index 0000000..2f9c67a --- /dev/null +++ b/observe-services-rest/src/main/java/fr/ird/observe/services/rest/wm/ObserveRestWebMotionFilter.java @@ -0,0 +1,62 @@ +package fr.ird.observe.services.rest.wm; + +import com.google.common.base.Preconditions; +import org.debux.webmotion.server.WebMotionFilter; +import org.debux.webmotion.server.call.HttpContext; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; + +/** + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveRestWebMotionFilter extends WebMotionFilter { + +// protected ObserveTopiaPersistenceContext getTopiaContext(HttpContext context) { +// HttpServletRequest servletRequest = context.getRequest(); +// ObserveTopiaPersistenceContext result = (ObserveTopiaPersistenceContext) +// servletRequest +// .getAttribute(TopiaTransactionFilter.TOPIA_TRANSACTION_REQUEST_ATTRIBUTE); +// +// Preconditions.checkState(result != null, "TopiaContext not available"); +// +// return result; +// } + + protected ObserveRestApplicationContext getObserveApplicationContext(HttpContext context) { + + ServletContext servletContext = context.getServletContext(); + ObserveRestApplicationContext result = + (ObserveRestApplicationContext) servletContext + .getAttribute(ObserveRestApplicationContext.APPLICATION_CONTEXT_PARAMETER); + + Preconditions.checkState(result != null, ObserveRestApplicationContext.MISSING_APPLICATION_CONTEXT); + + return result; + + } + + public void inject(HttpContext context) { + +// final ObserveTopiaPersistenceContext persistenceContext = getTopiaContext(context); +// +// final ObserveRestApplicationContext applicationContext = getObserveApplicationContext(context); + + HttpServletRequest request = context.getRequest(); + String authenticationToken = request.getHeader("authenticationToken"); + +// DefaultServiceContext serviceContext = new DefaultServiceContext(applicationContext.getServiceConfig(), new Supplier<ObserveTopiaPersistenceContext>() { +// @Override +// public ObserveTopiaPersistenceContext get() { +// return persistenceContext; +// } +// }, authenticationToken); +// +// ServiceFactory serviceFactory = serviceContext.getServiceFactory(); +// request.setAttribute("serviceFactory", serviceFactory); + + doProcess(); + } + + +} diff --git a/observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory deleted file mode 100644 index 2f268d7..0000000 --- a/observe-services-rest/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory +++ /dev/null @@ -1 +0,0 @@ -fr.ird.observe.services.ObserveServiceFactoryRest \ No newline at end of file diff --git a/observe-services-rest/src/main/resources/mapping b/observe-services-rest/src/main/resources/mapping new file mode 100644 index 0000000..7be48ba --- /dev/null +++ b/observe-services-rest/src/main/resources/mapping @@ -0,0 +1,28 @@ +[config] +package.base=fr.inra.agrosyst.services.rest.wm +default.render=fr.inra.agrosyst.services.rest.wm.AgrosystJsonRender +server.controller.scope=request +server.listener.class=fr.inra.agrosyst.services.rest.wm.AgrosystServerListener + +[filters] +* /* AgrosystRestWebMotionFilter.inject + +[actions] +GET,POST /context/NavigationContextService/{method} action:NavigationContextServiceRest.{method} +GET,POST /domain/DomainService/{method} action:DomainServiceRest.{method} +GET,POST /generic/GenericEntityService/{method} action:GenericEntityServiceRest.{method} +GET,POST /growingplan/GrowingPlanService/{method} action:GrowingPlanServiceRest.{method} +GET,POST /growingsystem/GrowingSystemService/{method} action:GrowingSystemServiceRest.{method} +GET,POST /managementmode/ManagementModeService/{method} action:ManagementModeServiceRest.{method} +GET,POST /network/NetworkService/{method} action:NetworkServiceRest.{method} +GET,POST /plot/PlotService/{method} action:PlotServiceRest.{method} +GET,POST /practiced/PracticedCropCycleService/{method} action:PracticedCropCycleServiceRest.{method} +GET,POST /practiced/PracticedSystemService/{method} action:PracticedSystemServiceRest.{method} +GET,POST /effective/EffectiveCropCycleService/{method} action:EffectiveCropCycleServiceRest.{method} +GET,POST /referential/ImportService/{method} action:ImportServiceRest.{method} +GET,POST /referential/ExportService/{method} action:ExportServiceRest.{method} +GET,POST /referential/ReferentialService/{method} action:ReferentialServiceRest.{method} +GET,POST /security/AuthenticationService/{method} action:AuthenticationServiceRest.{method} +GET,POST /security/AuthorizationService/{method} action:AuthorizationServiceRest.{method} +GET,POST /security/BusinessAuthorizationService/{method} action:BusinessAuthorizationServiceRest.{method} +GET,POST /users/UserService/{method} action:UserServiceRest.{method} diff --git a/observe-services-rest/src/main/webapp/WEB-INF/web.xml b/observe-services-rest/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..d0c6b38 --- /dev/null +++ b/observe-services-rest/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,36 @@ +<!-- + #%L + Agrosyst :: Services :: REST by WebMotion + $Id: web.xml 2774 2014-01-17 17:42:48Z athimel $ + $HeadURL: https://svn.codelutin.com/agrosyst/trunk/agrosyst-services-rest-webmotion/sr... $ + %% + Copyright (C) 2013 - 2014 INRA + %% + INRA - Tous droits réservés + #L% + --> +<web-app version="3.0" + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee + http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > + + <display-name>Agrosyst REST API by WebMotion</display-name> + + <filter> + <filter-name>topiaTransaction</filter-name> + <filter-class> + fr.inra.agrosyst.services.rest.wm.AgrosystRestTransactionFilter + </filter-class> + </filter> + + <filter-mapping> + <filter-name>topiaTransaction</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <listener> + <listener-class>fr.inra.agrosyst.services.rest.wm.AgrosystRestApplicationListener</listener-class> + </listener> + +</web-app> diff --git a/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java b/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java deleted file mode 100644 index 8dbaade..0000000 --- a/observe-services-rest/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceRestTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package fr.ird.observe.services.service.referential; - -import fr.ird.observe.services.ObserveServiceContextRest; -import fr.ird.observe.services.ObserveServiceMainFactory; -import fr.ird.observe.services.dto.ReferenceSetDto; -import fr.ird.observe.services.dto.referential.SexDto; -import fr.ird.observe.services.service.ReferentialService; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferentialServiceRestTest { - - protected ReferentialService service; - - @Before - public void setUp() throws Exception { - - ObserveServiceContextRest context = new ObserveServiceContextRest(); - service = ObserveServiceMainFactory.get().newService(context, ReferentialService.class); - - } - - @Test - public void testGetReferentialLabelSet() throws Exception { - - ReferenceSetDto referentialLabelSet = service.getReferentialReferenceSet(SexDto.class); - Assert.assertNotNull(referentialLabelSet); - - } - -} \ No newline at end of file diff --git a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java index 8b088e4..202b74a 100644 --- a/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java +++ b/observe-services-topia/src/main/fromRefactor/fr/ird/observe/services/AbstractObserveService.java @@ -11,6 +11,7 @@ import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.EntityMap; import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.services.topia.ObserveTopiaServiceFactory; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; @@ -476,7 +477,7 @@ public abstract class AbstractObserveService implements ObserveService { protected <S extends ObserveService> S newService(Class<S> serviceType) { - S service = ObserveServiceFactoryTopia.newSimpleService(serviceType, serviceContext); + S service = ObserveTopiaServiceFactory.newSimpleService(serviceType, serviceContext); return service; } @@ -484,7 +485,7 @@ public abstract class AbstractObserveService implements ObserveService { protected <S extends ObserveService> S newService(DataSource dataSource, Class<S> serviceType) { ObserveServiceContext serviceContext1 = new ObserveServiceContext(serviceContext.applicationContext, dataSource); - S service = new ObserveServiceFactoryTopia().newService(serviceType, serviceContext1); + S service = new ObserveTopiaServiceFactory().newService(serviceType, serviceContext1); return service; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java deleted file mode 100644 index 587b9ae..0000000 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceContextTopia.java +++ /dev/null @@ -1,45 +0,0 @@ -package fr.ird.observe.services; - -import fr.ird.observe.db.DataSource; -import fr.ird.observe.services.dto.constants.ReferentialLocale; -import org.nuiton.topia.TopiaContext; - -/** - * Created on 16/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveServiceContextTopia implements ObserveServiceContext { - - protected DataSource dataSource; - - protected TopiaContext transaction; - - protected ReferentialLocale referentialLocale; - - public DataSource getDataSource() { - return dataSource; - } - - public void setDataSource(DataSource dataSource) { - this.dataSource = dataSource; - } - - public TopiaContext getTransaction() { - return transaction; - } - - public void setTransaction(TopiaContext transaction) { - this.transaction = transaction; - } - - @Override - public ReferentialLocale getReferentialLocale() { - return referentialLocale; - } - - public void setReferentialLocale(ReferentialLocale referentialLocale) { - this.referentialLocale = referentialLocale; - } - -} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java similarity index 94% rename from observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java index a153321..7e2a529 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtoBinders.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtoBinders.java @@ -1,5 +1,6 @@ -package fr.ird.observe.services.dto; +package fr.ird.observe.services.topia; +import fr.ird.observe.services.dto.IdDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java similarity index 99% rename from observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java index ef44a37..0101c7e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveDtosInitializer.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.dto; +package fr.ird.observe.services.topia; import com.google.common.base.Function; import com.google.common.collect.ImmutableBiMap; @@ -63,6 +63,8 @@ import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; import fr.ird.observe.entities.referentiel.seine.WeightCategory; import fr.ird.observe.entities.referentiel.seine.Wind; import fr.ird.observe.entities.seine.ActivitySeine; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ObserveModelInitializer; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java similarity index 92% rename from observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java index b0836f7..e58d350 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveServiceTopia.java @@ -1,11 +1,12 @@ -package fr.ird.observe.services; +package fr.ird.observe.services.topia; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveDAOHelper; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceContext; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtosInitializer; import fr.ird.observe.services.dto.ObserveModelInitializerRunner; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.referential.ReferentialDto; @@ -24,7 +25,7 @@ import java.util.Map; */ public class ObserveServiceTopia implements ObserveService { - protected ObserveServiceContextTopia serviceContext; + protected ObserveTopiaServiceContext serviceContext; protected static ImmutableBiMap<Class<?>, Class<?>> DTO_TO_ENTITY_TYPES; @@ -45,8 +46,8 @@ public class ObserveServiceTopia implements ObserveService { @Override public void setServiceContext(ObserveServiceContext serviceContext) { Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); - Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextTopia, "serviceContext must be of type " + ObserveServiceContextTopia.class.getName()); - this.serviceContext = (ObserveServiceContextTopia) serviceContext; + Preconditions.checkArgument(serviceContext instanceof ObserveTopiaServiceContext, "serviceContext must be of type " + ObserveTopiaServiceContext.class.getName()); + this.serviceContext = (ObserveTopiaServiceContext) serviceContext; } public static <D extends IdDto, E extends TopiaEntity> Class<E> getEntityType(Class<D> dtoType) { diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java new file mode 100644 index 0000000..33fe99e --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaDataSourceConfiguration.java @@ -0,0 +1,22 @@ +package fr.ird.observe.services.topia; + +import fr.ird.observe.db.DataSource; +import fr.ird.observe.services.ObserveDataSourceConfiguration; + +/** + * Created on 19/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveTopiaDataSourceConfiguration implements ObserveDataSourceConfiguration { + + private DataSource dataSource; + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public DataSource getDataSource() { + return dataSource; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java new file mode 100644 index 0000000..939227a --- /dev/null +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceContext.java @@ -0,0 +1,54 @@ +package fr.ird.observe.services.topia; + +import fr.ird.observe.db.DataSource; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveServiceContext; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import org.nuiton.topia.TopiaContext; + +import java.util.Date; + +/** + * Created on 16/08/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveTopiaServiceContext implements ObserveServiceContext { + + protected ObserveServiceApplicationContext applicationContext; + + protected ObserveTopiaDataSourceConfiguration dataSourceConfiguration; + + protected TopiaContext transaction; + + public DataSource getDataSource() { + //TODO A supprimer -> utiliser une TopiaApplicationContext + return dataSourceConfiguration.getDataSource(); + } + + public TopiaContext getTransaction() { + return transaction; + } + + public void setTransaction(TopiaContext transaction) { + this.transaction = transaction; + } + + @Override + public ReferentialLocale getReferentialLocale() { + return applicationContext.getReferentialLocale(); + } + + @Override + public Date now() { + return new Date(); + } + + public void setApplicationContext(ObserveServiceApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + + public void setDataSourceConfiguration(ObserveTopiaDataSourceConfiguration dataSourceConfiguration) { + this.dataSourceConfiguration = dataSourceConfiguration; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceFactory.java similarity index 65% rename from observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceFactory.java index eedb4e4..fd5ce2d 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceFactoryTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/ObserveTopiaServiceFactory.java @@ -1,9 +1,13 @@ -package fr.ird.observe.services; +package fr.ird.observe.services.topia; import com.google.common.base.Preconditions; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableSet; import fr.ird.observe.db.DataSource; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.ObserveDataSourceConfiguration; +import fr.ird.observe.services.ObserveService; +import fr.ird.observe.services.ObserveServiceFactorySupport; import fr.ird.observe.services.spi.NoDataAccess; import fr.ird.observe.services.spi.Write; import org.apache.commons.logging.Log; @@ -21,33 +25,44 @@ import java.util.Set; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { +public class ObserveTopiaServiceFactory extends ObserveServiceFactorySupport { /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveServiceFactoryTopia.class); + private static final Log log = LogFactory.getLog(ObserveTopiaServiceFactory.class); - protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("Topia"); + protected final LoadingCache<Class<?>, Class<?>> serviceTypeCache = newAddSuffixClassCache("fr.ird.observe.services.topia.service.", "Topia"); @Override - public <S extends ObserveService> boolean accept(ObserveServiceContext serviceContext, Class<S> serviceType) { - return serviceContext != null && serviceContext instanceof ObserveServiceContextTopia && serviceType != null; + public <S extends ObserveService> boolean accept(ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { + + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkNotNull(serviceType, "serviceType can't be null."); + return dataSourceConfiguration instanceof ObserveTopiaDataSourceConfiguration; + } @Override - public <S extends ObserveService> S newService(ObserveServiceContext serviceContext, Class<S> serviceType) { + public <S extends ObserveService> S newService(ObserveServiceApplicationContext applicationContext, ObserveDataSourceConfiguration dataSourceConfiguration, Class<S> serviceType) { - Preconditions.checkNotNull(serviceContext, "serviceContext can't be null."); - Preconditions.checkArgument(serviceContext instanceof ObserveServiceContextTopia, "serviceContext must be of type " + ObserveServiceContextTopia.class.getName()); + Preconditions.checkNotNull(applicationContext, "applicationContext can't be null."); + Preconditions.checkNotNull(dataSourceConfiguration, "dataSourceConfiguration can't be null."); + Preconditions.checkArgument(dataSourceConfiguration instanceof ObserveTopiaDataSourceConfiguration, "dataSourceConfiguration must be of type " + ObserveTopiaDataSourceConfiguration.class.getName()); Preconditions.checkNotNull(serviceType, "serviceType can't be null."); Class<S> serviceTypeImpl = getServiceClassType(serviceTypeCache, serviceType); + Preconditions.checkNotNull(serviceTypeImpl, "serviceTypeImpl not found for : " + serviceType.getName()); + + ObserveTopiaServiceContext serviceContext = new ObserveTopiaServiceContext(); + serviceContext.setApplicationContext(applicationContext); + serviceContext.setDataSourceConfiguration((ObserveTopiaDataSourceConfiguration) dataSourceConfiguration); + S service = newServiceInstance(serviceTypeImpl, serviceContext); - service = newServiceTransactionalProxy(serviceType, service, (ObserveServiceContextTopia) serviceContext); + service = newServiceTransactionalProxy(serviceType, service, serviceContext); return service; } - protected <S extends ObserveService> S newServiceTransactionalProxy(Class<S> serviceType, S service, ObserveServiceContextTopia serviceContext) { + protected <S extends ObserveService> S newServiceTransactionalProxy(Class<S> serviceType, S service, ObserveTopiaServiceContext serviceContext) { ObserveServiceInvocationHandler invocationHandler = new ObserveServiceInvocationHandler(serviceContext, service); Object proxyService = Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{serviceType}, invocationHandler); @@ -57,13 +72,13 @@ public class ObserveServiceFactoryTopia extends ObserveServiceFactorySupport { protected static class ObserveServiceInvocationHandler implements InvocationHandler { - private final ObserveServiceContextTopia serviceContext; + private final ObserveTopiaServiceContext serviceContext; private final ObserveService target; private final Set<String> methodNamesToByPass; - protected ObserveServiceInvocationHandler(ObserveServiceContextTopia serviceContext, ObserveService target) { + protected ObserveServiceInvocationHandler(ObserveTopiaServiceContext serviceContext, ObserveService target) { this.serviceContext = serviceContext; this.target = target; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java similarity index 97% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java index f440a1a..8bcc87f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilder.java @@ -1,12 +1,12 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import fr.ird.observe.entities.Set; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java similarity index 97% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java index cc86f2a..942d1f8 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilder.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -6,9 +6,9 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Set; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java similarity index 94% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java index a9e9cc2..9273b7e 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferenceDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferenceDtoBuilder.java @@ -1,9 +1,9 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.referential.ReferentialDto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferentialReferenceDtoBuilder.java similarity index 95% rename from observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferentialReferenceDtoBuilder.java index 4b9d625..22f5003 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToReferentialReferenceDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/builder/EntityToReferentialReferenceDtoBuilder.java @@ -1,8 +1,8 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.base.Preconditions; import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.topia.ObserveDtoBinders; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java similarity index 94% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java index 402947f..b4ff6ac 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/ReferentialServiceTopia.java @@ -1,9 +1,9 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.topia.service; import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.ObserveServiceTopia; -import fr.ird.observe.services.builder.EntityToDtoBuilder; -import fr.ird.observe.services.builder.EntityToReferentialReferenceDtoBuilder; +import fr.ird.observe.services.topia.ObserveServiceTopia; +import fr.ird.observe.services.topia.builder.EntityToDtoBuilder; +import fr.ird.observe.services.topia.builder.EntityToReferentialReferenceDtoBuilder; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.FormDtos; import fr.ird.observe.services.dto.IdDto; @@ -11,6 +11,7 @@ import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.ReferenceSetDtos; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.service.ReferentialService; import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java similarity index 78% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java index 153c06a..2ba9c30 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineObservedSystemServiceTopia.java @@ -1,8 +1,9 @@ -package fr.ird.observe.services.service.seine; +package fr.ird.observe.services.topia.service.seine; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; +import fr.ird.observe.services.service.seine.ActivitySeineObservedSystemService; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com @@ -11,9 +12,6 @@ public class ActivitySeineObservedSystemServiceTopia extends ObserveServiceTopia @Override public FormDto<ActivitySeineObservedSystemDto> loadToRead(String activitySeineId) { - - - return null; } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java similarity index 84% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java index 048309a..d4c695f 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/ActivitySeineServiceTopia.java @@ -1,9 +1,10 @@ -package fr.ird.observe.services.service.seine; +package fr.ird.observe.services.topia.service.seine; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.service.seine.ActivitySeineService; import java.util.List; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java similarity index 82% rename from observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectServiceTopia.java rename to observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java index 8e3702e..72e20e1 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/FloatingObjectServiceTopia.java @@ -1,16 +1,17 @@ -package fr.ird.observe.services.service.seine; +package fr.ird.observe.services.topia.service.seine; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.service.seine.FloatingObjectService; import java.util.List; /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ -public class FloatingObjectServiceTopia extends ObserveServiceTopia implements FloatingObjectService{ +public class FloatingObjectServiceTopia extends ObserveServiceTopia implements FloatingObjectService { @Override diff --git a/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory b/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory index ee2101e..016fcd0 100644 --- a/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory +++ b/observe-services-topia/src/main/resources/META-INF/services/fr.ird.observe.services.ObserveServiceFactory @@ -1 +1 @@ -fr.ird.observe.services.ObserveServiceFactoryTopia \ No newline at end of file +fr.ird.observe.services.topia.ObserveTopiaServiceFactory \ No newline at end of file diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java similarity index 76% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java index 4ebd5e1..788f597 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ApplicationContextResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/ApplicationContextResource.java @@ -1,9 +1,9 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.topia; import fr.ird.observe.IObserveConfig; -import fr.ird.observe.ObserveApplicationContext; -import fr.ird.observe.ObserveServiceHelper; -import fr.ird.observe.services.ObserveServiceTopia; +import fr.ird.observe.services.ObserveServiceApplicationContext; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.test.TestHelper; import fr.ird.observe.util.Scripts; import org.apache.commons.logging.Log; @@ -25,16 +25,19 @@ public class ApplicationContextResource implements TestRule { protected final Version databaseVersion; + protected final ObserveServiceApplicationContext serviceApplicationContext; + public ApplicationContextResource(Version databaseVersion) { this.databaseVersion = databaseVersion; + this.serviceApplicationContext= new ObserveServiceApplicationContext(); } public String getScriptPath(String classifier) { return Scripts.getBackupScript(databaseVersion, classifier); } - public ObserveApplicationContext getApplicationContext() { - return ObserveServiceHelper.get(); + public ObserveServiceApplicationContext getServiceApplicationContext() { + return serviceApplicationContext; } @Override @@ -65,6 +68,8 @@ public class ApplicationContextResource implements TestRule { ObserveServiceTopia.init(); + serviceApplicationContext.setReferentialLocale(ReferentialLocale.FR); + } protected void after(Description description) { diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceResource.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java index e699a79..e973843 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/DataSourceResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/DataSourceResource.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.topia; import fr.ird.observe.ObserveTechnicalException; import fr.ird.observe.db.DBTestHelper; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java similarity index 88% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java index d0909ec..289e0b9 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/topia/service/ReferentialServiceTopiaTest.java @@ -1,18 +1,23 @@ -package fr.ird.observe.services.service; +package fr.ird.observe.services.service.topia.service; import fr.ird.observe.db.DataSource; import fr.ird.observe.entities.migration.H2DataSourceMigration; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.services.ObserveServiceContextTopia; +import fr.ird.observe.services.ObserveServiceApplicationContext; import fr.ird.observe.services.ObserveServiceMainFactory; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.service.DataNotFoundException; +import fr.ird.observe.services.service.ReferentialService; +import fr.ird.observe.services.service.topia.ApplicationContextResource; +import fr.ird.observe.services.service.topia.DataSourceResource; +import fr.ird.observe.services.topia.ObserveTopiaDataSourceConfiguration; +import fr.ird.observe.services.topia.service.ReferentialServiceTopia; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; @@ -49,12 +54,15 @@ public class ReferentialServiceTopiaTest { DataSource localDataSource = dataSourceResource.getDataSource(); - ObserveServiceContextTopia context = new ObserveServiceContextTopia(); - context.setDataSource(localDataSource); - context.setReferentialLocale(ReferentialLocale.FR); ObserveServiceMainFactory serviceFactory = ObserveServiceMainFactory.get(); - service = serviceFactory.newService(context, ReferentialService.class); + + ObserveServiceApplicationContext serviceApplicationContext = applicationContextResource.getServiceApplicationContext(); + + ObserveTopiaDataSourceConfiguration dataSourceConfiguration = new ObserveTopiaDataSourceConfiguration(); + dataSourceConfiguration.setDataSource(localDataSource); + + service = serviceFactory.newService(serviceApplicationContext, dataSourceConfiguration, ReferentialService.class); } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java index 72ca1a0..b12d4da 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/DtoToEntityBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/DtoToEntityBuilderTest.java @@ -1,10 +1,9 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.constants.GearType; import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.constants.ReferentialLocale; @@ -14,6 +13,7 @@ import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDtos; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java similarity index 98% rename from observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java index 1005eef..1a58e47 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/builder/EntityToDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/topia/builder/EntityToDtoBuilderTest.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.builder; +package fr.ird.observe.services.topia.builder; import com.google.common.collect.ImmutableSet; import fr.ird.observe.entities.constants.GearType; @@ -7,7 +7,6 @@ import fr.ird.observe.entities.referentiel.Organism; import fr.ird.observe.entities.referentiel.OrganismImpl; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.referentiel.ProgramImpl; -import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceValueNotFoundException; @@ -17,6 +16,7 @@ import fr.ird.observe.services.dto.referential.OrganismDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.topia.ObserveServiceTopia; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; diff --git a/pom.xml b/pom.xml index 4d18ca8..46f56db 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,8 @@ <module>observe-business</module> <module>observe-validation</module> <module>observe-services-topia</module> - <!--module>observe-services-rest</module--> + <module>observe-services-rest-wm</module> + <module>observe-services-rest-client</module> <module>observe-swing</module> </modules> <!--scm> @@ -125,6 +126,7 @@ <swingXVersion>1.6.4</swingXVersion> <geoToolsVersion>13.2</geoToolsVersion> + <webmotionVersion>2.5</webmotionVersion> <!-- license header configuration --> <license.licenseName>gpl_v3</license.licenseName> @@ -137,12 +139,7 @@ <!-- Site configuration --> <locales>fr</locales> - <javaVersion>1.7</javaVersion> - <!--<maven.compiler.source>${javaVersion}</maven.compiler.source>--> - <!--<maven.compiler.target>${javaVersion}</maven.compiler.target>--> - <signatureArtifactId>java17</signatureArtifactId> - <signatureVersion>1.0</signatureVersion> - + <paranamerVersion>2.7</paranamerVersion> </properties> <repositories> @@ -238,7 +235,6 @@ <scope>test</scope> </dependency> - <!-- Nuiton --> <dependency> <groupId>org.nuiton</groupId> @@ -537,6 +533,41 @@ <version>1.13</version> </dependency> + <!-- WebMotion --> + <dependency> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion</artifactId> + <version>${webmotionVersion}</version> + <exclusions> + <exclusion> + <groupId>javassist</groupId> + <artifactId>javassist</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.debux.webmotion</groupId> + <artifactId>webmotion-unittest</artifactId> + <version>${webmotionVersion}</version> + <scope>test</scope> + </dependency> + + <!-- Paranamer --> + <dependency> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer</artifactId> + <version>${paranamerVersion}</version> + </dependency> + + <!-- ne pas mettre à jour cette version est pour tomcat 7--> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + <!-- logging --> <dependency> <groupId>org.slf4j</groupId> @@ -633,6 +664,12 @@ </configuration> </plugin> + <plugin> + <groupId>com.thoughtworks.paranamer</groupId> + <artifactId>paranamer-maven-plugin</artifactId> + <version>${paranamerVersion}</version> + </plugin> + </plugins> </pluginManagement> <extensions> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm