You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2012/02/19 21:55:30 UTC

svn commit: r1291058 - in /openejb/trunk/openejb/examples: persistence-fragment/README.md simple-mdb-and-cdi/README.md simple-webservice-without-interface/README.md

Author: dblevins
Date: Sun Feb 19 20:55:29 2012
New Revision: 1291058

URL: http://svn.apache.org/viewvc?rev=1291058&view=rev
Log:
added boiler plate template

Added:
    openejb/trunk/openejb/examples/persistence-fragment/README.md
    openejb/trunk/openejb/examples/simple-mdb-and-cdi/README.md
    openejb/trunk/openejb/examples/simple-webservice-without-interface/README.md

Added: openejb/trunk/openejb/examples/persistence-fragment/README.md
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/persistence-fragment/README.md?rev=1291058&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/persistence-fragment/README.md (added)
+++ openejb/trunk/openejb/examples/persistence-fragment/README.md Sun Feb 19 20:55:29 2012
@@ -0,0 +1,122 @@
+Title: Persistence Fragment
+
+*Help us document this example! Source available in [svn](http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/persistence-fragment) or [git](https://github.com/apache/openejb/tree/trunk/openejb/examples/persistence-fragment). Open a [JIRA](https://issues.apache.org/jira/browse/TOMEE) with patch or pull request*
+
+## Movie
+
+    package org.superbiz.injection.jpa;
+    
+    import javax.persistence.Entity;
+    import javax.persistence.GeneratedValue;
+    import javax.persistence.Id;
+    
+    @Entity
+    public class Movie {
+        @Id
+        @GeneratedValue
+        private long id;
+        private String director;
+        private String title;
+        private int year;
+    
+        public Movie() {
+            // no-op
+        }
+    
+        public Movie(String director, String title, int year) {
+            this.director = director;
+            this.title = title;
+            this.year = year;
+        }
+    
+        public long getId() {
+            return id;
+        }
+    
+        public String getDirector() {
+            return director;
+        }
+    
+        public void setDirector(String director) {
+            this.director = director;
+        }
+    
+        public String getTitle() {
+            return title;
+        }
+    
+        public void setTitle(String title) {
+            this.title = title;
+        }
+    
+        public int getYear() {
+            return year;
+        }
+    
+        public void setYear(int year) {
+            this.year = year;
+        }
+    }
+
+## persistence-fragment.xml
+
+    <persistence-fragment version="2.0">
+      <persistence-unit-fragment name="movie-unit">
+        <class>org.superbiz.injection.jpa.Movie</class>
+        <exclude-unlisted-classes>true</exclude-unlisted-classes>
+      </persistence-unit-fragment>
+    </persistence-fragment>
+    
+
+## MoviesTest
+
+    package org.superbiz.injection.jpa;
+    
+    import org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory;
+    import org.junit.Test;
+    
+    import javax.ejb.embeddable.EJBContainer;
+    import javax.naming.Context;
+    import javax.persistence.EntityManagerFactory;
+    import javax.persistence.PersistenceUnit;
+    import java.util.Properties;
+    
+    import static org.junit.Assert.assertTrue;
+    
+    public class MoviesTest {
+        @PersistenceUnit
+        private EntityManagerFactory emf;
+    
+        @Test
+        public void test() throws Exception {
+            final Properties p = new Properties();
+            p.put("movieDatabase", "new://Resource?type=DataSource");
+            p.put("movieDatabase.JdbcDriver", "org.hsqldb.jdbcDriver");
+            p.put("movieDatabase.JdbcUrl", "jdbc:hsqldb:mem:moviedb");
+    
+            final EJBContainer container = EJBContainer.createEJBContainer(p);
+            final Context context = container.getContext();
+            context.bind("inject", this);
+    
+            assertTrue(((ReloadableEntityManagerFactory) emf).getManagedClasses().contains(Movie.class.getName()));
+    
+            container.close();
+        }
+    }
+
+## persistence.xml
+
+    <persistence version="2.0"
+                 xmlns="http://java.sun.com/xml/ns/persistence"
+                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
+                           http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+      <persistence-unit name="movie-unit">
+        <jta-data-source>movieDatabase</jta-data-source>
+        <non-jta-data-source>movieDatabaseUnmanaged</non-jta-data-source>
+        <properties>
+          <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
+        </properties>
+      </persistence-unit>
+    </persistence>
+    

Added: openejb/trunk/openejb/examples/simple-mdb-and-cdi/README.md
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/simple-mdb-and-cdi/README.md?rev=1291058&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/simple-mdb-and-cdi/README.md (added)
+++ openejb/trunk/openejb/examples/simple-mdb-and-cdi/README.md Sun Feb 19 20:55:29 2012
@@ -0,0 +1,185 @@
+Title: Simple MDB and CDI
+
+*Help us document this example! Source available in [svn](http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/simple-mdb-and-cdi) or [git](https://github.com/apache/openejb/tree/trunk/openejb/examples/simple-mdb-and-cdi). Open a [JIRA](https://issues.apache.org/jira/browse/TOMEE) with patch or pull request*
+
+## ChatBean
+
+    package org.superbiz.mdb;
+    
+    import javax.annotation.Resource;
+    import javax.ejb.MessageDriven;
+    import javax.inject.Inject;
+    import javax.jms.Connection;
+    import javax.jms.ConnectionFactory;
+    import javax.jms.DeliveryMode;
+    import javax.jms.JMSException;
+    import javax.jms.Message;
+    import javax.jms.MessageListener;
+    import javax.jms.MessageProducer;
+    import javax.jms.Queue;
+    import javax.jms.Session;
+    import javax.jms.TextMessage;
+    
+    @MessageDriven
+    public class ChatBean implements MessageListener {
+    
+        @Resource
+        private ConnectionFactory connectionFactory;
+    
+        @Resource(name = "AnswerQueue")
+        private Queue answerQueue;
+    
+        @Inject
+        private ChatRespondCreator responder;
+    
+        public void onMessage(Message message) {
+            try {
+    
+                final TextMessage textMessage = (TextMessage) message;
+                final String question = textMessage.getText();
+                final String response = responder.respond(question);
+    
+                if (response != null) {
+                    respond(response);
+                }
+            } catch (JMSException e) {
+                throw new IllegalStateException(e);
+            }
+        }
+    
+        private void respond(String text) throws JMSException {
+    
+            Connection connection = null;
+            Session session = null;
+    
+            try {
+                connection = connectionFactory.createConnection();
+                connection.start();
+    
+                // Create a Session
+                session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+    
+                // Create a MessageProducer from the Session to the Topic or Queue
+                MessageProducer producer = session.createProducer(answerQueue);
+                producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
+    
+                // Create a message
+                TextMessage message = session.createTextMessage(text);
+    
+                // Tell the producer to send the message
+                producer.send(message);
+            } finally {
+                // Clean up
+                if (session != null) session.close();
+                if (connection != null) connection.close();
+            }
+        }
+    }
+
+## ChatRespondCreator
+
+    package org.superbiz.mdb;
+    
+    public class ChatRespondCreator {
+        public String respond(String question) {
+            if ("Hello World!".equals(question)) {
+                return "Hello, Test Case!";
+            } else if ("How are you?".equals(question)) {
+                return "I'm doing well.";
+            } else if ("Still spinning?".equals(question)) {
+                return "Once every day, as usual.";
+            }
+            return null;
+        }
+    }
+
+## beans.xml
+
+    <!--
+    
+        Licensed to the Apache Software Foundation (ASF) under one or more
+        contributor license agreements.  See the NOTICE file distributed with
+        this work for additional information regarding copyright ownership.
+        The ASF licenses this file to You under the Apache License, Version 2.0
+        (the "License"); you may not use this file except in compliance with
+        the License.  You may obtain a copy of the License at
+    
+           http://www.apache.org/licenses/LICENSE-2.0
+        Unless required by applicable law or agreed to in writing, software
+        distributed under the License is distributed on an "AS IS" BASIS,
+        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+        See the License for the specific language governing permissions and
+        limitations under the License.
+    -->
+    
+    <beans/>
+    
+
+## ChatBeanTest
+
+    package org.superbiz.mdb;
+    
+    import junit.framework.TestCase;
+    
+    import javax.annotation.Resource;
+    import javax.ejb.embeddable.EJBContainer;
+    import javax.jms.Connection;
+    import javax.jms.ConnectionFactory;
+    import javax.jms.JMSException;
+    import javax.jms.MessageConsumer;
+    import javax.jms.MessageProducer;
+    import javax.jms.Queue;
+    import javax.jms.Session;
+    import javax.jms.TextMessage;
+    
+    public class ChatBeanTest extends TestCase {
+    
+        @Resource
+        private ConnectionFactory connectionFactory;
+    
+        @Resource(name = "ChatBean")
+        private Queue questionQueue;
+    
+        @Resource(name = "AnswerQueue")
+        private Queue answerQueue;
+    
+        public void test() throws Exception {
+            EJBContainer.createEJBContainer().getContext().bind("inject", this);
+    
+    
+            final Connection connection = connectionFactory.createConnection();
+    
+            connection.start();
+    
+            final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+    
+            final MessageProducer questions = session.createProducer(questionQueue);
+    
+            final MessageConsumer answers = session.createConsumer(answerQueue);
+    
+    
+            sendText("Hello World!", questions, session);
+    
+            assertEquals("Hello, Test Case!", receiveText(answers));
+    
+    
+            sendText("How are you?", questions, session);
+    
+            assertEquals("I'm doing well.", receiveText(answers));
+    
+    
+            sendText("Still spinning?", questions, session);
+    
+            assertEquals("Once every day, as usual.", receiveText(answers));
+        }
+    
+        private void sendText(String text, MessageProducer questions, Session session) throws JMSException {
+    
+            questions.send(session.createTextMessage(text));
+        }
+    
+        private String receiveText(MessageConsumer answers) throws JMSException {
+    
+            return ((TextMessage) answers.receive(1000)).getText();
+        }
+    }

Added: openejb/trunk/openejb/examples/simple-webservice-without-interface/README.md
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/simple-webservice-without-interface/README.md?rev=1291058&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/simple-webservice-without-interface/README.md (added)
+++ openejb/trunk/openejb/examples/simple-webservice-without-interface/README.md Sun Feb 19 20:55:29 2012
@@ -0,0 +1,83 @@
+Title: Simple Webservice Without Interface
+
+*Help us document this example! Source available in [svn](http://svn.apache.org/repos/asf/openejb/trunk/openejb/examples/simple-webservice-without-interface) or [git](https://github.com/apache/openejb/tree/trunk/openejb/examples/simple-webservice-without-interface). Open a [JIRA](https://issues.apache.org/jira/browse/TOMEE) with patch or pull request*
+
+## Calculator
+
+    package org.superbiz.calculator;
+    
+    import javax.ejb.Stateless;
+    import javax.jws.WebService;
+    
+    @Stateless
+    @WebService(
+            portName = "CalculatorPort",
+            serviceName = "CalculatorWsService",
+            targetNamespace = "http://superbiz.org/wsdl")
+    public class Calculator {
+        public int sum(int add1, int add2) {
+            return add1 + add2;
+        }
+    
+        public int multiply(int mul1, int mul2) {
+            return mul1 * mul2;
+        }
+    }
+
+## ejb-jar.xml
+
+    <ejb-jar/>
+
+## CalculatorTest
+
+    package org.superbiz.calculator;
+    
+    import org.apache.commons.io.IOUtils;
+    import org.junit.AfterClass;
+    import org.junit.Before;
+    import org.junit.BeforeClass;
+    import org.junit.Test;
+    
+    import javax.ejb.embeddable.EJBContainer;
+    import javax.naming.NamingException;
+    import java.net.URL;
+    import java.util.Properties;
+    
+    import static org.junit.Assert.assertTrue;
+    
+    public class CalculatorTest {
+        private static EJBContainer container;
+    
+        @BeforeClass
+        public static void setUp() throws Exception {
+            final Properties properties = new Properties();
+            properties.setProperty("openejb.embedded.remotable", "true");
+    
+            container = EJBContainer.createEJBContainer(properties);
+        }
+    
+        @Before
+        public void inject() throws NamingException {
+            if (container != null) {
+                container.getContext().bind("inject", this);
+            }
+        }
+    
+        @AfterClass
+        public static void close() {
+            if (container != null) {
+                container.close();
+            }
+        }
+    
+        @Test
+        public void wsdlExists() throws Exception {
+            final URL url = new URL("http://127.0.0.1:4204/Calculator?wsdl");
+            assertTrue(IOUtils.readLines(url.openStream()).size() > 0);
+            assertTrue(IOUtils.readLines(url.openStream()).toString().contains("CalculatorWsService"));
+        }
+    }
+
+## ejb-jar.xml
+
+    <ejb-jar/>