Loading pom.xml +70 −8 Original line number Original line Diff line number Diff line Loading @@ -19,9 +19,14 @@ <properties> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring.boot-version>${spring-boot-version}</spring.boot-version> <spring.boot-version>3.2.2</spring.boot-version> <spring.boot.fabric8-version>3.0.3</spring.boot.fabric8-version> <spring.boot.fabric8-version>3.1.0</spring.boot.fabric8-version> <fabric8.version>6.7.2</fabric8.version> <fabric8.version>6.10.0</fabric8.version> <!--spring.boot-version>${spring-boot-version}</spring.boot-version --> <!-- These versions work>spring.boot.fabric8-version>3.0.5</spring.boot.fabric8-version --> <!-- >fabric8.version>6.6.2</fabric8.version --> <camel.version>4.0.0-RC1</camel.version> <camel.version>4.0.0-RC1</camel.version> <slf4j-api.version>1.7.5</slf4j-api.version> <slf4j-api.version>1.7.5</slf4j-api.version> <slf4j-simple.version>1.7.28</slf4j-simple.version> <slf4j-simple.version>1.7.28</slf4j-simple.version> Loading Loading @@ -186,6 +191,63 @@ <artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId> </dependency> </dependency> <!-- Testing --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-commons</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-runner</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-broker</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>javax.jms</groupId> <artifactId>javax.jms-api</artifactId> <version>2.0.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.15.1</version> <scope>test</scope> </dependency> <dependency> <groupId>io.fabric8</groupId> <artifactId>kubernetes-server-mock</artifactId> <version>${fabric8.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.fabric8</groupId> <artifactId>kubernetes-httpclient-okhttp</artifactId> <version>${fabric8.version}</version> <scope>test</scope> </dependency> </dependencies> </dependencies> <build> <build> Loading src/main/java/org/etsi/osl/cridge/CatalogClient.java +0 −5 Original line number Original line Diff line number Diff line Loading @@ -32,11 +32,6 @@ public class CatalogClient extends RouteBuilder{ @Autowired @Autowired private ProducerTemplate template; private ProducerTemplate template; @Value("${CATALOG_ADD_RESOURCESPEC}") private String CATALOG_ADD_RESOURCESPEC = ""; @Value("${CATALOG_UPD_RESOURCESPEC}") private String CATALOG_UPD_RESOURCESPEC = ""; @Value("${CATALOG_GET_RESOURCESPEC_BY_ID}") @Value("${CATALOG_GET_RESOURCESPEC_BY_ID}") private String CATALOG_GET_RESOURCESPEC_BY_ID = ""; private String CATALOG_GET_RESOURCESPEC_BY_ID = ""; Loading src/main/java/org/etsi/osl/cridge/CridgeSpingBoot.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -54,6 +54,7 @@ public class CridgeSpingBoot implements CommandLineRunner { return new KubernetesClientBuilder().build(); return new KubernetesClientBuilder().build(); } } @Override @Override public void run(String... arg0) throws Exception { public void run(String... arg0) throws Exception { if (arg0.length > 0 && arg0[0].equals("exitcode")) { if (arg0.length > 0 && arg0[0].equals("exitcode")) { Loading src/main/java/org/etsi/osl/cridge/WatcherService.java +4 −3 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ import org.etsi.osl.tmf.ri639.model.ResourceUpdate; import org.slf4j.Logger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextStoppedEvent; import org.springframework.context.event.ContextStoppedEvent; Loading Loading @@ -47,10 +48,10 @@ public class WatcherService { * This one is executed when the cridge service application starts * This one is executed when the cridge service application starts * @param event * @param event */ */ @EventListener @EventListener(ApplicationStartedEvent.class) public void onApplicationEvent(ContextRefreshedEvent event) { public void onApplicationEvent() { logger.info("Starting WatcherS.getervice event {} ", event.toString()); //logger.info("Starting WatcherS.getervice event {} ", event.toString()); logger.info("Starting WatcherService for cluster getContexts {} ", logger.info("Starting WatcherService for cluster getContexts {} ", kubernetesClientResource.getKubernetesClient().getConfiguration().getContexts().toString()); kubernetesClientResource.getKubernetesClient().getConfiguration().getContexts().toString()); Loading src/test/java/org/etsi/osl/cridge/CridgeIntegrationTest.java 0 → 100644 +163 −0 Original line number Original line Diff line number Diff line package org.etsi.osl.cridge; import java.net.HttpURLConnection; import java.util.ArrayList; import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.dataformat.JsonLibrary; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.junit.Rule; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import jakarta.annotation.PostConstruct; import org.springframework.test.context.event.RecordApplicationEvents; import org.springframework.test.context.event.annotation.BeforeTestClass; import org.springframework.test.context.junit4.SpringRunner; import io.fabric8.kubernetes.api.model.ListMeta; import io.fabric8.kubernetes.api.model.ListMetaBuilder; import io.fabric8.kubernetes.api.model.NamedContext; import io.fabric8.kubernetes.api.model.NamedContextBuilder; import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList; import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionListBuilder; import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.ConfigBuilder; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientBuilder; import io.fabric8.kubernetes.client.extension.ExtensionAdapter.ClientFactory; import io.fabric8.kubernetes.client.http.HttpClient.Factory; import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient; import io.fabric8.kubernetes.client.server.mock.KubernetesClientBuilderCustomizer; import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer; import io.fabric8.kubernetes.client.server.mock.KubernetesServer; @RecordApplicationEvents @RunWith(SpringRunner.class) @SpringBootTest(properties = { "kubernetes.master = test_kube", "spring.activemq.brokerUrl = vm://embedded?broker.persistent=false,useShutdownHook=false", "CATALOG_GET_RESOURCESPEC_BY_ID = direct:get_rspec_byid", "CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY = direct:get_rspec_byNameCategory", "CATALOG_UPDADD_RESOURCE = direct:updadd_resource",}) @EnableKubernetesMockClient public class CridgeIntegrationTest { private static final Logger logger = LoggerFactory.getLogger("org.etsi.osl.cridge"); private static KubernetesMockServer server; @Autowired CatalogClient catalogClient; /** * it is used to override beans and setup the environment before application context starts */ @TestConfiguration static class routesPreparation { @Autowired private CamelContext camelContext; private SCMocked scmocked = new SCMocked(); private KubernetesClient kubernetesClient; @Autowired KubernetesClientResource aKubernetesClientResource; RoutesBuilder builder = new RouteBuilder() { @Override public void configure() { from("direct:get_rspec_byid").bean(scmocked, "getRspecID"); from("direct:get_rspec_byNameCategory").bean(scmocked, "get_rspec_byNameCategory(${header.aname}, ${header.acategory}, ${header.aversion})"); from("direct:updadd_resource").unmarshal() .json(JsonLibrary.Jackson, ResourceCreate.class, true).bean(scmocked, "updadd_resource(${header.aname},${header.acategory}, ${header.aversion}, ${body})"); }; }; @EventListener(ApplicationStartedEvent.class) public void preparedForTheTest() { logger.info("=============== Created routes for the test and initialise =============== "); NamedContext nctx = new NamedContextBuilder().withNewContext().withCluster("testCluster") .and().withName("tstContext").build(); KubernetesClientBuilderCustomizer zzz = new KubernetesClientBuilderCustomizer(); Config config = Config.autoConfigure(null); config.setNamespace("testNamespace"); KubernetesClientBuilder xxx = new KubernetesClientBuilder().withConfig(config); zzz.accept(xxx); kubernetesClient = server.createClient(zzz); kubernetesClient.getConfiguration().setCurrentContext(nctx); aKubernetesClientResource.setKubernetesClient(kubernetesClient); logger.info("Starting preparedForTheTest kubernetesClient.toString() {} ", kubernetesClient.toString()); logger.info("Starting preparedForTheTest for cluster getContexts {} ", kubernetesClient.getConfiguration().getContexts().toString()); ListMeta metada = new ListMetaBuilder().build(); // Given CustomResourceDefinitionList list = new CustomResourceDefinitionListBuilder() .withMetadata(metada ) .build(); //the following expects are for the sharedIndexInformers in the beginning server.expect() .get() .withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions?resourceVersion=0") .andReturn(HttpURLConnection.HTTP_OK, list ) .once(); server.expect() .get() .withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions?allowWatchBookmarks=true&timeoutSeconds=600&watch=true") .andReturn(HttpURLConnection.HTTP_OK, list ) .once(); try { camelContext.addRoutes(builder); } catch (Exception e) { e.printStackTrace(); } } } @BeforeTestClass public void beforeTestClass(ContextRefreshedEvent event) { logger.info("=============== beforeTestClass ============================="); } @Test public void testCatalog() throws Exception { logger.info("===============TEST testCatalog ============================="); } } Loading
pom.xml +70 −8 Original line number Original line Diff line number Diff line Loading @@ -19,9 +19,14 @@ <properties> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring.boot-version>${spring-boot-version}</spring.boot-version> <spring.boot-version>3.2.2</spring.boot-version> <spring.boot.fabric8-version>3.0.3</spring.boot.fabric8-version> <spring.boot.fabric8-version>3.1.0</spring.boot.fabric8-version> <fabric8.version>6.7.2</fabric8.version> <fabric8.version>6.10.0</fabric8.version> <!--spring.boot-version>${spring-boot-version}</spring.boot-version --> <!-- These versions work>spring.boot.fabric8-version>3.0.5</spring.boot.fabric8-version --> <!-- >fabric8.version>6.6.2</fabric8.version --> <camel.version>4.0.0-RC1</camel.version> <camel.version>4.0.0-RC1</camel.version> <slf4j-api.version>1.7.5</slf4j-api.version> <slf4j-api.version>1.7.5</slf4j-api.version> <slf4j-simple.version>1.7.28</slf4j-simple.version> <slf4j-simple.version>1.7.28</slf4j-simple.version> Loading Loading @@ -186,6 +191,63 @@ <artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId> </dependency> </dependency> <!-- Testing --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-commons</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-runner</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-broker</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>javax.jms</groupId> <artifactId>javax.jms-api</artifactId> <version>2.0.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.15.1</version> <scope>test</scope> </dependency> <dependency> <groupId>io.fabric8</groupId> <artifactId>kubernetes-server-mock</artifactId> <version>${fabric8.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.fabric8</groupId> <artifactId>kubernetes-httpclient-okhttp</artifactId> <version>${fabric8.version}</version> <scope>test</scope> </dependency> </dependencies> </dependencies> <build> <build> Loading
src/main/java/org/etsi/osl/cridge/CatalogClient.java +0 −5 Original line number Original line Diff line number Diff line Loading @@ -32,11 +32,6 @@ public class CatalogClient extends RouteBuilder{ @Autowired @Autowired private ProducerTemplate template; private ProducerTemplate template; @Value("${CATALOG_ADD_RESOURCESPEC}") private String CATALOG_ADD_RESOURCESPEC = ""; @Value("${CATALOG_UPD_RESOURCESPEC}") private String CATALOG_UPD_RESOURCESPEC = ""; @Value("${CATALOG_GET_RESOURCESPEC_BY_ID}") @Value("${CATALOG_GET_RESOURCESPEC_BY_ID}") private String CATALOG_GET_RESOURCESPEC_BY_ID = ""; private String CATALOG_GET_RESOURCESPEC_BY_ID = ""; Loading
src/main/java/org/etsi/osl/cridge/CridgeSpingBoot.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -54,6 +54,7 @@ public class CridgeSpingBoot implements CommandLineRunner { return new KubernetesClientBuilder().build(); return new KubernetesClientBuilder().build(); } } @Override @Override public void run(String... arg0) throws Exception { public void run(String... arg0) throws Exception { if (arg0.length > 0 && arg0[0].equals("exitcode")) { if (arg0.length > 0 && arg0[0].equals("exitcode")) { Loading
src/main/java/org/etsi/osl/cridge/WatcherService.java +4 −3 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ import org.etsi.osl.tmf.ri639.model.ResourceUpdate; import org.slf4j.Logger; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextStoppedEvent; import org.springframework.context.event.ContextStoppedEvent; Loading Loading @@ -47,10 +48,10 @@ public class WatcherService { * This one is executed when the cridge service application starts * This one is executed when the cridge service application starts * @param event * @param event */ */ @EventListener @EventListener(ApplicationStartedEvent.class) public void onApplicationEvent(ContextRefreshedEvent event) { public void onApplicationEvent() { logger.info("Starting WatcherS.getervice event {} ", event.toString()); //logger.info("Starting WatcherS.getervice event {} ", event.toString()); logger.info("Starting WatcherService for cluster getContexts {} ", logger.info("Starting WatcherService for cluster getContexts {} ", kubernetesClientResource.getKubernetesClient().getConfiguration().getContexts().toString()); kubernetesClientResource.getKubernetesClient().getConfiguration().getContexts().toString()); Loading
src/test/java/org/etsi/osl/cridge/CridgeIntegrationTest.java 0 → 100644 +163 −0 Original line number Original line Diff line number Diff line package org.etsi.osl.cridge; import java.net.HttpURLConnection; import java.util.ArrayList; import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.dataformat.JsonLibrary; import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.junit.Rule; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import jakarta.annotation.PostConstruct; import org.springframework.test.context.event.RecordApplicationEvents; import org.springframework.test.context.event.annotation.BeforeTestClass; import org.springframework.test.context.junit4.SpringRunner; import io.fabric8.kubernetes.api.model.ListMeta; import io.fabric8.kubernetes.api.model.ListMetaBuilder; import io.fabric8.kubernetes.api.model.NamedContext; import io.fabric8.kubernetes.api.model.NamedContextBuilder; import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList; import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionListBuilder; import io.fabric8.kubernetes.client.Config; import io.fabric8.kubernetes.client.ConfigBuilder; import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientBuilder; import io.fabric8.kubernetes.client.extension.ExtensionAdapter.ClientFactory; import io.fabric8.kubernetes.client.http.HttpClient.Factory; import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient; import io.fabric8.kubernetes.client.server.mock.KubernetesClientBuilderCustomizer; import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer; import io.fabric8.kubernetes.client.server.mock.KubernetesServer; @RecordApplicationEvents @RunWith(SpringRunner.class) @SpringBootTest(properties = { "kubernetes.master = test_kube", "spring.activemq.brokerUrl = vm://embedded?broker.persistent=false,useShutdownHook=false", "CATALOG_GET_RESOURCESPEC_BY_ID = direct:get_rspec_byid", "CATALOG_GET_RESOURCESPEC_BY_ΝAME_CATEGORY = direct:get_rspec_byNameCategory", "CATALOG_UPDADD_RESOURCE = direct:updadd_resource",}) @EnableKubernetesMockClient public class CridgeIntegrationTest { private static final Logger logger = LoggerFactory.getLogger("org.etsi.osl.cridge"); private static KubernetesMockServer server; @Autowired CatalogClient catalogClient; /** * it is used to override beans and setup the environment before application context starts */ @TestConfiguration static class routesPreparation { @Autowired private CamelContext camelContext; private SCMocked scmocked = new SCMocked(); private KubernetesClient kubernetesClient; @Autowired KubernetesClientResource aKubernetesClientResource; RoutesBuilder builder = new RouteBuilder() { @Override public void configure() { from("direct:get_rspec_byid").bean(scmocked, "getRspecID"); from("direct:get_rspec_byNameCategory").bean(scmocked, "get_rspec_byNameCategory(${header.aname}, ${header.acategory}, ${header.aversion})"); from("direct:updadd_resource").unmarshal() .json(JsonLibrary.Jackson, ResourceCreate.class, true).bean(scmocked, "updadd_resource(${header.aname},${header.acategory}, ${header.aversion}, ${body})"); }; }; @EventListener(ApplicationStartedEvent.class) public void preparedForTheTest() { logger.info("=============== Created routes for the test and initialise =============== "); NamedContext nctx = new NamedContextBuilder().withNewContext().withCluster("testCluster") .and().withName("tstContext").build(); KubernetesClientBuilderCustomizer zzz = new KubernetesClientBuilderCustomizer(); Config config = Config.autoConfigure(null); config.setNamespace("testNamespace"); KubernetesClientBuilder xxx = new KubernetesClientBuilder().withConfig(config); zzz.accept(xxx); kubernetesClient = server.createClient(zzz); kubernetesClient.getConfiguration().setCurrentContext(nctx); aKubernetesClientResource.setKubernetesClient(kubernetesClient); logger.info("Starting preparedForTheTest kubernetesClient.toString() {} ", kubernetesClient.toString()); logger.info("Starting preparedForTheTest for cluster getContexts {} ", kubernetesClient.getConfiguration().getContexts().toString()); ListMeta metada = new ListMetaBuilder().build(); // Given CustomResourceDefinitionList list = new CustomResourceDefinitionListBuilder() .withMetadata(metada ) .build(); //the following expects are for the sharedIndexInformers in the beginning server.expect() .get() .withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions?resourceVersion=0") .andReturn(HttpURLConnection.HTTP_OK, list ) .once(); server.expect() .get() .withPath("/apis/apiextensions.k8s.io/v1/customresourcedefinitions?allowWatchBookmarks=true&timeoutSeconds=600&watch=true") .andReturn(HttpURLConnection.HTTP_OK, list ) .once(); try { camelContext.addRoutes(builder); } catch (Exception e) { e.printStackTrace(); } } } @BeforeTestClass public void beforeTestClass(ContextRefreshedEvent event) { logger.info("=============== beforeTestClass ============================="); } @Test public void testCatalog() throws Exception { logger.info("===============TEST testCatalog ============================="); } }