You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by am...@apache.org on 2017/10/18 17:36:15 UTC
incubator-unomi git commit: UNOMI-128 : Refactoring
save/update/delete running import/export config
Repository: incubator-unomi
Updated Branches:
refs/heads/master 79ba27236 -> b190a4f77
UNOMI-128 : Refactoring save/update/delete running import/export config
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/b190a4f7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/b190a4f7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/b190a4f7
Branch: refs/heads/master
Commit: b190a4f7712d3c44fea74bdfb8eec44a88c295f8
Parents: 79ba272
Author: Abdelkader Midani <am...@apache.org>
Authored: Wed Oct 18 19:35:37 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Wed Oct 18 19:36:08 2017 +0200
----------------------------------------------------------------------
buildAndRun.sh | 2 +-
buildAndRunNoTests.sh | 2 +-
.../unomi/router/api/IRouterCamelContext.java | 27 +++++++
.../ImportExportConfigurationService.java | 16 +++-
extensions/router/router-core/pom.xml | 6 --
.../router/core/context/RouterCamelContext.java | 24 +++---
.../core/processor/ConfigDeleteProcessor.java | 43 -----------
.../core/processor/ConfigUpdateProcessor.java | 43 -----------
.../core/route/ConfigUpdateRouteBuilder.java | 80 --------------------
.../resources/OSGI-INF/blueprint/blueprint.xml | 19 -----
.../AbstractConfigurationServiceEndpoint.java | 4 +-
.../ExportConfigurationServiceEndPoint.java | 66 +---------------
.../ImportConfigurationServiceEndPoint.java | 66 +---------------
extensions/router/router-service/pom.xml | 5 --
.../AbstractConfigurationServiceImpl.java | 8 +-
.../ExportConfigurationServiceImpl.java | 16 ++++
.../ImportConfigurationServiceImpl.java | 18 +++++
17 files changed, 99 insertions(+), 346 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/buildAndRun.sh
----------------------------------------------------------------------
diff --git a/buildAndRun.sh b/buildAndRun.sh
index e7128f9..69106f4 100755
--- a/buildAndRun.sh
+++ b/buildAndRun.sh
@@ -32,7 +32,7 @@ pushd package/target
echo Uncompressing Unomi package...
tar zxvf unomi-$UNOMI_VERSION.tar.gz
cd unomi-$UNOMI_VERSION/bin
-echo Starting Unomi...
+echo Apache Unomi features installed, use [unomi:start] to start it.
./karaf debug
popd
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/buildAndRunNoTests.sh
----------------------------------------------------------------------
diff --git a/buildAndRunNoTests.sh b/buildAndRunNoTests.sh
index 4bb0028..c948d4d 100755
--- a/buildAndRunNoTests.sh
+++ b/buildAndRunNoTests.sh
@@ -40,7 +40,7 @@ if [ -f "../../allCountries.zip" ]; then
cp ../../allCountries.zip unomi-$UNOMI_VERSION/etc
fi
cd unomi-$UNOMI_VERSION/bin
-echo Starting Unomi...
+echo echo Apache Unomi features installed, use [unomi:start] to start it.
./karaf debug
popd
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/IRouterCamelContext.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/IRouterCamelContext.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/IRouterCamelContext.java
new file mode 100644
index 0000000..d2d3249
--- /dev/null
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/IRouterCamelContext.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.unomi.router.api;
+
+/**
+ * Created by amidani on 18/10/2017.
+ */
+public interface IRouterCamelContext {
+
+ void killExistingRoute(String routeId) throws Exception;
+
+ void updateProfileReaderRoute(Object configuration) throws Exception;
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
index 7868b9c..7d2a82d 100644
--- a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
@@ -17,6 +17,7 @@
package org.apache.unomi.router.api.services;
import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.IRouterCamelContext;
import org.apache.unomi.router.api.ImportConfiguration;
import java.util.List;
@@ -31,7 +32,7 @@ public interface ImportExportConfigurationService<T> {
*
* @return the list of import/export configurations
*/
- public List<T> getAll();
+ List<T> getAll();
/**
* Retrieves the import/export configuration identified by the specified identifier.
@@ -40,7 +41,7 @@ public interface ImportExportConfigurationService<T> {
* @return the import/export configuration identified by the specified identifier or
* {@code null} if no such import/export configuration exists
*/
- public T load(String configId);
+ T load(String configId);
/**
* Saves the specified import/export configuration in the context server.
@@ -48,14 +49,21 @@ public interface ImportExportConfigurationService<T> {
* @param configuration the import/export configuration to be saved
* @return the newly saved import/export configuration
*/
- public T save(T configuration);
+ T save(T configuration);
/**
* Deletes the import/export configuration identified by the specified identifier.
*
* @param configId the identifier of the import/export configuration to delete
*/
- public void delete(String configId);
+ void delete(String configId);
+
+ /**
+ * Set the router camel context to share
+ *
+ * @param routerCamelContext
+ */
+ void setRouterCamelContext(IRouterCamelContext routerCamelContext);
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-core/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/pom.xml b/extensions/router/router-core/pom.xml
index 1f86696..42e10dc 100644
--- a/extensions/router/router-core/pom.xml
+++ b/extensions/router/router-core/pom.xml
@@ -88,12 +88,6 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
- <artifactId>camel-servlet</artifactId>
- <version>${camel.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
<artifactId>camel-ftp</artifactId>
<version>${camel.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
index a8e0b81..3b18803 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
@@ -25,6 +25,7 @@ import org.apache.unomi.api.services.ConfigSharingService;
import org.apache.unomi.api.services.ProfileService;
import org.apache.unomi.persistence.spi.PersistenceService;
import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.IRouterCamelContext;
import org.apache.unomi.router.api.ImportConfiguration;
import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.api.services.ImportExportConfigurationService;
@@ -43,12 +44,11 @@ import org.slf4j.LoggerFactory;
import java.util.Arrays;
import java.util.Map;
-import java.util.concurrent.TimeUnit;
/**
* Created by amidani on 04/05/2017.
*/
-public class RouterCamelContext implements SynchronousBundleListener {
+public class RouterCamelContext implements SynchronousBundleListener, IRouterCamelContext {
private Logger logger = LoggerFactory.getLogger(RouterCamelContext.class.getName());
private CamelContext camelContext;
@@ -155,24 +155,22 @@ public class RouterCamelContext implements SynchronousBundleListener {
}
}
bundleContext.addBundleListener(this);
- logger.info("Camel Context {} initialized successfully.");
- }
+ importConfigurationService.setRouterCamelContext(this);
+ exportConfigurationService.setRouterCamelContext(this);
+
+ logger.info("Camel Context {} initialized successfully.");
- private boolean stopRoute(String routeId) throws Exception {
- return camelContext.stopRoute(routeId, 10L, TimeUnit.SECONDS, true);
}
public void killExistingRoute(String routeId) throws Exception {
//Active routes
Route route = camelContext.getRoute(routeId);
- if (route != null && stopRoute(routeId)) {
- camelContext.removeRoute(routeId);
- }
- //Inactive routes
- RouteDefinition routeDefinition = camelContext.getRouteDefinition(routeId);
- if (routeDefinition != null) {
- camelContext.removeRouteDefinition(routeDefinition);
+ if (route != null) {
+ RouteDefinition routeDefinition = camelContext.getRouteDefinition(routeId);
+ if (routeDefinition != null) {
+ camelContext.removeRouteDefinition(routeDefinition);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigDeleteProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigDeleteProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigDeleteProcessor.java
deleted file mode 100644
index 1022113..0000000
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigDeleteProcessor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.unomi.router.core.processor;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.Processor;
-import org.apache.unomi.router.core.context.RouterCamelContext;
-
-/**
- * Created by amidani on 03/10/2017.
- */
-public class ConfigDeleteProcessor implements Processor {
-
- private RouterCamelContext routerCamelContext;
-
- @Override
- public void process(Exchange exchange) throws Exception {
- if (exchange.getIn() != null) {
- Message message = exchange.getIn();
- String routeId = message.getHeader("id", String.class);
- routerCamelContext.killExistingRoute(routeId);
- }
- }
-
- public void setRouterCamelContext(RouterCamelContext routerCamelContext) {
- this.routerCamelContext = routerCamelContext;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
deleted file mode 100644
index 76bd8a6..0000000
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.unomi.router.core.processor;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.Processor;
-import org.apache.unomi.router.core.context.RouterCamelContext;
-
-/**
- * Created by amidani on 10/05/2017.
- */
-public class ConfigUpdateProcessor implements Processor {
-
- private RouterCamelContext routerCamelContext;
-
- @Override
- public void process(Exchange exchange) throws Exception {
- if (exchange.getIn() != null) {
- Message message = exchange.getIn();
- Object configuration = message.getBody();
- routerCamelContext.updateProfileReaderRoute(configuration);
- }
- }
-
- public void setRouterCamelContext(RouterCamelContext routerCamelContext) {
- this.routerCamelContext = routerCamelContext;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java
deleted file mode 100644
index eff48c2..0000000
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.unomi.router.core.route;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.rest.RestBindingMode;
-import org.apache.unomi.router.api.ExportConfiguration;
-import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.core.context.RouterCamelContext;
-import org.apache.unomi.router.core.processor.ConfigDeleteProcessor;
-import org.apache.unomi.router.core.processor.ConfigUpdateProcessor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Created by amidani on 10/05/2017.
- */
-public class ConfigUpdateRouteBuilder extends RouteBuilder {
-
- private static final Logger logger = LoggerFactory.getLogger(ConfigUpdateRouteBuilder.class.getName());
- private RouterCamelContext routerCamelContext;
-
- @Override
- public void configure() throws Exception {
- logger.info("Preparing REST Configuration for servlet with context path [/configUpdate]");
- restConfiguration().component("servlet")
- .contextPath("/configUpdate")
- .enableCORS(false)
- .bindingMode(RestBindingMode.json)
- .dataFormatProperty("prettyPrint", "true");
-
- rest("/importConfigAdmin")
- .put().consumes("application/json").type(ImportConfiguration.class)
- .to("direct:configUpdateRestDeposit")
- .delete("/{id}").to("direct:configDeleteRestDeposit");
-
- rest("/exportConfigAdmin")
- .put().consumes("application/json").type(ExportConfiguration.class)
- .to("direct:configUpdateRestDeposit")
- .delete("/{id}").to("direct:configDeleteRestDeposit");
-
-
- ConfigUpdateProcessor profileConfigUpdateProcessor = new ConfigUpdateProcessor();
- profileConfigUpdateProcessor.setRouterCamelContext(routerCamelContext);
- from("direct:configUpdateRestDeposit")
- .process(profileConfigUpdateProcessor)
- .transform().constant("Success.")
- .onException(Exception.class)
- .transform().constant("Failure!");
-
-
- ConfigDeleteProcessor profileConfigDeleteProcessor = new ConfigDeleteProcessor();
- profileConfigDeleteProcessor.setRouterCamelContext(routerCamelContext);
- from("direct:configDeleteRestDeposit")
- .process(profileConfigDeleteProcessor)
- .transform().constant("Success.")
- .onException(Exception.class)
- .transform().constant("Failure!");
-
- }
-
- public void setRouterCamelContext(RouterCamelContext routerCamelContext) {
- this.routerCamelContext = routerCamelContext;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 1d3ddca..3f81b5a 100644
--- a/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -80,16 +80,6 @@
<property name="library" value="Jackson"/>
</bean>
- <bean class="org.apache.camel.component.servlet.osgi.OsgiServletRegisterer"
- init-method="register"
- destroy-method="unregister">
- <property name="alias" value="/configUpdate"/>
- <property name="httpService" ref="httpService"/>
- <property name="servlet" ref="camelServlet"/>
- </bean>
-
- <bean id="camelServlet" class="org.apache.camel.component.servlet.CamelHttpTransportServlet"/>
-
<bean id="camelContext" class="org.apache.unomi.router.core.context.RouterCamelContext"
init-method="initCamelContext" destroy-method="preDestroy">
@@ -124,20 +114,11 @@
<property name="profileService" ref="profileService"/>
</bean>
- <camel:camelContext id="httpEndpoint" xmlns="http://camel.apache.org/schema/blueprint">
- <camel:routeBuilder ref="configUpdateRouteBuilder" />
- </camel:camelContext>
-
- <bean id="configUpdateRouteBuilder" class="org.apache.unomi.router.core.route.ConfigUpdateRouteBuilder">
- <property name="routerCamelContext" ref="camelContext"/>
- </bean>
-
<bean id="collectProfileBean" class="org.apache.unomi.router.core.bean.CollectProfileBean">
<property name="persistenceService" ref="persistenceService"/>
</bean>
<reference id="configSharingService" interface="org.apache.unomi.api.services.ConfigSharingService" />
- <reference id="httpService" interface="org.osgi.service.http.HttpService"/>
<reference id="profileImportService" interface="org.apache.unomi.router.api.services.ProfileImportService"/>
<reference id="profileExportService" interface="org.apache.unomi.router.api.services.ProfileExportService"/>
<reference id="profileService" interface="org.apache.unomi.api.services.ProfileService"/>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
index 4bc3e24..8875294 100644
--- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
@@ -61,7 +61,7 @@ public abstract class AbstractConfigurationServiceEndpoint<T> {
@Path("/")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
- public abstract T saveConfiguration(T configuration, @Context MessageContext context) throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException;
+ public abstract T saveConfiguration(T configuration);
/**
* Retrieves a configuration by id.
@@ -86,6 +86,6 @@ public abstract class AbstractConfigurationServiceEndpoint<T> {
@Path("/{configId}")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
- public abstract void deleteConfiguration(@PathParam("configId") String configId, @Context MessageContext context);
+ public abstract void deleteConfiguration(@PathParam("configId") String configId);
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
index 522a6a5..b796d22 100644
--- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
@@ -16,17 +16,7 @@
*/
package org.apache.unomi.router.rest;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.cxf.jaxrs.ext.MessageContext;
import org.apache.cxf.rs.security.cors.CrossOriginResourceSharing;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLContextBuilder;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.HttpClients;
import org.apache.unomi.api.services.ProfileService;
import org.apache.unomi.router.api.ExportConfiguration;
import org.apache.unomi.router.api.services.ImportExportConfigurationService;
@@ -36,7 +26,6 @@ import org.slf4j.LoggerFactory;
import javax.jws.WebMethod;
import javax.jws.WebService;
-import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
@@ -66,12 +55,6 @@ public class ExportConfigurationServiceEndPoint extends AbstractConfigurationSer
public ExportConfigurationServiceEndPoint() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
logger.info("Initializing export configuration service endpoint...");
- SSLContextBuilder builder = new SSLContextBuilder();
- builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
- SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
- builder.build(), SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- httpClient = HttpClients.custom().setSSLSocketFactory(
- sslsf).build();
}
@WebMethod(exclude = true)
@@ -95,60 +78,15 @@ public class ExportConfigurationServiceEndPoint extends AbstractConfigurationSer
* @return the export configuration saved.
*/
@Override
- public ExportConfiguration saveConfiguration(ExportConfiguration exportConfiguration, MessageContext context) {
-
- HttpServletRequest request = context.getHttpServletRequest();
- String localBasePath = request.getScheme() + "://127.0.0.1:" + request.getLocalPort();
-
+ public ExportConfiguration saveConfiguration(ExportConfiguration exportConfiguration) {
ExportConfiguration exportConfigSaved = configurationService.save(exportConfiguration);
- try {
- HttpPut httpPut = new HttpPut(localBasePath + "/configUpdate/exportConfigAdmin");
- StringEntity input = new StringEntity(new ObjectMapper().writeValueAsString(exportConfigSaved));
- input.setContentType(MediaType.APPLICATION_JSON);
- httpPut.setEntity(input);
-
- HttpResponse response = httpClient.execute(httpPut);
-
- if (response.getStatusLine().getStatusCode() != 200) {
- logger.error("Failed to update the running config: Please check the acceccibilty to the URI: \n{}",
- localBasePath + "/configUpdate/importConfigAdmin");
- logger.error("HTTP Status code returned {}", response.getStatusLine().getStatusCode());
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
- }
- } catch (Exception e) {
- logger.warn("Unable to update Camel route [{}]", exportConfiguration.getItemId());
- logger.debug("Unable to update Camel route", e);
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
-
- }
return exportConfigSaved;
}
@Override
- public void deleteConfiguration(String configId, MessageContext context) {
+ public void deleteConfiguration(String configId) {
this.configurationService.delete(configId);
-
- HttpServletRequest request = context.getHttpServletRequest();
- String localBasePath = request.getScheme() + "://127.0.0.1:" + request.getLocalPort();
-
- try {
- HttpDelete httpDelete = new HttpDelete(localBasePath + "/configUpdate/exportConfigAdmin/" + configId);
-
- HttpResponse response = httpClient.execute(httpDelete);
-
- if (response.getStatusLine().getStatusCode() != 200) {
- logger.error("Failed to update the running config: Please check the accessibility to the URI: \n{}",
- localBasePath + "/configUpdate/exportConfigAdmin/" + configId);
- logger.error("HTTP Status code returned {}", response.getStatusLine().getStatusCode());
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
- }
- } catch (Exception e) {
- logger.warn("Unable to delete Camel route [{}]", configId);
- logger.debug("Unable to delete Camel route", e);
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
-
- }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
index 4b4f62a..c148997 100644
--- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
@@ -16,19 +16,9 @@
*/
package org.apache.unomi.router.rest;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.cxf.jaxrs.ext.MessageContext;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.apache.cxf.rs.security.cors.CrossOriginResourceSharing;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.conn.ssl.SSLContextBuilder;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.HttpClients;
import org.apache.unomi.router.api.ImportConfiguration;
import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.api.services.ImportExportConfigurationService;
@@ -37,7 +27,6 @@ import org.slf4j.LoggerFactory;
import javax.jws.WebMethod;
import javax.jws.WebService;
-import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
@@ -66,12 +55,6 @@ public class ImportConfigurationServiceEndPoint extends AbstractConfigurationSer
public ImportConfigurationServiceEndPoint() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
logger.info("Initializing import configuration service endpoint...");
- SSLContextBuilder builder = new SSLContextBuilder();
- builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
- SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
- builder.build(), SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
- httpClient = HttpClients.custom().setSSLSocketFactory(
- sslsf).build();
}
@WebMethod(exclude = true)
@@ -85,61 +68,16 @@ public class ImportConfigurationServiceEndPoint extends AbstractConfigurationSer
* @return the import configuration saved.
*/
@Override
- public ImportConfiguration saveConfiguration(ImportConfiguration importConfiguration, MessageContext context) {
-
- HttpServletRequest request = context.getHttpServletRequest();
- String localBasePath = request.getScheme() + "://127.0.0.1:" + request.getLocalPort();
+ public ImportConfiguration saveConfiguration(ImportConfiguration importConfiguration) {
ImportConfiguration importConfigSaved = configurationService.save(importConfiguration);
- try {
- HttpPut httpPut = new HttpPut(localBasePath + "/configUpdate/importConfigAdmin");
- StringEntity input = new StringEntity(new ObjectMapper().writeValueAsString(importConfigSaved));
- input.setContentType(MediaType.APPLICATION_JSON);
- httpPut.setEntity(input);
-
- HttpResponse response = httpClient.execute(httpPut);
-
- if (response.getStatusLine().getStatusCode() != 200) {
- logger.error("Failed to update the running config: Please check the accessibility to the URI: \n{}",
- localBasePath + "/configUpdate/importConfigAdmin");
- logger.error("HTTP Status code returned {}", response.getStatusLine().getStatusCode());
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
- }
- } catch (Exception e) {
- logger.warn("Unable to update Camel route [{}]", importConfiguration.getItemId());
- logger.debug("Unable to update Camel route", e);
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
-
- }
-
return importConfigSaved;
}
@Override
- public void deleteConfiguration(String configId, MessageContext context) {
+ public void deleteConfiguration(String configId) {
this.configurationService.delete(configId);
-
- HttpServletRequest request = context.getHttpServletRequest();
- String localBasePath = request.getScheme() + "://127.0.0.1:" + request.getLocalPort();
-
- try {
- HttpDelete httpDelete = new HttpDelete(localBasePath + "/configUpdate/importConfigAdmin/" + configId);
-
- HttpResponse response = httpClient.execute(httpDelete);
-
- if (response.getStatusLine().getStatusCode() != 200) {
- logger.error("Failed to update the running config: Please check the accessibility to the URI: \n{}",
- localBasePath + "/configUpdate/importConfigAdmin/" + configId);
- logger.error("HTTP Status code returned {}", response.getStatusLine().getStatusCode());
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
- }
- } catch (Exception e) {
- logger.warn("Unable to delete Camel route [{}]", configId);
- logger.debug("Unable to delete Camel route", e);
- throw new PartialContentException("RUNNING_CONFIG_UPDATE_FAILED");
-
- }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-service/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/pom.xml b/extensions/router/router-service/pom.xml
index 13f9c6f..ce5615d 100644
--- a/extensions/router/router-service/pom.xml
+++ b/extensions/router/router-service/pom.xml
@@ -91,11 +91,6 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
index 3b87e85..09b1d37 100644
--- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
@@ -17,6 +17,7 @@
package org.apache.unomi.router.services;
import org.apache.unomi.persistence.spi.PersistenceService;
+import org.apache.unomi.router.api.IRouterCamelContext;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
@@ -27,12 +28,13 @@ import org.slf4j.LoggerFactory;
/**
* Created by amidani on 26/06/2017.
*/
-public class AbstractConfigurationServiceImpl implements SynchronousBundleListener {
+public abstract class AbstractConfigurationServiceImpl implements SynchronousBundleListener {
private static final Logger logger = LoggerFactory.getLogger(AbstractConfigurationServiceImpl.class.getName());
protected BundleContext bundleContext;
protected PersistenceService persistenceService;
+ protected IRouterCamelContext routerCamelContext;
public void setBundleContext(BundleContext bundleContext) {
this.bundleContext = bundleContext;
@@ -42,6 +44,10 @@ public class AbstractConfigurationServiceImpl implements SynchronousBundleListen
this.persistenceService = persistenceService;
}
+ public void setRouterCamelContext(IRouterCamelContext routerCamelContext) {
+ this.routerCamelContext = routerCamelContext;
+ }
+
public void postConstruct() {
logger.debug("postConstruct {" + bundleContext.getBundle() + "}");
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
index 762a65f..e9e236c 100644
--- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
@@ -17,6 +17,7 @@
package org.apache.unomi.router.services;
import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.IRouterCamelContext;
import org.apache.unomi.router.api.services.ImportExportConfigurationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,12 +51,27 @@ public class ExportConfigurationServiceImpl extends AbstractConfigurationService
if (exportConfiguration.getItemId() == null) {
exportConfiguration.setItemId(UUID.randomUUID().toString());
}
+ try {
+ routerCamelContext.updateProfileReaderRoute(exportConfiguration);
+ } catch (Exception e) {
+ logger.error("Error when trying to save/update running Apache Camel Route: {}", exportConfiguration.getItemId());
+ }
persistenceService.save(exportConfiguration);
return persistenceService.load(exportConfiguration.getItemId(), ExportConfiguration.class);
}
@Override
public void delete(String configId) {
+ try {
+ routerCamelContext.killExistingRoute(configId);
+ } catch (Exception e) {
+ logger.error("Error when trying to delete running Apache Camel Route: {}", configId);
+ }
persistenceService.remove(configId, ExportConfiguration.class);
}
+
+ @Override
+ public void setRouterCamelContext(IRouterCamelContext routerCamelContext) {
+ super.setRouterCamelContext(routerCamelContext);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/b190a4f7/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
index 5275919..2d7f96e 100644
--- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
@@ -16,6 +16,7 @@
*/
package org.apache.unomi.router.services;
+import org.apache.unomi.router.api.IRouterCamelContext;
import org.apache.unomi.router.api.ImportConfiguration;
import org.apache.unomi.router.api.services.ImportExportConfigurationService;
import org.slf4j.Logger;
@@ -50,12 +51,29 @@ public class ImportConfigurationServiceImpl extends AbstractConfigurationService
if (importConfiguration.getItemId() == null) {
importConfiguration.setItemId(UUID.randomUUID().toString());
}
+
+ try {
+ routerCamelContext.updateProfileReaderRoute(importConfiguration);
+ } catch (Exception e) {
+ logger.error("Error when trying to save/update running Apache Camel Route: {}", importConfiguration.getItemId());
+ }
+
persistenceService.save(importConfiguration);
return persistenceService.load(importConfiguration.getItemId(), ImportConfiguration.class);
}
@Override
public void delete(String configId) {
+ try {
+ routerCamelContext.killExistingRoute(configId);
+ } catch (Exception e) {
+ logger.error("Error when trying to delete running Apache Camel Route: {}", configId);
+ }
persistenceService.remove(configId, ImportConfiguration.class);
}
+
+ @Override
+ public void setRouterCamelContext(IRouterCamelContext routerCamelContext) {
+ super.setRouterCamelContext(routerCamelContext);
+ }
}