svn commit: rev 22310 - in avalon/trunk/runtime: . merlin/unit merlin/unit/etc/main merlin/unit/etc/test merlin/unit/src/java/org/apache/avalon/merlin/unit merlin/unit/src/test/org/apache/avalon/merlin/unit/test

[email protected]
Newsgroups gmane.comp.jakarta.avalon.cvs
Message-ID <[email protected]>
Author: mcconnell
Date: Wed Jun 30 00:07:04 2004
New Revision: 22310

Added:
   avalon/trunk/runtime/merlin/unit/src/test/org/apache/avalon/merlin/unit/test/MerlinTestCase.java
Removed:
   avalon/trunk/runtime/merlin/unit/merlin.properties
   avalon/trunk/runtime/merlin/unit/src/java/org/apache/avalon/merlin/unit/MerlinTestSuite.java
   avalon/trunk/runtime/merlin/unit/src/test/org/apache/avalon/merlin/unit/test/DemoTestCase.java
Modified:
   avalon/trunk/runtime/index.xml
   avalon/trunk/runtime/merlin/unit/   (props changed)
   avalon/trunk/runtime/merlin/unit/build.properties
   avalon/trunk/runtime/merlin/unit/build.xml
   avalon/trunk/runtime/merlin/unit/etc/main/merlin.properties
   avalon/trunk/runtime/merlin/unit/etc/test/merlin.properties
   avalon/trunk/runtime/merlin/unit/src/java/org/apache/avalon/merlin/unit/AbstractMerlinTestCase.java
Log:
put merlin unit into an operational state

Modified: avalon/trunk/runtime/index.xml
==============================================================================
--- avalon/trunk/runtime/index.xml	(original)
+++ avalon/trunk/runtime/index.xml	Wed Jun 30 00:07:04 2004
@@ -784,6 +784,19 @@
     </dependencies>
   </project>
 
+  <project basedir="merlin/unit">
+    <info>
+      <group>avalon/merlin</group>
+      <name>avalon-merlin-unit</name>
+      <version>3.3.1</version>
+      <status>SNAPSHOT</status>
+    </info>
+    <dependencies>
+      <include key="avalon-repository-main"/>
+      <include key="avalon-merlin-impl" build="false"/>
+    </dependencies>
+  </project>
+
   <project basedir="main" key="avalon-runtime">
     <info>
       <group>avalon</group>
@@ -815,19 +828,5 @@
       <include key="jms"/>
     </dependencies>
   </project>
-
-  <!--
-  <project basedir="merlin/unit">
-    <info>
-      <group>avalon/merlin</group>
-      <name>avalon-merlin-unit</name>
-      <version>3.3.0</version>
-    </info>
-    <dependencies>
-      <include key="avalon-repository-main"/>
-      <include key="avalon-merlin-impl" build="false" test="false"/>
-    </dependencies>
-  </project>
-  -->
 
 </index>

Modified: avalon/trunk/runtime/merlin/unit/build.properties
==============================================================================
--- avalon/trunk/runtime/merlin/unit/build.properties	(original)
+++ avalon/trunk/runtime/merlin/unit/build.properties	Wed Jun 30 00:07:04 2004
@@ -1,4 +1,5 @@
 
 project.name = avalon-merlin-unit
+project.system = ../../../central/system
 project.src.main = java
-project.home = ../../../central/system
+project.home = ../..

Modified: avalon/trunk/runtime/merlin/unit/build.xml
==============================================================================
--- avalon/trunk/runtime/merlin/unit/build.xml	(original)
+++ avalon/trunk/runtime/merlin/unit/build.xml	Wed Jun 30 00:07:04 2004
@@ -4,7 +4,7 @@
     xmlns:x="antlib:org.apache.avalon.tools">
 
   <property file="build.properties"/>
-  <import file="${project.home}/build/standard.xml"/>
+  <import file="${project.system}/build/standard.xml"/>
 
   <target name="init" depends="standard.init">
     <x:filter key="avalon-logging-logkit-impl" feature="uri" 

Modified: avalon/trunk/runtime/merlin/unit/etc/main/merlin.properties
==============================================================================
--- avalon/trunk/runtime/merlin/unit/etc/main/merlin.properties	(original)
+++ avalon/trunk/runtime/merlin/unit/etc/main/merlin.properties	Wed Jun 30 00:07:04 2004
@@ -4,11 +4,6 @@
 #----------------------------------------------------------------------
 
 #
-# The default avalon repository root directory. 
-#
-avalon.home = ${user.home}/.avalon
-
-#
 # merlin system implementation
 merlin.implementation = @MERLIN_IMPLEMENTATION@
 

Modified: avalon/trunk/runtime/merlin/unit/etc/test/merlin.properties
==============================================================================
--- avalon/trunk/runtime/merlin/unit/etc/test/merlin.properties	(original)
+++ avalon/trunk/runtime/merlin/unit/etc/test/merlin.properties	Wed Jun 30 00:07:04 2004
@@ -6,7 +6,7 @@
 #
 # The default avalon repository root directory. 
 #
-avalon.home = ${user.home}/.avalon
+#avalon.home = ${user.home}/.avalon
 
 #
 # merlin system implementation
@@ -30,9 +30,9 @@
 
 avalon.repository.cache = @CACHE-DIRECTORY@
 
-merlin.info = true
-merlin.debug = true
-merlin.audit = true
+merlin.info = false
+merlin.debug = false
+merlin.audit = false
 merlin.deployment = hello.block
 merlin.override = override.xml
 merlin.deployment.timeout = 0

Modified: avalon/trunk/runtime/merlin/unit/src/java/org/apache/avalon/merlin/unit/AbstractMerlinTestCase.java
==============================================================================
--- avalon/trunk/runtime/merlin/unit/src/java/org/apache/avalon/merlin/unit/AbstractMerlinTestCase.java	(original)
+++ avalon/trunk/runtime/merlin/unit/src/java/org/apache/avalon/merlin/unit/AbstractMerlinTestCase.java	Wed Jun 30 00:07:04 2004
@@ -54,6 +54,27 @@
 
     private static final String DEPLOYMENT_MODEL_CLASSNAME = 
       "org.apache.avalon.composition.model.DeploymentModel";
+
+    private static File getWorkDir()
+    {
+        String path = System.getProperty( "project.dir" );
+        if( null != path )
+        {
+            return new File( path );
+        }
+        else
+        {
+            path = System.getProperty( "basedir" );
+            if( null != path )
+            {
+                return new File( path );
+            }
+            else
+            {
+                return new File( System.getProperty( "user.dir" ) );
+            }
+        }
+    }
 
     //----------------------------------------------------------
     // immutable state
@@ -72,7 +93,15 @@
 
     //----------------------------------------------------------
     // constructor
-    //----------------------------------------------------------
+    //----------------------------------------------------------
+
+    /**
+     * Constructor for MerlinEmbeddedTest.
+     */
+    public AbstractMerlinTestCase()
+    {
+        super();
+    }
 
     /**
      * Constructor for MerlinEmbeddedTest.
@@ -88,33 +117,29 @@
         ClassLoader classloader = AbstractMerlinTestCase.class.getClassLoader();
 
         try
-        {
-            File repository = new File( getMavenHome(), "repository" );
-            File basedir = getBaseDirectory();
-
-            Artifact artifact = 
-              DefaultBuilder.createImplementationArtifact( 
-                classloader, 
-                getMerlinHome(),
-                basedir, 
-                MERLIN_PROPERTIES, 
-                IMPLEMENTATION_KEY );
-
-            InitialContextFactory icFactory = 
-              new DefaultInitialContextFactory( "merlin", basedir );
-            icFactory.setCacheDirectory( repository );
-            InitialContext context = icFactory.createInitialContext();
-
-            Builder builder = new DefaultBuilder( context, artifact );
-            m_classloader = builder.getClassLoader();
-            Factory factory = builder.getFactory();
-            Map criteria = factory.createDefaultCriteria();
+        {
+            File basedir = getBaseDirectory();
+            File home = getHomeDirectory();
+
+            Artifact artifact = DefaultBuilder.createImplementationArtifact( 
+              classloader, home, basedir, 
+              MERLIN_PROPERTIES, IMPLEMENTATION_KEY );
+
+            InitialContextFactory icFactory = 
+              new DefaultInitialContextFactory( "merlin", basedir );
+            icFactory.setCacheDirectory( getCacheDirectory() );
+
+            InitialContext context = icFactory.createInitialContext();
+
+            Builder builder = new DefaultBuilder( context, artifact );
+            m_classloader = builder.getClassLoader();
+            Factory factory = builder.getFactory();
+            Map criteria = factory.createDefaultCriteria();
 
             //
             // set the defaults
             //
 
-            criteria.put( "merlin.repository", repository );
             criteria.put( "merlin.context", "target" );
             criteria.put( "merlin.server", "true" );
             criteria.put( "merlin.code.security.enabled", "false" );
@@ -238,34 +263,50 @@
     // utilities
     //----------------------------------------------------------------------
 
-    private String buildDefaultOverridePath()
-    {
-        File base = getBaseDirectory();
-        File config = new File( base, "conf/config.xml" );
-        if( config.exists() ) return "conf/config.xml";
-        return null;
-    }
+    private String buildDefaultOverridePath()
+    {
+        File base = getBaseDirectory();
+        File config = new File( base, "config.xml" );
+        if( config.exists() ) return "config.xml";
+        return null;
+    }
 
     private String buildDefaultTestPath()
     {
         File base = getBaseDirectory();
         File classes = new File( base, "target/classes/BLOCK-INF/block.xml" );
-        File tests = new File( base, "target/test-classes/BLOCK-INF/block.xml" );
-        if( classes.exists() && tests.exists() )
-        {
-            return "target/classes,target/test-classes";
-        }
-        else if( classes.exists() )
+        if( classes.exists() )
         {
             return "target/classes";
         }
-        else if( tests.exists() )
-        {
-            return "target/test-classes";
-        }
         return null;
     }
-
+
+    private File getBaseDirectory()
+    {
+        return getWorkDir();
+    }
+
+    private File getHomeDirectory()
+    {
+        return getCacheDirectory().getParentFile();
+    }
+
+    private File getCacheDirectory()
+    {
+        String cache = System.getProperty( "project.repository.cache.path" );
+        if( null != cache )
+        {
+            return new File( cache );
+        }
+        else
+        {
+            throw new IllegalStateException( "don't know what to do yet" );
+        }
+    }
+
+
+    /*
     private static File getMavenHome()
     {
         try
@@ -291,31 +332,25 @@
               ExceptionHelper.packException( error, e, true );
             throw new RuntimeException( message );
         }
-    }
-
-    private File getBaseDirectory()
-    {
-        final String base = System.getProperty( "basedir" );
-        if( null != base )
-        {
-            return new File( base );
-        }
-        return new File( System.getProperty( "user.dir" ) );
-    }
+    }
+    */
 
    /**
     * Return the merlin home directory.
     * @return the merlin install directory
-    */
+    */
+    /*
     private static File getMerlinHome()
     {
         return new File( getMerlinHomePath() );
-    }
+    }
+    */
 
    /**
     * Return the merlin home directory path.
     * @return the merlin install directory path
-    */
+    */
+    /*
     private static String getMerlinHomePath()
     {
         try
@@ -336,6 +371,6 @@
               ExceptionHelper.packException( error, e, true );
             throw new RuntimeException( message );
         }
-    }
-
+    }
+    */
 }

Added: avalon/trunk/runtime/merlin/unit/src/test/org/apache/avalon/merlin/unit/test/MerlinTestCase.java
==============================================================================
--- (empty file)
+++ avalon/trunk/runtime/merlin/unit/src/test/org/apache/avalon/merlin/unit/test/MerlinTestCase.java	Wed Jun 30 00:07:04 2004
@@ -0,0 +1,56 @@
+/* 
+ * Copyright 2004 Apache Software Foundation
+ * Licensed  under the  Apache License,  Version 2.0  (the "License");
+ * you may not use  this file  except in  compliance with the License.
+ * You may obtain a copy of the License at 
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed  under the  License is distributed on an "AS IS" BASIS,
+ * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
+ * implied.
+ * 
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.avalon.merlin.unit.test;
+
+import org.apache.avalon.merlin.unit.AbstractMerlinTestCase;
+
+/**
+ * Test case that usages the repository builder to deploy the 
+ * Merlin default application factory.
+ * 
+ * @author <a href="mailto:[email protected]">Avalon Development Team</a>
+ * @version $Revision: 1.5 $
+ */
+public class MerlinTestCase extends AbstractMerlinTestCase
+{
+    //----------------------------------------------------------
+    // constructor
+    //----------------------------------------------------------
+
+    /**
+     * Constructor for MerlinTestCase.
+     * @param name the name of the testcase
+     */
+    public MerlinTestCase( String name )
+    {
+        super( name );
+    }
+
+    //----------------------------------------------------------
+    // testcase
+    //----------------------------------------------------------
+
+    public void testHelloAquisition() throws Exception
+    {
+        Object hello = super.resolve( "/tutorial/hello" );
+        assertNotNull( "hello", hello );
+
+        Object hello2 = super.resolve( "/tutorial/hello" );
+        assertNotNull( "hello-2", hello2 );
+    }
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.