[jboss-cvs] JBossAS SVN: r112565 - in projects/jboss-jca/trunk: core/src/main/java/org/jboss/jca/core/spi/transaction/usertx and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 9 11:19:33 EST 2012
Author: jesper.pedersen
Date: 2012-01-09 11:19:31 -0500 (Mon, 09 Jan 2012)
New Revision: 112565
Added:
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionProvider.java
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionProviderImpl.java
Modified:
projects/jboss-jca/trunk/build.xml
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionRegistry.java
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionRegistryImpl.java
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionImpl.java
projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionRegistryImpl.java
projects/jboss-jca/trunk/core/src/test/resources/transaction.xml
projects/jboss-jca/trunk/embedded/src/main/resources/noop-transaction.xml
projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml
projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml
Log:
User transaction provider fixes
Modified: projects/jboss-jca/trunk/build.xml
===================================================================
--- projects/jboss-jca/trunk/build.xml 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/build.xml 2012-01-09 16:19:31 UTC (rev 112565)
@@ -139,7 +139,7 @@
<property name="version.jboss.stdio" value="1.0.1.GA"/>
<property name="version.jboss.threads" value="2.0.0.GA"/>
<property name="version.jboss.ts" value="4.16.0.Beta1"/>
- <property name="version.jboss.ts.spi" value="7.0.0.CR1"/>
+ <property name="version.jboss.ts.spi" value="7.0.0.CR2"/>
<property name="version.jdepend" value="2.9.1"/>
<property name="version.jetty" value="7.4.3.v20110701"/>
<property name="version.jetty.servlet" value="6.1.14"/>
Added: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionProvider.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionProvider.java (rev 0)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionProvider.java 2012-01-09 16:19:31 UTC (rev 112565)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jca.core.spi.transaction.usertx;
+
+/**
+ * UserTransactionProvider.
+ *
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public interface UserTransactionProvider
+{
+ /**
+ * Set the user transaction registry
+ * @param v The value
+ */
+ public void setUserTransactionRegistry(UserTransactionRegistry v);
+}
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionRegistry.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionRegistry.java 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/spi/transaction/usertx/UserTransactionRegistry.java 2012-01-09 16:19:31 UTC (rev 112565)
@@ -39,4 +39,21 @@
* @param listener The listener
*/
public void removeListener(UserTransactionListener listener);
+
+ /**
+ * Add a provider
+ * @param provider The provider
+ */
+ public void addProvider(UserTransactionProvider provider);
+
+ /**
+ * Remove a provider
+ * @param provider The provider
+ */
+ public void removeProvider(UserTransactionProvider provider);
+
+ /**
+ * Fire a user transaction started event
+ */
+ public void userTransactionStarted();
}
Added: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionProviderImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionProviderImpl.java (rev 0)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionProviderImpl.java 2012-01-09 16:19:31 UTC (rev 112565)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.jca.core.tx.jbossts;
+
+/**
+ * UserTransactionProvider implementation
+ *
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ */
+public class UserTransactionProviderImpl implements org.jboss.jca.core.spi.transaction.usertx.UserTransactionProvider,
+ org.jboss.tm.usertx.UserTransactionProvider
+{
+ /** The user transaction provider */
+ private org.jboss.jca.core.spi.transaction.usertx.UserTransactionProvider utp;
+
+ /**
+ * Constructor
+ * @param utp The user transaction provider
+ */
+ public UserTransactionProviderImpl(org.jboss.jca.core.spi.transaction.usertx.UserTransactionProvider utp)
+ {
+ this.utp = utp;
+ }
+
+ /**
+ * Set the user transaction registry
+ * @param v The value
+ */
+ public void setUserTransactionRegistry(org.jboss.jca.core.spi.transaction.usertx.UserTransactionRegistry v)
+ {
+ utp.setUserTransactionRegistry(v);
+ }
+
+ /**
+ * Set the user transaction registry
+ * @param v The value
+ */
+ public void setTransactionRegistry(org.jboss.tm.usertx.UserTransactionRegistry v)
+ {
+ ((org.jboss.tm.usertx.UserTransactionProvider)utp).setTransactionRegistry(v);
+ }
+}
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionRegistryImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionRegistryImpl.java 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/jbossts/UserTransactionRegistryImpl.java 2012-01-09 16:19:31 UTC (rev 112565)
@@ -22,6 +22,7 @@
package org.jboss.jca.core.tx.jbossts;
import org.jboss.jca.core.spi.transaction.usertx.UserTransactionListener;
+import org.jboss.jca.core.spi.transaction.usertx.UserTransactionProvider;
import java.util.Collections;
import java.util.HashMap;
@@ -40,6 +41,9 @@
/** Listener map */
private Map<UserTransactionListener, UserTransactionListenerImpl> listeners;
+ /** Provider map */
+ private Map<UserTransactionProvider, UserTransactionProviderImpl> providers;
+
/**
* Constructor
* @param delegator The delegator instance
@@ -49,6 +53,8 @@
this.delegator = delegator;
this.listeners =
Collections.synchronizedMap(new HashMap<UserTransactionListener, UserTransactionListenerImpl>());
+ this.providers =
+ Collections.synchronizedMap(new HashMap<UserTransactionProvider, UserTransactionProviderImpl>());
}
/**
@@ -77,4 +83,39 @@
listeners.remove(listener);
}
}
+
+ /**
+ * Add a provider
+ * @param provider The provider
+ */
+ public void addProvider(UserTransactionProvider provider)
+ {
+ UserTransactionProviderImpl impl = new UserTransactionProviderImpl(provider);
+
+ delegator.addProvider(impl);
+ providers.put(provider, impl);
+ }
+
+ /**
+ * Remove a provider
+ * @param provider The provider
+ */
+ public void removeProvider(UserTransactionProvider provider)
+ {
+ UserTransactionProviderImpl impl = providers.get(provider);
+
+ if (impl != null)
+ {
+ delegator.removeProvider(impl);
+ providers.remove(provider);
+ }
+ }
+
+ /**
+ * Fire a user transaction started event
+ */
+ public void userTransactionStarted()
+ {
+ delegator.userTransactionStarted();
+ }
}
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionImpl.java 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionImpl.java 2012-01-09 16:19:31 UTC (rev 112565)
@@ -21,6 +21,9 @@
*/
package org.jboss.jca.core.tx.noopts;
+import org.jboss.jca.core.spi.transaction.usertx.UserTransactionProvider;
+import org.jboss.jca.core.spi.transaction.usertx.UserTransactionRegistry;
+
import java.io.Serializable;
import javax.naming.Context;
@@ -38,11 +41,12 @@
* A transaction manager implementation
* @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
*/
-public class UserTransactionImpl implements UserTransaction, Serializable
+public class UserTransactionImpl implements UserTransactionProvider, UserTransaction, Serializable
{
private static final long serialVersionUID = 1L;
private static final String JNDI_NAME = "java:/UserTransaction";
private TxRegistry registry;
+ private UserTransactionRegistry userTransactionRegistry;
/**
* Constructor
@@ -50,6 +54,7 @@
public UserTransactionImpl()
{
this.registry = null;
+ this.userTransactionRegistry = null;
}
/**
@@ -62,6 +67,15 @@
}
/**
+ * Set the user transaction registry
+ * @param v The value
+ */
+ public void setUserTransactionRegistry(UserTransactionRegistry v)
+ {
+ userTransactionRegistry = v;
+ }
+
+ /**
* {@inheritDoc}
*/
public void begin() throws NotSupportedException,
@@ -73,6 +87,9 @@
throw new NotSupportedException();
registry.startTransaction();
+
+ if (userTransactionRegistry != null)
+ userTransactionRegistry.userTransactionStarted();
}
/**
Modified: projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionRegistryImpl.java
===================================================================
--- projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionRegistryImpl.java 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/core/src/main/java/org/jboss/jca/core/tx/noopts/UserTransactionRegistryImpl.java 2012-01-09 16:19:31 UTC (rev 112565)
@@ -22,12 +22,15 @@
package org.jboss.jca.core.tx.noopts;
import org.jboss.jca.core.spi.transaction.usertx.UserTransactionListener;
+import org.jboss.jca.core.spi.transaction.usertx.UserTransactionProvider;
import org.jboss.jca.core.spi.transaction.usertx.UserTransactionRegistry;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import javax.transaction.SystemException;
+
/**
* UserTransactionRegistry implementation.
*
@@ -38,12 +41,16 @@
/** Listeners */
private Set<UserTransactionListener> listeners;
+ /** Providers */
+ private Set<UserTransactionProvider> providers;
+
/**
* Constructor
*/
public UserTransactionRegistryImpl()
{
this.listeners = Collections.synchronizedSet(new HashSet<UserTransactionListener>());
+ this.providers = Collections.synchronizedSet(new HashSet<UserTransactionProvider>());
}
/**
@@ -63,4 +70,46 @@
if (listener != null)
listeners.remove(listener);
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public void addProvider(UserTransactionProvider provider)
+ {
+ if (provider != null)
+ {
+ provider.setUserTransactionRegistry(this);
+ providers.add(provider);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void removeProvider(UserTransactionProvider provider)
+ {
+ if (provider != null)
+ {
+ provider.setUserTransactionRegistry(null);
+ providers.remove(provider);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void userTransactionStarted()
+ {
+ for (UserTransactionListener utl : listeners)
+ {
+ try
+ {
+ utl.userTransactionStarted();
+ }
+ catch (SystemException se)
+ {
+ // Ignore
+ }
+ }
+ }
}
Modified: projects/jboss-jca/trunk/core/src/test/resources/transaction.xml
===================================================================
--- projects/jboss-jca/trunk/core/src/test/resources/transaction.xml 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/core/src/test/resources/transaction.xml 2012-01-09 16:19:31 UTC (rev 112565)
@@ -211,7 +211,7 @@
<!-- The provider for default in process UserTransactions -->
<bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
<constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
- <depends>TransactionManager</depends>
+ <property name="TransactionManager"><inject bean="RealTransactionManager"/></property>
</bean>
<!-- Bind java:/UserTransaction -->
Modified: projects/jboss-jca/trunk/embedded/src/main/resources/noop-transaction.xml
===================================================================
--- projects/jboss-jca/trunk/embedded/src/main/resources/noop-transaction.xml 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/embedded/src/main/resources/noop-transaction.xml 2012-01-09 16:19:31 UTC (rev 112565)
@@ -52,6 +52,13 @@
<bean name="UserTransactionRegistry"
interface="org.jboss.jca.core.spi.transaction.usertx.UserTransactionRegistry"
class="org.jboss.jca.core.tx.noopts.UserTransactionRegistryImpl">
+ <!-- Register providers -->
+ <incallback method="addProvider"/>
+ <uncallback method="removeProvider"/>
+
+ <!-- Register listeners -->
+ <incallback method="addListener"/>
+ <uncallback method="removeListener"/>
</bean>
<!-- Transaction integration -->
Modified: projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml
===================================================================
--- projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml 2012-01-09 16:19:31 UTC (rev 112565)
@@ -211,7 +211,7 @@
<!-- The provider for default in process UserTransactions -->
<bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
<constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
- <depends>TransactionManager</depends>
+ <property name="TransactionManager"><inject bean="RealTransactionManager"/></property>
</bean>
<!-- Bind java:/UserTransaction -->
Modified: projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml 2012-01-09 06:37:50 UTC (rev 112564)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml 2012-01-09 16:19:31 UTC (rev 112565)
@@ -164,7 +164,7 @@
<!-- The provider for default in process UserTransactions -->
<bean name="DefaultUserTransactionProvider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
<constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
- <depends>TransactionManager</depends>
+ <property name="TransactionManager"><inject bean="RealTransactionManager"/></property>
</bean>
<!-- Bind java:/UserTransaction -->
More information about the jboss-cvs-commits
mailing list