[jboss-svn-commits] JBL Code SVN: r26579 - in labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta: src/org/jboss/soa/esb/listeners/deployers/mc/util and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 18 03:36:45 EDT 2009
Author: beve
Date: 2009-05-18 03:36:45 -0400 (Mon, 18 May 2009)
New Revision: 26579
Modified:
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployer.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/util/VfsUtil.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.xml
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.java
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.xml
labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/TestUtil.java
Log:
Added some more test maily to assure that the deployers clean up after themselves.
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParser.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -168,8 +168,10 @@
// Get dependencies from deployment.xml.
final Set<ObjectName> dependencies = getDependenciesFromDeploymentXml(deploymentUnit);
+
// Get implicit action dependencies.
final Set<ObjectName> actionDependencies = getActionDependencies(deploymentName, model, actionArtifactProperties);
+
// Add all dependencies to set.
dependencies.addAll(actionDependencies);
@@ -203,13 +205,11 @@
throw new DeploymentException(e.getMessage(), e);
}
- final int esbConfigFilesFound = esbConfigFiles.size();
-
- if (esbConfigFilesFound == 0)
+ if (esbConfigFiles.size() == 0)
{
throw new DeploymentException("No JBossESB configuration could be located the archive '" + file + "'");
}
- else if (esbConfigFilesFound > 1)
+ else if (esbConfigFiles.size() > 1)
{
throw new DeploymentException("Only one JBossESB configuration can exist in an archive. Please check '" + file + "'");
}
@@ -219,18 +219,19 @@
}
}
- private Set<ObjectName> getDependenciesFromDeploymentXml(final VFSDeploymentUnit deploymentUnit) throws DeploymentException
+ Set<ObjectName> getDependenciesFromDeploymentXml(final VFSDeploymentUnit unit) throws DeploymentException
{
final Set<ObjectName> dependencies = new HashSet<ObjectName>();
- final VirtualFile deploymentFile = deploymentUnit.getFile(ESB_DEPLOYMENT_XML);
+ final VirtualFile deploymentXml = unit.getFile(ESB_DEPLOYMENT_XML);
+
try
{
- if (deploymentFile != null && deploymentFile.exists())
+ if (deploymentXml != null && deploymentXml.exists())
{
try
{
XmlFileLoader xfl = new XmlFileLoader();
- Element jboss = xfl.getDocument(deploymentFile.openStream(), ESB_DEPLOYMENT_XML).getDocumentElement();
+ Element jboss = xfl.getDocument(deploymentXml.openStream(), ESB_DEPLOYMENT_XML).getDocumentElement();
// Check for a ejb level class loading config
@SuppressWarnings("unchecked")
Iterator depends = MetaData.getChildrenByTagName(jboss, "depends");
@@ -325,9 +326,14 @@
return deps;
}
- private String getDeploymentName(final VFSDeploymentUnit deploymentUnit)
+ String getDeploymentName(final VFSDeploymentUnit deploymentUnit)
{
final String simpleName = deploymentUnit.getSimpleName();
+ int idx = simpleName.indexOf(ESB_ARCHIVE_SUFFIX);
+ if (idx == -1)
+ {
+ return simpleName;
+ }
return simpleName.substring(0, simpleName.indexOf(ESB_ARCHIVE_SUFFIX));
}
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployer.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -108,7 +108,6 @@
{
final BeanMetaData beanMetaData = createBeanMetaData(deploymentUnit, esbMetaData);
deploymentUnit.addAttachment(BeanMetaData.class.getName() + "_ESB", beanMetaData);
-
log.debug("Created beanMetaData : " + beanMetaData);
}
catch (final DeploymentException e)
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployer.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -67,17 +67,29 @@
/**
* Key used for attaching a VirtualFile representing a ref to
- * a dynamically created virtual file system.
+ * a dynamically created root virtual file system.
*/
- private static final String DYNAMIC_CL_DIR_KEY = "WS-DYNAMIC-CL-DIR";
+ static final String DYNAMIC_CL_DIR_KEY = "WS-DYNAMIC-CL-DIR";
/**
* Key used for attaching a URL representing a ref to
- * a dynamically created virtual file system.
+ * a dynamically created root virtual file system.
*/
- private static final String DYNAMIC_CL_URL_KEY = "WS-DYNAMIC-CL-URL";
+ static final String DYNAMIC_CL_URL_KEY = "WS-DYNAMIC-CL-URL";
/**
+ * Key used for attaching a VirtualFile representing a ref to
+ * a dynamically created WEB-INF/classes virtual file system.
+ */
+ static final String DYNAMIC_WEBINF_CL_DIR_KEY = "WS-WEBINF-DYNAMIC-CL-DIR";
+
+ /**
+ * Key used for attaching a URL representing a ref to
+ * a dynamically created WEB-INF/classes virtual file system.
+ */
+ static final String DYNAMIC_WEBINF_CL_URL_KEY = "WS-WEBINF-DYNAMIC-CL-URL";
+
+ /**
* Sole constructor that performas the following steps:
* <lu>
* <li>Sets the output of this deployer to be {@link EsbMetaData}.</li>
@@ -118,14 +130,18 @@
final VirtualFile inMemRootDir = VfsUtil.createInMemoryFs(inMemRootUrl);
// Attach the in-memory classpath URL and virtual file to this deployment unit so we can remove then upon undeploy.
- attachToDeploymentUnit(unit, inMemRootUrl, inMemRootDir);
+ //attachToDeploymentUnit(unit, inMemRootUrl, inMemRootDir);
+ unit.addAttachment(DYNAMIC_CL_DIR_KEY, inMemRootDir);
+ unit.addAttachment(DYNAMIC_CL_URL_KEY, inMemRootUrl);
// Add the in-memory classpath to this deployment unit.
unit.addClassPath(inMemRootDir);
// Create WEB-INF/classes relative to the in-memory vfs root.
- final URL classesUrl = VfsUtil.createInMemUrl(inMemRootUrl, "/WEB-INF/classes");
+ final URL classesUrl = VfsUtil.createInMemUrl(inMemRootUrl, "WEB-INF/classes");
final VirtualFile classesDir = MemoryFileFactory.createDirectory(classesUrl);
+ unit.addAttachment(DYNAMIC_WEBINF_CL_DIR_KEY, classesDir);
+ unit.addAttachment(DYNAMIC_WEBINF_CL_URL_KEY, classesUrl);
// Add the in-memory classes dir to this deployment unit.
unit.addClassPath(classesDir);
@@ -153,11 +169,11 @@
// Generate the servlet class bytes
final byte[] servletClass = generator.generate(service.getCategory(), service.getName(), serviceInfo, includeHandlers);
final String servletClassName = serviceInfo.getClassName().replace('.', '/') + ".class";
- final URL servletClassUrl = new URL(classesUrl + "/" + servletClassName);
+ final URL servletClassUrl = VfsUtil.createInMemUrl(classesUrl, servletClassName);
// Add the servlet to the virtual file system.
VfsUtil.addFile(classesUrl, servletClassName, servletClass);
- log.debug("Generated ws impl: " + servletClassUrl);
+ log.debug("Generated ServletImpl '" + servletClassUrl + "'");
servlets.add(createServlets(service, serviceInfo, generator, includeHandlers));
servletMappings.add(createServletMapping(serviceInfo));
@@ -188,41 +204,46 @@
}
}
- private void attachToDeploymentUnit(final VFSDeploymentUnit unit, final URL url, final VirtualFile vf)
- {
- unit.addAttachment(DYNAMIC_CL_URL_KEY, url);
- unit.addAttachment(DYNAMIC_CL_DIR_KEY, vf);
- }
-
@Override
- public void undeploy(final VFSDeploymentUnit deploymentUnit, final EsbMetaData esbMetaData)
+ public void undeploy(final VFSDeploymentUnit unit, final EsbMetaData esbMetaData)
{
- log.debug("Removing dynamic class root for " + deploymentUnit.getName());
try
{
- final VirtualFile classes = deploymentUnit.removeAttachment(DYNAMIC_CL_DIR_KEY, VirtualFile.class);
- if (classes != null)
- {
- deploymentUnit.removeClassPath(classes);
- }
- }
+ removeVirtualFile(unit, DYNAMIC_CL_DIR_KEY);
+ removeVirtualFile(unit, DYNAMIC_WEBINF_CL_DIR_KEY);
+ }
finally
{
try
{
- final URL root = deploymentUnit.removeAttachment(DYNAMIC_CL_URL_KEY, URL.class);
- if (root != null)
- {
- MemoryFileFactory.deleteRoot(root);
- }
+ removeFromClassPath(unit, DYNAMIC_WEBINF_CL_URL_KEY);
+ removeFromClassPath(unit, DYNAMIC_CL_URL_KEY);
}
catch (final Exception e)
{
- log.warn("Error deleting dynamic class root for " + deploymentUnit.getName(), e);
+ log.warn("Error deleting dynamic class root for " + unit.getName(), e);
}
}
}
+ private void removeVirtualFile(final VFSDeploymentUnit unit, final String attachmenKey)
+ {
+ final VirtualFile file = unit.removeAttachment(attachmenKey, VirtualFile.class);
+ if (file != null)
+ {
+ unit.removeClassPath(file);
+ }
+ }
+
+ private void removeFromClassPath(final VFSDeploymentUnit unit, final String attachmentKey)
+ {
+ final URL url = unit.removeAttachment(attachmentKey, URL.class);
+ if (url != null)
+ {
+ MemoryFileFactory.delete(url);
+ }
+ }
+
private boolean hasWebServices(final List<WebserviceInfo> endpointServices)
{
return endpointServices != null && endpointServices.size() > 0;
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployer.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployer.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -24,6 +24,7 @@
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
@@ -36,6 +37,7 @@
import org.jboss.soa.esb.listeners.config.WebserviceInfo;
import org.jboss.soa.esb.listeners.deployers.mc.util.VfsUtil;
import org.jboss.virtual.MemoryFileFactory;
+import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
import org.jboss.virtual.VirtualFileFilter;
import org.jboss.ws.metadata.umdm.UnifiedMetaData;
@@ -60,17 +62,21 @@
private Logger log = Logger.getLogger(EsbWsdlDeployer.class);
/**
- * Key used for attaching a VirtualFile representing a ref to
+ * Key used for attaching a list of VirtualFile representing generated wsdl files.
+ */
+ static final String WSDL_LOCATIONS_KEY = "WSDL-LOCATIONS-KEY";
+
+ /**
+ * Key used for attaching a URL representing a ref to
* a dynamically created in-memory virtual file system.
*/
- private static final String DYNAMIC_CL_DIR_KEY = "WSDL-DYNAMIC-CL-DIR";
+ static final String DYNAMIC_ROOT_URL_KEY = "WSDL-DYNAMIC-ROOT-URL";
-
/**
* Key used for attaching a URL representing a ref to
* a dynamically created in-memory virtual file system.
*/
- private static final String DYNAMIC_CL_URL_KEY = "WSDL-DYNAMIC-CL-URL";
+ static final String DYNAMIC_ROOT_DIR_KEY = "WSDL-DYNAMIC-ROOT-DIR";
/**
* {@link VirtualFileFilter} that selects '.xsd'.
@@ -112,27 +118,34 @@
final String inMemRootName = esbMetaData.getDeploymentName() + "_WSDL";
final URL inMemRootUrl = VfsUtil.createInMemUrl(inMemRootName);
final VirtualFile inMemRootDir = VfsUtil.createInMemoryFs(inMemRootUrl);
+ // Attach the in-memory root url so we can remove it in undeploy.
+ unit.addAttachment(DYNAMIC_ROOT_URL_KEY, inMemRootUrl);
+ // Attach the in-memory root dir so we can remove it in undeploy.
+ unit.addAttachment(DYNAMIC_ROOT_DIR_KEY, inMemRootDir);
- // Attach the in-memory classpath URL and virtual file to this deployment unit so we can remove then upon undeploy.
- attachToDeploymentUnit(unit, inMemRootUrl, inMemRootDir);
+ final List<URL> wsdls = new ArrayList<URL>();
for (WebserviceInfo wsInfo : webServices)
{
// Generate the wsdl for the web service.
final ESBServiceEndpointInfo serviceInfo = new ESBServiceEndpointInfo(wsInfo);
final String wsdl = ESBContractGenerator.generateWSDL(wsInfo, serviceInfo, unit.getClassLoader());
- final URL wsdlUrl = new URL(inMemRootUrl + "/" + serviceInfo.getWSDLFileName());
+ final URL wsdlUrl = VfsUtil.createInMemUrl(inMemRootUrl, serviceInfo.getWSDLFileName());
log.info("Generating wsdl url : " + wsdlUrl);
// Add the wsdl in the virtual file system
- VirtualFile putFile = VfsUtil.addFile(inMemRootUrl, serviceInfo.getWSDLFileName(), wsdl.getBytes());
+ VirtualFile wsdlFile = VfsUtil.addFile(inMemRootUrl, serviceInfo.getWSDLFileName(), wsdl.getBytes());
+ wsdls.add(wsdlUrl);
// Add any additional schemas in the deployment unit to the in-memory vfs.
- addSchemasToVfs(getSchemas(unit.getRoot()), putFile.getParent(), esbMetaData.getArchiveName());
+ addSchemasToVfs(getSchemas(unit.getRoot()), wsdlFile.getParent(), esbMetaData.getArchiveName());
// Add the root of the virtual file system as a meta data location.
unit.appendMetaDataLocation(inMemRootDir);
}
+
+ // Attach all the wsdl locations so that we can remove them in undeploy.
+ unit.addAttachment(WSDL_LOCATIONS_KEY, wsdls);
}
catch (final Exception e)
{
@@ -141,12 +154,6 @@
}
}
- private void attachToDeploymentUnit(final VFSDeploymentUnit unit, final URL url, final VirtualFile vf)
- {
- unit.addAttachment(DYNAMIC_CL_URL_KEY, url);
- unit.addAttachment(DYNAMIC_CL_DIR_KEY, vf);
- }
-
/**
* Retrieves all the schemas (.xsd) from the virtual file root passed in.
*
@@ -187,41 +194,45 @@
* be removed.
* <p/>
*
- * @param deploymentUnit The {@link VFSDeploymentUnit} for this deploment.
+ * @param unit The {@link VFSDeploymentUnit} for this deploment.
* @param esbMetaData The {@link EsbMetaData} for this deployment.
*/
@Override
- public void undeploy(final VFSDeploymentUnit deploymentUnit, final EsbMetaData esbMetaData)
+ public void undeploy(final VFSDeploymentUnit unit, final EsbMetaData esbMetaData)
{
- log.debug("Removing dynamic class root for " + deploymentUnit.getName());
try
{
- final VirtualFile classes = deploymentUnit.removeAttachment(DYNAMIC_CL_DIR_KEY, VirtualFile.class);
- if (classes != null)
+ final List<URL> locations = unit.removeAttachment(WSDL_LOCATIONS_KEY, List.class);
+ if (locations != null)
{
- deploymentUnit.removeClassPath(classes);
+ for (URL url : locations)
+ {
+ MemoryFileFactory.delete(url);
+ }
}
}
finally
{
try
{
- final URL root = deploymentUnit.removeAttachment(DYNAMIC_CL_URL_KEY, URL.class);
- if (root != null)
+ final URL rootUrl = unit.removeAttachment(DYNAMIC_ROOT_URL_KEY, URL.class);
+ if (rootUrl != null)
{
- MemoryFileFactory.deleteRoot(root);
+ MemoryFileFactory.deleteRoot(rootUrl);
+ // Also need remove the root from the metadata locations.
+ unit.removeMetaDataLocation(VFS.getVFS(rootUrl).getRoot());
}
+
}
catch (final Exception e)
{
- log.warn("Error deleting dynamic class root for " + deploymentUnit.getName(), e);
+ log.warn("Error deleting dynamic class root for " + unit.getName(), e);
}
}
}
/**
- * A {@link VirtualFileFilter} that selects all files ending with
- * '.xsd'.
+ * A {@link VirtualFileFilter} that selects all files ending with '.xsd'.
*
* @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
*
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/util/VfsUtil.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/util/VfsUtil.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/src/org/jboss/soa/esb/listeners/deployers/mc/util/VfsUtil.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -94,7 +94,7 @@
public static URL createInMemUrl(final URL root, final String path) throws MalformedURLException
{
- return new URL(IN_MEMORY_PROTOCOL, root.getHost(), "/" + path);
+ return new URL(IN_MEMORY_PROTOCOL, root.getHost(), root.getPath() + "/" + path);
}
public static void addFiles(final List<VirtualFile> files, final URL destUrl, final String subPath) throws IOException, URISyntaxException
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbConfigParserUnitTest.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -25,7 +25,10 @@
import javax.management.ObjectName;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.soa.esb.listeners.deployers.mc.util.VfsUtil;
import org.jboss.test.kernel.junit.MicrocontainerTest;
+import org.jboss.virtual.VirtualFile;
/**
* Unit tests for {@link EsbConfigParser}.
@@ -52,10 +55,47 @@
assertEquals("exploded-esb-archive", esbMetaData.getDeploymentName());
Set<ObjectName> deps = esbMetaData.getDependencies();
+
assertEquals(3, deps.size());
assertTrue(deps.contains(new ObjectName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb")));
assertTrue(deps.contains(new ObjectName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw")));
assertTrue(deps.contains(new ObjectName("jboss.web.deployment:war=/test2")));
}
+ public void testGetDependenciesFromDeploymentUnit() throws Exception
+ {
+ VFSDeploymentUnit unit = TestUtil.getDeploymentUnit(dir, "exploded-esb-archive.esb");
+ Set<ObjectName> deps = parserDeployer.getDependenciesFromDeploymentXml(unit);
+
+ assertFalse(deps.isEmpty());
+ assertEquals(3, deps.size());
+ assertTrue(deps.contains(new ObjectName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb")));
+ assertTrue(deps.contains(new ObjectName("jboss.web.deployment:war=/test2")));
+ assertTrue(deps.contains(new ObjectName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw")));
+ }
+
+ public void testGetDependenciesFromDeploymentUnitNoDeps() throws Exception
+ {
+ VirtualFile vfs = VfsUtil.createInMemoryFs(VfsUtil.createInMemUrl("confParser"));
+ VFSDeploymentUnit unit = TestUtil.getDeploymentUnit(vfs);
+ Set<ObjectName> deps = parserDeployer.getDependenciesFromDeploymentXml(unit);
+
+ assertTrue(deps.isEmpty());
+ }
+
+ public void testDeploymentName() throws Exception
+ {
+ VirtualFile vfs = VfsUtil.createInMemoryFs(VfsUtil.createInMemUrl("confParser"));
+ VFSDeploymentUnit unit = TestUtil.getDeploymentUnit(vfs);
+
+ assertEquals("", parserDeployer.getDeploymentName(unit));
+ }
+
+ public void testGetDeploymentName() throws Exception
+ {
+ VFSDeploymentUnit unit = TestUtil.getDeploymentUnit(dir, "exploded-esb-archive.esb");
+
+ assertEquals("exploded-esb-archive", parserDeployer.getDeploymentName(unit));
+ }
+
}
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbDeployerUnitTest.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -25,6 +25,8 @@
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
import org.jboss.test.kernel.junit.MicrocontainerTest;
/**
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -20,18 +20,21 @@
*/
package org.jboss.soa.esb.listeners.deployers.mc;
+import java.io.IOException;
+import java.net.MalformedURLException;
import java.net.URL;
+import java.util.List;
-import org.jboss.classloader.spi.ClassLoaderDomain;
-import org.jboss.classloader.spi.ClassLoaderPolicy;
-import org.jboss.classloader.spi.ClassLoaderSystem;
import org.jboss.deployers.client.spi.Deployment;
-import org.jboss.deployers.client.spi.main.MainDeployer;
import org.jboss.deployers.plugins.main.MainDeployerImpl;
-import org.jboss.deployers.structure.spi.DeploymentContext;
+import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.client.VFSDeployment;
import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.web.jboss.JBossServletsMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMappingMetaData;
+import org.jboss.soa.esb.listeners.deployers.mc.util.VfsUtil;
import org.jboss.test.kernel.junit.MicrocontainerTest;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
@@ -45,63 +48,89 @@
*/
public class EsbWebServiceDeployerUnitTest extends MicrocontainerTest
{
- private URL dir = getClass().getResource("/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives");
+ private Deployment deployment;
+ private MainDeployerImpl mainDeployer;
- private EsbWebServiceDeployer esbWebServiceDeployer = new EsbWebServiceDeployer();
-
public EsbWebServiceDeployerUnitTest(String name)
{
super(name);
}
- public void testJBossWebMetaDataCreated() throws Throwable
+ @Override
+ public void afterSetUp() throws Exception
{
- //final String archiveName = "exploded-esb-archive.esb";
- //EsbMetaData esbMetaData = TestUtil.getEsbMetaData(new EsbConfigParser(), dir, archiveName);
- //VFSDeploymentUnit deploymentUnit = TestUtil.getDeploymentUnit(dir, archiveName);
- //MainDeployer mainDeployer = deploymentUnit.getMainDeployer();
+ super.afterSetUp();
final String archiveName = "exploded-esb-archive.esb";
- VirtualFile virtualFile = VFS.getVirtualFile(dir, archiveName);
- VFSDeployment deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(virtualFile);
- MainDeployerImpl mainDeployer = (MainDeployerImpl) getBean("MainDeployer");
+ final URL dir = getClass().getResource("/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives");
+ final VirtualFile archiveFile = VFS.getVirtualFile(dir, archiveName);
+ deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(archiveFile);
+ mainDeployer = (MainDeployerImpl) getBean("MainDeployer");
mainDeployer.deploy(deployment);
+ }
+
+ public void testJBossWebMetaDataCreated() throws Throwable
+ {
+ final DeploymentUnit unit = mainDeployer.getDeploymentUnit(deployment.getName());
+ final JBossWebMetaData webMD = unit.getAttachment(JBossWebMetaData.class);
+ assertNotNull(webMD);
- //URL r = deploymentUnit.getClassLoader().getResource("test.txt");
- DeploymentUnit deploymentUnit = mainDeployer.getDeploymentUnit(deployment.getName());
+ final JBossServletsMetaData servlets = webMD.getServlets();
+ assertEquals(1, servlets.size());
- /*
+ final String servletClassName = servlets.iterator().next().getServletClass();
+ assertEquals("esb.ws.FirstServiceESB.SimpleListener.Implementation", servletClassName);
- esbWebServiceDeployer.deploy(deploymentUnit, esbMetaData);
- JBossWebMetaData webMetaData = deploymentUnit.getAttachment(JBossWebMetaData.class);
- assertNotNull(webMetaData);
+ final List<ServletMappingMetaData> mappings = webMD.getServletMappings();
+ assertEquals(1, mappings.size());
+ assertEquals("FirstServiceESB_SimpleListener", mappings.get(0).getServletName());
+ assertEquals(1, mappings.get(0).getUrlPatterns().size());
+ assertEquals("/FirstServiceESB/SimpleListener", mappings.get(0).getUrlPatterns().get(0));
+ }
+
+ public void testServletAddedToClassPath() throws Throwable
+ {
+ final VFSDeploymentUnit unit = (VFSDeploymentUnit) mainDeployer.getDeploymentUnit(deployment.getName());
+ final VirtualFile classesDir = getWebInfClassesDir(unit.getClassPath());
- //JBossServletsMetaData servlets = webMetaData.getServlets();
- //assertEquals(1, servlets.size());
- //final String servletClassName = servlets.iterator().next().getServletClass();
- //assertEquals("esb.ws.FirstServiceESB.SimpleListener.Implementation", servletClassName);
+ assertNotNull(classesDir.getChild("esb/ws/FirstServiceESB/SimpleListener/Implementation.class"));
+ }
+
+ public void testUndeployCleanup() throws DeploymentException, MalformedURLException, IOException
+ {
+ final EsbWebServiceDeployer wsDeployer = (EsbWebServiceDeployer) getBean("EsbWebServiceDeployer");
+ final VFSDeploymentUnit unit = (VFSDeploymentUnit) mainDeployer.getDeploymentUnit(deployment.getName());
+ final URL inMemRootUrl = VfsUtil.createInMemUrl("exploded-esb-archive");
+ final VirtualFile inMemRootDir = VfsUtil.createInMemoryFs(inMemRootUrl);
+ unit.addAttachment(EsbWebServiceDeployer.DYNAMIC_CL_DIR_KEY, inMemRootDir);
+ unit.addAttachment(EsbWebServiceDeployer.DYNAMIC_CL_URL_KEY, inMemRootUrl);
- URL r = deploymentUnit.getClassLoader().getResource("test.txt");
- System.out.println(r);
+ wsDeployer.undeploy(unit, null);
- URL wsdl = deploymentUnit.getClassLoader().getResource("/WEB-INF/wsdl/FirstServiceESB/SimpleListener.wsdl");
- assertNotNull("No wsdl file was added to the classpath.", wsdl);
+ assertNull(unit.getAttachment(EsbWebServiceDeployer.DYNAMIC_CL_DIR_KEY));
+ assertNull(unit.getAttachment(EsbWebServiceDeployer.DYNAMIC_CL_URL_KEY));
- //URL servletClass = deploymentUnit.getClassLoader().getResource("/WEB-INF/classes/esb/ws/FirstServiceESB.SimpleListener.Implementation.class");
- //assertNotNull("No servletclass(WS) was added to the classpath", servletClass);
-
- // Try loading the servlet class to verify that it is available to the deployment units classloader
- try
+ final VirtualFile classesDir = getWebInfClassesDir(unit.getClassPath());
+ assertNull(classesDir);
+ }
+
+ public void tearDown() throws Exception
+ {
+ mainDeployer.undeploy(deployment);
+ super.tearDown();
+ }
+
+ private VirtualFile getWebInfClassesDir(final List<VirtualFile> classpath)
+ {
+ for (VirtualFile file : classpath)
{
- deploymentUnit.getClassLoader().loadClass("Test");
+ if (file.getPathName().equals("WEB-INF/classes"))
+ {
+ return file;
+ }
}
- catch (final Exception e)
- {
- e.printStackTrace();
- fail(e.getMessage());
- }
- */
+ return null;
}
}
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.xml 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWebServiceDeployerUnitTest.xml 2009-05-18 07:36:45 UTC (rev 26579)
@@ -4,39 +4,39 @@
xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
- <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser"/>
+ <bean name="EsbConfigParser" class="org.jboss.soa.esb.listeners.deployers.mc.EsbConfigParser"/>
- <bean name="EsbWebServiceDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWebServiceDeployer"/>
+ <bean name="EsbWebServiceDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWebServiceDeployer"/>
- <!-- bean name="EsbWsdlDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWsdlDeployer"/-->
+ <!-- bean name="EsbWsdlDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbWsdlDeployer"/-->
- <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/>
+ <bean name="EsbDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.EsbDeployer"/>
- <bean name="MainDeployer" class="org.jboss.deployers.plugins.main.MainDeployerImpl">
- <property name="structuralDeployers"><inject bean="StructuralDeployers"/></property>
- <property name="deployers"><inject bean="Deployers"/></property>
- </bean>
+ <bean name="MainDeployer" class="org.jboss.deployers.plugins.main.MainDeployerImpl">
+ <property name="structuralDeployers"><inject bean="StructuralDeployers"/></property>
+ <property name="deployers"><inject bean="Deployers"/></property>
+ </bean>
- <bean name="StructuralDeployers" class="org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl">
- <property name="structureBuilder">
- <bean name="StructureBuilder" class="org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder"/>
- </property>
- <incallback method="addDeployer"/>
- <uncallback method="removeDeployer"/>
- </bean>
+ <bean name="StructuralDeployers" class="org.jboss.deployers.vfs.plugins.structure.VFSStructuralDeployersImpl">
+ <property name="structureBuilder">
+ <bean name="StructureBuilder" class="org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder"/>
+ </property>
+ <incallback method="addDeployer"/>
+ <uncallback method="removeDeployer"/>
+ </bean>
- <bean name="Deployers" class="org.jboss.deployers.plugins.deployers.DeployersImpl">
- <constructor><parameter><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
- <incallback method="addDeployer"/>
- <uncallback method="removeDeployer"/>
- </bean>
+ <bean name="Deployers" class="org.jboss.deployers.plugins.deployers.DeployersImpl">
+ <constructor><parameter><inject bean="jboss.kernel:service=KernelController"/></parameter></constructor>
+ <incallback method="addDeployer"/>
+ <uncallback method="removeDeployer"/>
+ </bean>
- <bean name="EsbStructure" class="org.jboss.deployers.vfs.plugins.structure.jar.JARStructure">
+ <bean name="EsbStructure" class="org.jboss.deployers.vfs.plugins.structure.jar.JARStructure">
<incallback method="addJarExtension">
<parameter><inject bean="EsbExtensionProvider"/></parameter>
</incallback>
</bean>
+
<bean name="EsbExtensionProvider" class="org.jboss.soa.esb.listeners.deployers.mc.EsbExtensionProvider"/>
-
-
+
</deployment>
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -20,13 +20,17 @@
*/
package org.jboss.soa.esb.listeners.deployers.mc;
-import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
+import org.jboss.deployers.plugins.main.MainDeployerImpl;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.vfs.spi.client.VFSDeployment;
+import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.test.kernel.junit.MicrocontainerTest;
import org.jboss.virtual.MemoryFileFactory;
import org.jboss.virtual.VFS;
@@ -41,14 +45,28 @@
public class EsbWsdlDeployerUnitTest extends MicrocontainerTest
{
private URL dir = getClass().getResource("/org/jboss/soa/esb/listeners/deployers/mc/test_esb_archives");
+ private VFSDeployment deployment;
+ private MainDeployerImpl mainDeployer;
public EsbWsdlDeployerUnitTest(String name)
{
super(name);
}
- public void testGetAllSchemas() throws Throwable
+ @Override
+ public void afterSetUp() throws Exception
{
+ super.afterSetUp();
+
+ final String archiveName = "exploded-esb-archive.esb";
+ final VirtualFile archiveFile = VFS.getVirtualFile(dir, archiveName);
+ deployment = VFSDeploymentFactory.getInstance().createVFSDeployment(archiveFile);
+ mainDeployer = (MainDeployerImpl) getBean("MainDeployer");
+ mainDeployer.deploy(deployment);
+ }
+
+ public void _testGetAllSchemas() throws Throwable
+ {
final VirtualFile virtualFile = VFS.getVirtualFile(dir, "exploded-esb-archive.esb");
final EsbWsdlDeployer esbWsdlDeployer = new EsbWsdlDeployer();
final List<VirtualFile> schemas = esbWsdlDeployer.getSchemas(virtualFile);
@@ -57,7 +75,7 @@
assertEquals(2, schemas.size());
}
- public void testAddSchemasToVFS() throws IOException, URISyntaxException
+ public void _testAddSchemasToVFS() throws IOException, URISyntaxException
{
final String archiveName = "exploded-esb-archive.esb";
final VirtualFile virtualFile = VFS.getVirtualFile(dir, archiveName);
@@ -88,4 +106,25 @@
}
}
}
+
+ public void testUndeployCleanup() throws DeploymentException, MalformedURLException, IOException
+ {
+ final String wsdl = "WEB-INF/wsdl/FirstServiceESB/SimpleListener.wsdl";
+ final EsbWsdlDeployer wsdlDeployer = (EsbWsdlDeployer) getBean("EsbWsdlDeployer");
+
+ final VFSDeploymentUnit unit = (VFSDeploymentUnit) mainDeployer.getDeploymentUnit(deployment.getName());
+ assertNotNull(unit.getMetaDataFile(wsdl));
+
+ wsdlDeployer.undeploy(unit, null);
+
+ assertNull(unit.getMetaDataFile(wsdl));
+ assertNull(unit.getAttachment(EsbWsdlDeployer.WSDL_LOCATIONS_KEY));
+ assertNull(unit.getAttachment(EsbWsdlDeployer.DYNAMIC_ROOT_URL_KEY));
+ }
+
+ public void tearDown() throws Exception
+ {
+ mainDeployer.undeploy(deployment);
+ super.tearDown();
+ }
}
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.xml 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/EsbWsdlDeployerUnitTest.xml 2009-05-18 07:36:45 UTC (rev 26579)
@@ -38,22 +38,6 @@
</bean>
<bean name="EsbExtensionProvider" class="org.jboss.soa.esb.listeners.deployers.mc.EsbExtensionProvider"/>
- <!--
- The classloader implementation
- -->
- <bean name="ClassLoaderSystem" class="org.jboss.classloader.spi.ClassLoaderSystem">
- <classloader><null/></classloader>
- <constructor factoryClass="org.jboss.classloader.spi.ClassLoaderSystem" factoryMethod="getInstance"/>
- </bean>
-
- <!--
- ClassLoader management and resolution
- -->
- <bean name="ClassLoading" class="org.jboss.classloading.spi.dependency.ClassLoading">
- <classloader><null/></classloader>
- <incallback method="addModule" state="Configured"/>
- <uncallback method="removeModule" state="Configured"/>
- </bean>
-
+ <bean name="ClassLoaderDeployer" class="org.jboss.soa.esb.listeners.deployers.mc.TestClassLoaderDeployer"/>
</deployment>
Modified: labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/TestUtil.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/TestUtil.java 2009-05-18 06:53:55 UTC (rev 26578)
+++ labs/jbossesb/workspace/dbevenius/jbossas5/product/rosetta/tests/src/org/jboss/soa/esb/listeners/deployers/mc/TestUtil.java 2009-05-18 07:36:45 UTC (rev 26579)
@@ -85,7 +85,6 @@
return VFS.getVirtualFile(directoryURL, fileName);
}
-
public static VirtualFile getMockVF(final File esbFile)
{
VirtualFile file = new VirtualFile(new VirtualFileHandler()
More information about the jboss-svn-commits
mailing list