branch develop updated (3aea7d8 -> f639020)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 3aea7d8 Fixes #8538 Merge branch 'feature/8538' into develop new f639020 Utilisation des nouvelles api http commons + un peu de ménage par ci par là 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 f639020cd8857d4fe10cf0e36c3a95ff23ecf214 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Sep 10 19:29:25 2016 +0200 Utilisation des nouvelles api http commons + un peu de ménage par ci par là Summary of changes: .../swing/ObserveSwingApplicationContext.java | 11 ++- .../swing/db/ObserveSwingDataSource.java | 21 +---- ...glineDetailCompositionValidatorServiceTest.java | 3 +- .../web/ObserveWebApplicationContext.java | 3 +- .../web/ObserveWebApplicationListener.java | 3 +- .../services/rest/ObserveServiceFactoryRest.java | 2 +- .../services/rest/http/ObserveResponseBuilder.java | 97 ++++++++++++---------- .../services/rest/RestTestClassResource.java | 3 +- .../services/rest/RestTestMethodResource.java | 6 -- .../services/runner/ObserveServiceMainFactory.java | 37 ++++----- .../observe/services/ObserveServiceFactory.java | 3 +- .../ird/observe/test/TestClassResourceSupport.java | 2 +- 12 files changed, 94 insertions(+), 97 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit f639020cd8857d4fe10cf0e36c3a95ff23ecf214 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Sep 10 19:29:25 2016 +0200 Utilisation des nouvelles api http commons + un peu de ménage par ci par là --- .../swing/ObserveSwingApplicationContext.java | 11 ++- .../swing/db/ObserveSwingDataSource.java | 21 +---- ...glineDetailCompositionValidatorServiceTest.java | 3 +- .../web/ObserveWebApplicationContext.java | 3 +- .../web/ObserveWebApplicationListener.java | 3 +- .../services/rest/ObserveServiceFactoryRest.java | 2 +- .../services/rest/http/ObserveResponseBuilder.java | 97 ++++++++++++---------- .../services/rest/RestTestClassResource.java | 3 +- .../services/rest/RestTestMethodResource.java | 6 -- .../services/runner/ObserveServiceMainFactory.java | 37 ++++----- .../observe/services/ObserveServiceFactory.java | 3 +- .../ird/observe/test/TestClassResourceSupport.java | 2 +- 12 files changed, 94 insertions(+), 97 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java index f36e7ba..6c05f34 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java @@ -64,6 +64,7 @@ import org.h2.tools.Server; import javax.swing.ActionMap; import java.io.Closeable; +import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -83,6 +84,7 @@ import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.En import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.MAIN_UI; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.NODE_TO_RESELECT; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.OPEN_DATA_MANAGER; +import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.SERVICE_MAIN_FACTORY; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.TEXT_GENERATOR; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.VALIDATION_CONTEXT; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.VALIDATORS; @@ -209,6 +211,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im OPEN_DATA_MANAGER.set(new ObserveOpenDataManager(getDataContext())); VALIDATION_CONTEXT.set(new ValidationContext(getDataContext())); VALIDATORS.set(Lists.newArrayList(ValidateServiceUtils.getValidators())); + SERVICE_MAIN_FACTORY.set(ObserveServiceMainFactory.get()); referenceBinderEngine = new ReferenceBinderEngineSupplier().get(); lock = new Object(); } @@ -297,6 +300,10 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im return H2_WEBSERVER.get(); } + public ObserveServiceMainFactory getMainServiceFactory() { + return SERVICE_MAIN_FACTORY.get(); + } + //------------------------------------------- // - Write //------------------------------------------- @@ -379,7 +386,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im } @Override - public void close() { + public void close() throws IOException { if (log.isInfoEnabled()) { log.info("Closing swing application context " + this); } @@ -387,7 +394,7 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im // fermeture de touts les context de donnée ouvert getDataSourcesManager().close(); - ObserveServiceMainFactory serviceMainFactory = ObserveServiceMainFactory.get(); + ObserveServiceMainFactory serviceMainFactory = getMainServiceFactory(); if (log.isInfoEnabled()) { log.info("Closing main service factory: " + serviceMainFactory); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java index 5fd47a9..63200d8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/db/ObserveSwingDataSource.java @@ -151,14 +151,6 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements return ObserveDataSourceType.SQL == configuration.getType(); } -// public String getAuthenticationToken() { -// String result = null; -// if (connection != null) { -// result = connection.getAuthenticationToken(); -// } -// return result; -// } - public boolean canWriteData() { return connection != null && connection.canWriteData(); } @@ -401,16 +393,6 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements return listenerList.getListeners(ObserveSwingDataSourceListener.class); } -// public boolean containsObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { -// ObserveSwingDataSourceListener[] listeners = getObserveSwingDataSourceListener(); -// for (ObserveSwingDataSourceListener l : listeners) { -// if (l.equals(listener)) { -// return true; -// } -// } -// return false; -// } - public void removeObserveSwingDataSourceListener(ObserveSwingDataSourceListener listener) { if (log.isInfoEnabled()) { log.info("removing listener " + listener); @@ -520,8 +502,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements ObserveServiceInitializer observeServiceInitializer = getObserveServiceInitializer(); - ObserveServiceMainFactory serviceFactory = ObserveServiceMainFactory.get(); - + ObserveServiceMainFactory serviceFactory = ObserveSwingApplicationContext.get().getMainServiceFactory(); return serviceFactory.newService(observeServiceInitializer, serviceType); } diff --git a/application-swing/src/test/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java b/application-swing/src/test/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java index 2eb29d1..f209f37 100644 --- a/application-swing/src/test/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java +++ b/application-swing/src/test/java/fr/ird/observe/application/swing/ui/content/impl/longline/LonglineDetailCompositionValidatorServiceTest.java @@ -40,6 +40,7 @@ import org.nuiton.i18n.init.ClassPathI18nInitializer; import org.nuiton.validator.NuitonValidatorScope; import org.nuiton.validator.bean.simple.SimpleBeanValidatorMessage; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -59,7 +60,7 @@ public class LonglineDetailCompositionValidatorServiceTest { protected LonglineDetailCompositionValidatorService service; @Before - public void setUp() { + public void setUp() throws IOException { if (ObserveSwingApplicationContext.isInit()) { diff --git a/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java b/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java index b5e1410..eda7dd8 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationContext.java @@ -45,6 +45,7 @@ import org.nuiton.version.Version; import javax.servlet.ServletContext; import java.io.Closeable; +import java.io.IOException; /** * @author Tony Chemit - chemit@codelutin.com @@ -129,7 +130,7 @@ public class ObserveWebApplicationContext implements Closeable { } @Override - public void close() { + public void close() throws IOException { // Supprimer le cache des sessions securityApplicationContext.close(); diff --git a/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java b/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java index 71e1a68..93772d5 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/ObserveWebApplicationListener.java @@ -33,6 +33,7 @@ import fr.ird.observe.application.web.injector.ObserveReferenceSetRequestInjecto import fr.ird.observe.application.web.injector.SqlScriptProducerRequestInjector; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRestConstants; import fr.ird.observe.services.dto.ObserveDbUserDto; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.debux.webmotion.server.WebMotionServerListener; @@ -85,7 +86,7 @@ public class ObserveWebApplicationListener implements WebMotionServerListener { log.info("Destroying " + ObserveWebApplicationListener.class.getName()); } - applicationContext.close(); + IOUtils.closeQuietly(applicationContext); } diff --git a/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java b/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java index 8125a75..7fb5cee 100644 --- a/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java +++ b/services-rest/src/main/java/fr/ird/observe/services/rest/ObserveServiceFactoryRest.java @@ -136,7 +136,7 @@ public class ObserveServiceFactoryRest extends ObserveServiceFactorySupport impl } @Override - public void close() { + public void close() throws IOException { responseBuilder.close(); } diff --git a/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java b/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java index 362fa47..c5442c1 100644 --- a/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java +++ b/services-rest/src/main/java/fr/ird/observe/services/rest/http/ObserveResponseBuilder.java @@ -25,11 +25,10 @@ package fr.ird.observe.services.rest.http; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.gson.Gson; +import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; import fr.ird.observe.services.http.ObserveHttpError; import fr.ird.observe.services.rest.ObserveServiceRestErrorException; import fr.ird.observe.services.rest.ObserveServiceRestNotAvailableException; -import fr.ird.observe.services.dto.gson.ObserveDtoGsonSupplier; -import org.apache.commons.io.Charsets; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; @@ -38,7 +37,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.http.Header; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; -import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; @@ -47,18 +46,11 @@ import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.utils.URLEncodedUtils; -import org.apache.http.conn.ClientConnectionManager; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; -import org.apache.http.entity.mime.HttpMultipartMode; -import org.apache.http.entity.mime.MultipartEntity; -import org.apache.http.entity.mime.content.FileBody; -import org.apache.http.entity.mime.content.StringBody; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.impl.conn.PoolingClientConnectionManager; -import org.apache.http.params.BasicHttpParams; -import org.apache.http.params.CoreConnectionPNames; -import org.apache.http.params.HttpParams; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import java.io.File; import java.io.IOException; @@ -69,7 +61,7 @@ import java.lang.reflect.Type; import java.net.ConnectException; import java.net.URL; import java.net.UnknownHostException; -import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; import java.util.Objects; @@ -84,14 +76,14 @@ public class ObserveResponseBuilder { private static final Log log = LogFactory.getLog(ObserveResponseBuilder.class); public static ObserveResponseBuilder create(Supplier<Gson> gsonSupplier) { - return new ObserveResponseBuilder(new DefaultHttpClient(new PoolingClientConnectionManager()), gsonSupplier); - } - public static ObserveResponseBuilder create(HttpClient client, Supplier<Gson> gsonSupplier) { - return new ObserveResponseBuilder(client, gsonSupplier); + CloseableHttpClient build = HttpClientBuilder.create() + .setConnectionTimeToLive(1, TimeUnit.MINUTES) + .build(); + return new ObserveResponseBuilder(build, gsonSupplier); } - protected final HttpClient client; + protected final CloseableHttpClient client; protected final Gson gson; @@ -225,7 +217,7 @@ public class ObserveResponseBuilder { return new ResponseContext(statusCode, responseAsString, responseHeaders); } - protected ObserveResponseBuilder(HttpClient client, Supplier<Gson> gsonSupplier) { + protected ObserveResponseBuilder(CloseableHttpClient client, Supplier<Gson> gsonSupplier) { this.client = client; this.gson = MoreObjects.firstNonNull(gsonSupplier, ObserveDtoGsonSupplier.DEFAULT_GSON_SUPPLIER).get(); } @@ -258,10 +250,16 @@ public class ObserveResponseBuilder { HttpPost postMethod = new HttpPost(baseUrl); if (timeout != null) { - HttpParams httpParams = new BasicHttpParams(); - httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout); - httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout); - postMethod.setParams(httpParams); + + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(timeout) + .build(); + +// HttpParams httpParams = new BasicHttpParams(); +// httpParams.setParameter(CoreConnectionPNames.SO_TIMEOUT, timeout); +// httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, timeout); + postMethod.setConfig(requestConfig); +// postMethod.setParams(httpParams); } if (request.withoutFiles()) { @@ -272,18 +270,25 @@ public class ObserveResponseBuilder { addHeaders(postMethod, request.getHeaders()); addParameters(postMethod, contentType, request.getParameters()); addRequestBody(postMethod, contentType, requestBody); - MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); + MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create(); + + +// MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); for (Map.Entry<String, File> paramFile : request.getFiles().entrySet()) { - entity.addPart(paramFile.getKey(), new FileBody(paramFile.getValue())); + multipartEntityBuilder.addBinaryBody(paramFile.getKey(), paramFile.getValue()); +// entity.addPart(paramFile.getKey(), new FileBody(paramFile.getValue())); } for (NameValuePair param : request.getParameters()) { if (StringUtils.isBlank(contentType)) { contentType = "text/plain"; } - entity.addPart(param.getName(), new StringBody(param.getValue(), contentType, - Charset.forName("UTF-8"))); + multipartEntityBuilder.addTextBody(param.getName(), param.getValue(), ContentType.create(contentType, StandardCharsets.UTF_8)); + +// entity.addPart(param.getName(), new StringBody(param.getValue(), contentType, +// Charset.forName("UTF-8"))); } - postMethod.setEntity(entity); + + postMethod.setEntity(multipartEntityBuilder.build()); } HttpResponse response = executeRequest(postMethod); @@ -349,7 +354,7 @@ public class ObserveResponseBuilder { protected String buildUrlWithParameters(String baseUrl, List<NameValuePair> parameters) { String result = baseUrl; if (!parameters.isEmpty()) { - result += "?" + URLEncodedUtils.format(parameters, Charsets.UTF_8); + result += "?" + URLEncodedUtils.format(parameters, StandardCharsets.UTF_8); } return result; } @@ -361,7 +366,7 @@ public class ObserveResponseBuilder { } protected <M extends HttpEntityEnclosingRequestBase> void addParameters(M method, String contentType, List<? extends NameValuePair> parameters) { - UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(parameters, Charsets.UTF_8); + UrlEncodedFormEntity encodedFormEntity = new UrlEncodedFormEntity(parameters, StandardCharsets.UTF_8); if (StringUtils.isNotBlank(contentType)) { encodedFormEntity.setContentType(contentType); } @@ -446,23 +451,31 @@ public class ObserveResponseBuilder { } - public void close() { - if (getConnectionManager() != null) { - getConnectionManager().shutdown(); - } + public void close() throws IOException { + client.close(); +// if (getConnectionManager() != null) { +// getConnectionManager().shutdown(); +// } } @Override protected void finalize() throws Throwable { - if (getConnectionManager() != null) { - getConnectionManager().closeExpiredConnections(); - getConnectionManager().closeIdleConnections(1, TimeUnit.MINUTES); + + try { + client.close(); + } finally { + super.finalize(); } - super.finalize(); - } - protected ClientConnectionManager getConnectionManager() { - return client.getConnectionManager(); +// if (getConnectionManager() != null) { +// getConnectionManager().closeExpiredConnections(); +// getConnectionManager().closeIdleConnections(1, TimeUnit.MINUTES); +// } + } +// protected HttpClientConnectionManager getConnectionManager() { +// return client.getConnectionManager(); +// } + } diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestClassResource.java b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestClassResource.java index 639b685..0810630 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestClassResource.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestClassResource.java @@ -34,6 +34,7 @@ import fr.ird.observe.test.spi.DatabaseClassifier; import org.junit.runner.Description; import org.nuiton.version.Version; +import java.io.IOException; import java.net.URL; import java.util.Locale; @@ -76,7 +77,7 @@ public class RestTestClassResource extends TestClassResourceSupport { } @Override - protected void after(Description description) { + protected void after(Description description) throws IOException { super.after(description); diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java index 73c582e..2a905aa 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/RestTestMethodResource.java @@ -50,12 +50,6 @@ public class RestTestMethodResource extends TestMethodResourceSupport<RestTestCl super(restTestClassResource); } -// public RestTestMethodResource(RestTestClassResource restTestClassResource, String databaseName) { -// super(restTestClassResource); -// // pour les tests sur demo -// //this(REST_TEST_CLASS_RESOURCE, databaseName, "admin", ";;dm8-admin..".toCharArray()); -// } - public ObserveDataSourceConfigurationRest getDataSourceConfiguration() { return dataSourceConfiguration; } diff --git a/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java b/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java index 610703d..9492e63 100644 --- a/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java +++ b/services-runner/src/main/java/fr/ird/observe/services/runner/ObserveServiceMainFactory.java @@ -27,14 +27,17 @@ import fr.ird.observe.services.ObserveServiceFactory; import fr.ird.observe.services.ObserveServiceInitializer; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.reflections.Reflections; +import java.io.IOException; import java.lang.reflect.Modifier; import java.util.Collections; import java.util.LinkedHashSet; import java.util.Objects; +import java.util.Optional; import java.util.Set; /** @@ -113,9 +116,9 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { } @Override - public void close() { + public void close() throws IOException { - delegateFactories.forEach(ObserveServiceFactory::close); + delegateFactories.forEach(IOUtils::closeQuietly); } @@ -151,16 +154,13 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { Objects.requireNonNull(dataSourceConfiguration); Objects.requireNonNull(serviceType); - ObserveServiceFactory result = null; - for (ObserveServiceFactory serviceFactory : delegateFactories) { - if (serviceFactory.accept(dataSourceConfiguration, serviceType)) { - result = serviceFactory; - break; - } + Optional<ObserveServiceFactory> result = delegateFactories.stream() + .filter(f -> f.accept(dataSourceConfiguration, serviceType)) + .findFirst(); + if (!result.isPresent()) { + throw new NullPointerException(String.format("No factory found for dataSourceConfiguration: %s and serviceType: %s", dataSourceConfiguration, serviceType.getName())); } - - Objects.requireNonNull(result, String.format("No factory found for dataSourceConfiguration: %s and serviceType: %s", dataSourceConfiguration, serviceType.getName())); - return result; + return result.get(); } @@ -169,16 +169,13 @@ public class ObserveServiceMainFactory implements ObserveServiceFactory { Objects.requireNonNull(dataSourceConnection); Objects.requireNonNull(serviceType); - ObserveServiceFactory result = null; - for (ObserveServiceFactory serviceFactory : delegateFactories) { - if (serviceFactory.accept(dataSourceConnection, serviceType)) { - result = serviceFactory; - break; - } + Optional<ObserveServiceFactory> result = delegateFactories.stream() + .filter(f -> f.accept(dataSourceConnection, serviceType)) + .findFirst(); + if (!result.isPresent()) { + throw new NullPointerException(String.format("No factory found for dataSourceConnection: %s and serviceType: %s", dataSourceConnection, serviceType.getName())); } - - Objects.requireNonNull(result, String.format("No factory found for dataSourceConnection: %s and serviceType: %s", dataSourceConnection, serviceType.getName())); - return result; + return result.get(); } diff --git a/services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java b/services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java index ec28b6a..d376a2f 100644 --- a/services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java +++ b/services/src/main/java/fr/ird/observe/services/ObserveServiceFactory.java @@ -26,6 +26,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConnection; import java.io.Closeable; +import java.io.IOException; /** * Created on 5/4/15. @@ -45,5 +46,5 @@ public interface ObserveServiceFactory extends Closeable { <S extends ObserveService> S newService(ObserveServiceInitializer observeServiceInitializer, Class<S> serviceType); @Override - void close(); + void close() throws IOException; } diff --git a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java index 894e6a6..b97e390 100644 --- a/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java +++ b/test/src/main/java/fr/ird/observe/test/TestClassResourceSupport.java @@ -148,7 +148,7 @@ public abstract class TestClassResourceSupport implements TestRule { } - protected void after(Description description) { + protected void after(Description description) throws IOException { Class<?> testClass = description.getTestClass(); if (log.isDebugEnabled()) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm