Author: thomas.diesler(a)jboss.com
Date: 2009-06-03 13:40:20 -0400 (Wed, 03 Jun 2009)
New Revision: 89753
Modified:
projects/jboss-osgi/trunk/docbook/en/modules/ch060-husky-testing.xml
projects/jboss-osgi/trunk/pom.xml
Log:
husky design - done
Modified: projects/jboss-osgi/trunk/docbook/en/modules/ch060-husky-testing.xml
===================================================================
--- projects/jboss-osgi/trunk/docbook/en/modules/ch060-husky-testing.xml 2009-06-03
17:28:46 UTC (rev 89752)
+++ projects/jboss-osgi/trunk/docbook/en/modules/ch060-husky-testing.xml 2009-06-03
17:40:20 UTC (rev 89753)
@@ -8,7 +8,12 @@
<sect1 xml:id="SecHuskyOverview">
<title>Overview</title>
- <para>For JBoss OSGi I was looking for ways to test bundles that are deployed
to a remote instance of the
+ <para>JBoss OSGi Husky is a OSGi Test Framework that allows you to run plain
JUnit4 test cases from within an OSGi Framework.
+ That the test is actually executed in the the OSGi Framework is transparent to your
test case. There is no requirement to extend
+ a specific base class nor do you need a special test runner. Your OSGi tests execute
along side with all your other (non OSGi specific)
+ test cases in Maven, Ant, or Eclipse.</para>
+
+ <para>Some time ago I was looking for ways to test bundles that are deployed to
a remote instance of the
<link linkend="ChapRuntime">JBoss OSGi Runtime</link>. I wanted
the solution to also work with an OSGi Framework
that is bootstrapped from within a JUnit test case.</para>
@@ -47,8 +52,8 @@
<sect1 xml:id="SecHuskyArchitecture">
<title>Architecture</title>
- <para>JBoss OSGi Husky is a OSGi test framework that can be installed in any
OSGi Runtime. It comes with pluggable a
- test invocation layer suitable for in process and remote test method
invocations.</para>
+ <para>JBoss OSGi Husky has client side interceptor that fields the test request
to an embedded/remote OSGi Framework where the
+ test case is then actually executed.</para>
<mediaobject>
<imageobject>
@@ -58,6 +63,24 @@
<para>Here is how it works </para>
+ <orderedlist>
+ <listitem>A Bridge intercepts a test and delegates the execution to the same
(or another) test in and isolated test environment.
+ An isolated test environment is one that does not have the same class loading space
as the test itself.</listitem>
+
+ <listitem>A Bridge is associated with an Invoker. Invokers may be arbitarily
complex. Local 'in proccess'
+ invokers are possible just as well as remote invokers. </listitem>
+
+ <listitem>The Invoker sends the Request to a Connector in the isolated test
environment.</listitem>
+
+ <listitem>A Connector has associated PackageListeners that are responsible
for processing test cases for their
+ respective test packages.</listitem>
+
+ <listitem>A PackageListeners delegates the Request to a test Runner, typicaly
this would be a JUnit runner.</listitem>
+
+ <listitem>The Runner returns a Result, which the Connector returns to the
Invoker.</listitem>
+
+ <listitem>The Bridge finally translates potential Failures that may be
contained in the Result, to test failures on the client side.</listitem>
+ </orderedlist>
</sect1>
<sect1 xml:id="SecHuskyConfiguration">
Modified: projects/jboss-osgi/trunk/pom.xml
===================================================================
--- projects/jboss-osgi/trunk/pom.xml 2009-06-03 17:28:46 UTC (rev 89752)
+++ projects/jboss-osgi/trunk/pom.xml 2009-06-03 17:40:20 UTC (rev 89753)
@@ -379,6 +379,17 @@
<enabled>false</enabled>
</snapshots>
</repository>
+ <repository>
+ <id>snapshots.jboss.org</id>
+ <name>JBoss Snapshots Repository</name>
+ <
url>http://snapshots.jboss.org/maven2/</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
</repositories>
<!-- Profiles -->