{
"all":{
"adapters":[
{
"name":"multiple-arquillian-adapters",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/multiple-arquillian-adapters"
}
],
"alternate":[
{
"name":"alternate-descriptors",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/alternate-descriptors"
}
],
"alternative":[
{
"name":"cdi-alternative-and-stereotypes",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/cdi-alternative-and-stereotypes"
}
],
"applet":[
{
"name":"applet",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/applet"
}
],
"applicationcomposer":[
{
"name":"applicationcomposer-jaxws-cdi",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/applicationcomposer-jaxws-cdi"
},
{
"name":"rest-applicationcomposer",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/rest-applicationcomposer"
},
{
"name":"application-composer",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/application-composer"
},
{
"name":"rest-applicationcomposer-mockito",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/rest-applicationcomposer-mockito"
}
],
"applicationexception":[
{
"name":"applicationexception",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/applicationexception"
}
],
"arquillian":[
{
"name":"arquillian-jpa",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/arquillian-jpa"
},
{
"name":"multiple-tomee-arquillian",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/multiple-tomee-arquillian"
},
{
"name":"multiple-arquillian-adapters",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/multiple-arquillian-adapters"
}
],
"async":[
{
"name":"async-postconstruct",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/async-postconstruct"
},
{
"name":"async-methods",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/async-methods"
}
],
"attachments":[
{
"name":"webservice-attachments",
"readme":"Title: Webservice Attachments\n\n*Help us document this example! Click the blue pencil icon in the upper right to edit this page.*\n\n## AttachmentImpl\n\n package org.superbiz.attachment;\n \n import javax.activation.DataHandler;\n import javax.activation.DataSource;\n import javax.ejb.Stateless;\n import javax.jws.WebService;\n import javax.xml.ws.BindingType;\n import javax.xml.ws.soap.SOAPBinding;\n import java.io.IOException;\n import java.io.InputStream;\n \n /**\n * This is an EJB 3 style pojo stateless session bean\n * Every stateless session bean implementation must be annotated\n * using the annotation @Stateless\n * This EJB has a single interface: {@link AttachmentWs} a webservice interface.\n */\n @Stateless\n @WebService(\n portName = \"AttachmentPort\",\n serviceName = \"AttachmentWsService\",\n targetNamespace = \"http://superbiz.org/wsdl\",\n endpointInterface = \"org.superbiz.attachment.AttachmentWs\")\n @BindingType(value = SOAPBinding.SOAP12HTTP_MTOM_BINDING)\n public class AttachmentImpl implements AttachmentWs {\n \n public String stringFromBytes(byte[] data) {\n return new String(data);\n }\n \n public String stringFromDataSource(DataSource source) {\n \n try {\n InputStream inStr = source.getInputStream();\n int size = inStr.available();\n byte[] data = new byte[size];\n inStr.read(data);\n inStr.close();\n return new String(data);\n } catch (IOException e) {\n e.printStackTrace();\n }\n return \"\";\n }\n \n public String stringFromDataHandler(DataHandler handler) {\n \n try {\n return (String) handler.getContent();\n } catch (IOException e) {\n e.printStackTrace();\n }\n return \"\";\n }\n }\n\n## AttachmentWs\n\n package org.superbiz.attachment;\n \n import javax.activation.DataHandler;\n import javax.jws.WebService;\n \n /**\n * This is an EJB 3 webservice interface to send attachments throughout SAOP.\n */\n @WebService(targetNamespace = \"http://superbiz.org/wsdl\")\n public interface AttachmentWs {\n \n public String stringFromBytes(byte[] data);\n \n // Not working at the moment with SUN saaj provider and CXF\n //public String stringFromDataSource(DataSource source);\n \n public String stringFromDataHandler(DataHandler handler);\n }\n\n## ejb-jar.xml\n\n \n\n## AttachmentTest\n\n package org.superbiz.attachment;\n \n import junit.framework.TestCase;\n \n import javax.activation.DataHandler;\n import javax.activation.DataSource;\n import javax.mail.util.ByteArrayDataSource;\n import javax.naming.Context;\n import javax.naming.InitialContext;\n import javax.xml.namespace.QName;\n import javax.xml.ws.BindingProvider;\n import javax.xml.ws.Service;\n import javax.xml.ws.soap.SOAPBinding;\n import java.net.URL;\n import java.util.Properties;\n \n public class AttachmentTest extends TestCase {\n \n //START SNIPPET: setup\t\n private InitialContext initialContext;\n \n protected void setUp() throws Exception {\n \n Properties properties = new Properties();\n properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, \"org.apache.openejb.core.LocalInitialContextFactory\");\n properties.setProperty(\"openejb.embedded.remotable\", \"true\");\n \n initialContext = new InitialContext(properties);\n }\n //END SNIPPET: setup \n \n /**\n * Create a webservice client using wsdl url\n *\n * @throws Exception\n */\n //START SNIPPET: webservice\n public void testAttachmentViaWsInterface() throws Exception {\n Service service = Service.create(\n new URL(\"http://127.0.0.1:4204/AttachmentImpl?wsdl\"),\n new QName(\"http://superbiz.org/wsdl\", \"AttachmentWsService\"));\n assertNotNull(service);\n \n AttachmentWs ws = service.getPort(AttachmentWs.class);\n \n // retrieve the SOAPBinding\n SOAPBinding binding = (SOAPBinding) ((BindingProvider) ws).getBinding();\n binding.setMTOMEnabled(true);\n \n String request = \"tsztelak@gmail.com\";\n \n // Byte array\n String response = ws.stringFromBytes(request.getBytes());\n assertEquals(request, response);\n \n // Data Source\n DataSource source = new ByteArrayDataSource(request.getBytes(), \"text/plain; charset=UTF-8\");\n \n // not yet supported !\n // response = ws.stringFromDataSource(source);\n // assertEquals(request, response);\n \n // Data Handler\n response = ws.stringFromDataHandler(new DataHandler(source));\n assertEquals(request, response);\n }\n //END SNIPPET: webservice\n }\n\n# Running\n\n \n -------------------------------------------------------\n T E S T S\n -------------------------------------------------------\n Running org.superbiz.attachment.AttachmentTest\n Apache OpenEJB 4.0.0-beta-1 build: 20111002-04:06\n http://tomee.apache.org/\n INFO - openejb.home = /Users/dblevins/examples/webservice-attachments\n INFO - openejb.base = /Users/dblevins/examples/webservice-attachments\n INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)\n INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)\n INFO - Found EjbModule in classpath: /Users/dblevins/examples/webservice-attachments/target/classes\n INFO - Beginning load: /Users/dblevins/examples/webservice-attachments/target/classes\n INFO - Configuring enterprise application: /Users/dblevins/examples/webservice-attachments/classpath.ear\n INFO - Configuring Service(id=Default Stateless Container, type=Container, provider-id=Default Stateless Container)\n INFO - Auto-creating a container for bean AttachmentImpl: Container(type=STATELESS, id=Default Stateless Container)\n INFO - Enterprise application \"/Users/dblevins/examples/webservice-attachments/classpath.ear\" loaded.\n INFO - Assembling app: /Users/dblevins/examples/webservice-attachments/classpath.ear\n INFO - Created Ejb(deployment-id=AttachmentImpl, ejb-name=AttachmentImpl, container=Default Stateless Container)\n INFO - Started Ejb(deployment-id=AttachmentImpl, ejb-name=AttachmentImpl, container=Default Stateless Container)\n INFO - Deployed Application(path=/Users/dblevins/examples/webservice-attachments/classpath.ear)\n INFO - Initializing network services\n INFO - Creating ServerService(id=httpejbd)\n INFO - Creating ServerService(id=cxf)\n INFO - Creating ServerService(id=admin)\n INFO - Creating ServerService(id=ejbd)\n INFO - Creating ServerService(id=ejbds)\n INFO - Initializing network services\n ** Starting Services **\n NAME IP PORT \n httpejbd 127.0.0.1 4204 \n admin thread 127.0.0.1 4200 \n ejbd 127.0.0.1 4201 \n ejbd 127.0.0.1 4203 \n -------\n Ready!\n Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.034 sec\n \n Results :\n \n Tests run: 1, Failures: 0, Errors: 0, Skipped: 0\n \n",
"url":"https://github.com/apache/tomee/tree/master/examples/webservice-attachments"
}
],
"bmt":[
{
"name":"testing-transactions-bmt",
"readme":"Title: Testing Transactions BMT\n\nShows how to begin, commit and rollback transactions using a UserTransaction via a Stateful Bean.\n\n## Movie\n\n package org.superbiz.injection.tx;\n\n import javax.persistence.Entity;\n import javax.persistence.GeneratedValue;\n import javax.persistence.Id;\n\n @Entity\n public class Movie {\n\n @Id\n @GeneratedValue\n private Long id;\n private String director;\n private String title;\n private int year;\n\n public Movie(String director, String title, int year) {\n this.director = director;\n this.title = title;\n this.year = year;\n }\n\n public Movie() {\n\n }\n\n public Long getId() {\n return id;\n }\n\n public void setId(Long id) {\n this.id = id;\n }\n\n public String getDirector() {\n return director;\n }\n\n public void setDirector(String director) {\n this.director = director;\n }\n\n public String getTitle() {\n return title;\n }\n\n public void setTitle(String title) {\n this.title = title;\n }\n\n public int getYear() {\n return year;\n }\n\n public void setYear(int year) {\n this.year = year;\n }\n }\n\n## Movies\n\n package org.superbiz.injection.tx;\n\n import javax.annotation.Resource;\n import javax.ejb.Stateful;\n import javax.ejb.TransactionManagement;\n import javax.ejb.TransactionManagementType;\n import javax.persistence.EntityManager;\n import javax.persistence.PersistenceContext;\n import javax.persistence.PersistenceContextType;\n import javax.persistence.Query;\n import javax.transaction.UserTransaction;\n\n @Stateful(name = \"Movies\")\n @TransactionManagement(TransactionManagementType.BEAN)\n public class Movies {\n\n @PersistenceContext(unitName = \"movie-unit\", type = PersistenceContextType.TRANSACTION)\n private EntityManager entityManager;\n\n @Resource\n private UserTransaction userTransaction;\n\n public void addMovie(Movie movie) throws Exception {\n try {\n userTransaction.begin();\n entityManager.persist(movie);\n\n //For some dummy reason, this db can have only 5 titles. :O)\n if (countMovies() > 5) {\n userTransaction.rollback();\n } else {\n userTransaction.commit();\n }\n\n\n } catch (Exception e) {\n e.printStackTrace();\n userTransaction.rollback();\n }\n }\n\n public Long countMovies() throws Exception {\n Query query = entityManager.createQuery(\"SELECT COUNT(m) FROM Movie m\");\n return Long.class.cast(query.getSingleResult());\n }\n }\n\n\n## persistence.xml\n\n \n\n \n movieDatabase\n movieDatabaseUnmanaged\n org.superbiz.injection.tx.Movie\n\n \n \n \n \n \n\n## MoviesTest\n\n package org.superbiz.injection.tx;\n\n import org.junit.Assert;\n import org.junit.Test;\n\n import javax.ejb.EJB;\n import javax.ejb.embeddable.EJBContainer;\n import java.util.Properties;\n\n public class MoviesTest {\n\n @EJB\n private Movies movies;\n\n @Test\n public void testMe() throws Exception {\n final Properties p = new Properties();\n p.put(\"movieDatabase\", \"new://Resource?type=DataSource\");\n p.put(\"movieDatabase.JdbcDriver\", \"org.hsqldb.jdbcDriver\");\n p.put(\"movieDatabase.JdbcUrl\", \"jdbc:hsqldb:mem:moviedb\");\n\n EJBContainer.createEJBContainer(p).getContext().bind(\"inject\", this);\n\n movies.addMovie(new Movie(\"Asif Kapadia\", \"Senna\", 2010));\n movies.addMovie(new Movie(\"José Padilha\", \"Tropa de Elite\", 2007));\n movies.addMovie(new Movie(\"Andy Wachowski/Lana Wachowski\", \"The Matrix\", 1999));\n movies.addMovie(new Movie(\"Quentin Tarantino\", \"Reservoir Dogs\", 1992));\n movies.addMovie(new Movie(\"Joel Coen\", \"Fargo\", 1996));\n movies.addMovie(new Movie(\"Joel Coen\", \"The Big Lebowski\", 1998));\n\n Assert.assertEquals(5L, movies.countMovies().longValue());\n }\n\n }\n\n\n# Running\n\n -------------------------------------------------------\n T E S T S\n -------------------------------------------------------\n Running org.superbiz.injection.tx.MoviesTest\n INFO - ********************************************************************************\n INFO - OpenEJB http://tomee.apache.org/\n INFO - Startup: Sat Jul 21 16:39:28 EDT 2012\n INFO - Copyright 1999-2012 (C) Apache OpenEJB Project, All Rights Reserved.\n INFO - Version: 4.1.0\n INFO - Build date: 20120721\n INFO - Build time: 12:06\n INFO - ********************************************************************************\n INFO - openejb.home = /home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt\n INFO - openejb.base = /home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt\n INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@3f3f210f\n INFO - Succeeded in installing singleton service\n INFO - Using 'javax.ejb.embeddable.EJBContainer=true'\n INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed.\n INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)\n INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)\n INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database)\n INFO - Creating TransactionManager(id=Default Transaction Manager)\n INFO - Creating SecurityService(id=Default Security Service)\n INFO - Creating Resource(id=movieDatabase)\n INFO - Beginning load: /home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt/target/classes\n INFO - Configuring enterprise application: /home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt\n WARNING - Method 'lookup' is not available for 'javax.annotation.Resource'. Probably using an older Runtime.\n INFO - Auto-deploying ejb Movies: EjbDeployment(deployment-id=Movies)\n INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container)\n INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container)\n INFO - Creating Container(id=Default Stateful Container)\n INFO - Using directory /tmp for stateful session passivation\n INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)\n INFO - Auto-creating a container for bean org.superbiz.injection.tx.MoviesTest: Container(type=MANAGED, id=Default Managed Container)\n INFO - Creating Container(id=Default Managed Container)\n INFO - Using directory /tmp for stateful session passivation\n INFO - Configuring PersistenceUnit(name=movie-unit)\n INFO - Auto-creating a Resource with id 'movieDatabaseNonJta' of type 'DataSource for 'movie-unit'.\n INFO - Configuring Service(id=movieDatabaseNonJta, type=Resource, provider-id=movieDatabase)\n INFO - Creating Resource(id=movieDatabaseNonJta)\n INFO - Adjusting PersistenceUnit movie-unit to Resource ID 'movieDatabaseNonJta' from 'movieDatabaseUnmanaged'\n INFO - Enterprise application \"/home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt\" loaded.\n INFO - Assembling app: /home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt\n SEVERE - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested installation of a ClassFileTransformer which requires a JavaAgent. See http://tomee.apache.org/3.0/javaagent.html\n INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) - provider time 399ms\n INFO - Jndi(name=\"java:global/testing-transactions-bmt/Movies!org.superbiz.injection.tx.Movies\")\n INFO - Jndi(name=\"java:global/testing-transactions-bmt/Movies\")\n INFO - Existing thread singleton service in SystemInstance() org.apache.openejb.cdi.ThreadSingletonServiceImpl@3f3f210f\n INFO - OpenWebBeans Container is starting...\n INFO - Adding OpenWebBeansPlugin : [CdiPlugin]\n INFO - All injection points are validated successfully.\n INFO - OpenWebBeans Container has started, it took 157 ms.\n INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)\n INFO - Started Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container)\n INFO - Deployed Application(path=/home/boto/dev/ws/openejb_trunk/openejb/examples/testing-transactions-bmt)\n INFO - Started user transaction org.apache.geronimo.transaction.manager.TransactionImpl@709a1411\n 21-Jul-2012 4:39:32 PM null openjpa.Runtime\n INFO: Starting OpenJPA 2.2.0\n 21-Jul-2012 4:39:32 PM null openjpa.jdbc.JDBC\n INFO: Using dictionary class \"org.apache.openjpa.jdbc.sql.HSQLDictionary\" (HSQL Database Engine 2.2.8 ,HSQL Database Engine Driver 2.2.8).\n 21-Jul-2012 4:39:33 PM null openjpa.Enhance\n INFO: Creating subclass and redefining methods for \"[class org.superbiz.injection.tx.Movie]\". This means that your application will be less efficient than it would if you ran the OpenJPA enhancer.\n INFO - Committing user transaction org.apache.geronimo.transaction.manager.TransactionImpl@709a1411\n INFO - Started user transaction org.apache.geronimo.transaction.manager.TransactionImpl@2bb64b70\n INFO - Committing user transaction org.apache.geronimo.transaction.manager.TransactionImpl@2bb64b70\n INFO - Started user transaction org.apache.geronimo.transaction.manager.TransactionImpl@627b5c\n INFO - Committing user transaction org.apache.geronimo.transaction.manager.TransactionImpl@627b5c\n INFO - Started user transaction org.apache.geronimo.transaction.manager.TransactionImpl@2f031310\n INFO - Committing user transaction org.apache.geronimo.transaction.manager.TransactionImpl@2f031310\n INFO - Started user transaction org.apache.geronimo.transaction.manager.TransactionImpl@4df2a9da\n INFO - Committing user transaction org.apache.geronimo.transaction.manager.TransactionImpl@4df2a9da\n INFO - Started user transaction org.apache.geronimo.transaction.manager.TransactionImpl@3fa9b4a4\n INFO - Rolling back user transaction org.apache.geronimo.transaction.manager.TransactionImpl@3fa9b4a4\n Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.471 sec\n\n Results :\n\n Tests run: 1, Failures: 0, Errors: 0, Skipped: 0\n",
"url":"https://github.com/apache/tomee/tree/master/examples/testing-transactions-bmt"
}
],
"bval":[
{
"name":"bval-evaluation-redeployment",
"readme":"No README.md yet, be the first to contribute one!",
"url":"https://github.com/apache/tomee/tree/master/examples/bval-evaluation-redeployment"
}
],
"callbacks":[
{
"name":"simple-stateful-callbacks",
"readme":"Title: Simple Stateful with callback methods\n\nThis example shows how to create a stateful session bean that uses the @PrePassivate, @PostActivate, @PostConstruct, @PreDestroy and @AroundInvoke annotations.\n\n## CallbackCounter\n\n package org.superbiz.counter;\n\n import javax.annotation.PostConstruct;\n import javax.annotation.PreDestroy;\n import javax.ejb.PostActivate;\n import javax.ejb.PrePassivate;\n import javax.ejb.Stateful;\n import javax.ejb.StatefulTimeout;\n import javax.interceptor.AroundInvoke;\n import javax.interceptor.InvocationContext;\n import java.io.Serializable;\n import java.util.concurrent.TimeUnit;\n\n @Stateful\n @StatefulTimeout(value = 1, unit = TimeUnit.SECONDS)\n public class CallbackCounter implements Serializable {\n\n private int count = 0;\n\n @PrePassivate\n public void prePassivate() {\n ExecutionChannel.getInstance().notifyObservers(\"prePassivate\");\n }\n\n @PostActivate\n public void postActivate() {\n ExecutionChannel.getInstance().notifyObservers(\"postActivate\");\n }\n\n @PostConstruct\n public void postConstruct() {\n ExecutionChannel.getInstance().notifyObservers(\"postConstruct\");\n }\n\n @PreDestroy\n public void preDestroy() {\n ExecutionChannel.getInstance().notifyObservers(\"preDestroy\");\n }\n\n @AroundInvoke\n public Object intercept(InvocationContext ctx) throws Exception {\n ExecutionChannel.getInstance().notifyObservers(ctx.getMethod().getName());\n return ctx.proceed();\n }\n\n public int count() {\n return count;\n }\n\n public int increment() {\n return ++count;\n }\n\n public int reset() {\n return (count = 0);\n }\n }\n\n## ExecutionChannel\n\n package org.superbiz.counter;\n\n import java.util.ArrayList;\n import java.util.List;\n\n public class ExecutionChannel {\n private static final ExecutionChannel INSTANCE = new ExecutionChannel();\n\n private final List observers = new ArrayList();\n\n public static ExecutionChannel getInstance() {\n return INSTANCE;\n }\n\n public void addObserver(ExecutionObserver observer) {\n this.observers.add(observer);\n }\n\n public void notifyObservers(Object value) {\n for (ExecutionObserver observer : this.observers) {\n observer.onExecution(value);\n }\n }\n }\n\n## ExecutionObserver\n\n package org.superbiz.counter;\n\n public interface ExecutionObserver {\n\n void onExecution(Object value);\n\n }\n\n## CounterCallbacksTest\n\n package org.superbiz.counter;\n\n import junit.framework.Assert;\n import org.junit.Test;\n\n import javax.ejb.embeddable.EJBContainer;\n import javax.naming.Context;\n import javax.naming.InitialContext;\n import javax.naming.NamingException;\n import java.util.*;\n\n public class CounterCallbacksTest implements ExecutionObserver {\n private static List