Skip to content

Commit

Permalink
added a simple CDI SE sample.
Browse files Browse the repository at this point in the history
  • Loading branch information
hantsy committed Aug 5, 2017
1 parent 6d54a2a commit 0aeb226
Show file tree
Hide file tree
Showing 11 changed files with 200 additions and 8 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -11,4 +11,5 @@ nb*.xml
*.jar
*.war
*.ear
target/
target/
/cdi-se/nbproject/
68 changes: 68 additions & 0 deletions cdi-se/pom.xml
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hantsylabs.example.ee8</groupId>
<artifactId>ee8-sandbox</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>cdi-se</artifactId>
<packaging>jar</packaging>
<name>CDI 2.0: Java SE example</name>
<dependencies>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>3.0.0.Final</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.jboss.weld.environment.se.StartMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>org.jboss.weld.environment.se.StartMain</mainClass>
<arguments>
<argument>${name}</argument>
</arguments>
</configuration>
<executions>
<execution>
<id>run</id>
<phase>package</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
</plugin>-->
</plugins>
</build>
</project>
22 changes: 22 additions & 0 deletions cdi-se/src/main/java/com/hantsylabs/example/ee8/cdi/Greeter.java
@@ -0,0 +1,22 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.hantsylabs.example.ee8.cdi;

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;

/**
*
* @author hantsy
*/
@Named
@ApplicationScoped
public class Greeter {

public void say(String name) {
System.out.println("Hi, " + name);
}
}
3 changes: 3 additions & 0 deletions cdi-se/src/main/resources/META-INF/beans.xml
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans>
</beans>
@@ -0,0 +1,78 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.hantsylabs.example.ee8.cdi;

import java.util.Set;
import javax.enterprise.inject.se.SeContainer;
import javax.enterprise.inject.se.SeContainerInitializer;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.Extension;
import org.jboss.weld.environment.se.ContainerLifecycleObserver;
import static org.jboss.weld.environment.se.ContainerLifecycleObserver.afterBeanDiscovery;
import static org.jboss.weld.environment.se.ContainerLifecycleObserver.processAnnotatedType;
import org.jboss.weld.environment.se.Weld;
import org.jboss.weld.environment.se.WeldContainer;
import org.jboss.weld.exceptions.UnsatisfiedResolutionException;
import org.junit.After;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;

/**
*
* @author hantsy
*/
public class GreeterTest {

public GreeterTest() {
}

SeContainer container;

@Before
public void setUp() {
}

@After
public void tearDown() {
}

@Test
public void bootBasicContainer() {
SeContainerInitializer initializer = SeContainerInitializer.newInstance();
try (SeContainer container = initializer.initialize()) {
assertTrue(container.isRunning());
Set<Bean<?>> greeters = container.getBeanManager().getBeans("greeter");
assertTrue(greeters.size() == 1);
}
}

@Test
public void bootstrapWeldContainer() {
Weld weld = new Weld();

try (WeldContainer container = weld.initialize()) {
Greeter greeter = container.select(Greeter.class).get();
assertTrue(greeter != null);
}
}

@Test(expected = UnsatisfiedResolutionException.class)
public void bootWeldSeContainer() {
Extension testExtension = ContainerLifecycleObserver.extensionBuilder()
.add(afterBeanDiscovery((e) -> System.out.println("Bean discovery completed!")))
.add(processAnnotatedType().notify((e) -> {
if (e.getAnnotatedType().getJavaClass().getName().startsWith("com.hantsylab")) {
e.veto();
}
})).build();
try (WeldContainer container = new Weld().addExtension(testExtension).initialize()) {
Greeter greeter = container.select(Greeter.class).get();
//assertTrue(greeter == null);
}

}
}
4 changes: 2 additions & 2 deletions jsf/pom.xml
Expand Up @@ -35,15 +35,15 @@

<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<artifactId>javaee-api</artifactId>
<scope>provided</scope>
</dependency>

<!-- JSF 2.3 dependencies -->
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.3.1</version>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>

Expand Down
3 changes: 1 addition & 2 deletions jsf/src/main/webapp/WEB-INF/beans.xml
Expand Up @@ -2,6 +2,5 @@
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1"
bean-discovery-mode="all">
version="1.1">
</beans>
5 changes: 3 additions & 2 deletions jsf/src/main/webapp/WEB-INF/faces-config.xml
@@ -1,7 +1,8 @@
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.3" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd">
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd"
version="2.3">
<factory>
<exception-handler-factory>com.hantsylabs.example.ee8.jsf.faces.DefaultExceptionHandlerFactory</exception-handler-factory>
</factory>
Expand Down
4 changes: 4 additions & 0 deletions jsf/src/main/webapp/WEB-INF/jboss-web.xml
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web version="8.0" xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/schema/jbossas/jboss-web_8_0.xsd">
<context-root>/jsf</context-root>
</jboss-web>
15 changes: 15 additions & 0 deletions jsf/src/main/webapp/WEB-INF/web.xml
Expand Up @@ -19,8 +19,23 @@
<param-value>Development</param-value>
</context-param>

<context-param>
<param-name>javax.faces.validator.ENABLE_VALIDATE_WHOLE_BEAN</param-name>
<param-value>true</param-value>
</context-param>

<context-param>
<param-name>javax.faces.ENABLE_CDI_RESOLVER_CHAIN</param-name>
<param-value>true</param-value>
</context-param>

<context-param>
<param-name>javax.faces.ENABLE_WEBSOCKET_ENDPOINT</param-name>
<param-value>true</param-value>
</context-param>

<!-- <context-param>
<param-name>javax.faces.DISABLE_FACESSERVLET_TO_XHTML</param-name>
<param-value>true</param-name>
</context-param>-->
</web-app>
3 changes: 2 additions & 1 deletion pom.xml
Expand Up @@ -12,13 +12,14 @@
<module>mvc</module>
<module>mvc-facelets</module>
<module>jsf</module>
<module>cdi-se</module>
</modules>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<version.javaee-api>8.0-b8</version.javaee-api>
<version.javaee-api>8.0-b17</version.javaee-api>
</properties>

<dependencyManagement>
Expand Down

0 comments on commit 0aeb226

Please sign in to comment.