You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2008/01/10 21:48:39 UTC
svn commit: r610927 - in /openejb/trunk/openejb3: ./
assembly/openejb-standalone/ assembly/openejb-tomcat/openejb-tomcat-webapp/
assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/
container/openejb-core...
Author: dain
Date: Thu Jan 10 12:48:37 2008
New Revision: 610927
URL: http://svn.apache.org/viewvc?rev=610927&view=rev
Log:
Remove derby dependency
Added:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/OpenEJBBrokerFactory.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/OpenEjbBrokerFactoryTest.java
Modified:
openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml
openejb/trunk/openejb3/container/openejb-core/pom.xml
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsProxyTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/MdbTest.java
openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/SimpleJmsTest.java
openejb/trunk/openejb3/pom.xml
openejb/trunk/openejb3/server/openejb-activemq/pom.xml
openejb/trunk/openejb3/server/openejb-derbynet/pom.xml
openejb/trunk/openejb3/server/openejb-ejbd/pom.xml
openejb/trunk/openejb3/server/openejb-http/pom.xml
openejb/trunk/openejb3/server/openejb-webadmin/pom.xml
Modified: openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml Thu Jan 10 12:48:37 2008
@@ -188,10 +188,6 @@
<version>${version}</version>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-http</artifactId>
<version>${version}</version>
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/pom.xml Thu Jan 10 12:48:37 2008
@@ -167,10 +167,6 @@
<version>${version}</version>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-http</artifactId>
<version>${version}</version>
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-webapp/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml Thu Jan 10 12:48:37 2008
@@ -642,13 +642,16 @@
id="Default JMS Resource Adapter"
service="Resource"
types="ActiveMQResourceAdapter"
- class-name="org.apache.activemq.ra.ActiveMQResourceAdapter">
+ class-name="org.apache.openejb.resource.activemq.ActiveMQResourceAdapter">
# Broker configuration
BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false
# Broker address
ServerUrl vm://localhost?async=true
+
+ # DataSource for persistence messages
+ DataSource Default Unmanaged JDBC Database
# Specifies the size of the thread pool available to AciveMQ.
ThreadPoolSize 30
Modified: openejb/trunk/openejb3/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/pom.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/pom.xml Thu Jan 10 12:48:37 2008
@@ -303,11 +303,6 @@
<artifactId>junit</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Thu Jan 10 12:48:37 2008
@@ -955,6 +955,13 @@
resourceInfo.properties.setProperty("ResourceAdapter", newResourceId);
}
}
+ String dataSourceId = resourceInfo.properties.getProperty("DataSource");
+ if (dataSourceId != null) {
+ String newResourceId = getResourceId(beanName, dataSourceId, null, null);
+ if (dataSourceId != newResourceId) {
+ resourceInfo.properties.setProperty("DataSource", newResourceId);
+ }
+ }
configFactory.install(resourceInfo);
return resourceInfo.id;
Added: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java?rev=610927&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapter.java Thu Jan 10 12:48:37 2008
@@ -0,0 +1,73 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.openejb.resource.activemq;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Properties;
+import javax.resource.spi.BootstrapContext;
+import javax.resource.spi.ResourceAdapterInternalException;
+
+import org.apache.openejb.util.URISupport;
+
+
+public class ActiveMQResourceAdapter extends org.apache.activemq.ra.ActiveMQResourceAdapter {
+ private String dataSource;
+
+ public String getDataSource() {
+ return dataSource;
+ }
+
+ public void setDataSource(String dataSource) {
+ this.dataSource = dataSource;
+ }
+
+
+ public void start(BootstrapContext bootstrapContext) throws ResourceAdapterInternalException {
+ Properties properties = new Properties();
+
+ // add data source property
+ if (dataSource != null) {
+ properties.put("DataSource", dataSource);
+ }
+
+ // prefix server uri with openejb: so our broker factory is used
+ String brokerXmlConfig = getBrokerXmlConfig();
+ if (brokerXmlConfig != null) {
+ try {
+ URISupport.CompositeData compositeData = URISupport.parseComposite(new URI(brokerXmlConfig));
+ compositeData.getParameters().put("persistent", "false");
+ setBrokerXmlConfig("openejb:" + compositeData.toURI());
+ } catch (URISyntaxException e) {
+ throw new ResourceAdapterInternalException("Invalid BrokerXmlConfig", e);
+ }
+ }
+
+ OpenEjbBrokerFactory.setThreadProperties(properties);
+ try {
+ super.start(bootstrapContext);
+ } finally {
+ OpenEjbBrokerFactory.setThreadProperties(null);
+
+ // reset brokerXmlConfig
+ if (brokerXmlConfig != null) {
+ setBrokerXmlConfig(brokerXmlConfig);
+ }
+ }
+ }
+}
Added: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/OpenEJBBrokerFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/OpenEJBBrokerFactory.java?rev=610927&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/OpenEJBBrokerFactory.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/OpenEJBBrokerFactory.java Thu Jan 10 12:48:37 2008
@@ -0,0 +1,93 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.openejb.resource.activemq;
+
+import java.net.URI;
+import java.util.Map;
+import java.util.Properties;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+
+import org.apache.activemq.broker.BrokerFactory;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.store.jdbc.JDBCPersistenceAdapter;
+import org.apache.activemq.store.memory.MemoryPersistenceAdapter;
+
+public class OpenEjbBrokerFactory implements BrokerFactory.BrokerFactoryHandler {
+ private static final ThreadLocal<Properties> threadProperties = new ThreadLocal<Properties>();
+
+ public static void setThreadProperties(Properties value) {
+ threadProperties.set(value);
+ }
+
+ public BrokerService createBroker(URI brokerURI) throws Exception {
+ URI uri = new URI(brokerURI.getRawSchemeSpecificPart());
+ BrokerService broker = BrokerFactory.createBroker(uri);
+
+ Properties properties = getLowerCaseProperties();
+
+ Object value = properties.get("datasource");
+ if (value != null) {
+ DataSource dataSource;
+ if (value instanceof DataSource) {
+ dataSource = (DataSource) value;
+ } else {
+ String resouceId = (String) value;
+
+ try {
+ Context context = new InitialContext();
+ Object obj = context.lookup("java:openejb/Resource/" + resouceId);
+ if (!(obj instanceof DataSource)) {
+ throw new IllegalArgumentException("Resource with id " + resouceId +
+ " is not a DataSource, but is " + obj.getClass().getName());
+ }
+ dataSource = (DataSource) obj;
+ } catch (NamingException e) {
+ throw new IllegalArgumentException("Unknown datasource " + resouceId);
+ }
+ }
+
+ JDBCPersistenceAdapter persistenceAdapter = new JDBCPersistenceAdapter();
+ persistenceAdapter.setDataSource(dataSource);
+ broker.setPersistenceAdapter(persistenceAdapter);
+ } else {
+ MemoryPersistenceAdapter persistenceAdapter = new MemoryPersistenceAdapter();
+ broker.setPersistenceAdapter(persistenceAdapter);
+ }
+
+ return broker;
+ }
+
+
+ private Properties getLowerCaseProperties() {
+ Properties properties = threadProperties.get();
+ Properties newProperties = new Properties();
+ if (properties != null) {
+ for (Map.Entry<Object, Object> entry : properties.entrySet()) {
+ Object key = entry.getKey();
+ if (key instanceof String) {
+ key = ((String) key).toLowerCase();
+ }
+ newProperties.put(key, entry.getValue());
+ }
+ }
+ return newProperties;
+ }
+}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/URISupport.java Thu Jan 10 12:48:37 2008
@@ -23,12 +23,13 @@
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.List;
-import java.util.Arrays;
+import java.util.Map;
/**
* Swiped verbatim from ActiveMQ... the URI kings.
@@ -153,7 +154,7 @@
public static Map<String, String> parseQuery(String uri) throws URISyntaxException{
try{
- Map<String, String> rc=new HashMap<String,String>();
+ Map<String, String> rc = new LinkedHashMap<String,String>();
if(uri!=null){
String[] parameters=uri.split("&");
for(int i=0;i<parameters.length;i++){
@@ -244,7 +245,7 @@
} else {
if( params.length() > 0 )
rc.path = stripPrefix(params, "/");
- rc.parameters = Collections.EMPTY_MAP;
+ rc.parameters = new LinkedHashMap();
}
}
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Thu Jan 10 12:48:37 2008
@@ -635,13 +635,16 @@
id="Default JMS Resource Adapter"
service="Resource"
types="ActiveMQResourceAdapter"
- class-name="org.apache.activemq.ra.ActiveMQResourceAdapter">
+ class-name="org.apache.openejb.resource.activemq.ActiveMQResourceAdapter">
# Broker configuration
BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false
# Broker address
ServerUrl vm://localhost?async=true
+
+ # DataSource for persistence messages
+ DataSource Default Unmanaged JDBC Database
# Specifies the size of the thread pool available to AciveMQ.
ThreadPoolSize 30
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/MdbConfigTest.java Thu Jan 10 12:48:37 2008
@@ -52,6 +52,11 @@
assembler.createTransactionManager(config.configureService(TransactionServiceInfo.class));
assembler.createSecurityService(config.configureService(SecurityServiceInfo.class));
+ // JMS persistence datasource
+ ResourceInfo dataSourceInfo = config.configureService("Default Unmanaged JDBC Database", ResourceInfo.class);
+ dataSourceInfo.properties.setProperty("JdbcUrl", "jdbc:hsqldb:mem:MdbConfigTest");
+ assembler.createResource(dataSourceInfo);
+
// JMS
assembler.createResource(config.configureService("Default JMS Resource Adapter", ResourceInfo.class));
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsProxyTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsProxyTest.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsProxyTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsProxyTest.java Thu Jan 10 12:48:37 2008
@@ -17,25 +17,24 @@
*/
package org.apache.openejb.core.mdb;
-import junit.framework.TestCase;
-
-import javax.jms.ConnectionFactory;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
import javax.jms.Connection;
-import javax.jms.Session;
+import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageConsumer;
-import javax.resource.spi.work.WorkManager;
+import javax.jms.Session;
import javax.resource.spi.BootstrapContext;
import javax.resource.spi.ResourceAdapterInternalException;
+import javax.resource.spi.work.WorkManager;
-import org.apache.activemq.ra.ActiveMQResourceAdapter;
+import junit.framework.TestCase;
import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
-import org.apache.geronimo.connector.work.GeronimoWorkManager;
import org.apache.geronimo.connector.GeronimoBootstrapContext;
+import org.apache.geronimo.connector.work.GeronimoWorkManager;
+import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
import org.apache.openejb.OpenEJBException;
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
+import org.apache.openejb.resource.activemq.ActiveMQResourceAdapter;
public class JmsProxyTest extends TestCase {
private static final String REQUEST_QUEUE_NAME = "request";
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/JmsTest.java Thu Jan 10 12:48:37 2008
@@ -22,7 +22,6 @@
import java.util.TreeMap;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
-
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
@@ -39,11 +38,11 @@
import junit.framework.TestCase;
import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.activemq.ra.ActiveMQResourceAdapter;
import org.apache.geronimo.connector.GeronimoBootstrapContext;
import org.apache.geronimo.connector.work.GeronimoWorkManager;
import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.resource.activemq.ActiveMQResourceAdapter;
public class JmsTest extends TestCase {
private ConnectionFactory connectionFactory;
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/MdbTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/MdbTest.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/MdbTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/MdbTest.java Thu Jan 10 12:48:37 2008
@@ -23,7 +23,6 @@
import java.util.TreeMap;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
-
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
@@ -46,11 +45,11 @@
import junit.framework.TestCase;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ra.ActiveMQActivationSpec;
-import org.apache.activemq.ra.ActiveMQResourceAdapter;
import org.apache.geronimo.connector.GeronimoBootstrapContext;
import org.apache.geronimo.connector.work.GeronimoWorkManager;
import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.resource.activemq.ActiveMQResourceAdapter;
public class MdbTest extends TestCase {
private static final String REQUEST_QUEUE_NAME = "request";
Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/SimpleJmsTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/SimpleJmsTest.java?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/SimpleJmsTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/mdb/SimpleJmsTest.java Thu Jan 10 12:48:37 2008
@@ -19,7 +19,6 @@
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
-
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
@@ -31,11 +30,11 @@
import junit.framework.TestCase;
import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.activemq.ra.ActiveMQResourceAdapter;
import org.apache.geronimo.connector.GeronimoBootstrapContext;
import org.apache.geronimo.connector.work.GeronimoWorkManager;
import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.resource.activemq.ActiveMQResourceAdapter;
public class SimpleJmsTest extends TestCase {
private static final String REQUEST_QUEUE_NAME = "request";
Added: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java?rev=610927&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/ActiveMQResourceAdapterTest.java Thu Jan 10 12:48:37 2008
@@ -0,0 +1,32 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.openejb.resource.activemq;
+
+import junit.framework.TestCase;
+
+public class ActiveMQResourceAdapterTest extends TestCase {
+ public void test() throws Exception {
+ ActiveMQResourceAdapter resourceAdapter = new ActiveMQResourceAdapter();
+ resourceAdapter.setServerUrl("vm://localhost?async=true");
+ resourceAdapter.setBrokerXmlConfig("broker:(tcp://localhost:61616)?useJmx=false");
+
+ // DataSource Default Unmanaged JDBC Database
+ //
+ resourceAdapter.start(null);
+ }
+}
Added: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/OpenEjbBrokerFactoryTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/OpenEjbBrokerFactoryTest.java?rev=610927&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/OpenEjbBrokerFactoryTest.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/resource/activemq/OpenEjbBrokerFactoryTest.java Thu Jan 10 12:48:37 2008
@@ -0,0 +1,173 @@
+/**
+ *
+ * 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.
+ */
+package org.apache.openejb.resource.activemq;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+import javax.sql.DataSource;
+
+import junit.framework.TestCase;
+import org.apache.activemq.broker.BrokerFactory;
+import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.broker.TransportConnector;
+import org.apache.activemq.network.jms.JmsConnector;
+import org.apache.activemq.store.PersistenceAdapter;
+import org.apache.activemq.store.jdbc.JDBCPersistenceAdapter;
+import org.apache.activemq.store.memory.MemoryPersistenceAdapter;
+import org.apache.openejb.util.URISupport;
+import org.apache.xbean.naming.context.ImmutableContext;
+import org.hsqldb.jdbc.jdbcDataSource;
+
+public class OpenEjbBrokerFactoryTest extends TestCase {
+ public void testBrokerUri() throws Exception {
+ assertEquals("openejb:broker:(tcp://localhost:61616)?persistent=false",
+ getBrokerUri("broker:(tcp://localhost:61616)"));
+ assertEquals("openejb:broker:(tcp://localhost:61616)?useJmx=false&persistent=false",
+ getBrokerUri("broker:(tcp://localhost:61616)?useJmx=false"));
+ assertEquals("openejb:broker:(tcp://localhost:61616)?useJmx=false&persistent=false",
+ getBrokerUri("broker:(tcp://localhost:61616)?useJmx=false&persistent=true"));
+ assertEquals("openejb:broker:(tcp://localhost:61616)?useJmx=false&persistent=false",
+ getBrokerUri("broker:(tcp://localhost:61616)?useJmx=false&persistent=false"));
+ }
+
+ private String getBrokerUri(String brokerUri) throws URISyntaxException {
+ URISupport.CompositeData compositeData = URISupport.parseComposite(new URI(brokerUri));
+ compositeData.getParameters().put("persistent", "false");
+ return "openejb:" + compositeData.toURI();
+ }
+
+ public void testBrokerDoubleCreate() throws Exception {
+ BrokerService broker = BrokerFactory.createBroker(new URI(getBrokerUri( "broker:(tcp://localhost:61616)?useJmx=false")));
+ stopBroker(broker);
+
+ broker = BrokerFactory.createBroker(new URI(getBrokerUri("broker:(tcp://localhost:61616)?useJmx=false")));
+ stopBroker(broker);
+
+ }
+
+ public void testNoDataSource() throws Exception {
+ BrokerService broker = BrokerFactory.createBroker(new URI(getBrokerUri(
+ "broker:(tcp://localhost:61616)?useJmx=false")));
+ assertNotNull("broker is null", broker);
+
+ PersistenceAdapter persistenceAdapter = broker.getPersistenceAdapter();
+ assertNotNull("persistenceAdapter is null", persistenceAdapter);
+
+ assertTrue("persistenceAdapter should be an instance of MemoryPersistenceAdapter",
+ persistenceAdapter instanceof MemoryPersistenceAdapter);
+
+ stopBroker(broker);
+ }
+
+ public void testDirectDataSource() throws Exception {
+ Properties properties = new Properties();
+
+ DataSource dataSource = new jdbcDataSource();
+ properties.put("DataSource", dataSource);
+
+ OpenEjbBrokerFactory.setThreadProperties(properties);
+ BrokerService broker = null;
+ try {
+ broker = BrokerFactory.createBroker(new URI(getBrokerUri(
+ "broker:(tcp://localhost:61616)?useJmx=false")));
+ assertNotNull("broker is null", broker);
+
+ PersistenceAdapter persistenceAdapter = broker.getPersistenceAdapter();
+ assertNotNull("persistenceAdapter is null", persistenceAdapter);
+
+ assertTrue("persistenceAdapter should be an instance of JDBCPersistenceAdapter",
+ persistenceAdapter instanceof JDBCPersistenceAdapter);
+ JDBCPersistenceAdapter jdbcPersistenceAdapter = (JDBCPersistenceAdapter)persistenceAdapter;
+
+ assertSame(dataSource, jdbcPersistenceAdapter.getDataSource());
+ } finally {
+ stopBroker(broker);
+ OpenEjbBrokerFactory.setThreadProperties(null);
+ }
+ }
+
+ public void testLookupDataSource() throws Exception {
+ Properties properties = new Properties();
+
+ DataSource dataSource = new jdbcDataSource();
+ MockInitialContextFactory.install(Collections.singletonMap("java:openejb/Resource/TestDs", dataSource));
+ assertSame(dataSource, new InitialContext().lookup("java:openejb/Resource/TestDs"));
+
+ properties.put("DataSource", "TestDs");
+
+ OpenEjbBrokerFactory.setThreadProperties(properties);
+ BrokerService broker = null;
+ try {
+ broker = BrokerFactory.createBroker(new URI(getBrokerUri(
+ "broker:(tcp://localhost:61616)?useJmx=false")));
+ assertNotNull("broker is null", broker);
+
+ PersistenceAdapter persistenceAdapter = broker.getPersistenceAdapter();
+ assertNotNull("persistenceAdapter is null", persistenceAdapter);
+
+ assertTrue("persistenceAdapter should be an instance of JDBCPersistenceAdapter",
+ persistenceAdapter instanceof JDBCPersistenceAdapter);
+ JDBCPersistenceAdapter jdbcPersistenceAdapter = (JDBCPersistenceAdapter)persistenceAdapter;
+
+ assertSame(dataSource, jdbcPersistenceAdapter.getDataSource());
+ } finally {
+ stopBroker(broker);
+ OpenEjbBrokerFactory.setThreadProperties(null);
+ }
+ }
+
+ public static class MockInitialContextFactory implements InitialContextFactory {
+ private static ImmutableContext immutableContext;
+
+ public static void install(Map bindings) throws NamingException {
+ immutableContext = new ImmutableContext(bindings);
+ System.setProperty(Context.INITIAL_CONTEXT_FACTORY, MockInitialContextFactory.class.getName());
+ new InitialContext();
+ }
+
+ public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
+ return immutableContext;
+ }
+ }
+
+
+ private void stopBroker(BrokerService broker) throws Exception {
+ if (broker == null) return;
+
+ if (broker.getJmsBridgeConnectors() != null) {
+ for (JmsConnector connector : broker.getJmsBridgeConnectors()) {
+ connector.stop();
+ }
+ }
+ for (Object o : broker.getTransportConnectors()) {
+ TransportConnector tc = (TransportConnector) o;
+ tc.stop();
+
+ }
+ broker.stop();
+ }
+
+}
Modified: openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/pom.xml (original)
+++ openejb/trunk/openejb3/pom.xml Thu Jan 10 12:48:37 2008
@@ -106,7 +106,6 @@
as the maven-release-plugin will not update this value.
<version>3.0-SNAPSHOT</version>
-->
- <derbyVersion>10.3.2.1</derbyVersion>
<xbeanVersion>3.3-SNAPSHOT</xbeanVersion>
</properties>
@@ -568,21 +567,6 @@
<artifactId>nlog4j</artifactId>
</exclusion>
</exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>${derbyVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derbyclient</artifactId>
- <version>${derbyVersion}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derbynet</artifactId>
- <version>${derbyVersion}</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.components</groupId>
Modified: openejb/trunk/openejb3/server/openejb-activemq/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-activemq/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-activemq/pom.xml (original)
+++ openejb/trunk/openejb3/server/openejb-activemq/pom.xml Thu Jan 10 12:48:37 2008
@@ -42,10 +42,6 @@
<artifactId>activemq-core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Modified: openejb/trunk/openejb3/server/openejb-derbynet/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-derbynet/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-derbynet/pom.xml (original)
+++ openejb/trunk/openejb3/server/openejb-derbynet/pom.xml Thu Jan 10 12:48:37 2008
@@ -40,10 +40,12 @@
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
+ <version>10.3.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbynet</artifactId>
+ <version>10.3.2.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
Modified: openejb/trunk/openejb3/server/openejb-ejbd/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-ejbd/pom.xml (original)
+++ openejb/trunk/openejb3/server/openejb-ejbd/pom.xml Thu Jan 10 12:48:37 2008
@@ -80,11 +80,6 @@
<artifactId>geronimo-ejb_3.0_spec</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>idb</groupId>
<artifactId>idb</artifactId>
<scope>test</scope>
Modified: openejb/trunk/openejb3/server/openejb-http/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-http/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-http/pom.xml (original)
+++ openejb/trunk/openejb3/server/openejb-http/pom.xml Thu Jan 10 12:48:37 2008
@@ -102,11 +102,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>idb</groupId>
<artifactId>idb</artifactId>
<scope>test</scope>
Modified: openejb/trunk/openejb3/server/openejb-webadmin/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-webadmin/pom.xml?rev=610927&r1=610926&r2=610927&view=diff
==============================================================================
--- openejb/trunk/openejb3/server/openejb-webadmin/pom.xml (original)
+++ openejb/trunk/openejb3/server/openejb-webadmin/pom.xml Thu Jan 10 12:48:37 2008
@@ -105,11 +105,6 @@
<version>1.3</version>
</dependency>
<dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>idb</groupId>
<artifactId>idb</artifactId>
<scope>test</scope>