[jboss-svn-commits] JBL Code SVN: r30498 - in labs/jbossesb/trunk/product/rosetta: tests/src/org/jboss/soa/esb/listeners/config and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Dec 6 23:56:36 EST 2009
Author: beve
Date: 2009-12-06 23:56:36 -0500 (Sun, 06 Dec 2009)
New Revision: 30498
Added:
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/subdir2/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/subdir2/type.xsd
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/type.xsd
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/META-INF/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/META-INF/jboss-esb.xml
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/mock.xsd
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/subdir2/
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/subdir2/type.xsd
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/type.xsd
Modified:
labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployerUnitTest.java
Log:
Work for https://jira.jboss.org/jira/browse/JBESB-3027 "JBoss4ESBDeployer: does not support schema imports/includes for exploded archives."
Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2009-12-07 04:31:31 UTC (rev 30497)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java 2009-12-07 04:56:36 UTC (rev 30498)
@@ -727,50 +727,78 @@
return Collections.emptyMap();
}
- if (file.isDirectory())
+ if (file.isDirectory())
{
return getSchemasFromDirectory(file);
}
- else
+
+ final String fileName = file.getName();
+ if (fileName.endsWith(".esb"))
+ return getSchemasFromArchive(file);
+
+ if (fileName.endsWith("-esb.xml"))
{
- return getSchemasFromArchive(file);
+ final File metaInf = file.getParentFile();
+ final File deploymentRoot = metaInf.getParentFile();
+ return getSchemasFromDirectory(deploymentRoot);
}
+
+ throw new DeploymentException("Unrecognized deployment : " + file + ".");
}
-
+
static Map<String, String> getSchemasFromDirectory(final File directory) throws DeploymentException
{
+ return getSchemasFromDir(directory, directory);
+ }
+
+ private static Map<String, String> getSchemasFromDir(final File root, final File directory) throws DeploymentException
+ {
if (directory != null)
{
+ final Map<String, String> schemasMap = new HashMap<String, String>();
+
if (directory.isDirectory())
{
- final File[] schemas = directory.listFiles(new FilenameFilter() {
- public boolean accept(File dir, String name)
+ final File[] files = directory.listFiles();
+ for (File file : files)
+ {
+ if (file.isDirectory())
{
- return isXsd(name);
+ schemasMap.putAll(getSchemasFromDir(root, file));
}
- });
- if (schemas.length > 0)
- {
- final Map<String, String> schemasMap = new HashMap<String, String>();
- for (File file : schemas)
+ else if (isXsd(file.getName()))
{
try
{
- schemasMap.put(file.getName(), FileUtil.readTextFile(file));
+ final String filename = determineSchemaFilename(root, file);
+ schemasMap.put(filename, FileUtil.readTextFile(file));
}
catch (final IOException e)
{
throw new DeploymentException("IOException while trying to read xsd '" + file.getName() + "'", e);
}
}
- return schemasMap;
}
}
+ return schemasMap;
}
return Collections.emptyMap();
}
-
+
+ private static String determineSchemaFilename(final File rootDir, final File file)
+ {
+ final String rootName = rootDir.getName();
+ final String path = file.getPath();
+ int idx = path.indexOf(rootName);
+ if (idx != -1)
+ {
+ return path.substring(idx + rootName.length() + 1);
+ }
+
+ return file.getName();
+ }
+
private static boolean isXsd(final String fileName)
{
return fileName.endsWith(".xsd");
Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployerUnitTest.java 2009-12-07 04:31:31 UTC (rev 30497)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployerUnitTest.java 2009-12-07 04:56:36 UTC (rev 30498)
@@ -32,9 +32,9 @@
import org.junit.Test;
/**
+ * Unit test for JBoss4ESBDeployer.
*
* @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
*/
public class JBoss4ESBDeployerUnitTest
{
@@ -47,11 +47,13 @@
}
@Test
- public void getSchemas() throws DeploymentException
+ public void getSchemasFromDirectory() throws DeploymentException
{
File directory = new File(getClass().getResource("schemasDir").getFile());
Map<String, String> schemas = JBoss4ESBDeployer.getSchemasFromDirectory(directory);
assertTrue(schemas.containsKey("mock.xsd"));
+ assertTrue(schemas.containsKey("subdir/type.xsd"));
+ assertTrue(schemas.containsKey("subdir/subdir2/type.xsd"));
}
@Test
@@ -64,6 +66,18 @@
}
@Test
+ public void getSchemasFromExplodedArchiveWithEsbFile() throws DeploymentException
+ {
+ final URL resource = getClass().getResource("schemasExploded.esb");
+ final File jbossEsbXml = new File(resource.getFile() + File.separator + "META-INF" + File.separator + "jboss-esb.xml" );
+ final Map<String, String> schemas = JBoss4ESBDeployer.getSchemas(jbossEsbXml);
+
+ assertTrue(schemas.containsKey("mock.xsd"));
+ assertTrue(schemas.containsKey("subdir/type.xsd"));
+ assertTrue(schemas.containsKey("subdir/subdir2/type.xsd"));
+ }
+
+ @Test
public void getSchemasFromArchiveNullArchive() throws DeploymentException
{
Map<String, String> schemas = JBoss4ESBDeployer.getSchemasFromArchive(null);
Added: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/subdir2/type.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/subdir2/type.xsd (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/subdir2/type.xsd 2009-12-07 04:56:36 UTC (rev 30498)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/custom" xmlns:x1="http://www.jboss.org/custome" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="customType" type="x1:type"/>
+ <xs:complexType name="type">
+ <xs:sequence>
+ <xs:element name="customType" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
Added: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/type.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/type.xsd (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasDir/subdir/type.xsd 2009-12-07 04:56:36 UTC (rev 30498)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/custom" xmlns:x1="http://www.jboss.org/custome" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="customType" type="x1:type"/>
+ <xs:complexType name="type">
+ <xs:sequence>
+ <xs:element name="customType" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
Added: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/META-INF/jboss-esb.xml
===================================================================
Added: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/mock.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/mock.xsd (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/mock.xsd 2009-12-07 04:56:36 UTC (rev 30498)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/custom" xmlns:x1="http://www.jboss.org/custome" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="customType" type="x1:type"/>
+ <xs:complexType name="type">
+ <xs:sequence>
+ <xs:element name="customType" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
Added: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/subdir2/type.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/subdir2/type.xsd (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/subdir2/type.xsd 2009-12-07 04:56:36 UTC (rev 30498)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/custom" xmlns:x1="http://www.jboss.org/custome" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="customType" type="x1:type"/>
+ <xs:complexType name="type">
+ <xs:sequence>
+ <xs:element name="customType" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
Added: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/type.xsd
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/type.xsd (rev 0)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/schemasExploded.esb/subdir/type.xsd 2009-12-07 04:56:36 UTC (rev 30498)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/custom" xmlns:x1="http://www.jboss.org/custome" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:element name="customType" type="x1:type"/>
+ <xs:complexType name="type">
+ <xs:sequence>
+ <xs:element name="customType" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
More information about the jboss-svn-commits
mailing list