diff --git a/datasource-deployment/README.md b/datasource/datasource-deployment/README.md similarity index 100% rename from datasource-deployment/README.md rename to datasource/datasource-deployment/README.md diff --git a/datasource-deployment/pom.xml b/datasource/datasource-deployment/pom.xml similarity index 76% rename from datasource-deployment/pom.xml rename to datasource/datasource-deployment/pom.xml index bac0ade76..008148cb9 100644 --- a/datasource-deployment/pom.xml +++ b/datasource/datasource-deployment/pom.xml @@ -10,12 +10,12 @@ org.wildfly.swarm.examples - wildfly-swarm-examples-parent + examples-datasource 1.0.0.Alpha6-SNAPSHOT ../ - wildfly-swarm-example-datasource-deployment + example-datasource-deployment WildFly Swarm Examples: Datasource Deployment WildFly Swarm Examples: Datasource Deployment @@ -30,11 +30,26 @@ org.wildfly.swarm.examples.ds.deployment.Main + + + package + + + start + + + stop + + + + org.wildfly.swarm.examples + examples-base + org.wildfly.swarm wildfly-swarm-jaxrs diff --git a/datasource/datasource-deployment/src/it/java/org/wildfly/swarm/examples/ds/deployment/DatasourceIT.java b/datasource/datasource-deployment/src/it/java/org/wildfly/swarm/examples/ds/deployment/DatasourceIT.java new file mode 100644 index 000000000..0e6b45d90 --- /dev/null +++ b/datasource/datasource-deployment/src/it/java/org/wildfly/swarm/examples/ds/deployment/DatasourceIT.java @@ -0,0 +1,33 @@ +package org.wildfly.swarm.examples.ds.deployment; + +import org.jboss.arquillian.drone.api.annotation.Drone; +import org.jboss.arquillian.junit.Arquillian; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.openqa.selenium.WebDriver; +import org.wildfly.swarm.it.AbstractIntegrationTest; +import org.wildfly.swarm.it.Log; + +import static org.fest.assertions.Assertions.assertThat; + +/** + * @author Bob McWhirter + */ +@RunWith(Arquillian.class) +public class DatasourceIT extends AbstractIntegrationTest { + + @Drone + WebDriver browser; + + @Test + public void testIt() throws Exception { + Log log = getStdOutLog(); + + assertThatLog( log ).hasLineContaining( "WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]" ); + assertThatLog( log ).hasLineContaining( "WFLYSRV0010: Deployed \"h2\" (runtime-name : \"h2\")" ); + + + browser.navigate().to("http://localhost:8080/"); + assertThat(browser.getPageSource()).contains("Howdy using connection: org.jboss.jca.adapters.jdbc.jdk7.WrappedConnectionJDK7" ); + } +} diff --git a/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/Main.java b/datasource/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/Main.java similarity index 64% rename from datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/Main.java rename to datasource/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/Main.java index e8b551258..8ddae6f40 100644 --- a/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/Main.java +++ b/datasource/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/Main.java @@ -18,30 +18,20 @@ public static void main(String[] args) throws Exception { Container container = new Container(); - // Start the container container.start(); // Create a JDBC driver deployment using maven groupId:artifactId // The version is resolved from your pom.xml's container.deploy(Swarm.artifact("com.h2database:h2", "h2")); - /* // Create a DS deployment - DatasourceDeployment dsDeployment = new DatasourceDeployment(container, new Datasource("ExampleDS") - .connectionURL("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE") - .driver("h2") - .authentication("sa", "sa") - ); - */ - JARArchive dsArchive = ShrinkWrap.create(JARArchive.class); - dsArchive.as(DatasourceArchive.class).datasource( - new DataSource("ExampleDS") - .connectionUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE") - .driverName("h2") - .userName("sa") - .password("sa") - ); + dsArchive.as(DatasourceArchive.class).dataSource("ExampleDS", (ds) -> { + ds.connectionUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"); + ds.driverName("h2"); + ds.userName("sa"); + ds.password("sa"); + }); // Deploy the datasource container.deploy(dsArchive); diff --git a/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/MyResource.java b/datasource/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/MyResource.java similarity index 100% rename from datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/MyResource.java rename to datasource/datasource-deployment/src/main/java/org/wildfly/swarm/examples/ds/deployment/MyResource.java diff --git a/datasource-subsystem/README.md b/datasource/datasource-subsystem/README.md similarity index 100% rename from datasource-subsystem/README.md rename to datasource/datasource-subsystem/README.md diff --git a/datasource-subsystem/pom.xml b/datasource/datasource-subsystem/pom.xml similarity index 82% rename from datasource-subsystem/pom.xml rename to datasource/datasource-subsystem/pom.xml index 5000b4091..79eb95ade 100644 --- a/datasource-subsystem/pom.xml +++ b/datasource/datasource-subsystem/pom.xml @@ -10,12 +10,12 @@ org.wildfly.swarm.examples - wildfly-swarm-examples-parent + examples-datasource 1.0.0.Alpha6-SNAPSHOT ../ - wildfly-swarm-example-datasource-subsystem + example-datasource-subsystem WildFly Swarm Examples: Datasource Subsystem WildFly Swarm Examples: Datasource Subsystem @@ -42,9 +42,13 @@ - - package - + package + + + start + + + stop @@ -52,6 +56,10 @@ + + org.wildfly.swarm.examples + examples-base + org.wildfly.swarm wildfly-swarm-jaxrs diff --git a/datasource/datasource-subsystem/src/it/java/org/wildfly/swarm/examples/ds/subsystem/DatasourceIT.java b/datasource/datasource-subsystem/src/it/java/org/wildfly/swarm/examples/ds/subsystem/DatasourceIT.java new file mode 100644 index 000000000..a15ac5322 --- /dev/null +++ b/datasource/datasource-subsystem/src/it/java/org/wildfly/swarm/examples/ds/subsystem/DatasourceIT.java @@ -0,0 +1,32 @@ +package org.wildfly.swarm.examples.ds.deployment; + +import org.jboss.arquillian.drone.api.annotation.Drone; +import org.jboss.arquillian.junit.Arquillian; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.openqa.selenium.WebDriver; +import org.wildfly.swarm.it.AbstractIntegrationTest; +import org.wildfly.swarm.it.Log; + +import static org.fest.assertions.Assertions.assertThat; + +/** + * @author Bob McWhirter + */ +@RunWith(Arquillian.class) +public class DatasourceIT extends AbstractIntegrationTest { + + @Drone + WebDriver browser; + + @Test + public void testIt() throws Exception { + Log log = getStdOutLog(); + + assertThatLog( log ).hasLineContaining( "WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]" ); + + + browser.navigate().to("http://localhost:8080/"); + assertThat(browser.getPageSource()).contains("Howdy using connection: org.jboss.jca.adapters.jdbc.jdk7.WrappedConnectionJDK7" ); + } +} diff --git a/datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/Main.java b/datasource/datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/Main.java similarity index 100% rename from datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/Main.java rename to datasource/datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/Main.java diff --git a/datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/MyResource.java b/datasource/datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/MyResource.java similarity index 100% rename from datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/MyResource.java rename to datasource/datasource-subsystem/src/main/java/org/wildfly/swarm/examples/ds/subsystem/MyResource.java diff --git a/datasource-subsystem/src/main/resources/modules/com/h2database/h2/main/module.xml b/datasource/datasource-subsystem/src/main/resources/modules/com/h2database/h2/main/module.xml similarity index 100% rename from datasource-subsystem/src/main/resources/modules/com/h2database/h2/main/module.xml rename to datasource/datasource-subsystem/src/main/resources/modules/com/h2database/h2/main/module.xml diff --git a/datasource-subsystem/src/main/resources/provided-dependencies.txt b/datasource/datasource-subsystem/src/main/resources/provided-dependencies.txt similarity index 100% rename from datasource-subsystem/src/main/resources/provided-dependencies.txt rename to datasource/datasource-subsystem/src/main/resources/provided-dependencies.txt diff --git a/datasource/pom.xml b/datasource/pom.xml new file mode 100644 index 000000000..fc04b93cd --- /dev/null +++ b/datasource/pom.xml @@ -0,0 +1,30 @@ + + + + 4.0.0 + + + org.wildfly.swarm.examples + wildfly-swarm-examples-parent + 1.0.0.Alpha6-SNAPSHOT + ../ + + + examples-datasource + + WildFly Swarm Examples: Datasource parent + WildFly Swarm Examples: Datasource parent + + pom + + + + datasource-deployment + datasource-subsystem + + diff --git a/jaxrs-msc/pom.xml b/jaxrs-msc/pom.xml deleted file mode 100644 index 2c6d97968..000000000 --- a/jaxrs-msc/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - 4.0.0 - - - org.wildfly.swarm.examples - wildfly-swarm-examples-parent - 1.0.0.Alpha6-SNAPSHOT - ../ - - - wildfly-swarm-example-jaxrs-msc - - WildFly Swarm Examples: JAX-RS + MSC - WildFly Swarm Examples: JAX-RS +MSC - - jar - - - - - org.wildfly.swarm - wildfly-swarm-plugin - - org.wildfly.swarm.examples.jaxrs.msc.Main - - - - - package - - - - - - - - - - org.wildfly.swarm - wildfly-swarm-jaxrs - ${version.wildfly-swarm} - - - org.wildfly.swarm - wildfly-swarm-msc - ${version.wildfly-swarm} - - - joda-time - joda-time - 2.7 - - - - diff --git a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/Main.java b/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/Main.java deleted file mode 100644 index 2c2c280d9..000000000 --- a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/Main.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.wildfly.swarm.examples.jaxrs.msc; - -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.wildfly.swarm.container.Container; -import org.wildfly.swarm.jaxrs.JAXRSArchive; -import org.wildfly.swarm.msc.ServiceActivatorArchive; - -/** - * @author Bob McWhirter - */ -public class Main { - - public static void main(String[] args) throws Exception { - - Container container = new Container(); - - JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class, "myapp.war"); - deployment.addClass(MyResource.class); - deployment.addAllDependencies(); - deployment.as(ServiceActivatorArchive.class).addServiceActivator(MyServiceActivator.class); - deployment.addClass(MyService.class); - container.start().deploy(deployment); - } -} diff --git a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyApp.java b/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyApp.java deleted file mode 100644 index e7c2b2fd6..000000000 --- a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyApp.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.wildfly.swarm.examples.jaxrs.msc; - -import javax.ws.rs.ApplicationPath; -import javax.ws.rs.core.Application; - -/** - * @author Bob McWhirter - */ -@ApplicationPath("/taco") -public class MyApp extends Application { -} diff --git a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyResource.java b/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyResource.java deleted file mode 100644 index 35a300f1c..000000000 --- a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyResource.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.wildfly.swarm.examples.jaxrs.msc; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -import org.joda.time.DateTime; - -/** - * @author Bob McWhirter - */ -@Path("/") -public class MyResource { - - @GET - @Produces("text/plain") - public String get() { - return "Howdy at " + new DateTime(); - } -} diff --git a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyService.java b/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyService.java deleted file mode 100644 index 6b901a7eb..000000000 --- a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyService.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.wildfly.swarm.examples.jaxrs.msc; - -import org.jboss.msc.service.Service; -import org.jboss.msc.service.StartContext; -import org.jboss.msc.service.StartException; -import org.jboss.msc.service.StopContext; -import org.joda.time.DateTime; - -/** - * @author Bob McWhirter - */ -public class MyService implements Service { - - private final String message; - - private Thread thread; - - private boolean shouldRun; - - public MyService(String message) { - this.message = message; - } - - public void start(final StartContext startContext) throws StartException { - startContext.asynchronous(); - this.shouldRun = true; - this.thread = new Thread(new Runnable() { - public void run() { - startContext.complete(); - - while (shouldRun) { - System.err.println(message + " at " + new DateTime() ); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - break; - } - } - - } - }); - - this.thread.start(); - } - - public void stop(StopContext stopContext) { - this.shouldRun = false; - } - - public Void getValue() throws IllegalStateException, IllegalArgumentException { - return null; - } -} - diff --git a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyServiceActivator.java b/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyServiceActivator.java deleted file mode 100644 index 5c8611d44..000000000 --- a/jaxrs-msc/src/main/java/org/wildfly/swarm/examples/jaxrs/msc/MyServiceActivator.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.wildfly.swarm.examples.jaxrs.msc; - -import org.jboss.msc.service.*; - -/** - * @author Bob McWhirter - */ -public class MyServiceActivator implements ServiceActivator { - public void activate(ServiceActivatorContext serviceActivatorContext) throws ServiceRegistryException { - - ServiceTarget target = serviceActivatorContext.getServiceTarget(); - - - MyService service = new MyService("Hi #1"); - target.addService(ServiceName.of("my", "service", "1"), service) - .install(); - - service = new MyService("Hi #2"); - target.addService(ServiceName.of("my", "service", "2"), service) - .install(); - - service = new MyService("Howdy #1"); - target.addService(ServiceName.of("my", "service", "3"), service) - .install(); - - service = new MyService("Howdy #2"); - target.addService(ServiceName.of("my", "service", "4"), service) - .install(); - - } -} diff --git a/pom.xml b/pom.xml index 6f95f9a98..ca1772872 100644 --- a/pom.xml +++ b/pom.xml @@ -148,6 +148,7 @@ base + datasource jaxrs jpa jsf