[jboss-cvs] JBossAS SVN: r111073 - in projects/jboss-cl/trunk/classloading/src: test/java/org/jboss/test/classloading/metadata and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Mar 31 08:04:37 EDT 2011
Author: alesj
Date: 2011-03-31 08:04:36 -0400 (Thu, 31 Mar 2011)
New Revision: 111073
Added:
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorMetaData.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData10.java
projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/TranslatorScope.java
projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingTranslatorsMetaDataXmlUnitTestCase.java
projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/Translators.xml
Modified:
projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/MetaDataTestSuite.java
Log:
[JBCL-178]; declarative translators.
Copied: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorMetaData.java (from rev 110962, projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingDomainMetaData.java)
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorMetaData.java (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorMetaData.java 2011-03-31 12:04:36 UTC (rev 111073)
@@ -0,0 +1,140 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.classloading.spi.metadata;
+
+import java.io.Serializable;
+import javax.xml.bind.annotation.XmlAttribute;
+
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperties;
+
+/**
+ * ClassLoadingTranslatorMetaData.
+ *
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+ at ManagementObject(properties=ManagementProperties.EXPLICIT, name="org.jboss.classloading.spi.metadata.ClassLoadingTranslatorMetaData")
+public class ClassLoadingTranslatorMetaData implements Serializable, Cloneable
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1L;
+
+ private String className;
+ private String method;
+ private TranslatorScope scope;
+
+ public String getClassName()
+ {
+ return className;
+ }
+
+ @XmlAttribute(name = "class", required = true)
+ public void setClassName(String className)
+ {
+ this.className = className;
+ }
+
+ public String getMethod()
+ {
+ return method;
+ }
+
+ @XmlAttribute
+ public void setMethod(String method)
+ {
+ this.method = method;
+ }
+
+ public TranslatorScope getScope()
+ {
+ return scope;
+ }
+
+ @XmlAttribute
+ public void setScope(TranslatorScope scope)
+ {
+ this.scope = scope;
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuilder builder = new StringBuilder();
+ builder.append(getClass().getSimpleName());
+ builder.append("@");
+ builder.append(Integer.toHexString(System.identityHashCode(this)));
+ builder.append("{");
+ toString(builder);
+ builder.append("}");
+ return builder.toString();
+ }
+
+ /**
+ * For subclasses to override the toString contents
+ *
+ * @param builder the builder
+ */
+ protected void toString(StringBuilder builder)
+ {
+ builder.append("class=").append(getClassName());
+ if (getMethod() != null)
+ builder.append(" method=").append(getMethod());
+ builder.append(" scope=").append(getScope());
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj == this)
+ return true;
+ if (obj == null || obj instanceof ClassLoadingTranslatorMetaData == false)
+ return false;
+ ClassLoadingTranslatorMetaData other = (ClassLoadingTranslatorMetaData) obj;
+ if (equals(getClassName(), other.getClassName()) == false)
+ return false;
+ if (equals(getMethod(), other.getMethod()) == false)
+ return false;
+ if (equals(getScope(), other.getScope()) == false)
+ return false;
+ return true;
+ }
+
+ // FINDBUGS: Just to keep it happy
+ @Override
+ public int hashCode()
+ {
+ return super.hashCode();
+ }
+
+ @Override
+ protected ClassLoadingTranslatorMetaData clone() throws CloneNotSupportedException
+ {
+ return (ClassLoadingTranslatorMetaData) super.clone();
+ }
+
+ static boolean equals(Object one, Object two)
+ {
+ if (one == null)
+ return two == null;
+ return one.equals(two);
+ }
+}
Added: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData.java (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData.java 2011-03-31 12:04:36 UTC (rev 111073)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.classloading.spi.metadata;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperties;
+
+/**
+ * ClassLoadingTranslatorsMetaData.
+ *
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+ at ManagementObject(properties=ManagementProperties.EXPLICIT, name="org.jboss.classloading.spi.metadata.ClassLoadingTranslatorsMetaData")
+public class ClassLoadingTranslatorsMetaData implements Serializable, Cloneable
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1L;
+
+ private List<ClassLoadingTranslatorMetaData> translators;
+ private TranslatorScope scope = TranslatorScope.POLICY;
+
+ protected void addTranslator(ClassLoadingTranslatorMetaData translator)
+ {
+ if (translators == null)
+ translators = new ArrayList<ClassLoadingTranslatorMetaData>();
+
+ if (translator.getScope() == null)
+ translator.setScope(getScope());
+
+ translators.add(translator);
+ }
+
+ public List<ClassLoadingTranslatorMetaData> getTranslators()
+ {
+ return translators;
+ }
+
+ @XmlElement(name = "translator")
+ public void setTranslators(List<ClassLoadingTranslatorMetaData> translators)
+ {
+ if (translators != null)
+ {
+ for (ClassLoadingTranslatorMetaData translator : translators)
+ addTranslator(translator);
+ }
+ else
+ {
+ this.translators = null;
+ }
+ }
+
+ public TranslatorScope getScope()
+ {
+ return scope;
+ }
+
+ @XmlAttribute
+ public void setScope(TranslatorScope scope)
+ {
+ this.scope = scope;
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuilder builder = new StringBuilder();
+ builder.append(getClass().getSimpleName());
+ builder.append("@");
+ builder.append(Integer.toHexString(System.identityHashCode(this)));
+ builder.append("{");
+ toString(builder);
+ builder.append("}");
+ return builder.toString();
+ }
+
+ /**
+ * For subclasses to override the toString contents
+ *
+ * @param builder the builder
+ */
+ protected void toString(StringBuilder builder)
+ {
+ builder.append("translators=").append(getTranslators());
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj == this)
+ return true;
+ if (obj == null || obj instanceof ClassLoadingTranslatorsMetaData == false)
+ return false;
+ ClassLoadingTranslatorsMetaData other = (ClassLoadingTranslatorsMetaData) obj;
+ return equals(getTranslators(), other.getTranslators()) && equals(getScope(), other.getScope());
+ }
+
+ // FINDBUGS: Just to keep it happy
+ @Override
+ public int hashCode()
+ {
+ return super.hashCode();
+ }
+
+ static boolean equals(Object one, Object two)
+ {
+ if (one == null)
+ return two == null;
+ return one.equals(two);
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException
+ {
+ ClassLoadingTranslatorsMetaData clone = (ClassLoadingTranslatorsMetaData) super.clone();
+ if (getTranslators() != null)
+ {
+ List<ClassLoadingTranslatorMetaData> cloneTranslators = new ArrayList<ClassLoadingTranslatorMetaData>(getTranslators().size());
+ for (ClassLoadingTranslatorMetaData cltmd : getTranslators())
+ cloneTranslators.add(cltmd.clone());
+ clone.setTranslators(cloneTranslators);
+ }
+ return clone;
+ }
+}
Added: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData10.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData10.java (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/ClassLoadingTranslatorsMetaData10.java 2011-03-31 12:04:36 UTC (rev 111073)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.classloading.spi.metadata;
+
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ * ClassLoadingTranslatorsMetaData v1.0.
+ *
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+ at JBossXmlSchema(namespace="urn:jboss:classloading-translators:1.0", elementFormDefault=XmlNsForm.QUALIFIED)
+ at XmlRootElement(name="classloading-translators")
+ at XmlType(name = "classloadingTranslatorsType", propOrder = {"translators"})
+public class ClassLoadingTranslatorsMetaData10 extends ClassLoadingTranslatorsMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1L;
+}
Added: projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/TranslatorScope.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/TranslatorScope.java (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/main/java/org/jboss/classloading/spi/metadata/TranslatorScope.java 2011-03-31 12:04:36 UTC (rev 111073)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.classloading.spi.metadata;
+
+/**
+ * TranslatorScope.
+ *
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+public enum TranslatorScope
+{
+ SYSTEM,
+ DOMAIN,
+ POLICY
+}
\ No newline at end of file
Modified: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/MetaDataTestSuite.java
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/MetaDataTestSuite.java 2011-03-30 16:13:05 UTC (rev 111072)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/MetaDataTestSuite.java 2011-03-31 12:04:36 UTC (rev 111073)
@@ -21,18 +21,30 @@
*/
package org.jboss.test.classloading.metadata;
-import org.jboss.test.classloading.metadata.test.*;
-import org.jboss.test.classloading.metadata.xml.test.ClassLoadingDomainMetaDataXmlUnitTestCase;
-import org.jboss.test.classloading.metadata.xml.test.ClassLoadingMetaDataXmlUnitTestCase;
-
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
+import org.jboss.test.classloading.metadata.test.CapabilitiesMetaDataUnitTestCase;
+import org.jboss.test.classloading.metadata.test.ClassLoadingMetaDataFactoryUnitTestCase;
+import org.jboss.test.classloading.metadata.test.ClassLoadingMetaDataUnitTestCase;
+import org.jboss.test.classloading.metadata.test.ManagedObjectClassLoadingDomainMetaDataUnitTestCase;
+import org.jboss.test.classloading.metadata.test.ManagedObjectClassLoadingMetaDataUnitTestCase;
+import org.jboss.test.classloading.metadata.test.ModuleCapabilityUnitTestCase;
+import org.jboss.test.classloading.metadata.test.ModuleRequirementUnitTestCase;
+import org.jboss.test.classloading.metadata.test.NameAndVersionRangeUnitTestCase;
+import org.jboss.test.classloading.metadata.test.NameAndVersionUnitTestCase;
+import org.jboss.test.classloading.metadata.test.PackageCapabilityUnitTestCase;
+import org.jboss.test.classloading.metadata.test.PackageRequirementUnitTestCase;
+import org.jboss.test.classloading.metadata.test.RequirementsMetaDataUnitTestCase;
+import org.jboss.test.classloading.metadata.xml.test.ClassLoadingDomainMetaDataXmlUnitTestCase;
+import org.jboss.test.classloading.metadata.xml.test.ClassLoadingMetaDataXmlUnitTestCase;
+import org.jboss.test.classloading.metadata.xml.test.ClassLoadingTranslatorsMetaDataXmlUnitTestCase;
/**
* Version Test Suite.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
* @version $Revision: 37459 $
*/
public class MetaDataTestSuite extends TestSuite
@@ -70,6 +82,7 @@
suite.addTest(ManagedObjectClassLoadingDomainMetaDataUnitTestCase.suite());
suite.addTest(ClassLoadingMetaDataXmlUnitTestCase.suite());
suite.addTest(ClassLoadingDomainMetaDataXmlUnitTestCase.suite());
+ suite.addTest(ClassLoadingTranslatorsMetaDataXmlUnitTestCase.suite());
return suite;
}
Copied: projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingTranslatorsMetaDataXmlUnitTestCase.java (from rev 110962, projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingDomainMetaDataXmlUnitTestCase.java)
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingTranslatorsMetaDataXmlUnitTestCase.java (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/test/java/org/jboss/test/classloading/metadata/xml/test/ClassLoadingTranslatorsMetaDataXmlUnitTestCase.java 2011-03-31 12:04:36 UTC (rev 111073)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classloading.metadata.xml.test;
+
+import java.util.List;
+
+import junit.framework.Test;
+import org.jboss.classloading.spi.metadata.ClassLoadingTranslatorMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingTranslatorsMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingTranslatorsMetaData10;
+import org.jboss.classloading.spi.metadata.TranslatorScope;
+import org.jboss.test.classloading.metadata.xml.AbstractJBossXBTest;
+
+/**
+ * ClassLoadingDomainMetaDataXmlUnitTestCase.
+ *
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+public class ClassLoadingTranslatorsMetaDataXmlUnitTestCase extends AbstractJBossXBTest
+{
+ public static Test suite()
+ {
+ return suite(ClassLoadingTranslatorsMetaDataXmlUnitTestCase.class);
+ }
+
+ public ClassLoadingTranslatorsMetaDataXmlUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testTranslators() throws Exception
+ {
+ ClassLoadingTranslatorsMetaData result = unmarshal();
+ assertNotNull(result);
+ List<ClassLoadingTranslatorMetaData> translators = result.getTranslators();
+ assertNotNull(translators);
+ assertEquals(3, translators.size());
+ assertEquals(translators.get(0), "org.jboss.acme.X", null, TranslatorScope.SYSTEM);
+ assertEquals(translators.get(1), "org.jboss.acme.X", null, TranslatorScope.DOMAIN);
+ assertEquals(translators.get(2), "org.jboss.acme.X", "bable", TranslatorScope.SYSTEM);
+ }
+
+ protected void assertEquals(ClassLoadingTranslatorMetaData translator, String className, String method, TranslatorScope scope)
+ {
+ assertEquals(className, translator.getClassName());
+ assertEquals(method, translator.getMethod());
+ assertEquals(scope, translator.getScope());
+ }
+
+ protected ClassLoadingTranslatorsMetaData unmarshal(Class<?>... extra) throws Exception
+ {
+ return unmarshalObject(ClassLoadingTranslatorsMetaData.class, ClassLoadingTranslatorsMetaData10.class, extra);
+ }
+}
Copied: projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/Translators.xml (from rev 110962, projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/DomainName.xml)
===================================================================
--- projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/Translators.xml (rev 0)
+++ projects/jboss-cl/trunk/classloading/src/test/resources/org/jboss/test/classloading/metadata/xml/test/Translators.xml 2011-03-31 12:04:36 UTC (rev 111073)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<classloading-translators xmlns="urn:jboss:classloading-translators:1.0" scope="SYSTEM">
+ <translator class="org.jboss.acme.X" />
+ <translator class="org.jboss.acme.X" scope="DOMAIN" />
+ <translator class="org.jboss.acme.X" method="bable" />
+</classloading-translators>
More information about the jboss-cvs-commits
mailing list