Skip to content

Commit

Permalink
Merge pull request #32 from baranowb/JBMETA-355
Browse files Browse the repository at this point in the history
trim ops in application exception MD parser
  • Loading branch information
wolfc committed Apr 3, 2012
2 parents 858b7c3 + 0ae1e37 commit 2927015
Show file tree
Hide file tree
Showing 12 changed files with 409 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ protected void processElement(ApplicationExceptionMetaData applicationExceptionM
switch (ejbJarElement)
{
case EXCEPTION_CLASS:
applicationExceptionMetaData.setExceptionClass(reader.getElementText());
applicationExceptionMetaData.setExceptionClass(super.getElementText(reader));
break;

case INHERITED:
applicationExceptionMetaData.setInherited(Boolean.valueOf(reader.getElementText()));
applicationExceptionMetaData.setInherited(Boolean.valueOf(super.getElementText(reader)));
break;

case ROLLBACK:
applicationExceptionMetaData.setRollback(Boolean.valueOf(reader.getElementText()));
applicationExceptionMetaData.setRollback(Boolean.valueOf(super.getElementText(reader)));
break;

default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,33 @@
*/
package org.jboss.test.metadata.ejb.whitespace;

import java.util.Set;

import org.jboss.metadata.common.ejb.IEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.spec.AbstractEnterpriseBeanMetaData;
import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
import org.jboss.metadata.ejb.spec.ApplicationExceptionsMetaData;
import org.jboss.metadata.ejb.spec.AroundInvokeMetaData;
import org.jboss.metadata.ejb.spec.AroundInvokesMetaData;
import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
import org.jboss.metadata.ejb.spec.EjbJarMetaData;
import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
import org.jboss.metadata.ejb.spec.GenericBeanMetaData;
import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
import org.jboss.metadata.ejb.spec.InterceptorBindingsMetaData;
import org.jboss.metadata.ejb.spec.InterceptorClassesMetaData;
import org.jboss.metadata.ejb.spec.InterceptorMetaData;
import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
import org.jboss.metadata.ejb.spec.PersistenceType;
import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
import org.jboss.test.metadata.ejb.AbstractEJBEverythingTest;

/**
Expand All @@ -38,6 +56,7 @@
* @author <a href="mailto:carlo.dewolf@jboss.com">Carlo de Wolf</a>
* @version $Revision: $
*/
@SuppressWarnings("deprecation")
public class WhitespaceUnitTestCase extends AbstractEJBEverythingTest
{

Expand Down Expand Up @@ -82,6 +101,69 @@ public void testJBoss50EjbRef() throws Exception
assertJBossEjbRef(jboss);
}

public void testEjbJar30SessionLocal() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertLocal(xml);
}

public void testEjbJar30SessionRemote() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertRemote(xml);
}

public void testEjbJar30EntityLocal() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertLocal(xml);
assertEntity(xml);
}

public void testEjbJar30EntityRemote() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertRemote(xml);
assertEntity(xml);
}

public void testEjbJar30AssemblyDescriptorInterceptor() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertADInterceptor(xml);
}

public void testEjbJar30AroundInvokeInterceptor() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertAroundInvokeInterceptor(xml);
}

public void testEjbJar30ActivateInterceptor() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertActivateInterceptor(xml);
}

public void testEjbJar30ConstructInterceptor() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertConstructInterceptor(xml);
}

public void testEjbJar30DestroyInterceptor() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertDestroyInterceptor(xml);
}


public void testEjbJar30AssemblyDescriptorAppException() throws Exception
{
EjbJarMetaData xml = unmarshal(EjbJarMetaData.class);
assertADAppException(xml);
}

private void assertJBossEjbRef(JBossMetaData jboss)
{
JBossEnterpriseBeanMetaData bean = jboss.getEnterpriseBean("SessionB");
Expand All @@ -104,4 +186,140 @@ private void assertEjbJarEnvEntry(EjbJarMetaData xml)
assertEquals("java.lang.String", envEntry.getType());
assertEquals(" ", envEntry.getValue());
}

private void assertLocal(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
EnterpriseBeansMetaData ebsmd = xml.getEnterpriseBeans();
assertNotNull(ebsmd);
assertEquals(1, ebsmd.size());
AbstractEnterpriseBeanMetaData aebmd = ebsmd.iterator().next();
assertNotNull(aebmd);
GenericBeanMetaData gbmd = (GenericBeanMetaData) aebmd;
assertEquals("Whitespace", gbmd.getName());
assertEquals("Home", gbmd.getLocalHome());
assertEquals("Local", gbmd.getLocal());
assertEquals("Ejb", gbmd.getEjbClass());

}

private void assertRemote(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
EnterpriseBeansMetaData ebsmd = xml.getEnterpriseBeans();
assertNotNull(ebsmd);
assertEquals(1, ebsmd.size());
AbstractEnterpriseBeanMetaData aebmd = ebsmd.iterator().next();
assertNotNull(aebmd);
GenericBeanMetaData gbmd = (GenericBeanMetaData) aebmd;
assertEquals("Whitespace", gbmd.getName());
assertEquals("Home", gbmd.getHome());
assertEquals("Remote", gbmd.getRemote());
assertEquals("Ejb", gbmd.getEjbClass());

}

private void assertEntity(EjbJarMetaData xml) {

EnterpriseBeansMetaData ebsmd = xml.getEnterpriseBeans();
AbstractEnterpriseBeanMetaData aebmd = ebsmd.iterator().next();
GenericBeanMetaData gbmd = (GenericBeanMetaData) aebmd;
assertEquals(PersistenceType.Bean, gbmd.getPersistenceType());
assertEquals("java.lang.Integer", gbmd.getPrimKeyClass());
assertEquals(true, gbmd.isReentrant());

}

private void assertADAppException(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
AssemblyDescriptorMetaData ad = xml.getAssemblyDescriptor();
assertNotNull(ad);
ApplicationExceptionsMetaData aesmd = ad.getApplicationExceptions();
assertNotNull(aesmd);
Set<String> keysSet = aesmd.keySet();
assertEquals(1, keysSet.size());
String key = keysSet.iterator().next();
ApplicationExceptionMetaData aemd = aesmd.get(key);
assertNotNull(aemd);
assertEquals("ExceptionClass", aemd.getExceptionClass());

}

private void assertADInterceptor(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
AssemblyDescriptorMetaData ad = xml.getAssemblyDescriptor();
assertNotNull(ad);
InterceptorBindingsMetaData ibsmd = ad.getInterceptorBindings();
assertNotNull(ibsmd);
assertEquals(1, ibsmd.size());
InterceptorBindingMetaData ibmd = ibsmd.get(0);
assertNotNull(ibmd);
InterceptorClassesMetaData icsmd = ibmd.getInterceptorClasses();
assertNotNull(icsmd);
assertEquals(1, icsmd.size());
String clazz = icsmd.get(0);
assertEquals("InterceptorClass", clazz);
}

private void assertAroundInvokeInterceptor(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
InterceptorsMetaData ismd = xml.getInterceptors();
assertNotNull(ismd);
assertEquals(1, ismd.size());
InterceptorMetaData imd = ismd.iterator().next();
assertNotNull(imd);
assertEquals("InterceptorClass", imd.getInterceptorClass());
AroundInvokesMetaData aismd = imd.getAroundInvokes();
assertNotNull(aismd);
assertEquals(1, aismd.size());
AroundInvokeMetaData aimd = aismd.get(0);
assertNotNull(aimd);
assertEquals("interceptMethodCall", aimd.getMethodName());
assertEquals("Class", aimd.getClassName());

}

private void assertActivateInterceptor(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
InterceptorsMetaData ismd = xml.getInterceptors();
assertNotNull(ismd);
assertEquals(1, ismd.size());
InterceptorMetaData imd = ismd.iterator().next();
assertNotNull(imd);
assertEquals("InterceptorClass", imd.getInterceptorClass());
assertLifecycleCallbacksMetaData(imd.getPostActivates());

}

private void assertConstructInterceptor(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
InterceptorsMetaData ismd = xml.getInterceptors();
assertNotNull(ismd);
assertEquals(1, ismd.size());
InterceptorMetaData imd = ismd.iterator().next();
assertNotNull(imd);
assertEquals("InterceptorClass", imd.getInterceptorClass());
assertLifecycleCallbacksMetaData(imd.getPostConstructs());

}

private void assertDestroyInterceptor(EjbJarMetaData xml) {
assertEquals("Whitespace", xml.getDescriptionGroup().getDisplayNames().value()[0].value());
InterceptorsMetaData ismd = xml.getInterceptors();
assertNotNull(ismd);
assertEquals(1, ismd.size());
InterceptorMetaData imd = ismd.iterator().next();
assertNotNull(imd);
assertEquals("InterceptorClass", imd.getInterceptorClass());
assertLifecycleCallbacksMetaData(imd.getPreDestroys());

}

private void assertLifecycleCallbacksMetaData(LifecycleCallbacksMetaData lcsmd)
{
assertNotNull(lcsmd);
assertEquals(1, lcsmd.size());
LifecycleCallbackMetaData lcmd = lcsmd.get(0);
assertNotNull(lcmd);
assertEquals("interceptLifeCycle", lcmd.getMethodName());
assertEquals("lifecycleCallbackClass", lcmd.getClassName());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>

<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">
<display-name>Whitespace</display-name>
<interceptors>
<interceptor>
<interceptor-class>InterceptorClass </interceptor-class>
<post-activate>
<lifecycle-callback-class>lifecycleCallbackClass </lifecycle-callback-class>
<lifecycle-callback-method>interceptLifeCycle </lifecycle-callback-method>
</post-activate>
</interceptor>
</interceptors>
</ejb-jar>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>

<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">
<display-name>Whitespace</display-name>
<interceptors>
<interceptor>
<interceptor-class>InterceptorClass </interceptor-class>
<around-invoke>
<class>Class </class>
<method-name>interceptMethodCall </method-name>
</around-invoke>
</interceptor>
</interceptors>
</ejb-jar>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0"?>

<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">
<display-name>Whitespace</display-name>
<assembly-descriptor>
<!-- app exceptions -->
<application-exception>
<exception-class>ExceptionClass </exception-class>
</application-exception>
</assembly-descriptor>
</ejb-jar>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0"?>

<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">
<display-name>Whitespace</display-name>
<assembly-descriptor>
<interceptor-binding>
<ejb-name>*</ejb-name>
<interceptor-class>InterceptorClass </interceptor-class>
</interceptor-binding>
</assembly-descriptor>
</ejb-jar>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>

<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">
<display-name>Whitespace</display-name>
<interceptors>
<interceptor>
<interceptor-class>InterceptorClass </interceptor-class>
<post-construct>
<lifecycle-callback-class>lifecycleCallbackClass </lifecycle-callback-class>
<lifecycle-callback-method>interceptLifeCycle </lifecycle-callback-method>
</post-construct>
</interceptor>
</interceptors>
</ejb-jar>
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>

<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">
<display-name>Whitespace</display-name>
<interceptors>
<interceptor>
<interceptor-class>InterceptorClass </interceptor-class>
<pre-destroy>
<lifecycle-callback-class>lifecycleCallbackClass </lifecycle-callback-class>
<lifecycle-callback-method>interceptLifeCycle </lifecycle-callback-method>
</pre-destroy>
</interceptor>
</interceptors>
</ejb-jar>

0 comments on commit 2927015

Please sign in to comment.