[jboss-svn-commits] JBL Code SVN: r10253 - in labs/jbossesb/trunk: product/core/listeners/src/org/jboss/soa/esb/listeners/config and 18 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 16 00:41:50 EDT 2007
Author: bill.burke at jboss.com
Date: 2007-03-16 00:41:49 -0400 (Fri, 16 Mar 2007)
New Revision: 10253
Added:
labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/
labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/
labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/deployment.xml
labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/jboss-esb.xml
labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-jbm-service.xml
labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-queues-service.xml
labs/jbossesb/trunk/qa/junit/versioned-scoped-src/org/jboss/soa/esb/server/MyJMSListenerAction.java
Modified:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectInvoke.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/XStreamToObject.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/AbstractThreadedManagedLifecycle.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java
labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java
labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java
labs/jbossesb/trunk/product/tools/configeditor/editor/dist/configapp.war
labs/jbossesb/trunk/qa/junit/build.xml
labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/server/unit/SimpleDeployUnitTestCase.java
labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java
Log:
* remove usage of Class.forName() and replace with Thread.currentThread().getContextClassLoader().loadClass()
* Added support for .esb archive classloader scoping
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectInvoke.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectInvoke.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectInvoke.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -104,7 +104,7 @@
}
try {
- processorClass = Class.forName(classProcessor);
+ processorClass = Thread.currentThread().getContextClassLoader().loadClass(classProcessor);
this.setUpMethod(processorClass);
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/XStreamToObject.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/XStreamToObject.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/XStreamToObject.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -74,7 +74,7 @@
super(actionName,properties);
String incomingTypeStr = KeyValuePair.getValue("incoming-type", properties);
try {
- incomingType = Class.forName(incomingTypeStr);
+ incomingType = Thread.currentThread().getContextClassLoader().loadClass(incomingTypeStr);
} catch (ClassNotFoundException e) {
logger.error("Could not find : " + incomingTypeStr,e);
}
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -38,6 +38,8 @@
import java.io.File;
import java.io.InputStream;
import java.net.URL;
+import java.util.Iterator;
+import java.util.ArrayList;
/**
* comment
@@ -155,12 +157,12 @@
}
XmlFileLoader xfl = new XmlFileLoader();
- InputStream in = di.localCl.getResourceAsStream("META-INF/classloader.xml");
+ InputStream in = di.localCl.getResourceAsStream("META-INF/deployment.xml");
if (in != null)
{
try
{
- Element jboss = xfl.getDocument(in, "META-INF/classloader.xml").getDocumentElement();
+ Element jboss = xfl.getDocument(in, "META-INF/esb-deployment.xml").getDocumentElement();
// Check for a ejb level class loading config
Element loader = MetaData.getOptionalChild(jboss, "loader-repository");
if (loader != null)
@@ -168,7 +170,12 @@
LoaderRepositoryFactory.LoaderRepositoryConfig config =
LoaderRepositoryFactory.parseRepositoryConfig(loader);
di.setRepositoryInfo(config);
+ log.info("**************** using scoped loader:" + config.repositoryName);
}
+ else
+ {
+ log.info("************* no scoped loader");
+ }
}
finally
@@ -176,6 +183,10 @@
in.close();
}
}
+ else
+ {
+ log.info("************* no scoped loader");
+ }
}
catch (Exception e)
{
@@ -192,7 +203,7 @@
public synchronized void create(DeploymentInfo di) throws DeploymentException
{
- log.debug("create, " + di.shortName);
+ log.info("create esb service, " + di.shortName);
URL document = getDocumentUrl(di);
if (document == null)
{
@@ -201,8 +212,37 @@
}
try
{
+ ArrayList<ObjectName> deps = new ArrayList<ObjectName>();
+ InputStream in = di.localCl.getResourceAsStream("META-INF/deployment.xml");
+ if (in != null)
+ {
+ try
+ {
+ XmlFileLoader xfl = new XmlFileLoader();
+ Element jboss = xfl.getDocument(in, "META-INF/deployment.xml").getDocumentElement();
+ // Check for a ejb level class loading config
+ Iterator depends = MetaData.getChildrenByTagName(jboss, "depends");
+ if (depends != null)
+ {
+ while (depends.hasNext())
+ {
+ Element depend = (Element)depends.next();
+ ObjectName depOn = new ObjectName(MetaData.getElementContent(depend));
+ deps.add(depOn);
+ log.info("Found dependency: " + depOn);
+ }
+ }
+
+ }
+ finally
+ {
+ in.close();
+ }
+ }
+
String jbossEsbXml = Configuration.getStringFromStream(document.openStream());
JBoss4ESBDeployment deployment = new JBoss4ESBDeployment(jbossEsbXml);
+ deployment.setClassloader(di.ucl);
String name = "jboss.esb:deployment=" + di.shortName;
ObjectName on = ObjectNameConverter.convert(name);
// Check that the name is not registered
@@ -217,7 +257,7 @@
di.deployedObject = on;
log.debug("Deploying: " + di.url);
// Invoke the create life cycle method
- serviceController.create(di.deployedObject);
+ serviceController.create(di.deployedObject, deps);
}
catch (Exception e)
{
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -34,6 +34,7 @@
{
private String jbossEsbXml;
private ManagedLifecycleController controller;
+ private ClassLoader classloader;
public JBoss4ESBDeployment(String jbossEsbXml)
@@ -51,6 +52,12 @@
return jbossEsbXml.replace("<", "<").replace(">", ">");
}
+
+ public void setClassloader(ClassLoader classloader)
+ {
+ this.classloader = classloader;
+ }
+
public ManagedLifecycleController getController()
{
return controller;
@@ -60,6 +67,7 @@
public void createService()
{
controller = Configuration.create(jbossEsbXml);
+ controller.setClassloader(classloader);
}
@Override
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -444,7 +444,7 @@
_composerName = _config.getAttribute(ListenerTagNames.GATEWAY_COMPOSER_CLASS_TAG);
if (null != _composerName)
{ // class attribute
- _composerClass = Class.forName(_composerName);
+ _composerClass = Thread.currentThread().getContextClassLoader().loadClass(_composerName);
Constructor oConst = _composerClass.getConstructor(new Class[]
{ ConfigTree.class });
_composer = oConst.newInstance(_config);
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -305,7 +305,7 @@
_composerName = _config.getAttribute(ListenerTagNames.GATEWAY_COMPOSER_CLASS_TAG);
if (null != _composerName)
{ // class attribute
- _composerClass = Class.forName(_composerName);
+ _composerClass = Thread.currentThread().getContextClassLoader().loadClass(_composerName);
Constructor oConst = _composerClass.getConstructor(new Class[]
{ConfigTree.class});
_composer = oConst.newInstance(_config);
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -402,7 +402,7 @@
_composerName = _config.getAttribute(ListenerTagNames.GATEWAY_COMPOSER_CLASS_TAG);
if (null != _composerName)
{ // class attribute
- _composerClass = Class.forName(_composerName);
+ _composerClass = Thread.currentThread().getContextClassLoader().loadClass(_composerName);
Constructor oConst = _composerClass.getConstructor(new Class[]
{ ConfigTree.class });
_composer = oConst.newInstance(_config);
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/AbstractThreadedManagedLifecycle.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/AbstractThreadedManagedLifecycle.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/AbstractThreadedManagedLifecycle.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -66,7 +66,9 @@
*/
private Set<ManagedLifecycleThreadEventListener> listeners = new CopyOnWriteArraySet<ManagedLifecycleThreadEventListener>();
+ private transient ClassLoader classloader;
+
/**
* Construct the threaded managed lifecycle.
*
@@ -79,6 +81,17 @@
super(config);
}
+
+ public ClassLoader getClassloader()
+ {
+ return classloader;
+ }
+
+ public void setClassloader(ClassLoader classloader)
+ {
+ this.classloader = classloader;
+ }
+
/**
* Handle the start of the managed instance.
*
@@ -109,9 +122,14 @@
*/
public final void run()
{
+ ClassLoader old = Thread.currentThread().getContextClassLoader();
waitUntilNotState(ManagedLifecycleState.STARTING, getTerminationPeriod());
try
{
+ if (classloader != null)
+ {
+ Thread.currentThread().setContextClassLoader(classloader);
+ }
changeState(ManagedLifecycleState.RUNNING);
doRun();
}
@@ -126,6 +144,7 @@
finally
{
setRunning(ManagedLifecycleThreadState.STOPPED);
+ Thread.currentThread().setContextClassLoader(old);
}
}
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/lifecycle/ManagedLifecycleController.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -35,6 +35,8 @@
*/
private final ManagedLifecycle[] instances;
+ private ClassLoader classloader;
+
/**
* Construct the controller to manage the specified managed lifecycle instances.
*
@@ -46,6 +48,17 @@
instances = lifecycles.toArray(new ManagedLifecycle[numInstances]);
}
+
+ public ClassLoader getClassloader()
+ {
+ return classloader;
+ }
+
+ public void setClassloader(ClassLoader classloader)
+ {
+ this.classloader = classloader;
+ }
+
/**
* Start the lifecyles for the managed instances.
* <p/>
@@ -102,6 +115,10 @@
final ManagedLifecycle instance = instances[count];
try
{
+ if (instance instanceof AbstractThreadedManagedLifecycle)
+ {
+ ((AbstractThreadedManagedLifecycle)instance).setClassloader(classloader);
+ }
instance.initialise();
}
catch (final ManagedLifecycleException mle)
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -45,6 +45,7 @@
public class ActionProcessingPipeline extends Observable implements Runnable
{
private boolean processingComplete = false;
+ private ClassLoader classloader;
/**
* public constructor
@@ -66,7 +67,23 @@
throw new ConfigurationException("No actions in list");
}
+
+ public ClassLoader getClassloader()
+ {
+ return classloader;
+ }
+
/**
+ * context classloader the thread should run in
+ *
+ * @param classloader
+ */
+ public void setClassloader(ClassLoader classloader)
+ {
+ this.classloader = classloader;
+ }
+
+ /**
* @return Message - current Message of this action chain processor
*/
public Message getMessage()
@@ -88,8 +105,13 @@
*/
public void run()
{
+ ClassLoader old = Thread.currentThread().getContextClassLoader();
try
{
+ if (classloader != null)
+ {
+ Thread.currentThread().setContextClassLoader(classloader);
+ }
// Run the message through each ActionProcessor...
_currentIndex = -1;
for (ConfigTree oCurr : _actionList)
@@ -97,7 +119,7 @@
_currentIndex++;
String attrName = ListenerTagNames.ACTION_CLASS_TAG;
_currentAction = oCurr.getAttribute(attrName);
- _currentClass = Class.forName(_currentAction);
+ _currentClass = Thread.currentThread().getContextClassLoader().loadClass(_currentAction);
Constructor oConst = _currentClass.getConstructor(new Class[]{ConfigTree.class});
_currentProcessor = oConst.newInstance(oCurr);
@@ -166,6 +188,7 @@
}
finally
{
+ Thread.currentThread().setContextClassLoader(old);
processingComplete = true;
setChanged();
notifyObservers(new Integer(-1));
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -262,6 +262,7 @@
try
{
chain = new ActionProcessingPipeline(message, _config);
+ chain.setClassloader(getClassloader());
chain.addObserver(this);
updateThreadCount(+1);
_execService.execute(chain);
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/MessageFactoryImpl.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -74,7 +74,7 @@
try
{
String pluginName = properties.getProperty(attrName);
- Class c = Class.forName(pluginName);
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(pluginName);
MessagePlugin thePlugin = (MessagePlugin) c.newInstance();
messageFormats.put(thePlugin.getType(), thePlugin);
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/marshal/MarshalUnmarshalManager.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -71,7 +71,7 @@
try
{
String pluginName = properties.getProperty(attrName);
- Class c = Class.forName(pluginName);
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(pluginName);
MarshalUnmarshalPlugin thePlugin = (MarshalUnmarshalPlugin) c.newInstance();
_plugins.put(thePlugin.type(), thePlugin);
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SimpleDataSource.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -113,7 +113,7 @@
{
try
{
- Class.forName(p_sDriver);
+ Thread.currentThread().getContextClassLoader().loadClass(p_sDriver);
m_sUrl = p_sDbURL;
getConnection(p_sUsr, p_sPwd);
}
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/helpers/persist/SqlDbTable.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -186,7 +186,7 @@
{
int iCol = 1 + i1;
String sFN = MD.getColumnName(iCol);
- Class oCL = Class.forName(MD.getColumnClassName(iCol));
+ Class oCL = Thread.currentThread().getContextClassLoader().loadClass(MD.getColumnClassName(iCol));
int iTP = MD.getColumnType(iCol);
int iSZ = MD.getColumnDisplaySize(iCol);
m_oaFields[i1] = new SqlField(sFN, oCL, iTP, iSZ, false);
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/notification/NotificationTarget.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -108,13 +108,13 @@
Class oCls = null;
try
{
- oCls = Class.forName(NOTIF_PFX + "." + sClass);
+ oCls = Thread.currentThread().getContextClassLoader().loadClass(NOTIF_PFX + "." + sClass);
}
catch (Exception e)
{
try
{
- oCls = Class.forName(sClass);
+ oCls = Thread.currentThread().getContextClassLoader().loadClass(sClass);
}
catch (Exception e1)
{/* oCls will be null */
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/parameters/ParamRepositoryFactory.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -88,7 +88,7 @@
{
try
{
- Class<?> runtimeClass = Class.forName(runtimeClassName);
+ Class<?> runtimeClass = Thread.currentThread().getContextClassLoader().loadClass(runtimeClassName);
instance = (ParamRepository) runtimeClass.newInstance();
} catch (Exception e)
{
Modified: labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/services/persistence/MessageStoreFactory.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -39,7 +39,7 @@
try {
// Class cls = Class.forName("org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl");
- Class cls = Class.forName(Configuration.getStoreConnectionFactory());
+ Class cls = Thread.currentThread().getContextClassLoader().loadClass(Configuration.getStoreConnectionFactory());
Constructor<MessageStoreFactory> c = cls.getConstructor(new Class[]{});
theFactory = c.newInstance(new Object[]{});
} catch (Exception e) {
Modified: labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java
===================================================================
--- labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/product/core/services/src/org/jboss/internal/soa/esb/persistence/format/MessageStoreFactoryImpl.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -83,7 +83,7 @@
try
{
String pluginName = properties.getProperty(attrName);
- Class c = Class.forName(pluginName);
+ Class c = Thread.currentThread().getContextClassLoader().loadClass(pluginName);
MessageStorePlugin thePlugin = (MessageStorePlugin) c.newInstance();
messageStoreFormats.put(thePlugin.getType(), thePlugin);
Modified: labs/jbossesb/trunk/product/tools/configeditor/editor/dist/configapp.war
===================================================================
(Binary files differ)
Modified: labs/jbossesb/trunk/qa/junit/build.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/build.xml 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/qa/junit/build.xml 2007-03-16 04:41:49 UTC (rev 10253)
@@ -1,9 +1,9 @@
<?xml version="1.0"?>
<project name="JUnit" default="test" basedir=".">
- <property name="product.build" location="../../product/build"/>
- <property name="product.lib" location="${product.build}/jbossesb/lib"/>
- <property name="coverage" location="${product.build}/tests/coverage"/>
+ <property name="product.build" location="../../product/build"/>
+ <property name="product.lib" location="${product.build}/jbossesb/lib"/>
+ <property name="coverage" location="${product.build}/tests/coverage"/>
<property name="qa.build" location="../build"/>
<property name="qa.build.lib" location="../build/lib"/>
<property name="qa.build.reports" location="../build/reports"/>
@@ -11,73 +11,98 @@
<property name="qa.lib" location="../lib"/>
<property name="qa.build.stylesheets" location="${qa.build}/stylesheets"/>
<property name="qa.source.stylesheets" location="../stylesheets"/>
- <property name="qa.junit.src" location="src"/>
+ <property name="qa.junit.src" location="src"/>
+ <property name="qa.junit.versioned.src" location="versioned-scoped-src"/>
<property name="qa.junit.classes" location="${qa.build}/junit/classes"/>
+ <property name="qa.junit.versioned.classes" location="${qa.build}/junit/versioned-classes"/>
<property name="qa.junit.resources" location="resources"/>
- <property name="qa.junit.report" location="${qa.build}/junit/report" />
- <property name="qa.junit.memory" value="128m"/>
+ <property name="qa.junit.report" location="${qa.build}/junit/report"/>
+ <property name="qa.junit.memory" value="128m"/>
- <property file="${org.jboss.esb.properties}"/>
- <property name="org.jboss.esb.test.ftp.hostname" value="ftp.ncl.ac.uk"/>
- <property name="org.jboss.esb.test.ftp.user" value="anonymous"/>
- <property name="org.jboss.esb.test.ftp.pwd" value=""/>
- <property name="org.jboss.esb.test.ftp.dir" value="/pub/DNS"/>
+ <property file="${org.jboss.esb.properties}"/>
+ <property name="org.jboss.esb.test.ftp.hostname" value="ftp.ncl.ac.uk"/>
+ <property name="org.jboss.esb.test.ftp.user" value="anonymous"/>
+ <property name="org.jboss.esb.test.ftp.pwd" value=""/>
+ <property name="org.jboss.esb.test.ftp.dir" value="/pub/DNS"/>
- <path id="base.cp">
- <fileset dir="${product.lib}/ext"
- excludes="*.jar" includes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
- <fileset dir="${qa.lib}/ext" includes="*.jar" />
- <fileset dir="${product.lib}/ext" includes="*.jar" />
- <pathelement location="../" />
- </path>
-
- <path id="qa.junit.cp">
- <path refid="base.cp"/>
- <fileset dir="${product.lib}" includes="*.jar" />
- </path>
-
- <path id="qa.junit.emma.cp">
- <fileset dir="${coverage}/all" includes="jbossesb-instr-all.jar" />
- <path refid="base.cp"/>
- </path>
-
- <target name="test" depends="compile, prompt, execute"/>
- <target name="ci-test" depends="compile, execute"/>
+ <path id="base.cp">
+ <fileset dir="${product.lib}/ext"
+ excludes="*.jar" includes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
+ <fileset dir="${qa.lib}/ext" includes="*.jar"/>
+ <fileset dir="${product.lib}/ext" includes="*.jar"/>
+ <pathelement location="../"/>
+ </path>
- <target name="compile">
- <echo message="Running JUnit based QA tests..."/>
-
- <!-- Build the tests... -->
- <mkdir dir="${qa.junit.classes}"/>
- <javac srcdir="${qa.junit.src}" destdir="${qa.junit.classes}" classpathref="qa.junit.cp" debug="on" />
- </target>
+ <path id="qa.junit.cp">
+ <path refid="base.cp"/>
+ <fileset dir="${product.lib}" includes="*.jar"/>
+ </path>
- <target name="jars" depends="compile">
+ <path id="qa.junit.emma.cp">
+ <fileset dir="${coverage}/all" includes="jbossesb-instr-all.jar"/>
+ <path refid="base.cp"/>
+ </path>
+
+ <target name="test" depends="compile, prompt, execute"/>
+ <target name="ci-test" depends="compile, execute"/>
+
+ <target name="compile">
+ <echo message="Running JUnit based QA tests..."/>
+
+ <!-- Build the tests... -->
+ <mkdir dir="${qa.junit.classes}"/>
+ <javac srcdir="${qa.junit.src}" destdir="${qa.junit.classes}" classpathref="qa.junit.cp" debug="on"/>
+ </target>
+
+ <target name="compile-versioned">
+ <echo message="Running JUnit based QA tests..."/>
+
+ <path id="qa.junit.versioned.cp">
+ <path refid="base.cp"/>
+ <fileset dir="${product.lib}" includes="*.jar"/>
+ <pathelement location="${qa.junit.classes}"/>
+ </path>
+
+ <!-- Build the tests... -->
+ <mkdir dir="${qa.junit.versioned.classes}"/>
+ <javac srcdir="${qa.junit.versioned.src}" destdir="${qa.junit.versioned.classes}" classpathref="qa.junit.versioned.cp" debug="on"/>
+ </target>
+
+ <target name="jars" depends="compile, compile-versioned">
<mkdir dir="${qa.build.lib}"/>
- <jar jarfile="${qa.build.lib}/simple.esb">
- <fileset dir="${qa.junit.classes}">
- <include name="org/jboss/soa/esb/server/*.class"/>
- </fileset>
- <fileset dir="${qa.junit.resources}/server/simple">
- <include name="test-service.xml"/>
- <include name="esb-jbm-service.xml"/>
- <include name="META-INF/*.xml"/>
- </fileset>
- </jar>
+ <jar jarfile="${qa.build.lib}/simple.esb">
+ <fileset dir="${qa.junit.classes}">
+ <include name="org/jboss/soa/esb/server/*.class"/>
+ </fileset>
+ <fileset dir="${qa.junit.resources}/server/simple">
+ <include name="test-service.xml"/>
+ <include name="esb-jbm-service.xml"/>
+ <include name="META-INF/*.xml"/>
+ </fileset>
+ </jar>
+ <jar jarfile="${qa.build.lib}/simple-scoped.esb">
+ <fileset dir="${qa.junit.versioned.classes}">
+ <include name="org/jboss/soa/esb/server/*.class"/>
+ </fileset>
+ <fileset dir="${qa.junit.resources}/server/simple-scoped">
+ <include name="esb-jbm-service.xml"/>
+ <include name="META-INF/*.xml"/>
+ </fileset>
+ </jar>
</target>
<target name="one-test" if="test"
- description="Execute all tests in the given test directory.">
+ description="Execute all tests in the given test directory.">
<mkdir dir="${qa.build.reports}"/>
<mkdir dir="${qa.build.testlog}"/>
<!-- Remove the test.log so each run has a fresh log -->
<delete file="${qa.build.testlog}/test.log"/>
<junit dir="."
- printsummary="yes"
- haltonerror="false"
- haltonfailure="false"
- fork="true">
+ printsummary="yes"
+ haltonerror="false"
+ haltonfailure="false"
+ fork="true">
<sysproperty key="jbosstest.deploy.dir" value="${qa.build.lib}"/>
<sysproperty key="build.testlog" value="${qa.build.testlog}"/>
@@ -97,9 +122,9 @@
<formatter type="xml" usefile="true"/>
<batchtest todir="${qa.build.reports}"
- haltonerror="false"
- haltonfailure="false"
- fork="true">
+ haltonerror="false"
+ haltonfailure="false"
+ fork="true">
<fileset dir="${qa.junit.classes}">
<include name="org/jboss/soa/esb/${test}/unit/*TestCase.class"/>
@@ -116,8 +141,8 @@
</fileset>
</copy>
</target>
-
+
<target name="tests-report-html" depends="compile-stylesheets">
<mkdir dir="${qa.build.reports}/html"/>
@@ -126,135 +151,140 @@
<include name="TEST-*.xml"/>
</fileset>
<report format="frames"
- todir="${qa.build.reports}/html"
- styledir="${qa.build.stylesheets}"
- />
+ todir="${qa.build.reports}/html"
+ styledir="${qa.build.stylesheets}"
+ />
</junitreport>
</target>
<target name="execute">
- <!-- Run the tests... -->
- <property name="tests.filter" value="*"/>
- <mkdir dir="${qa.junit.report}"/>
- <property name="org.jboss.soa.esb.paramsRepository.file.root" location="src" />
- <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="yes" fork="true">
- <formatter type="plain" usefile="false"/>
- <formatter type="xml"/>
- <batchtest todir="${qa.junit.report}">
- <fileset dir="${qa.junit.src}">
- <include name="**/${tests.filter}Test.java"/>
- <exclude name="${tests.exclude}"/>
- </fileset>
- </batchtest>
- <classpath>
- <pathelement location="${qa.junit.classes}"/>
- <path refid="qa.junit.cp"/>
- <pathelement location="${qa.junit.src}"/>
- </classpath>
- <jvmarg value="-Xmx${qa.junit.memory}"/>
+ <!-- Run the tests... -->
+ <property name="tests.filter" value="*"/>
+ <mkdir dir="${qa.junit.report}"/>
+ <property name="org.jboss.soa.esb.paramsRepository.file.root" location="src"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="yes" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.src}">
+ <include name="**/${tests.filter}Test.java"/>
+ <exclude name="${tests.exclude}"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <pathelement location="${qa.junit.classes}"/>
+ <path refid="qa.junit.cp"/>
+ <pathelement location="${qa.junit.src}"/>
+ </classpath>
+ <jvmarg value="-Xmx${qa.junit.memory}"/>
- <!-- Listener Sys Props... -->
- <sysproperty key="org.jboss.soa.esb.paramsRepository.file.root" value="${org.jboss.soa.esb.paramsRepository.file.root}"/>
+ <!-- Listener Sys Props... -->
+ <sysproperty key="org.jboss.soa.esb.paramsRepository.file.root"
+ value="${org.jboss.soa.esb.paramsRepository.file.root}"/>
- <!-- Sys Props from the test.properties file... -->
- <sysproperty key="org.jboss.soa.esb.jndi.server.type" value="${org.jboss.soa.esb.jndi.server.type}" />
- <sysproperty key="org.jboss.soa.esb.jndi.server.url" value="${org.jboss.soa.esb.jndi.server.url}" />
-
- <!-- Sys Props from the deployment.properties file... -->
- <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}" />
- <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}" />
- <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}" />
- <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}" />
- <sysproperty key="org.jboss.esb.test.ftp.hostname" value="${org.jboss.esb.test.ftp.hostname}"/>
- <sysproperty key="org.jboss.esb.test.ftp.user" value="${org.jboss.esb.test.ftp.user}"/>
- <sysproperty key="org.jboss.esb.test.ftp.pwd" value="${org.jboss.esb.test.ftp.pwd}"/>
- <sysproperty key="org.jboss.esb.test.ftp.dir" value="${org.jboss.esb.test.ftp.dir}"/>
+ <!-- Sys Props from the test.properties file... -->
+ <sysproperty key="org.jboss.soa.esb.jndi.server.type" value="${org.jboss.soa.esb.jndi.server.type}"/>
+ <sysproperty key="org.jboss.soa.esb.jndi.server.url" value="${org.jboss.soa.esb.jndi.server.url}"/>
- </junit>
-
- <!-- Remove all "fixed-up" listener configuration files -->
- <delete><fileset dir="${qa.junit.src}" includes="**/*.conftmp" /></delete>
-
- <!-- Report on the tests (format results) ... -->
- <junitreport todir="${qa.junit.report}">
- <fileset dir="${qa.junit.report}">
- <include name="*.xml"/>
+ <!-- Sys Props from the deployment.properties file... -->
+ <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}"/>
+ <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}"/>
+ <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}"/>
+ <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}"/>
+ <sysproperty key="org.jboss.esb.test.ftp.hostname" value="${org.jboss.esb.test.ftp.hostname}"/>
+ <sysproperty key="org.jboss.esb.test.ftp.user" value="${org.jboss.esb.test.ftp.user}"/>
+ <sysproperty key="org.jboss.esb.test.ftp.pwd" value="${org.jboss.esb.test.ftp.pwd}"/>
+ <sysproperty key="org.jboss.esb.test.ftp.dir" value="${org.jboss.esb.test.ftp.dir}"/>
+
+ </junit>
+
+ <!-- Remove all "fixed-up" listener configuration files -->
+ <delete>
+ <fileset dir="${qa.junit.src}" includes="**/*.conftmp"/>
+ </delete>
+
+ <!-- Report on the tests (format results) ... -->
+ <junitreport todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.report}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${qa.junit.report}"/>
+ <report format="noframes" todir="${qa.junit.report}"/>
+ </junitreport>
+
+ </target>
+
+ <target name="test-emma" depends="compile-emma, prompt, execute-emma"/>
+ <target name="ci-test-emma" depends="compile-emma, execute-emma"/>
+
+ <target name="compile-emma">
+ <echo message="Running JUnit based QA tests (with ema enabled) ..."/>
+ <!-- Build the tests... -->
+ <mkdir dir="${qa.junit.classes}"/>
+ <javac srcdir="${qa.junit.src}" destdir="${qa.junit.classes}" classpathref="qa.junit.emma.cp" debug="on"/>
+ </target>
+
+ <target name="prompt">
+ <property name="tests.exclude" value="**/*IntegrationTest.java"/>
+ <echo message=""/>
+ <echo message=""/>
+ <input message='Which tests? (Press return to run all tests - Wildcards Supported - already assumes test cases end with the "Test" suffix)'
+ addproperty="tests.filter"
+ defaultvalue="*"/>
+ </target>
+
+ <target name="execute-emma">
+ <!-- Run the tests... -->
+ <property name="tests.filter" value="*"/>
+ <mkdir dir="${qa.junit.report}"/>
+ <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="yes" fork="true">
+ <formatter type="plain" usefile="false"/>
+ <formatter type="xml"/>
+ <batchtest todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.src}">
+ <include name="**/${tests.filter}Test.java"/>
</fileset>
- <report format="frames" todir="${qa.junit.report}"/>
- <report format="noframes" todir="${qa.junit.report}"/>
- </junitreport>
-
- </target>
+ </batchtest>
+ <classpath>
+ <pathelement location="${qa.junit.classes}"/>
+ <path refid="qa.junit.emma.cp"/>
+ <pathelement location="${qa.junit.src}"/>
+ </classpath>
- <target name="test-emma" depends="compile-emma, prompt, execute-emma"/>
- <target name="ci-test-emma" depends="compile-emma, execute-emma"/>
+ <jvmarg value="-Xmx${qa.junit.memory}"/>
+ <!-- emma jvm args -->
+ <jvmarg value="-Demma.coverage.out.file=${coverage}/all/coverage.emma"/>
+ <jvmarg value="-Demma.coverage.out.merge=true"/>
- <target name="compile-emma">
- <echo message="Running JUnit based QA tests (with ema enabled) ..."/>
- <!-- Build the tests... -->
- <mkdir dir="${qa.junit.classes}"/>
- <javac srcdir="${qa.junit.src}" destdir="${qa.junit.classes}" classpathref="qa.junit.emma.cp" debug="on" />
- </target>
+ <!-- Listener Sys Props... -->
+ <sysproperty key="org.jboss.soa.esb.paramsRepository.file.root" value="junit/src"/>
- <target name="prompt">
- <property name="tests.exclude" value="**/*IntegrationTest.java"/>
- <echo message="" />
- <echo message="" />
- <input message='Which tests? (Press return to run all tests - Wildcards Supported - already assumes test cases end with the "Test" suffix)'
- addproperty="tests.filter"
- defaultvalue="*"/>
- </target>
-
- <target name="execute-emma">
- <!-- Run the tests... -->
- <property name="tests.filter" value="*"/>
- <mkdir dir="${qa.junit.report}"/>
- <junit printsummary="yes" haltonerror="yes" haltonfailure="yes" showoutput="yes" fork="true">
- <formatter type="plain" usefile="false"/>
- <formatter type="xml"/>
- <batchtest todir="${qa.junit.report}">
- <fileset dir="${qa.junit.src}">
- <include name="**/${tests.filter}Test.java"/>
- </fileset>
- </batchtest>
- <classpath>
- <pathelement location="${qa.junit.classes}"/>
- <path refid="qa.junit.emma.cp"/>
- <pathelement location="${qa.junit.src}"/>
- </classpath>
+ <!-- Sys Props from the test.properties file... -->
+ <sysproperty key="org.jboss.soa.esb.jndi.server.type" value="${org.jboss.soa.esb.jndi.server.type}"/>
+ <sysproperty key="org.jboss.soa.esb.jndi.server.url" value="${org.jboss.soa.esb.jndi.server.url}"/>
- <jvmarg value="-Xmx${qa.junit.memory}"/>
- <!-- emma jvm args -->
- <jvmarg value="-Demma.coverage.out.file=${coverage}/all/coverage.emma" />
- <jvmarg value="-Demma.coverage.out.merge=true" />
+ <!-- Sys Props from the deployment.properties file... -->
+ <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}"/>
+ <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}"/>
+ <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}"/>
+ <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}"/>
+ </junit>
- <!-- Listener Sys Props... -->
- <sysproperty key="org.jboss.soa.esb.paramsRepository.file.root" value="junit/src" />
+ <!-- Remove all "fixed-up" listener configuration files -->
+ <delete>
+ <fileset dir="${qa.junit.src}" includes="**/*.conftmp"/>
+ </delete>
- <!-- Sys Props from the test.properties file... -->
- <sysproperty key="org.jboss.soa.esb.jndi.server.type" value="${org.jboss.soa.esb.jndi.server.type}" />
- <sysproperty key="org.jboss.soa.esb.jndi.server.url" value="${org.jboss.soa.esb.jndi.server.url}" />
-
- <!-- Sys Props from the deployment.properties file... -->
- <sysproperty key="org.jboss.esb.db.driver" value="${org.jboss.esb.db.driver}" />
- <sysproperty key="org.jboss.esb.db.url" value="${org.jboss.esb.db.url}" />
- <sysproperty key="org.jboss.esb.db.user" value="${org.jboss.esb.db.user}" />
- <sysproperty key="org.jboss.esb.db.password" value="${org.jboss.esb.db.password}" />
- </junit>
-
- <!-- Remove all "fixed-up" listener configuration files -->
- <delete><fileset dir="${qa.junit.src}" includes="**/*.conftmp" /></delete>
-
- <!-- Report on the tests (format results) ... -->
- <junitreport todir="${qa.junit.report}">
- <fileset dir="${qa.junit.report}">
- <include name="*.xml"/>
- </fileset>
- <report format="frames" todir="${qa.junit.report}"/>
- <report format="noframes" todir="${qa.junit.report}"/>
- </junitreport>
-
- </target>
-
+ <!-- Report on the tests (format results) ... -->
+ <junitreport todir="${qa.junit.report}">
+ <fileset dir="${qa.junit.report}">
+ <include name="*.xml"/>
+ </fileset>
+ <report format="frames" todir="${qa.junit.report}"/>
+ <report format="noframes" todir="${qa.junit.report}"/>
+ </junitreport>
+
+ </target>
+
</project>
Added: labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/deployment.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/deployment.xml (rev 0)
+++ labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/deployment.xml 2007-03-16 04:41:49 UTC (rev 10253)
@@ -0,0 +1,11 @@
+<jbossesb-deployment>
+ <depends>jboss.esb:test=server</depends>
+ <depends>jboss.messaging.destination:service=Queue,name=esb_gateway_channel_versioned</depends>
+ <depends>jboss.messaging.destination:service=Queue,name=esb_channel_versioned</depends>
+ <loader-repository>
+ org.jboss.soa.esb:loader=simple-scoped
+ <loader-repository-config>
+ java2ParentDelegaton=false
+ </loader-repository-config>
+ </loader-repository>
+</jbossesb-deployment>
\ No newline at end of file
Added: labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/jboss-esb.xml (rev 0)
+++ labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/META-INF/jboss-esb.xml 2007-03-16 04:41:49 UTC (rev 10253)
@@ -0,0 +1,50 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+ parameterReloadSecs="5">
+
+ <providers>
+ <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+ jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+ jndi-URL="localhost">
+
+ <jms-bus busid="gateway-channel-versioned">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/esb_gateway_channel_versioned"
+ />
+ </jms-bus>
+ <jms-bus busid="esb-channel-versioned">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/esb_channel_versioned"
+ />
+ </jms-bus>
+ </jms-provider>
+ </providers>
+
+ <services>
+
+ <service category="HelloWorld_ActionESB_versioned"
+ name="SimpleListenerVersioned"
+ description="Hello World">
+ <listeners>
+ <jms-listener name="JMS-Gateway"
+ busidref="gateway-channel-versioned"
+ maxThreads="1"
+ is-gateway="true"
+ />
+ <jms-listener name="JMS-ESBListener"
+ busidref="esb-channel-versioned"
+ maxThreads="1"
+ />
+ </listeners>
+ <actions>
+ <action name="displayAction"
+ class="org.jboss.soa.esb.server.MyJMSListenerAction"
+ process="process">
+ </action>
+ </actions>
+ </service>
+ </services>
+
+</jbossesb>
Added: labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-jbm-service.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-jbm-service.xml (rev 0)
+++ labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-jbm-service.xml 2007-03-16 04:41:49 UTC (rev 10253)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=esb_gateway_channel_versioned"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=esb_channel_versioned"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+</server>
Added: labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-queues-service.xml
===================================================================
--- labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-queues-service.xml (rev 0)
+++ labs/jbossesb/trunk/qa/junit/resources/server/simple-scoped/esb-queues-service.xml 2007-03-16 04:41:49 UTC (rev 10253)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- jboss mq version -->
+<server>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.mq.destination:service=Queue,name=esb_gateway_channel_versioned">
+ <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+ </mbean>
+ <mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.mq.destination:service=Queue,name=esb_channel_versioned">
+ <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+ </mbean>
+</server>
Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/server/unit/SimpleDeployUnitTestCase.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/server/unit/SimpleDeployUnitTestCase.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/server/unit/SimpleDeployUnitTestCase.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -57,14 +57,14 @@
super(name);
}
- public void sendAMessage(String msg) throws Exception
+ public void sendAMessage(String msg, String destination) throws Exception
{
InitialContext iniCtx = getInitialContext();
Object tmp = iniCtx.lookup("ConnectionFactory");
ConnectionFactory qcf = (ConnectionFactory) tmp;
Connection conn = qcf.createConnection();
- Destination que = (Queue) iniCtx.lookup("queue/esb_gateway_channel");
+ Destination que = (Queue) iniCtx.lookup(destination);
Session session = conn.createSession(false, QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
MessageProducer send = session.createProducer(que);
@@ -76,16 +76,24 @@
public void testSimple() throws Exception
{
- sendAMessage("Hello World");
+ sendAMessage("Hello World", "queue/esb_gateway_channel");
Thread.sleep(2000); // wait for message to post.
String version = (String)getServer().getAttribute(new ObjectName(StatsMBean.objectName), "ExecutedVersion");
assertEquals(version, "scope1");
}
+ public void testScope() throws Exception
+ {
+ sendAMessage("Hello World", "queue/esb_gateway_channel_versioned");
+ Thread.sleep(2000); // wait for message to post.
+ String version = (String)getServer().getAttribute(new ObjectName(StatsMBean.objectName), "ExecutedVersion");
+ assertEquals(version, "scope2");
+
+ }
public static Test suite() throws Exception
{
- return getDeploySetup(SimpleDeployUnitTestCase.class, "simple.esb");
+ return getDeploySetup(SimpleDeployUnitTestCase.class, "simple.esb, simple-scoped.esb");
}
}
Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java 2007-03-16 04:08:37 UTC (rev 10252)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/util/DbUtils.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -284,7 +284,7 @@
try
{
// Register the driver..
- Class.forName(dbDriver).newInstance();
+ Thread.currentThread().getContextClassLoader().loadClass(dbDriver).newInstance();
// Create the connection...
con = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
// Create a regular statement for execution...
Added: labs/jbossesb/trunk/qa/junit/versioned-scoped-src/org/jboss/soa/esb/server/MyJMSListenerAction.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/versioned-scoped-src/org/jboss/soa/esb/server/MyJMSListenerAction.java (rev 0)
+++ labs/jbossesb/trunk/qa/junit/versioned-scoped-src/org/jboss/soa/esb/server/MyJMSListenerAction.java 2007-03-16 04:41:49 UTC (rev 10253)
@@ -0,0 +1,73 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt 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.soa.esb.server;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.mx.util.MBeanProxyExt;
+
+import javax.management.MBeanServer;
+
+/**
+ * This is a duplicate class to test classloader scoping.
+ *
+ */
+public class MyJMSListenerAction
+{
+ protected ConfigTree _config;
+
+ public MyJMSListenerAction(ConfigTree config)
+ {
+ _config = config;
+ }
+
+ public Message noOperation(Message message)
+ {
+ return message;
+ }
+
+ public Message process(Message message) throws Exception
+ {
+ logHeader();
+ System.out.println("Body: " + new String(message.getBody().getContents()));
+ logFooter();
+ MBeanServer server = MBeanServerLocator.locateJBoss();
+ StatsMBean stats = (StatsMBean) MBeanProxyExt.create(StatsMBean.class, StatsMBean.objectName, server);
+ System.out.println("************ SCOPED 2 ************");
+ stats.setExecutedVersion("scope2");
+ return message;
+ }
+
+ // This makes it easier to read on the console
+ private void logHeader()
+ {
+ System.out.println("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&");
+ }
+
+ private void logFooter()
+ {
+ System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
+ }
+
+
+}
More information about the jboss-svn-commits
mailing list