[jboss-cvs] JBossAS SVN: r76651 - in projects/ejb3/trunk/interceptors/src: test/java/org/jboss/ejb3 and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 5 06:16:09 EDT 2008
Author: wolfc
Date: 2008-08-05 06:16:09 -0400 (Tue, 05 Aug 2008)
New Revision: 76651
Added:
projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/
projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java
projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/
projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/
projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml
Modified:
projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java
Log:
EJBTHREE-1448: hack to make sure that an installed annotation repository becomes authoritative
Added: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java (rev 0)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/DummyMetaData.java 2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,181 @@
+/*
+ * 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.ejb3.interceptors.container;
+
+import java.lang.annotation.Annotation;
+
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.scope.ScopeLevel;
+import org.jboss.metadata.spi.signature.Signature;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+class DummyMetaData implements MetaData
+{
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getAnnotation(java.lang.Class)
+ */
+ public <T extends Annotation> T getAnnotation(Class<T> annotationType)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getAnnotations()
+ */
+ public Annotation[] getAnnotations()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getComponentMetaData(org.jboss.metadata.spi.signature.Signature)
+ */
+ public MetaData getComponentMetaData(Signature signature)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getLocalAnnotations()
+ */
+ public Annotation[] getLocalAnnotations()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getLocalMetaData()
+ */
+ public Object[] getLocalMetaData()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getMetaData()
+ */
+ public Object[] getMetaData()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getMetaData(java.lang.Class)
+ */
+ public <T> T getMetaData(Class<T> type)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getMetaData(java.lang.String)
+ */
+ public Object getMetaData(String name)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getMetaData(java.lang.String, java.lang.Class)
+ */
+ public <T> T getMetaData(String name, Class<T> type)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getScopeMetaData(org.jboss.metadata.spi.scope.ScopeLevel)
+ */
+ public MetaData getScopeMetaData(ScopeLevel level)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#getValidTime()
+ */
+ public long getValidTime()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#isAnnotationPresent(java.lang.Class)
+ */
+ public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#isEmpty()
+ */
+ public boolean isEmpty()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#isMetaDataPresent(java.lang.Class)
+ */
+ public boolean isMetaDataPresent(Class<?> type)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#isMetaDataPresent(java.lang.String)
+ */
+ public boolean isMetaDataPresent(String name)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.metadata.spi.MetaData#isMetaDataPresent(java.lang.String, java.lang.Class)
+ */
+ public boolean isMetaDataPresent(String name, Class<?> type)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
Modified: projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java 2008-08-05 10:15:18 UTC (rev 76650)
+++ projects/ejb3/trunk/interceptors/src/main/java/org/jboss/ejb3/interceptors/container/ManagedObjectAdvisor.java 2008-08-05 10:16:09 UTC (rev 76651)
@@ -85,9 +85,14 @@
assert container != null : "container is null";
this.container = container;
-
+
if(pAnnotations != null)
+ {
+ // FIXME: This is a hack to make sure that any installed annotation repository is authoritative
+ setMetadata(new DummyMetaData());
+
this.annotations = pAnnotations;
+ }
// For convenience we add the ManagedObject annotation
ManagedObject annotation = new ManagedObject()
Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/common/ManagedObjectContainer.java 2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,72 @@
+/*
+ * 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.ejb3.interceptors.test.common;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.ejb3.interceptors.direct.AbstractDirectContainer;
+import org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge;
+import org.jboss.ejb3.interceptors.metadata.InterceptorComponentMetaDataLoaderFactory;
+import org.jboss.ejb3.interceptors.metadata.InterceptorMetaDataBridge;
+import org.jboss.ejb3.metadata.MetaDataBridge;
+import org.jboss.ejb3.metadata.annotation.AnnotationRepositoryToMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.InterceptorMetaData;
+
+/**
+ * Emulates an EJB container to the best of its abilities.
+ *
+ * Meta data bridges for interceptors are setup, so meta data can be processed.
+ *
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class ManagedObjectContainer<T> extends AbstractDirectContainer<T, ManagedObjectContainer<T>>
+{
+ /**
+ * Create a new managed object container.
+ *
+ * @param name the name of the managed object (/ EJB)
+ * @param domainName the domain name to get interceptors from
+ * @param beanClass the managed object class
+ * @param beanMetaData the associated meta data
+ */
+ public ManagedObjectContainer(String name, String domainName, Class<? extends T> beanClass, JBossEnterpriseBeanMetaData beanMetaData)
+ {
+ super();
+
+ assert name != null : "name is null";
+ assert domainName != null : "domainName is null";
+ assert beanClass != null : "beanClass is null";
+ assert beanMetaData != null : "beanMetaData is null";
+
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ AnnotationRepositoryToMetaData annotations = new AnnotationRepositoryToMetaData(beanClass, beanMetaData, name, classLoader);
+ List<MetaDataBridge<InterceptorMetaData>> interceptorBridges = new ArrayList<MetaDataBridge<InterceptorMetaData>>();
+ interceptorBridges.add(new InterceptorMetaDataBridge());
+ annotations.addComponentMetaDataLoaderFactory(new InterceptorComponentMetaDataLoaderFactory(interceptorBridges));
+ annotations.addMetaDataBridge(new BeanInterceptorMetaDataBridge(beanClass, classLoader, beanMetaData));
+
+ initializeAdvisor(name, getDomain(domainName), beanClass, annotations);
+ }
+}
Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/TwoLifecycleMethodsBean.java 2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,48 @@
+/*
+ * 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.ejb3.interceptors.test.metadatacomplete;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * By setting metadata complete, the annotated lifecycle callback
+ * should be ignored.
+ *
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class TwoLifecycleMethodsBean
+{
+ public static boolean annotatedPostConstructRan = false;
+ public static boolean otherPostConstructRan = false;
+
+ @PostConstruct
+ public void annotatedPostConstruct()
+ {
+ annotatedPostConstructRan = true;
+ }
+
+ public void otherPostConstruct()
+ {
+ otherPostConstructRan = true;
+ }
+}
Added: projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/java/org/jboss/ejb3/interceptors/test/metadatacomplete/unit/MetadataCompleteTestCase.java 2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,157 @@
+/*
+ * 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.ejb3.interceptors.test.metadatacomplete.unit;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URL;
+
+import org.jboss.aspects.common.AOPDeployer;
+import org.jboss.ejb3.interceptors.container.BeanContext;
+import org.jboss.ejb3.interceptors.test.common.ManagedObjectContainer;
+import org.jboss.ejb3.interceptors.test.metadatacomplete.TwoLifecycleMethodsBean;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+import org.jboss.xb.builder.JBossXBBuilder;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.w3c.dom.ls.LSInput;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class MetadataCompleteTestCase
+{
+ private static final Logger log = Logger.getLogger(MetadataCompleteTestCase.class);
+ private static final AOPDeployer deployer = new AOPDeployer("proxy/jboss-aop.xml");
+
+ private JBossEnterpriseBeanMetaData beanMetaData;
+
+ protected static SchemaBindingResolver schemaResolverForClass(final Class<?> root)
+ {
+ return new SchemaBindingResolver()
+ {
+ public String getBaseURI()
+ {
+ return null;
+ }
+
+ public SchemaBinding resolve(String nsUri, String baseURI, String schemaLocation)
+ {
+ return JBossXBBuilder.build(root);
+ }
+
+ public LSInput resolveAsLSInput(String nsUri, String baseUri, String schemaLocation)
+ {
+ return null;
+ }
+
+ public void setBaseURI(String baseURI)
+ {
+ }
+ };
+ }
+
+ @Before
+ public void setUp() throws Exception
+ {
+ TwoLifecycleMethodsBean.annotatedPostConstructRan = false;
+ TwoLifecycleMethodsBean.otherPostConstructRan = false;
+
+ // Bootstrap metadata
+ UnmarshallerFactory unmarshallerFactory = UnmarshallerFactory.newInstance();
+ Unmarshaller unmarshaller = unmarshallerFactory.newUnmarshaller();
+ URL url = Thread.currentThread().getContextClassLoader().getResource("metadatacomplete/META-INF/ejb-jar.xml");
+ assertNotNull("Can't find descriptor metadatacomplete/META-INF/ejb-jar.xml", url);
+ EjbJar30MetaData metaData = (EjbJar30MetaData) unmarshaller.unmarshal(url.toString(), schemaResolverForClass(EjbJar30MetaData.class));
+ JBoss50MetaData jbossMetaData = new JBoss50MetaData();
+ jbossMetaData.merge(null, metaData);
+
+ beanMetaData = jbossMetaData.getEnterpriseBean("TwoLifecycleMethodsBean");
+ assertNotNull(beanMetaData);
+ }
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception
+ {
+ log.info(deployer.deploy());
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception
+ {
+ log.info(deployer.undeploy());
+ }
+
+ @Test
+ public void testAnnotations() throws Throwable
+ {
+ // ignore the descriptor
+ JBoss50MetaData metaData = new JBoss50MetaData();
+
+ // To avoid NPE
+ metaData.setAssemblyDescriptor(new JBossAssemblyDescriptorMetaData());
+
+ JBossEnterpriseBeansMetaData enterpriseBeans = new JBossEnterpriseBeansMetaData();
+ metaData.setEnterpriseBeans(enterpriseBeans);
+
+ JBossEnterpriseBeanMetaData beanMetaData = new JBossSessionBeanMetaData();
+ beanMetaData.setEjbName("TwoLifecycleMethodsBean");
+ enterpriseBeans.add(beanMetaData);
+
+ ManagedObjectContainer<TwoLifecycleMethodsBean> container = new ManagedObjectContainer<TwoLifecycleMethodsBean>(beanMetaData.getEjbName(), "Test", TwoLifecycleMethodsBean.class, beanMetaData);
+
+ BeanContext<TwoLifecycleMethodsBean> bean = container.construct();
+
+ container.destroy(bean);
+
+ assertTrue(TwoLifecycleMethodsBean.annotatedPostConstructRan);
+ assertFalse(TwoLifecycleMethodsBean.otherPostConstructRan);
+ }
+
+ @Test
+ public void testMetadataComplete() throws Throwable
+ {
+ ManagedObjectContainer<TwoLifecycleMethodsBean> container = new ManagedObjectContainer<TwoLifecycleMethodsBean>(beanMetaData.getEjbName(), "Test", TwoLifecycleMethodsBean.class, beanMetaData );
+
+ BeanContext<TwoLifecycleMethodsBean> bean = container.construct();
+
+ container.destroy(bean);
+
+ assertTrue(TwoLifecycleMethodsBean.otherPostConstructRan);
+ assertFalse(TwoLifecycleMethodsBean.annotatedPostConstructRan);
+ }
+}
Added: projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml
===================================================================
--- projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml (rev 0)
+++ projects/ejb3/trunk/interceptors/src/test/resources/metadatacomplete/META-INF/ejb-jar.xml 2008-08-05 10:16:09 UTC (rev 76651)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0" metadata-complete="true">
+ <display-name>MetaDataCompleteTest</display-name>
+ <enterprise-beans>
+ <session>
+ <ejb-name>TwoLifecycleMethodsBean</ejb-name>
+ <post-construct>
+ <lifecycle-callback-method>otherPostConstruct</lifecycle-callback-method>
+ </post-construct>
+ </session>
+ </enterprise-beans>
+</ejb-jar>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list