You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by js...@apache.org on 2004/09/03 19:04:36 UTC
svn commit: rev 37492 - in incubator/beehive/trunk/controls/test: . infra/mantis src/units/org/apache/beehive/controls/test/java/composition src/units/org/apache/beehive/controls/test/java/context src/units/org/apache/beehive/controls/test/java/contextevent src/units/org/apache/beehive/controls/test/java/event src/units/org/apache/beehive/controls/test/java/extension src/units/org/apache/beehive/controls/test/java/instantiate src/units/org/apache/beehive/controls/test/java/property src/units/org/apache/beehive/controls/test/jpf/context src/units/org/apache/beehive/controls/test/jpf/contextevent src/units/org/apache/beehive/controls/test/jpf/event src/units/org/apache/beehive/controls/test/jpf/extension src/units/org/apache/beehive/controls/test/jpf/instantiate src/units/org/apache/beehive/controls/test/jpf/property tools/mantis tools/mantis/config tools/mantis/lib tools/mantis/src/org/apache/beehive/mantis tools/mantis/src/org/apache/beehive/test tools/mantis/src/org/apache/beehive/test/tools tools/mantis/src/org/apache/beehive/test/tools/mantis tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch tools/mantis/src/org/apache/beehive/test/tools/mantis/test tools/mantis/src/org/apache/beehive/test/tools/mantis/utils tools/tch
Author: jsong
Date: Fri Sep 3 10:04:35 2004
New Revision: 37492
Added:
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/AbstractMantisProcessor.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/MantisFactory.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/MantisTask.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/TchProcessor.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Desc.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Freq.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Misc.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Status.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/CheckinTest.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/DetailedTest.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/FileTypes.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/MantisFileInfo.java
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/StreamCapture.java
Removed:
incubator/beehive/trunk/controls/test/infra/mantis/tchschema.jar
incubator/beehive/trunk/controls/test/infra/mantis/xbean-1.0.2.jar
incubator/beehive/trunk/controls/test/tools/mantis/lib/
incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/mantis/
Modified:
incubator/beehive/trunk/controls/test/build.xml
incubator/beehive/trunk/controls/test/infra/mantis/mantis.jar
incubator/beehive/trunk/controls/test/infra/mantis/mantis.properties
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/DeclarativeTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/ProgrammaticTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/ContextTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/contextevent/LifeCycleTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/EventHandlerTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/ListenerTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/extension/SubControlTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientAccessTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientImplTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ImplAccessTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/PropTest.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/context/TestContext.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/contextevent/TestLifecycleEvent.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/event/TestEvent.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/extension/TestSubControl.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/instantiate/TestInstantiate.java
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java
incubator/beehive/trunk/controls/test/tools/mantis/build.xml
incubator/beehive/trunk/controls/test/tools/mantis/config/mantis.properties
incubator/beehive/trunk/controls/test/tools/mantis/mantis.xml
incubator/beehive/trunk/controls/test/tools/tch/build.xml
Log:
Contributed by Jamie Zyskowski: move mantis into org.apache.beehive.test.tools package, make generated suite names the same as the package name, use the tch-managed schema.jar, use beehive's external xbean jars, update test src to use new package name in imports
Modified: incubator/beehive/trunk/controls/test/build.xml
==============================================================================
--- incubator/beehive/trunk/controls/test/build.xml (original)
+++ incubator/beehive/trunk/controls/test/build.xml Fri Sep 3 10:04:35 2004
@@ -97,8 +97,8 @@
<echo message="----------------------------------------------------------------"/>
<echo message="clean - Delete the junit classes."/>
<echo message="build - build controls,test drivers and java tests."/>
- <echo message="checkin.test - run checkin tests, both java and jpf tests."/>
- <echo message="detailed.test - run detailed tests, both java and jpf tests."/>
+ <echo message="checkin.tests - run checkin tests, both java and jpf tests."/>
+ <echo message="detailed.tests - run detailed tests, both java and jpf tests."/>
<echo message="----------------------------------------------------------------"/>
</target>
@@ -324,9 +324,10 @@
<pathelement path="${junit.jar}"/>
<pathelement path="${servlet24.jar}"/>
<pathelement path="${milton.jar}"/>
- <pathelement path="${tchschema.jar}"/>
+ <pathelement path="${tch.schema.jar}"/>
<pathelement path="${mantis.jar}"/>
- <pathelement path="${mantis.xbean.jar}"/>
+ <pathelement path="${xbean.jar}"/>
+ <pathelement path="${jsr173.jar}"/>
<pathelement path="../build/jars/controls.jar"/>
<pathelement path="${build.beans}"/>
<pathelement path="${build.tests.driver}"/>
@@ -339,7 +340,7 @@
<delete dir="${mantis.bingen.dir}"/>
<delete dir="${mantis.log.dir}"/>
<taskdef name="mantis"
- classname="org.apache.beehive.mantis.MantisTask"
+ classname="org.apache.beehive.test.tools.mantis.MantisTask"
classpathref="mantis.classpath"/>
<mantis srcdir="${junit.src.dir}"
Modified: incubator/beehive/trunk/controls/test/infra/mantis/mantis.jar
==============================================================================
Binary files. No diff available.
Modified: incubator/beehive/trunk/controls/test/infra/mantis/mantis.properties
==============================================================================
--- incubator/beehive/trunk/controls/test/infra/mantis/mantis.properties (original)
+++ incubator/beehive/trunk/controls/test/infra/mantis/mantis.properties Fri Sep 3 10:04:35 2004
@@ -1 +1 @@
-org.apache.beehive.mantis.annotations.tch=org.apache.beehive.mantis.TchProcessor
+org.apache.beehive.test.tools.mantis.annotations.tch=org.apache.beehive.test.tools.mantis.TchProcessor
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/DeclarativeTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/DeclarativeTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/DeclarativeTest.java Fri Sep 3 10:04:35 2004
@@ -8,8 +8,8 @@
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.test.controls.composition.OuterControlBean;
import org.apache.beehive.controls.test.controls.composition.InnerControlBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
* A TeseCase that tests control composition.
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/ProgrammaticTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/ProgrammaticTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/composition/ProgrammaticTest.java Fri Sep 3 10:04:35 2004
@@ -8,8 +8,8 @@
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.test.controls.composition.OuterControlBean;
import org.apache.beehive.controls.test.controls.composition.InnerControlBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
* A TeseCase that tests control composition.
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/ContextTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/ContextTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/ContextTest.java Fri Sep 3 10:04:35 2004
@@ -7,7 +7,7 @@
import org.apache.beehive.controls.test.controls.context.BaseContextBean;
import org.apache.beehive.controls.test.driver.context.BaseContextBeanDriver;
import org.apache.beehive.test.tools.milton.common.Report;
-import org.apache.beehive.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
/**
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/context/GetServiceTest.java Fri Sep 3 10:04:35 2004
@@ -9,8 +9,8 @@
import org.apache.beehive.controls.api.bean.Control;
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.test.controls.context.ServiceGetterBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/contextevent/LifeCycleTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/contextevent/LifeCycleTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/contextevent/LifeCycleTest.java Fri Sep 3 10:04:35 2004
@@ -6,8 +6,8 @@
import org.apache.beehive.controls.api.bean.Control;
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.test.controls.contextevent.RecorderBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
* A TestCase that tests control's context event by listening to and recording controls'
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/EventHandlerTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/EventHandlerTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/EventHandlerTest.java Fri Sep 3 10:04:35 2004
@@ -8,8 +8,8 @@
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.api.events.EventHandler;
import org.apache.beehive.controls.test.controls.event.HelloBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
* A TestCase that tests receiving events from a control by @EventHandler
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/ListenerTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/ListenerTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/event/ListenerTest.java Fri Sep 3 10:04:35 2004
@@ -7,8 +7,8 @@
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.test.controls.event.Hello;
import org.apache.beehive.controls.test.controls.event.HelloBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
* A Testcase that tests receiving events from a control with an inner class or
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/extension/SubControlTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/extension/SubControlTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/extension/SubControlTest.java Fri Sep 3 10:04:35 2004
@@ -6,8 +6,8 @@
import org.apache.beehive.controls.api.bean.Control;
import org.apache.beehive.controls.api.bean.ControlBean;
import org.apache.beehive.controls.test.controls.extension.SubControlBean;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java Fri Sep 3 10:04:35 2004
@@ -8,8 +8,8 @@
import org.apache.beehive.controls.test.controls.instantiate.HelloControlBean;
import org.apache.beehive.controls.test.controls.property.SinglePropertyBean;
import org.apache.beehive.controls.test.controls.property.SingleProperty;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientAccessTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientAccessTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientAccessTest.java Fri Sep 3 10:04:35 2004
@@ -9,8 +9,8 @@
import junit.framework.TestCase;
import org.apache.beehive.test.tools.milton.common.Report;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
* Test accessing control's propertySet by control bean's getter/setter
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientImplTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientImplTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ClientImplTest.java Fri Sep 3 10:04:35 2004
@@ -8,8 +8,8 @@
import org.apache.beehive.controls.test.controls.property.SinglePropertyBean;
import org.apache.beehive.test.tools.milton.common.Report;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ImplAccessTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ImplAccessTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ImplAccessTest.java Fri Sep 3 10:04:35 2004
@@ -8,8 +8,8 @@
import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.beehive.test.tools.milton.common.Report;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/PropTest.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/PropTest.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/PropTest.java Fri Sep 3 10:04:35 2004
@@ -13,8 +13,8 @@
import org.apache.beehive.controls.test.driver.property.DrivePropsBeans;
import org.apache.beehive.test.tools.milton.common.Report;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/context/TestContext.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/context/TestContext.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/context/TestContext.java Fri Sep 3 10:04:35 2004
@@ -1,8 +1,8 @@
package org.apache.beehive.controls.test.jpf.context;
import org.apache.beehive.test.tools.milton.junit.HtmlReportTestCase;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/contextevent/TestLifecycleEvent.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/contextevent/TestLifecycleEvent.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/contextevent/TestLifecycleEvent.java Fri Sep 3 10:04:35 2004
@@ -1,8 +1,8 @@
package org.apache.beehive.controls.test.jpf.contextevent;
import org.apache.beehive.test.tools.milton.junit.HtmlReportTestCase;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/event/TestEvent.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/event/TestEvent.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/event/TestEvent.java Fri Sep 3 10:04:35 2004
@@ -1,8 +1,8 @@
package org.apache.beehive.controls.test.jpf.event;
import org.apache.beehive.test.tools.milton.junit.HtmlReportTestCase;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/extension/TestSubControl.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/extension/TestSubControl.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/extension/TestSubControl.java Fri Sep 3 10:04:35 2004
@@ -1,8 +1,8 @@
package org.apache.beehive.controls.test.jpf.extension;
import org.apache.beehive.test.tools.milton.junit.HtmlReportTestCase;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
/**
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/instantiate/TestInstantiate.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/instantiate/TestInstantiate.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/instantiate/TestInstantiate.java Fri Sep 3 10:04:35 2004
@@ -1,8 +1,8 @@
package org.apache.beehive.controls.test.jpf.instantiate;
import org.apache.beehive.test.tools.milton.junit.HtmlReportTestCase;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java (original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java Fri Sep 3 10:04:35 2004
@@ -1,8 +1,8 @@
package org.apache.beehive.controls.test.jpf.property;
import org.apache.beehive.test.tools.milton.junit.HtmlReportTestCase;
-import org.apache.beehive.mantis.annotations.tch.Freq;
-import org.apache.beehive.mantis.annotations.tch.Status;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
Modified: incubator/beehive/trunk/controls/test/tools/mantis/build.xml
==============================================================================
--- incubator/beehive/trunk/controls/test/tools/mantis/build.xml (original)
+++ incubator/beehive/trunk/controls/test/tools/mantis/build.xml Fri Sep 3 10:04:35 2004
@@ -28,15 +28,13 @@
<property name="temp.dir" value="${mantis.root}/temp"/>
<property name="lib.dir" value="${mantis.root}/lib"/>
<property name="mantis.local.deploy.jar" value="${deploy.dir}/mantis.jar"/>
- <property name="tchschema.jar" value="${lib.dir}/tchschema.jar"/>
- <property name="mantis.xbean.jar" value="${lib.dir}/xbean-1.0.2.jar"/>
<!--************-->
<!-- CLASSPATHS -->
<!--************-->
<path id="classpath">
- <pathelement path="${tchschema.jar}"/>
- <pathelement path="${mantis.xbean.jar}"/>
+ <pathelement path="${tch.schema.jar}"/>
+ <pathelement path="${xbean.jar}"/>
<pathelement path="${ant.jar}"/>
<pathelement path="${junit.jar}"/>
<pathelement path="${tools.jar}"/>
@@ -45,6 +43,7 @@
<!--************************-->
<!-- TCH SCHEMA COMPILATION -->
<!--************************-->
+ <!-- Commented out because tch now privides it's own xmlbeans schema jar
<target name="tch.schema.build" >
<delete dir="${temp.dir}"/>
<mkdir dir="${temp.dir}"/>
@@ -58,7 +57,7 @@
<arg line="${tch.home}/schema/everything-suite.xsd"/>
</java>
<delete dir="${temp.dir}"/>
- </target>
+ </target>-->
<!--***************-->
<!-- BUILD TARGETS -->
@@ -85,6 +84,8 @@
compiler="modern"
executable="${os.JAVA_HOME}/bin/javac"
classpathref="classpath"
+ includes="**/beehive/test/tools/**"
+ excludes="**/beehive/mantis/**.*.java"
source="1.5">
</javac>
</target>
@@ -94,7 +95,7 @@
<mkdir dir="${deploy.dir}"/>
<jar destfile="${mantis.local.deploy.jar}"
basedir="${build.dir}"
- excludes="**/test/**"/>
+ excludes="**/mantis/test/**"/>
</target>
<target name="clean">
Modified: incubator/beehive/trunk/controls/test/tools/mantis/config/mantis.properties
==============================================================================
--- incubator/beehive/trunk/controls/test/tools/mantis/config/mantis.properties (original)
+++ incubator/beehive/trunk/controls/test/tools/mantis/config/mantis.properties Fri Sep 3 10:04:35 2004
@@ -1 +1 @@
-org.apache.beehive.mantis.annotations.tch=org.apache.beehive.mantis.TchProcessor
+org.apache.beehive.test.tools.mantis.annotations.tch=org.apache.beehive.test.tools.mantis.TchProcessor
Modified: incubator/beehive/trunk/controls/test/tools/mantis/mantis.xml
==============================================================================
--- incubator/beehive/trunk/controls/test/tools/mantis/mantis.xml (original)
+++ incubator/beehive/trunk/controls/test/tools/mantis/mantis.xml Fri Sep 3 10:04:35 2004
@@ -21,38 +21,37 @@
<property name="mantis.srcgen.dir" value="${mantis.root}/srcgen"/>
<property name="mantis.bingen.dir" value="${mantis.root}/bingen"/>
<property name="mantis.log.dir" value="${mantis.root}/log"/>
- <property name="mantis.config" value="${mantis.root}/config/mantis.properties"/>
- <property name="lib.dir" value="${mantis.root}/lib"/>
- <property name="tchschema.jar" value="${lib.dir}/tchschema.jar"/>
- <property name="mantis.xbean.jar" value="${lib.dir}/xbean-1.0.2.jar"/>
+ <property name="config" value="${mantis.root}/config/mantis.properties"/>
<!--************-->
<!-- CLASSPATHS -->
<!--************-->
<path id="mantis.run.classpath">
<pathelement path="${mantis.local.deploy.jar}"/>
- <pathelement path="${tchschema.jar}"/>
- <pathelement path="${mantis.xbean.jar}"/>
+ <pathelement path="${tch.schema.jar}"/>
+ <pathelement path="${xbean.jar}"/>
<pathelement path="${ant.jar}"/>
<pathelement path="${junit.jar}"/>
+ <pathelement path="${jsr173.jar}"/>
</path>
<path id="tch.run.classpath">
<pathelement path="${mantis.build.dir}"/>
<pathelement path="${junit.jar}"/>
<pathelement path="${tch.jar}"/>
- <pathelement path="${tch.home}/schema.jar"/>
- <pathelement path="${mantis.xbean.jar}"/>
+ <pathelement path="${tch.schema.jar}"/>
+ <pathelement path="${xbean.jar}"/>
<pathelement path="${ant.jar}"/>
<pathelement path="${ant.home}/lib/ant-launcher.jar"/>
<pathelement path="${jakarta.jar}"/>
<pathelement path="${xerces.jar}"/>
+ <pathelement path="${jsr173.jar}"/>
</path>
<!--********-->
<!-- MANTIS -->
<!--********-->
- <taskdef name="mantis" classname="org.apache.beehive.mantis.MantisTask" classpathref="mantis.run.classpath"/>
+ <taskdef name="mantis" classname="org.apache.beehive.test.tools.mantis.MantisTask" classpathref="mantis.run.classpath"/>
<property name="mantis.run.classpath" refid="mantis.run.classpath"/>
<target name="run.mantis">
<delete dir="${mantis.srcgen.dir}"/>
@@ -63,7 +62,7 @@
bingen="${mantis.bingen.dir}"
classpath="${mantis.run.classpath}"
logdir="${mantis.log.dir}"
- config="${mantis.config}"
+ config="${config}"
aptcommand="${os.JAVA_HOME}/bin/apt"
/>
</target>
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/AbstractMantisProcessor.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/AbstractMantisProcessor.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,74 @@
+package org.apache.beehive.test.tools.mantis;
+
+// mirror apis
+import com.sun.mirror.apt.AnnotationProcessor;
+import com.sun.mirror.apt.AnnotationProcessorEnvironment;
+import com.sun.mirror.apt.Filer;
+import com.sun.mirror.declaration.PackageDeclaration;
+import com.sun.mirror.declaration.AnnotationTypeDeclaration;
+import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
+import com.sun.mirror.declaration.AnnotationValue;
+import com.sun.mirror.declaration.TypeDeclaration;
+import com.sun.mirror.declaration.ClassDeclaration;
+import com.sun.mirror.declaration.MethodDeclaration;
+import com.sun.mirror.declaration.AnnotationMirror;
+
+// java utils
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.File;
+import java.util.Map;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.ArrayList;
+
+// mantis annotations
+//import org.apache.beehive.mantis.annotations.*;
+
+import org.apache.beehive.test.tools.mantis.utils.FileTypes;
+import org.apache.beehive.test.tools.mantis.utils.MantisFileInfo;
+
+// tch schema types
+//import org.apache.xmlbeans.XmlAnySimpleType;
+//import org.apache.xmlbeans.XmlAnySimpleType.Factory;
+//import noNamespace.ProjectDocument.*;
+//import noNamespace.*;
+
+public abstract class AbstractMantisProcessor implements AnnotationProcessor
+{
+ private HashSet<MantisFileInfo> _fileinfos;
+ protected Set<AnnotationTypeDeclaration> _atds;
+ protected AnnotationProcessorEnvironment _env;
+ protected String _srctree;
+ protected String _classtree;
+
+ abstract public void process();
+
+ public void init(Set<AnnotationTypeDeclaration> p_atds,
+ AnnotationProcessorEnvironment p_env)
+ {
+ this._atds = p_atds;
+ this._env = p_env;
+ _fileinfos = new HashSet<MantisFileInfo>();
+
+ // initialize the file gen dir strings
+ Map<String,String> opts = _env.getOptions();
+ _srctree = opts.get("-s");
+ _classtree = opts.get("-d");
+ }
+
+ protected void registerFile(String url, String creatingClassname, FileTypes type)
+ {
+ MantisFileInfo finfo = new MantisFileInfo(url,
+ creatingClassname,
+ type);
+ _fileinfos.add(finfo);
+ }
+
+ public HashSet<MantisFileInfo> getFileInfo()
+ {
+ return _fileinfos;
+ }
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/MantisFactory.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/MantisFactory.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,211 @@
+package org.apache.beehive.test.tools.mantis;
+
+import com.sun.mirror.apt.*;
+import com.sun.mirror.declaration.*;
+import com.sun.mirror.type.*;
+import com.sun.mirror.util.*;
+
+import java.io.FileReader;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.lang.StringBuffer;
+import java.lang.ClassNotFoundException;
+import java.lang.InstantiationException;
+import java.lang.IllegalAccessException;
+import java.util.Collection;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.Iterator;
+import static java.util.Collections.*;
+
+
+public class MantisFactory implements AnnotationProcessorFactory
+{
+ // map of annotation package to processor name
+ private HashMap<String,String> _processorMap;
+
+ // claim that all annotations are handled by this factory
+ // at runtime the mantis config is loaded in getProcessorFor()
+ private static final Collection<String> _supportedAnnotations
+ = unmodifiableCollection(Arrays.asList("*"));
+
+ // options passed to apt at runtime
+ private Map<String,String> _options;
+
+ // options that are supported
+ private final Collection<String> _supportedOptions;
+
+
+ public MantisFactory()
+ {
+ this._supportedOptions = initSupportedOptions();
+ }
+
+
+ public Collection<String> supportedAnnotationTypes(){return _supportedAnnotations;}
+
+ public Collection<String> supportedOptions(){return _supportedOptions;}
+
+ public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> p_atds,
+ AnnotationProcessorEnvironment p_env)
+ {
+ // parse the command line args
+ // TODO: when apt gives proper key=value pairs, chage to fit.
+ // TODO: for now, everything is in the key
+ String configurl = null;
+ String processorName = null;
+ Set<String> keys = p_env.getOptions().keySet();
+ Iterator it = keys.iterator();
+ while(it.hasNext())
+ {
+ String curr = (String) it.next();
+ String[] val = curr.split("=");
+ if(val[0].equalsIgnoreCase("-Aprocessor"))
+ processorName = val[1];
+ else if(val[0].equalsIgnoreCase("-Aconfig"))
+ configurl = val[1];
+ }
+ it = null;
+
+ // initiialize the configuration
+ initProcessorMap(configurl);
+
+ // initialize the processor(s)
+ // if no command line override - return a composite
+ // of all processors that map the the annotations present
+ HashSet<AnnotationProcessor> processors = new HashSet<AnnotationProcessor>();
+ if(null == processorName)
+ {
+
+ // first loop through the annotation types and collect the
+ // set of unique annotation package names
+ it = p_atds.iterator();
+ HashSet<String> annotationPackages = new HashSet<String>();
+ while(it.hasNext())
+ {
+ AnnotationTypeDeclaration atd = (AnnotationTypeDeclaration)it.next();
+ annotationPackages.add(atd.getPackage().getQualifiedName());
+ }
+ it = null;
+
+ // loop through the unique annotation package names
+ // and initialize a uniqe set of processor names
+ // (processors may register for more than one annotation pkg)
+ HashSet<String> activeProcessors = new HashSet<String>();
+ for(String pkg : annotationPackages)
+ {
+ if(_processorMap.containsKey(pkg))
+ {
+ activeProcessors.add(_processorMap.get(pkg));
+ }
+ else
+ System.out.println("WARNING: no processor for annotation package "+pkg);
+ }
+
+ // loop through the unique processor names
+ // and instantiate them
+ for(String procname : activeProcessors)
+ {
+ // reflectivly new up the processor
+ processors.add(instantiateProcessor(procname,p_atds,p_env));
+ }
+ }
+ else
+ {
+ // processor override provided - just new up this one
+ processors.add(instantiateProcessor(processorName,p_atds,p_env));
+ }
+
+ System.out.println("config="+configurl);
+ if(processors.contains(null))
+ System.out.println("ERROR: unable to instantiate and initialize processor(s)");
+ else
+ System.out.println("num processor(s) initialized="+processors.size());
+
+ // create a composite of processors to return
+ AnnotationProcessors util = new AnnotationProcessors();
+ return util.getCompositeAnnotationProcessor(processors);
+ }
+
+ private Collection<String> initSupportedOptions()
+ {
+ HashSet<String> supportedOpts = new HashSet<String>();
+ supportedOpts.add("-Aconfig");
+ supportedOpts.add("-Aprocessor");
+ return supportedOpts;
+ }
+
+ private void initProcessorMap(String configurl)
+ {
+
+ try
+ {
+ FileReader reader = new FileReader(configurl);
+ int c;
+ StringBuffer buff = new StringBuffer();
+ while( (c=reader.read()) != -1)
+ {
+ buff.append((char)c);
+ }
+ String[] values = buff.toString().split(System.getProperty("line.separator"));
+
+ _processorMap = new HashMap<String,String>();
+ for(int i=0; i<values.length; i++)
+ {
+ // if the line is commented out - skip it
+ if(values[i].startsWith("#"))
+ continue;
+ String[] val = values[i].split("=");
+ if(_processorMap.containsKey(val[0]))
+ System.out.println("WARNING: duplicate mappings for annotation package: "+val[0]);
+ _processorMap.put(val[0],val[1]);
+ }
+ }
+ catch(FileNotFoundException fnfe)
+ {
+ fnfe.printStackTrace();
+ }
+ catch(IOException ioe)
+ {
+ ioe.printStackTrace();
+ }
+ }
+
+ private AnnotationProcessor instantiateProcessor(String p_procname,
+ Set<AnnotationTypeDeclaration> p_atds,
+ AnnotationProcessorEnvironment p_env)
+ {
+ // instantiate the specified processors
+ try
+ {
+ System.out.println("INFO: ready to instantiate processor class: "+p_procname);
+ // FIX: in win32 a ClassNotFoundException would be thrown w/out a call to trim()
+ Class definition = Class.forName(p_procname.trim());
+ AbstractMantisProcessor proc = (AbstractMantisProcessor) definition.newInstance();
+ //System.out.println("INFO: successfully instantiated processor class: "+p_procname);
+ //System.out.println("INFO: ready to initialize processor class: "+p_procname);
+ proc.init(p_atds,p_env);
+ System.out.println("INFO: successfully instantiated and initialized processor class: "+p_procname);
+ return (AnnotationProcessor) proc;
+ }
+ catch(ClassNotFoundException cnfe)
+ {
+ cnfe.printStackTrace();
+ return null;
+ }
+ catch(InstantiationException ie)
+ {
+ ie.printStackTrace();
+ return null;
+ }
+ catch(IllegalAccessException iae)
+ {
+ iae.printStackTrace();
+ return null;
+ }
+ }
+
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/MantisTask.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/MantisTask.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,173 @@
+package org.apache.beehive.test.tools.mantis;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.io.IOException;
+
+import org.apache.tools.ant.taskdefs.MatchingTask;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.DirectoryScanner;
+
+import org.apache.beehive.test.tools.mantis.utils.StreamCapture;
+
+public class MantisTask extends MatchingTask
+{
+ private final String P = System.getProperty("file.separator");
+
+ // required attributes
+ private String _srcdir = null;
+ private String _srcgen = null;
+ private String _bingen = null;
+ private String _classpath = null;
+ private String _config = null;
+ private String _aptcommand = null;
+ // optional attributes
+ private boolean _compile = false;
+ private String _processor = null;
+ private int _timeout = 5000;
+ // use _srcgen if not provided
+ private String _logdir = null;
+
+ // setters for attributes
+ public void setSrcdir(String p_srcdir)
+ {
+ _srcdir = p_srcdir;
+ fileset.setDir(new File(_srcdir));
+ }
+
+ public void setSrcgen(String p_srcgen)
+ {
+ _srcgen = p_srcgen;
+ }
+
+ public void setBingen(String p_bingen)
+ {
+ _bingen = p_bingen;
+ }
+
+ public void setClasspath(String p_classpath)
+ {
+ _classpath = p_classpath;
+ }
+
+ public void setConfig(String p_config)
+ {
+ _config = p_config;
+ }
+
+ public void setAptcommand(String p_aptcommand)
+ {
+ _aptcommand = p_aptcommand;
+ }
+
+ public void setCompile(boolean p_compile)
+ {
+ _compile = p_compile;
+ }
+
+ public void setProcessor(String p_processor)
+ {
+ _processor = p_processor;
+ }
+
+ public void setLogdir(String p_logdir)
+ {
+ _logdir = p_logdir;
+ }
+
+ public void setTimeout(int p_timeout)
+ {
+ _timeout = p_timeout;
+ }
+
+ public void execute() throws BuildException
+ {
+ // create the file of all files to process
+ // this will allow processing on win32 given it's
+ // limitation on command-line length
+ File fSrcgen = new File(_srcgen);
+ fSrcgen.mkdirs();
+ DirectoryScanner scanner = getDirectoryScanner(new File(_srcdir));
+ String[] files = scanner.getIncludedFiles();
+ String filename = _srcgen+P+"files.txt";
+ try
+ {
+ FileWriter writer = new FileWriter(new File(filename));
+ for(int i=0; i<files.length; i++)
+ {
+ writer.write(_srcdir+P+files[i]);
+ if(i != files.length)
+ writer.write("\n");
+ }
+ writer.flush();
+ writer.close();
+ }
+ catch(IOException ioe)
+ {
+ ioe.printStackTrace();
+ System.out.println("ERROR: IOException caught trying to create file listing file");
+ return;
+ }
+
+ // create the command line to call
+ StringBuffer cmd = new StringBuffer();
+ cmd.append(_aptcommand+" ");
+ if(!_compile)
+ cmd.append(" -nocompile ");
+ cmd.append("-classpath "+_classpath+" ");
+ cmd.append("-s "+_srcgen+" ");
+ if(null != _bingen)
+ cmd.append("-d "+_bingen+" ");
+ // TODO: add task parameter to specify the factory for dev/debug purposes
+ cmd.append("-factory org.apache.beehive.test.tools.mantis.MantisFactory ");
+ cmd.append("-Aconfig="+_config+" ");
+ if(null != _processor)
+ cmd.append("-Aprocessor="+_processor+" ");
+ cmd.append("@"+filename+" ");
+
+ System.out.println("running command:\n"+cmd.toString());
+
+ // capture mantis stderr/stdout to log file
+ // while executing the command line apt call
+ try
+ {
+ Process p = Runtime.getRuntime().exec(cmd.toString());
+ logStreams(p);
+ System.out.println("RETURN: "+p.exitValue());
+ }
+ catch(IOException ioe)
+ {
+ ioe.printStackTrace();
+ System.out.println("ERROR: IOException during apt execution");
+ }
+ catch(InterruptedException ie)
+ {
+ ie.printStackTrace();
+ System.out.println("ERROR: InterruptedException during apt execution");
+ }
+ }
+
+ private void logStreams(Process p_proc) throws IOException,InterruptedException
+ {
+ // ensure log dir exists
+ if(null == _logdir)
+ _logdir = _srcgen;
+ else
+ {
+ File fLogdir = new File(_logdir);
+ fLogdir.mkdirs();
+ }
+
+ // capture stderr and stdout to log files
+ StreamCapture stderr = new StreamCapture(p_proc.getErrorStream(),"file", _logdir+P+"mantis.err");
+ StreamCapture stdout = new StreamCapture(p_proc.getInputStream(),"file", _logdir+P+"mantis.out");
+ stderr.start();
+ stdout.start();
+
+ // wait up to 5 seconds for proc to finish
+ stderr.join(_timeout);
+ stdout.join(_timeout);
+ }
+
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/TchProcessor.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/TchProcessor.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,281 @@
+package org.apache.beehive.test.tools.mantis;
+
+// mirror apis
+import com.sun.mirror.apt.AnnotationProcessor;
+import com.sun.mirror.apt.AnnotationProcessorEnvironment;
+import com.sun.mirror.apt.Filer;
+import com.sun.mirror.declaration.PackageDeclaration;
+import com.sun.mirror.declaration.AnnotationTypeDeclaration;
+import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
+import com.sun.mirror.declaration.AnnotationValue;
+import com.sun.mirror.declaration.TypeDeclaration;
+import com.sun.mirror.declaration.ClassDeclaration;
+import com.sun.mirror.declaration.MethodDeclaration;
+import com.sun.mirror.declaration.AnnotationMirror;
+
+// java utils
+import java.io.PrintWriter;
+import java.io.IOException;
+import java.io.File;
+import java.util.Map;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.ArrayList;
+
+// mantis annotations
+import org.apache.beehive.test.tools.mantis.annotations.tch.*;
+import org.apache.beehive.test.tools.mantis.utils.FileTypes;
+import org.apache.beehive.test.tools.mantis.utils.MantisFileInfo;
+
+// tch schema types
+import org.apache.xmlbeans.XmlAnySimpleType;
+import org.apache.xmlbeans.XmlAnySimpleType.Factory;
+import noNamespace.ProjectDocument.*;
+import noNamespace.*;
+
+public class TchProcessor extends AbstractMantisProcessor
+{
+ protected HashSet<PackageDeclaration> _pkgdecls;
+ private Filer _filer;
+
+ public void init(Set<AnnotationTypeDeclaration> p_atds,
+ AnnotationProcessorEnvironment p_env)
+ {
+ super.init(p_atds,p_env);
+ this._pkgdecls = new HashSet();
+ this._filer = _env.getFiler();
+
+ // init the package list
+ Collection<TypeDeclaration> tdecls =
+ _env.getSpecifiedTypeDeclarations();
+ for(TypeDeclaration tdecl : tdecls)
+ {
+ _pkgdecls.add(tdecl.getPackage());
+ }
+ }
+
+ public void process()
+ {
+ // creates an xml file for each package
+ for(PackageDeclaration pkg : _pkgdecls)
+ {
+ processPackage(pkg);
+ }
+
+ // create the root xml file
+ createRootTCH();
+
+ // print out some info about the files created during this process
+ System.out.println("created "+getFileInfo().size()+" files:");
+ for(MantisFileInfo mfi : getFileInfo())
+ {
+ System.out.println(mfi.getUrl());
+ System.out.println(mfi.getCreatingClassname());
+ if(mfi.getFileType() == FileTypes.AUX)
+ System.out.println("AUX");
+ else if(mfi.getFileType() == FileTypes.SRC)
+ System.out.println("SRC");
+ else if(mfi.getFileType() == FileTypes.BIN)
+ System.out.println("BIN");
+ System.out.println();
+ }
+
+ }
+
+ // process a package
+ private void processPackage(PackageDeclaration p_pkgdecl)
+ {
+ // get the suite name based on package name
+ // the . char is illegal for a test name in tch
+ String s_suiteName = p_pkgdecl.getQualifiedName().replace('.','-');
+
+ // create a new project document (one per package)
+ ProjectDocument pdoc = ProjectDocument.Factory.newInstance();
+ Project project = pdoc.addNewProject();
+ project.setName("tch");
+ project.setDefault(s_suiteName);
+
+ // create and init the test suite
+ TargetType target = project.addNewTarget();
+ target.setName(s_suiteName);
+ TestSuiteType suite = target.addNewTestSuite();
+
+ suite.setTestunit(s_suiteName);
+
+ // add the suite-level metadata
+ TestMetadataType sMeta = suite.addNewTestMetadata();
+ sMeta.setDescription("mantis-generated test suite file");
+
+
+ // loop through the classes in this package allowing them to
+ // add test cases to the test suite
+ Collection<ClassDeclaration> classdecls = p_pkgdecl.getClasses();
+ for(ClassDeclaration classdecl : classdecls )
+ {
+ processClass(classdecl, suite);
+ }
+
+ // create the tch xml file for this package
+ PrintWriter pw = null;
+ try
+ {
+ String filename = p_pkgdecl.getQualifiedName().replace('.','-')+".xml";
+ pw = _filer.createTextFile(Filer.Location.SOURCE_TREE,
+ "",
+ new File(filename),
+ null);
+ pw.print(pdoc.toString());
+ registerFile("file://"+_srctree+"/"+filename,
+ this.getClass().getName(),
+ FileTypes.AUX);
+ }
+ catch(IOException ioe)
+ {
+ ioe.printStackTrace();
+ }
+ finally
+ {
+ if(null != pw)
+ {
+ pw.flush();
+ pw.close();
+ }
+ }
+
+ }
+
+ private void processClass(ClassDeclaration p_cdecl, TestSuiteType p_suite)
+ {
+ // get the class-level annotation values
+ Freq cfreq = (Freq) p_cdecl.getAnnotation(Freq.class);
+ Status cstatus = (Status) p_cdecl.getAnnotation(Status.class);
+ Desc cdesc = (Desc) p_cdecl.getAnnotation(Desc.class);
+ Misc cmisc = (Misc) p_cdecl.getAnnotation(Misc.class);
+
+ // loop through the methods
+ Collection<? extends MethodDeclaration> methods = p_cdecl.getMethods();
+ Iterator mit = methods.iterator();
+ while(mit.hasNext())
+ {
+ MethodDeclaration methDecl = (MethodDeclaration) mit.next();
+ processMethod(methDecl, p_suite, cfreq, cstatus, cdesc, cmisc);
+ }
+
+ }
+
+ private void processMethod(MethodDeclaration p_methdecl,
+ TestSuiteType suite,
+ Freq p_cfreq,
+ Status p_cstatus,
+ Desc p_cdesc,
+ Misc p_cmisc)
+ {
+ // only process methods that start with 'test' (junit)
+ // TODO: may need to add more logic for different tch runners
+ if(! p_methdecl.getSimpleName().startsWith("test"))
+ return;
+
+ // add the test to the suite
+ TestType test = suite.addNewTest();
+ test.setName(p_methdecl.getDeclaringType().getSimpleName()+"-"+p_methdecl.getSimpleName());
+ JavatestType junit = test.addNewJunit();
+ junit.setTestclass(p_methdecl.getDeclaringType().getQualifiedName());
+ junit.setMethodnames(p_methdecl.getSimpleName());
+
+ // get the annotaions on the methods
+ Freq mfreq = (Freq) p_methdecl.getAnnotation(Freq.class);
+ Status mstatus = (Status) p_methdecl.getAnnotation(Status.class);
+ Desc mdesc = (Desc) p_methdecl.getAnnotation(Desc.class);
+ Misc mmisc = (Misc) p_methdecl.getAnnotation(Misc.class);
+
+ // if not present on the method use the class-level value
+ if(null == mfreq) mfreq = p_cfreq;
+ if(null == mstatus) mstatus = p_cstatus;
+ if(null == mdesc) mdesc = p_cdesc;
+ if(null == mmisc) mmisc = p_cmisc;
+
+ // add metadata to the test
+ // leave out if null
+ TestMetadataType sMeta = test.addNewTestMetadata();
+ if(null != mfreq)
+ {
+ sMeta.setFreq(createStringArrayList(mfreq.value()));
+ }
+
+ if(null != mstatus)
+ {
+ sMeta.setStatus(createStringArrayList(mstatus.value()));
+ }
+
+ if(null != mdesc)
+ sMeta.setDescription(mdesc.value());
+
+ if(null != mmisc)
+ sMeta.setMisc(mmisc.value());
+ }
+
+ private void createRootTCH()
+ {
+ // create the root xmlbean
+ ProjectDocument pdoc = ProjectDocument.Factory.newInstance();
+ Project project = pdoc.addNewProject();
+ project.setName("tch");
+ project.setDefault("suite");
+
+ // create and init the test suite
+ TargetType target = project.addNewTarget();
+ target.setName("suite");
+ TestSuiteType suite = target.addNewTestSuite();
+ // the . char is illegal for a test name in tch
+ suite.setTestunit("root");
+
+ // add a call to each package's test suite
+ for(PackageDeclaration pkgdecl : _pkgdecls)
+ {
+ XmlAnySimpleType testfile = XmlAnySimpleType.Factory.newInstance();
+ testfile.setStringValue(pkgdecl.getQualifiedName().replace('.','-')+".xml");
+ TestSuiteCallType call = suite.addNewTestSuiteCall();
+ call.setTestfile(testfile);
+ }
+
+ // create the file on disk
+ PrintWriter pw = null;
+ try
+ {
+ String filename = "root.xml";
+ pw = _filer.createTextFile(Filer.Location.SOURCE_TREE,
+ "",
+ new File(filename),
+ null);
+ pw.print(pdoc.toString());
+ registerFile("file://"+_srctree+"/"+filename,
+ this.getClass().getName(),
+ FileTypes.AUX);
+ }
+ catch(IOException ioe)
+ {
+ ioe.printStackTrace();
+ }
+ finally
+ {
+ if(null != pw)
+ {
+ pw.flush();
+ pw.close();
+ }
+ }
+ }
+
+ private ArrayList<String> createStringArrayList(String p_input)
+ {
+ String[] values = p_input.split(" ");
+ ArrayList<String> result = new ArrayList<String>();
+ for(int i=0; i<values.length; i++)
+ {
+ result.add(values[i]);
+ }
+ return result;
+ }
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Desc.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Desc.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,6 @@
+package org.apache.beehive.test.tools.mantis.annotations.tch;
+
+public @interface Desc
+{
+ String value();
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Freq.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Freq.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,6 @@
+package org.apache.beehive.test.tools.mantis.annotations.tch;
+
+public @interface Freq
+{
+ String value() default "detailed";
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Misc.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Misc.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,6 @@
+package org.apache.beehive.test.tools.mantis.annotations.tch;
+
+public @interface Misc
+{
+ String value();
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Status.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/annotations/tch/Status.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,6 @@
+package org.apache.beehive.test.tools.mantis.annotations.tch;
+
+public @interface Status
+{
+ String value() default "active";
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/CheckinTest.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/CheckinTest.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,35 @@
+package org.apache.beehive.test.tools.mantis.test;
+
+import junit.framework.TestCase;
+import org.apache.beehive.test.tools.mantis.annotations.tch.*;
+
+
+@Freq("checkin")
+@Status("active")
+@Desc("a class desc")
+@Misc("a class misc")
+public class CheckinTest extends TestCase
+{
+ public CheckinTest(String name) throws Exception
+ {
+ super(name);
+ }
+
+ @Freq("detailed")
+ @Status("inactive")
+ @Desc("a method desc")
+ @Misc("a method misc")
+ public void testPass() throws Exception
+ {
+ }
+
+ public void testFail() throws Exception
+ {
+ assertTrue(false);
+ }
+
+ public void notATest() throws Exception
+ {
+ }
+
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/DetailedTest.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/test/DetailedTest.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,31 @@
+package org.apache.beehive.test.tools.mantis.test;
+
+import junit.framework.TestCase;
+import org.apache.beehive.test.tools.mantis.annotations.tch.*;
+
+
+public class DetailedTest extends TestCase
+{
+ public DetailedTest(String name) throws Exception
+ {
+ super(name);
+ }
+
+ @Freq("detailed")
+ @Status("active")
+ @Desc("a method desc")
+ @Misc("a method misc")
+ public void testPass() throws Exception
+ {
+ }
+
+ public void testFail() throws Exception
+ {
+ assertTrue(false);
+ }
+
+ public void notATest() throws Exception
+ {
+ }
+
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/FileTypes.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/FileTypes.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,3 @@
+package org.apache.beehive.test.tools.mantis.utils;
+
+public enum FileTypes {SRC,BIN,AUX};
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/MantisFileInfo.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/MantisFileInfo.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,22 @@
+package org.apache.beehive.test.tools.mantis.utils;
+
+public class MantisFileInfo
+{
+ private final String _url;
+ private final String _creatingClassname;
+ private final FileTypes _type;
+
+ public MantisFileInfo(String url,
+ String classname,
+ FileTypes type)
+ {
+ this._url = url;
+ this._creatingClassname = classname;
+ this._type = type;
+ }
+
+ public String getUrl(){return _url;}
+ public String getCreatingClassname(){return _creatingClassname;}
+ public FileTypes getFileType(){return _type;}
+
+}
Added: incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/StreamCapture.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/tools/mantis/src/org/apache/beehive/test/tools/mantis/utils/StreamCapture.java Fri Sep 3 10:04:35 2004
@@ -0,0 +1,100 @@
+package org.apache.beehive.test.tools.mantis.utils;
+
+import java.io.*;
+import java.lang.StringBuffer;
+
+/**
+ * A utility for reading from an InputStream
+ */
+public class StreamCapture extends Thread {
+ private InputStream is;
+ private String type;
+ private String filename;
+ private String bufferContents = "";
+
+ /**
+ *
+ * @param is InputStream to read from
+ * @param type An identifier for this stream capture (valid values: stderr, stdout)
+ */
+ public StreamCapture(InputStream is, String type)
+ {
+ this.is = is;
+ this.type = type;
+ }
+
+ /**
+ *
+ * @param is InputStream to read from
+ * @param type An identifier for this stream capture (valid values: stderr, stdout, file)
+ * @param file If given, the data is saved to this file vs. an in-memory string.
+ */
+ public StreamCapture(InputStream is, String type, String file)
+ {
+ this.is = is;
+ this.type = type;
+ this.filename = file;
+ }
+
+
+ /**
+ * @return The buffer contents as a string
+ */
+ public String getString()
+ {
+ return bufferContents;
+ }
+
+
+ /**
+ * Read the InputStream supplied and put into
+ * a string which is accessed via getString() or
+ * a file is type==file and a filename is given.
+ */
+ public void run()
+ {
+ // if type == "file" save the contents to a file
+ if(type.equalsIgnoreCase("file"))
+ {
+ try
+ {
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
+ String line = null;
+ FileWriter fw = new FileWriter(filename);
+ BufferedWriter bw = new BufferedWriter(fw);
+ while( (line = br.readLine()) != null )
+ {
+ bw.write(line);
+ bw.newLine();
+ bw.flush();
+ }
+ bw.flush();
+ bw.close();
+ }
+ catch (IOException ioe)
+ {
+ ioe.printStackTrace();
+ }
+ }
+ else
+ {
+ try
+ {
+ InputStreamReader isr = new InputStreamReader(is);
+ BufferedReader br = new BufferedReader(isr);
+ StringBuffer sb = new StringBuffer();
+ String line = null;
+ while ((line = br.readLine()) != null)
+ {
+ sb.append(line);
+ }
+ bufferContents = sb.toString();
+ }
+ catch (IOException ioe)
+ {
+ ioe.printStackTrace();
+ }
+ }
+ }
+}
Modified: incubator/beehive/trunk/controls/test/tools/tch/build.xml
==============================================================================
--- incubator/beehive/trunk/controls/test/tools/tch/build.xml (original)
+++ incubator/beehive/trunk/controls/test/tools/tch/build.xml Fri Sep 3 10:04:35 2004
@@ -50,6 +50,7 @@
>
<classpath>
<pathelement path="${os.CLASSPATH}"/>
+ <pathelement path="${xbean.jar}"/>
<pathelement location="${schema.jar.file}"/>
</classpath>
</javac>