From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation
---
apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/camel/CamelBootstrap.java | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 157 insertions(+), 0 deletions(-)
diff --git a/apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/camel/CamelBootstrap.java b/apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/camel/CamelBootstrap.java
new file mode 100644
index 0000000..6f4c660
--- /dev/null
+++ b/apifdxweb/api/apifdxweb-service-impl/src/main/java/com/megatim/apifdxweb/service/impl/camel/CamelBootstrap.java
@@ -0,0 +1,157 @@
+package com.megatim.apifdxweb.service.impl.camel;
+
+import com.megatim.apifdxweb.service.impl.camel.config.CamelRouteConfiguration;
+import com.megatim.apifdxweb.service.impl.camel.routes.in.FichierIntegrationLocalRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.in.FichierIntegrationRemoteRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.out.FdxStandaloneRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.out.FileIntegrationRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.in.TokenAuthentificationRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.in.ReferentielIntegrationLocalRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.in.ReferentielIntegrationRemoteRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.in.UserActionsRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.timers.DataIntegrationTimerRoute;
+import com.megatim.apifdxweb.service.impl.camel.routes.timers.DeleteConsumedFilesTimer;
+import com.megatim.apifdxweb.service.impl.camel.routes.timers.DeleteExpiredTokensTimer;
+import com.megatim.apifdxweb.service.impl.camel.routes.timers.MergeTypeFichierBatchDataTimer;
+import com.megatim.apifdxweb.tools.AppContext;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import javax.ejb.Singleton;
+import javax.ejb.Startup;
+import javax.enterprise.event.Observes;
+import javax.inject.Inject;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+import org.apache.camel.cdi.CdiCamelConfiguration;
+import org.apache.camel.cdi.CdiCamelContext;
+import org.apache.camel.component.jdbc.JdbcComponent;
+import org.apache.camel.component.rabbitmq.RabbitMQComponent;
+
+@Singleton
+@Startup
+public class CamelBootstrap {
+
+ @Inject
+ private CdiCamelContext camelContext;
+
+ @Resource(lookup = AppContext.JNDI_NAME)
+ private DataSource dataSource;
+
+ @Inject
+ private FdxStandaloneRoute fdxStandaloneRoute;
+
+ @Inject
+ private FileIntegrationRoute fileIntegrationRoute;
+
+ @Inject
+ private TokenAuthentificationRoute tokenAuthentificationRoute;
+
+ @Inject
+ private UserActionsRoute userActionsRoute;
+
+ @Inject
+ private FichierIntegrationLocalRoute fichierIntegrationLocalRoute;
+
+ @Inject
+ private ReferentielIntegrationLocalRoute referentielIntegrationLocalRoute;
+
+ @Inject
+ private FichierIntegrationRemoteRoute fichierIntegrationRemoteRoute;
+
+ @Inject
+ private ReferentielIntegrationRemoteRoute referentielIntegrationRemoteRoute;
+
+ @Inject
+ private DataIntegrationTimerRoute dataIntegrationTimerRoute;
+
+ @Inject
+ private MergeTypeFichierBatchDataTimer mergeBatchDataTimer;
+
+ @Inject
+ private DeleteConsumedFilesTimer deleteConsumedFilesTimer;
+
+ @Inject
+ private DeleteExpiredTokensTimer deleteExpiredTokensTimer;
+
+ @PostConstruct
+ public void init() {
+
+ try {
+
+ addDataSourceToContext();
+ addRabbitMQComponent();
+
+ loadJMSRoutes();
+ loadIntegrationRoutes();
+ loadTimers();
+
+ } catch (Exception ex) {
+ Logger.getLogger(CamelBootstrap.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ }
+
+ private void loadIntegrationRoutes() throws Exception {
+
+ CamelRouteConfiguration camelRouteConfiguration = new CamelRouteConfiguration(AppContext.PROPERTY_FILE_PATH);
+ if (camelRouteConfiguration.hasCorrectLocalConfig()) {
+
+ loadLocalIntegrationRoutes();
+
+ if (camelRouteConfiguration.hasCorrectStfpConfig()) {
+ loadRemoteIntegrationRoutes();
+ }
+ }
+
+ }
+
+ private void loadRemoteIntegrationRoutes() throws Exception {
+ camelContext.addRoutes(fichierIntegrationRemoteRoute);
+ camelContext.addRoutes(referentielIntegrationRemoteRoute);
+ }
+
+ private void loadLocalIntegrationRoutes() throws Exception {
+ camelContext.addRoutes(fichierIntegrationLocalRoute);
+ camelContext.addRoutes(referentielIntegrationLocalRoute);
+ camelContext.addRoutes(fdxStandaloneRoute);
+ }
+
+ private void loadJMSRoutes() throws Exception {
+ camelContext.addRoutes(fileIntegrationRoute);
+ camelContext.addRoutes(tokenAuthentificationRoute);
+ camelContext.addRoutes(userActionsRoute);
+ }
+
+ private void loadTimers() throws Exception {
+ camelContext.addRoutes(dataIntegrationTimerRoute);
+ camelContext.addRoutes(mergeBatchDataTimer);
+ camelContext.addRoutes(deleteConsumedFilesTimer);
+ camelContext.addRoutes(deleteExpiredTokensTimer);
+ }
+
+ private void addDataSourceToContext() throws NamingException {
+ JdbcComponent jdbcComponent = new JdbcComponent();
+ jdbcComponent.setDataSource(dataSource);
+ camelContext.addComponent("jdbc", jdbcComponent);
+ }
+
+ private void addRabbitMQComponent() throws NamingException {
+
+ // Add RabbitMQ Component with connection details
+ RabbitMQComponent rabbitMQComponent = new RabbitMQComponent();
+ rabbitMQComponent.setHostname("localhost");
+ rabbitMQComponent.setPortNumber(5672);
+ rabbitMQComponent.setPortNumber(5672);
+ rabbitMQComponent.setUsername("guest");
+ rabbitMQComponent.setPassword("guest");
+
+ camelContext.addComponent("rabbitmq", rabbitMQComponent);
+ }
+
+ public static void configuration(@Observes CdiCamelConfiguration configuration) {
+ configuration.autoConfigureRoutes(false);
+ }
+
+}
--
Gitblit v1.10.0