<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>commits@hivemind.apache.org Archives</title>
<link rel="self" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/?format=atom"/>
<link href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/"/>
<id>http://mail-archives.apache.org/mod_mbox/hivemind-commits/</id>
<updated>2009-12-05T17:26:17Z</updated>
<entry>
<title>[Hivemind Wiki] Update of &quot;mobile phones&quot; by KnutWannheden</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200812.mbox/%3c20081223044746.707.75302@eos.apache.org%3e"/>
<id>urn:uuid:%3c20081223044746-707-75302@eos-apache-org%3e</id>
<updated>2008-12-23T04:47:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hivemind Wiki" for change notification.

The following page has been changed by KnutWannheden:
http://wiki.apache.org/hivemind/mobile_phones

The comment on the change is:
Spam

------------------------------------------------------------------------------
- MTK has brought the [http://www.home-digital.cn lab equipment] revolution, the United Nations
Development Co., Ltd. is the title, full name in English is called MTK.. 
+ deleted
  
- United Nations Development Co., Ltd., founded in the year 1997, is one of the world's top
professional IC design company, the world's largest consumer of IC chip group of pilot status.
Covering the area of digital consumer products, digital TV, optical storage, [http://www.home-digital.cn
lab equipment]and so most of the series, is Asia's only six years in a row re-design the world's
top 10 IC companies only Chinese enterprises, the United States, "Forbes" magazine " Top 50
Asian companies. " 
- United Nations Development as a global technology leader in IC design, focusing on wireless
communications and digital media technology. The chip company to provide integrated system
solutions, including wireless communications, high-resolution digital TV, optical storage,
high-resolution DVD-related products, ranking first in the market leadership position. 
- United Nations Development Science and Technology was founded in 1997, has been publicly
traded on the Taiwan Stock Exchange, code-named equity 2454. The company is headquartered
in Taiwan and has sales and R &amp; D team in China, the United States, Britain, Ireland,
Denmark, India, Japan, South Korea and Singapore.mtk make [http://www.home-digital.cn lab
equipment]more cheap and multifunctiom. it is more and more popular in the world.
- 


</pre>
</div>
</content>
</entry>
<entry>
<title>[Hivemind Wiki] Update of &quot;mobile phones&quot; by buyyourall</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200812.mbox/%3c20081222162937.6789.54810@eos.apache.org%3e"/>
<id>urn:uuid:%3c20081222162937-6789-54810@eos-apache-org%3e</id>
<updated>2008-12-22T16:29:37Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hivemind Wiki" for change notification.

The following page has been changed by buyyourall:
http://wiki.apache.org/hivemind/mobile_phones

New page:
MTK has brought the [http://www.home-digital.cn lab equipment] revolution, the United Nations
Development Co., Ltd. is the title, full name in English is called MTK.. 

United Nations Development Co., Ltd., founded in the year 1997, is one of the world's top
professional IC design company, the world's largest consumer of IC chip group of pilot status.
Covering the area of digital consumer products, digital TV, optical storage, [http://www.home-digital.cn
lab equipment]and so most of the series, is Asia's only six years in a row re-design the world's
top 10 IC companies only Chinese enterprises, the United States, "Forbes" magazine " Top 50
Asian companies. " 
United Nations Development as a global technology leader in IC design, focusing on wireless
communications and digital media technology. The chip company to provide integrated system
solutions, including wireless communications, high-resolution digital TV, optical storage,
high-resolution DVD-related products, ranking first in the market leadership position. 
United Nations Development Science and Technology was founded in 1997, has been publicly traded
on the Taiwan Stock Exchange, code-named equity 2454. The company is headquartered in Taiwan
and has sales and R &amp; D team in China, the United States, Britain, Ireland, Denmark, India,
Japan, South Korea and Singapore.mtk make [http://www.home-digital.cn lab equipment]more cheap
and multifunctiom. it is more and more popular in the world.


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r657103 - in /hivemind/hivemind1/trunk: ./ examples/ framework/ framework/src/java/org/apache/hivemind/test/ framework/src/test/org/apache/hivemind/test/ jmx/ library/</title>
<author><name>jcarman@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200805.mbox/%3c20080516152304.C4CAB23889C3@eris.apache.org%3e"/>
<id>urn:uuid:%3c20080516152304-C4CAB23889C3@eris-apache-org%3e</id>
<updated>2008-05-16T15:23:03Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: jcarman
Date: Fri May 16 08:23:02 2008
New Revision: 657103

URL: http://svn.apache.org/viewvc?rev=657103&amp;view=rev
Log:
Fixing maven2 pom.xml files and moving HiveMindTestCase to src/test

Added:
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AbstractArgumentMatcher.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AggregateArgumentsMatcher.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArgumentMatcher.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArrayMatcher.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/EqualsMatcher.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/HiveMindTestCase.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/RegexpMatcher.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/StoreAppender.java
    hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java
  (contents, props changed)
      - copied, changed from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/TypeMatcher.java
Removed:
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AbstractArgumentMatcher.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AggregateArgumentsMatcher.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArgumentMatcher.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArrayMatcher.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/EqualsMatcher.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/HiveMindTestCase.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/RegexpMatcher.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/StoreAppender.java
    hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/TypeMatcher.java
Modified:
    hivemind/hivemind1/trunk/examples/pom.xml
    hivemind/hivemind1/trunk/framework/pom.xml
    hivemind/hivemind1/trunk/jmx/pom.xml
    hivemind/hivemind1/trunk/library/pom.xml
    hivemind/hivemind1/trunk/pom.xml

Modified: hivemind/hivemind1/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/examples/pom.xml?rev=657103&amp;r1=657102&amp;r2=657103&amp;view=diff
==============================================================================
--- hivemind/hivemind1/trunk/examples/pom.xml (original)
+++ hivemind/hivemind1/trunk/examples/pom.xml Fri May 16 08:23:02 2008
@@ -2,38 +2,46 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-    &lt;artifactId&gt;hivemind-examples&lt;/artifactId&gt;
-    &lt;packaging&gt;jar&lt;/packaging&gt;
-    &lt;version&gt;1.2.1&lt;/version&gt;
     &lt;parent&gt;
-        &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-        &lt;artifactId&gt;hivemind-project&lt;/artifactId&gt;
-        &lt;version&gt;1.2.1&lt;/version&gt;
-        &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
+      &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
+      &lt;artifactId&gt;hivemind-parent&lt;/artifactId&gt;
+      &lt;version&gt;1.2-SNAPSHOT&lt;/version&gt;
     &lt;/parent&gt;
+    	
+    &lt;artifactId&gt;hivemind-examples&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    
     &lt;name&gt;HiveMind Examples&lt;/name&gt;
     &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
     &lt;dependencies&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
             &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
+            &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+            &lt;classifier&gt;tests&lt;/classifier&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;junit&lt;/groupId&gt;
             &lt;artifactId&gt;junit&lt;/artifactId&gt;
+            &lt;version&gt;3.8.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;log4j&lt;/groupId&gt;
             &lt;artifactId&gt;log4j&lt;/artifactId&gt;
+            &lt;version&gt;1.2.8&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;easymock&lt;/groupId&gt;
             &lt;artifactId&gt;easymock&lt;/artifactId&gt;
+            &lt;version&gt;1.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
-    &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/jakarta/hivemind/trunk/examples&lt;/connection&gt;
-        &lt;url&gt;http://svn.apache.org/viewvc/jakarta/hivemind/trunk/examples&lt;/url&gt;
-    &lt;/scm&gt;
 &lt;/project&gt;

Modified: hivemind/hivemind1/trunk/framework/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/pom.xml?rev=657103&amp;r1=657102&amp;r2=657103&amp;view=diff
==============================================================================
--- hivemind/hivemind1/trunk/framework/pom.xml (original)
+++ hivemind/hivemind1/trunk/framework/pom.xml Fri May 16 08:23:02 2008
@@ -1,88 +1,91 @@
 &lt;project xmlns="http://maven.apache.org/POM/4.0.0"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-    &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
-    &lt;packaging&gt;jar&lt;/packaging&gt;
-    &lt;version&gt;1.2.1&lt;/version&gt;
     &lt;parent&gt;
         &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-        &lt;artifactId&gt;hivemind-project&lt;/artifactId&gt;
-        &lt;version&gt;1.2.1&lt;/version&gt;
-        &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
+        &lt;artifactId&gt;hivemind-parent&lt;/artifactId&gt;
+        &lt;version&gt;1.2-SNAPSHOT&lt;/version&gt;
     &lt;/parent&gt;
-    &lt;name&gt;HiveMind core framework&lt;/name&gt;
-    &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
+
+    &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+
+    &lt;name&gt;HiveMind Core Framework&lt;/name&gt;
     &lt;dependencies&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
-            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;jboss&lt;/groupId&gt;
-            &lt;artifactId&gt;javassist&lt;/artifactId&gt;
-        &lt;/dependency&gt;
-        &lt;dependency&gt;
-            &lt;groupId&gt;oro&lt;/groupId&gt;
-            &lt;artifactId&gt;oro&lt;/artifactId&gt;
-        &lt;/dependency&gt;
-        &lt;!-- PROVIDED --&gt;
-        &lt;dependency&gt;
             &lt;groupId&gt;ant&lt;/groupId&gt;
             &lt;artifactId&gt;ant&lt;/artifactId&gt;
             &lt;version&gt;1.6.3&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;optional&gt;true&lt;/optional&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;log4j&lt;/groupId&gt;
-            &lt;artifactId&gt;log4j&lt;/artifactId&gt;
+            &lt;groupId&gt;xerces&lt;/groupId&gt;
+            &lt;artifactId&gt;xercesImpl&lt;/artifactId&gt;
+            &lt;version&gt;2.6.2&lt;/version&gt;
+            &lt;optional&gt;true&lt;/optional&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
-            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;groupId&gt;junit&lt;/groupId&gt;
+            &lt;artifactId&gt;junit&lt;/artifactId&gt;
+            &lt;version&gt;3.8.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;easymock&lt;/groupId&gt;
             &lt;artifactId&gt;easymock&lt;/artifactId&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;version&gt;1.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;easymock&lt;/groupId&gt;
             &lt;artifactId&gt;easymockclassextension&lt;/artifactId&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;version&gt;1.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;xerces&lt;/groupId&gt;
-            &lt;artifactId&gt;xercesImpl&lt;/artifactId&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;groupId&gt;log4j&lt;/groupId&gt;
+            &lt;artifactId&gt;log4j&lt;/artifactId&gt;
+            &lt;version&gt;1.2.8&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
+
         &lt;dependency&gt;
-            &lt;groupId&gt;junit&lt;/groupId&gt;
-            &lt;artifactId&gt;junit&lt;/artifactId&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;groupId&gt;commons-logging&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
+            &lt;version&gt;1.0.3&lt;/version&gt;
         &lt;/dependency&gt;
-        &lt;!-- TEST --&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;cglib&lt;/groupId&gt;
-            &lt;artifactId&gt;cglib-full&lt;/artifactId&gt;
+            &lt;groupId&gt;jboss&lt;/groupId&gt;
+            &lt;artifactId&gt;javassist&lt;/artifactId&gt;
+            &lt;version&gt;3.0&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;xml-apis&lt;/groupId&gt;
-            &lt;artifactId&gt;xml-apis&lt;/artifactId&gt;
+            &lt;groupId&gt;oro&lt;/groupId&gt;
+            &lt;artifactId&gt;oro&lt;/artifactId&gt;
+            &lt;version&gt;2.0.8&lt;/version&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
+            &lt;version&gt;2.3&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
         &lt;/dependency&gt;
+
     &lt;/dependencies&gt;
-    &lt;reporting&gt;
+    &lt;build&gt;
         &lt;plugins&gt;
             &lt;plugin&gt;
                 &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
-                &lt;artifactId&gt;maven-project-info-reports-plugin&lt;/artifactId&gt;
+                &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
+                &lt;executions&gt;
+                    &lt;execution&gt;
+                        &lt;goals&gt;
+                            &lt;goal&gt;test-jar&lt;/goal&gt;
+                        &lt;/goals&gt;
+                    &lt;/execution&gt;
+                &lt;/executions&gt;
             &lt;/plugin&gt;
         &lt;/plugins&gt;
-    &lt;/reporting&gt;
-    &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/jakarta/hivemind/trunk/framework&lt;/connection&gt;
-        &lt;url&gt;http://svn.apache.org/viewvc/jakarta/hivemind/trunk/framework&lt;/url&gt;
-    &lt;/scm&gt;
-&lt;/project&gt;
+    &lt;/build&gt;
+&lt;/project&gt;

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AbstractArgumentMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AbstractArgumentMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.2

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AbstractArgumentMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AggregateArgumentsMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/AggregateArgumentsMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.4

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/AggregateArgumentsMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArgumentMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArgumentMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.4

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArgumentMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArrayMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/ArrayMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.4

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/ArrayMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/EqualsMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/EqualsMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.3

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/EqualsMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/HiveMindTestCase.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/HiveMindTestCase.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.26

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/HiveMindTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/RegexpMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/RegexpMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.5

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/RegexpMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/StoreAppender.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/StoreAppender.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
--- hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/StoreAppender.java
(original)
+++ hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java
Fri May 16 08:23:02 2008
@@ -21,7 +21,7 @@
 import org.apache.log4j.spi.LoggingEvent;
 
 /**
- * Used to test logging provided by the {@link org.apache.hivemind.impl.LoggingInterceptorFactory}.
+ * Used to test logging provided by the {@link org.apache.hivemind.service.impl.LoggingInterceptorFactory}.
  *
  * @author Howard Lewis Ship
  */

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.3

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/StoreAppender.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Copied: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java
(from r657068, hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/TypeMatcher.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java?p2=hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java&amp;p1=hivemind/hivemind1/trunk/framework/src/java/org/apache/hivemind/test/TypeMatcher.java&amp;r1=657068&amp;r2=657103&amp;rev=657103&amp;view=diff
==============================================================================
    (empty)

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.4

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind1/trunk/framework/src/test/org/apache/hivemind/test/TypeMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: hivemind/hivemind1/trunk/jmx/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/jmx/pom.xml?rev=657103&amp;r1=657102&amp;r2=657103&amp;view=diff
==============================================================================
--- hivemind/hivemind1/trunk/jmx/pom.xml (original)
+++ hivemind/hivemind1/trunk/jmx/pom.xml Fri May 16 08:23:02 2008
@@ -2,58 +2,58 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-    &lt;artifactId&gt;hivemind-jmx&lt;/artifactId&gt;
-    &lt;packaging&gt;jar&lt;/packaging&gt;
-    &lt;version&gt;1.2.1&lt;/version&gt;
     &lt;parent&gt;
-        &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-        &lt;artifactId&gt;hivemind-project&lt;/artifactId&gt;
-        &lt;version&gt;1.2.1&lt;/version&gt;
-        &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
+      &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
+      &lt;artifactId&gt;hivemind-parent&lt;/artifactId&gt;
+      &lt;version&gt;1.2-SNAPSHOT&lt;/version&gt;
     &lt;/parent&gt;
+    &lt;artifactId&gt;hivemind-jmx&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
     &lt;name&gt;HiveMind JMX Support&lt;/name&gt;
     &lt;inceptionYear&gt;2004&lt;/inceptionYear&gt;
     &lt;dependencies&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;log4j&lt;/groupId&gt;
-            &lt;artifactId&gt;log4j&lt;/artifactId&gt;
+            &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
+            &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
             &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+            &lt;classifier&gt;tests&lt;/classifier&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;junit&lt;/groupId&gt;
             &lt;artifactId&gt;junit&lt;/artifactId&gt;
+            &lt;version&gt;3.8.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;easymock&lt;/groupId&gt;
             &lt;artifactId&gt;easymock&lt;/artifactId&gt;
+            &lt;version&gt;1.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;log4j&lt;/groupId&gt;
+            &lt;artifactId&gt;log4j&lt;/artifactId&gt;
+            &lt;version&gt;1.2.8&lt;/version&gt;
         &lt;/dependency&gt;
-        &lt;!-- Here, again, we're using a scope of provided to mean
-            "optional at runtime" --&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;mx4j&lt;/groupId&gt;
             &lt;artifactId&gt;mx4j&lt;/artifactId&gt;
             &lt;version&gt;2.1.1&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;mx4j&lt;/groupId&gt;
             &lt;artifactId&gt;mx4j-tools&lt;/artifactId&gt;
             &lt;version&gt;2.1.1&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;mx4j&lt;/groupId&gt;
             &lt;artifactId&gt;mx4j-remote&lt;/artifactId&gt;
             &lt;version&gt;2.1.1&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
-    &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/jakarta/hivemind/trunk/jmx&lt;/connection&gt;
-        &lt;url&gt;http://svn.apache.org/viewvc/jakarta/hivemind/trunk/jmx&lt;/url&gt;
-    &lt;/scm&gt;
 &lt;/project&gt;

Modified: hivemind/hivemind1/trunk/library/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/library/pom.xml?rev=657103&amp;r1=657102&amp;r2=657103&amp;view=diff
==============================================================================
--- hivemind/hivemind1/trunk/library/pom.xml (original)
+++ hivemind/hivemind1/trunk/library/pom.xml Fri May 16 08:23:02 2008
@@ -1,65 +1,65 @@
 &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
-    &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-    &lt;artifactId&gt;hivemind-lib&lt;/artifactId&gt;
-    &lt;packaging&gt;jar&lt;/packaging&gt;
-    &lt;version&gt;1.2.1&lt;/version&gt;
     &lt;parent&gt;
-        &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-        &lt;artifactId&gt;hivemind-project&lt;/artifactId&gt;
-        &lt;version&gt;1.2.1&lt;/version&gt;
-        &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
+      &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
+      &lt;artifactId&gt;hivemind-parent&lt;/artifactId&gt;
+      &lt;version&gt;1.2-SNAPSHOT&lt;/version&gt;
     &lt;/parent&gt;
-    &lt;name&gt;HiveMind standard library&lt;/name&gt;
+    
+    &lt;artifactId&gt;hivemind-lib&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    
+    &lt;name&gt;HiveMind Standard Library&lt;/name&gt;
     &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
+    
     &lt;dependencies&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
             &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
         &lt;/dependency&gt;
-        &lt;!-- Here, again, we're using a scope of provided to mean
-             "optional at runtime" --&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;junit&lt;/groupId&gt;
-            &lt;artifactId&gt;junit&lt;/artifactId&gt;
+            &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
+            &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
+            &lt;version&gt;${project.version}&lt;/version&gt;
+            &lt;classifier&gt;tests&lt;/classifier&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;easymock&lt;/groupId&gt;
-            &lt;artifactId&gt;easymock&lt;/artifactId&gt;           
-        &lt;/dependency&gt;
+                &lt;groupId&gt;log4j&lt;/groupId&gt;
+                &lt;artifactId&gt;log4j&lt;/artifactId&gt;
+                &lt;version&gt;1.2.8&lt;/version&gt;
+                &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;/dependency&gt;
         &lt;dependency&gt;
-            &lt;groupId&gt;log4j&lt;/groupId&gt;
-            &lt;artifactId&gt;log4j&lt;/artifactId&gt;
-            &lt;version&gt;1.2.8&lt;/version&gt;
+            &lt;groupId&gt;easymock&lt;/groupId&gt;
+            &lt;artifactId&gt;easymock&lt;/artifactId&gt;
+            &lt;version&gt;1.1&lt;/version&gt;
+            &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;groovy&lt;/groupId&gt;
             &lt;artifactId&gt;groovy-all&lt;/artifactId&gt;
             &lt;version&gt;1.0-jsr-03&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;optional&gt;true&lt;/optional&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;jboss&lt;/groupId&gt;
             &lt;artifactId&gt;jboss-j2ee&lt;/artifactId&gt;
             &lt;version&gt;3.2.1&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;optional&gt;true&lt;/optional&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;org.springframework&lt;/groupId&gt;
             &lt;artifactId&gt;spring-full&lt;/artifactId&gt;
             &lt;version&gt;1.0.1&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;optional&gt;true&lt;/optional&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;aopalliance&lt;/groupId&gt;
             &lt;artifactId&gt;aopalliance&lt;/artifactId&gt;
             &lt;version&gt;1.0&lt;/version&gt;
-            &lt;scope&gt;provided&lt;/scope&gt;
+            &lt;optional&gt;true&lt;/optional&gt;
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
-    &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/jakarta/hivemind/trunk/library&lt;/connection&gt;
-        &lt;url&gt;http://svn.apache.org/viewvc/jakarta/hivemind/trunk/library&lt;/url&gt;
-    &lt;/scm&gt;
 &lt;/project&gt;

Modified: hivemind/hivemind1/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/pom.xml?rev=657103&amp;r1=657102&amp;r2=657103&amp;view=diff
==============================================================================
--- hivemind/hivemind1/trunk/pom.xml (original)
+++ hivemind/hivemind1/trunk/pom.xml Fri May 16 08:23:02 2008
@@ -3,27 +3,30 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
     &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-    &lt;artifactId&gt;hivemind-project&lt;/artifactId&gt;
+    &lt;artifactId&gt;hivemind-parent&lt;/artifactId&gt;
     &lt;packaging&gt;pom&lt;/packaging&gt;
-    &lt;version&gt;1.2.1&lt;/version&gt;
-    &lt;name&gt;HiveMind Project&lt;/name&gt;
+    &lt;version&gt;1.2-SNAPSHOT&lt;/version&gt;
+    &lt;name&gt;Apache HiveMind&lt;/name&gt;
     &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
+    &lt;organization&gt;
+        &lt;name&gt;Apache Software Foundation&lt;/name&gt;
+        &lt;url&gt;http://www.apache.org/&lt;/url&gt;
+    &lt;/organization&gt;
     &lt;modules&gt;
         &lt;module&gt;framework&lt;/module&gt;
         &lt;module&gt;library&lt;/module&gt;
         &lt;module&gt;jmx&lt;/module&gt;
         &lt;module&gt;examples&lt;/module&gt;
     &lt;/modules&gt;
-    &lt;url&gt;http://jakarta.apache.org/hivemind/&lt;/url&gt;
+    &lt;url&gt;http://hivemind.apache.org/&lt;/url&gt;
     &lt;developers&gt;
         &lt;developer&gt;
-            &lt;id&gt;HLS&lt;/id&gt;
-            &lt;email&gt;howard@howardlewisship.com&lt;/email&gt;
-            &lt;url&gt;http://howardlewisship.com&lt;/url&gt;
+            &lt;id&gt;JC&lt;/id&gt;
+            &lt;email&gt;jcarman@apache.org&lt;/email&gt;
             &lt;roles&gt;
                 &lt;role&gt;dev&lt;/role&gt;
             &lt;/roles&gt;
-            &lt;timezone&gt;-8&lt;/timezone&gt;
+            &lt;timezone&gt;-5&lt;/timezone&gt;
         &lt;/developer&gt;
     &lt;/developers&gt;
     &lt;licenses&gt;
@@ -33,77 +36,10 @@
             &lt;distribution&gt;repo&lt;/distribution&gt;
         &lt;/license&gt;
     &lt;/licenses&gt;
-    &lt;dependencyManagement&gt;
-        &lt;dependencies&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;log4j&lt;/groupId&gt;
-                &lt;artifactId&gt;log4j&lt;/artifactId&gt;
-                &lt;version&gt;1.2.8&lt;/version&gt;
-                &lt;scope&gt;provided&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;junit&lt;/groupId&gt;
-                &lt;artifactId&gt;junit&lt;/artifactId&gt;
-                &lt;version&gt;3.8.1&lt;/version&gt;
-                &lt;scope&gt;test&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;easymock&lt;/groupId&gt;
-                &lt;artifactId&gt;easymock&lt;/artifactId&gt;
-                &lt;version&gt;1.1&lt;/version&gt;
-                &lt;scope&gt;test&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;easymock&lt;/groupId&gt;
-                &lt;artifactId&gt;easymockclassextension&lt;/artifactId&gt;
-                &lt;version&gt;1.1&lt;/version&gt;
-                &lt;scope&gt;test&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;xerces&lt;/groupId&gt;
-                &lt;artifactId&gt;xercesImpl&lt;/artifactId&gt;
-                &lt;version&gt;2.6.2&lt;/version&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;cglib&lt;/groupId&gt;
-                &lt;artifactId&gt;cglib-full&lt;/artifactId&gt;
-                &lt;version&gt;2.0.1&lt;/version&gt;
-                &lt;scope&gt;test&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;xml-apis&lt;/groupId&gt;
-                &lt;artifactId&gt;xml-apis&lt;/artifactId&gt;
-                &lt;version&gt;1.3.02&lt;/version&gt;
-                &lt;scope&gt;test&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;commons-logging&lt;/groupId&gt;
-                &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;
-                &lt;version&gt;1.0.3&lt;/version&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;jboss&lt;/groupId&gt;
-                &lt;artifactId&gt;javassist&lt;/artifactId&gt;
-                &lt;version&gt;3.0&lt;/version&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;oro&lt;/groupId&gt;
-                &lt;artifactId&gt;oro&lt;/artifactId&gt;
-                &lt;version&gt;2.0.8&lt;/version&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
-                &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
-                &lt;version&gt;2.3&lt;/version&gt;
-                &lt;scope&gt;test&lt;/scope&gt;
-            &lt;/dependency&gt;
-            &lt;dependency&gt;
-                &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
-                &lt;artifactId&gt;hivemind&lt;/artifactId&gt;
-                &lt;version&gt;1.2.1&lt;/version&gt;
-            &lt;/dependency&gt;
-        &lt;/dependencies&gt;
-    &lt;/dependencyManagement&gt;
+    &lt;issueManagement&gt;
+        &lt;system&gt;JIRA&lt;/system&gt;
+        &lt;url&gt;http://issues.apache.org/jira/browse/HIVEMIND&lt;/url&gt;
+    &lt;/issueManagement&gt;
     &lt;build&gt;
         &lt;sourceDirectory&gt;src/java&lt;/sourceDirectory&gt;
         &lt;resources&gt;
@@ -209,13 +145,6 @@
                 &lt;/plugin&gt;
             &lt;/plugins&gt;
         &lt;/pluginManagement&gt;
-        &lt;extensions&gt;
-            &lt;!-- Needed to support FTP deployment. --&gt;
-            &lt;extension&gt;
-                &lt;groupId&gt;org.apache.maven.wagon&lt;/groupId&gt;
-                &lt;artifactId&gt;wagon-ftp&lt;/artifactId&gt;
-            &lt;/extension&gt;
-        &lt;/extensions&gt;
     &lt;/build&gt;
     &lt;!-- Standard reports used in the HiveMind projects. --&gt;
     &lt;reporting&gt;
@@ -234,25 +163,15 @@
         &lt;/plugins&gt;
     &lt;/reporting&gt;
     &lt;distributionManagement&gt;
-        &lt;!-- Alas, this doesn't work yet --&gt;
         &lt;site&gt;
-            &lt;id&gt;apache.org&lt;/id&gt;
-            &lt;url&gt;ssh://cvs.apache.org/jakarta/hivemind/%{pom.artifactId}&lt;/url&gt;
+            &lt;id&gt;apache.website&lt;/id&gt;
+            &lt;name&gt;Apache Website&lt;/name&gt;
+            &lt;url&gt;scp://people.apache.org/www/hivemind.apache.org/&lt;/url&gt;
         &lt;/site&gt;
-        &lt;repository&gt;
-            &lt;!-- The "maven" login id, specified in settings.xml, ensures that the Maven
-                repository (i.e. http://howardlewisship.com/repository) is accessed. --&gt;
-            &lt;!-- This is temporary, until HiveMind 1.2 is stable. --&gt;
-            &lt;id&gt;howardlewisship.com&lt;/id&gt;
-            &lt;url&gt;ftp://howardlewisship.com/repository&lt;/url&gt;
-        &lt;/repository&gt;
     &lt;/distributionManagement&gt;
-    &lt;organization&gt;
-        &lt;name&gt;Apache Software Foundation&lt;/name&gt;
-        &lt;url&gt;http://www.apache.org/&lt;/url&gt;
-    &lt;/organization&gt;
+    
     &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/jakarta/hivemind/trunk/&lt;/connection&gt;
-        &lt;url&gt;http://svn.apache.org/viewvc/jakarta/hivemind/trunk/&lt;/url&gt;
+        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/hivemind/hivemind/trunk/&lt;/connection&gt;
+        &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind1/trunk/&lt;/url&gt;
     &lt;/scm&gt;
 &lt;/project&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r627415 - /hivemind/hivemind2/trunk/jmx/pom.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200802.mbox/%3c20080213135941.AE27A1A983A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20080213135941-AE27A1A983A@eris-apache-org%3e</id>
<updated>2008-02-13T13:59:41Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Wed Feb 13 05:59:37 2008
New Revision: 627415

URL: http://svn.apache.org/viewvc?rev=627415&amp;view=rev
Log:
dependency to oro added

Modified:
    hivemind/hivemind2/trunk/jmx/pom.xml

Modified: hivemind/hivemind2/trunk/jmx/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/jmx/pom.xml?rev=627415&amp;r1=627414&amp;r2=627415&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/jmx/pom.xml (original)
+++ hivemind/hivemind2/trunk/jmx/pom.xml Wed Feb 13 05:59:37 2008
@@ -29,7 +29,12 @@
             &lt;groupId&gt;log4j&lt;/groupId&gt;
             &lt;artifactId&gt;log4j&lt;/artifactId&gt;
             &lt;scope&gt;compile&lt;/scope&gt;
-        &lt;/dependency&gt;
+        &lt;/dependency&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;oro&lt;/groupId&gt;
+            &lt;artifactId&gt;oro&lt;/artifactId&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
         &lt;!-- PROVIDED --&gt;
         &lt;dependency&gt;
             &lt;groupId&gt;mx4j&lt;/groupId&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r627409 - in /hivemind/hivemind2/trunk: ./ annotations/src/java/org/apache/hivemind/annotations/internal/ annotations/src/test/org/apache/hivemind/annotations/ framework/src/java/org/apache/hivemind/ framework/src/java/org/apache/hivemind/s...</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200802.mbox/%3c20080213135418.E9DA71A9832@eris.apache.org%3e"/>
<id>urn:uuid:%3c20080213135418-E9DA71A9832@eris-apache-org%3e</id>
<updated>2008-02-13T13:54:11Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Wed Feb 13 05:54:07 2008
New Revision: 627409

URL: http://svn.apache.org/viewvc?rev=627409&amp;view=rev
Log:
Improved Logging for wrong contributions to EagerLoad
Test for Annotated EagerLoadContribution

Added:
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/EagerLoadContributionModule.java
  (with props)
Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/MethodCallContributionConstructor.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/SimpleAnnotatedModule.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindMessages.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindStrings.properties
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/service/impl/EagerLoader.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/Defense.java
    hivemind/hivemind2/trunk/pom.xml
    hivemind/hivemind2/trunk/status.xml

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/MethodCallContributionConstructor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/MethodCallContributionConstructor.java?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/MethodCallContributionConstructor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/MethodCallContributionConstructor.java
Wed Feb 13 05:54:07 2008
@@ -14,6 +14,7 @@
 
 package org.apache.hivemind.annotations.internal;
 
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 
 import org.apache.hivemind.ApplicationRuntimeException;
@@ -66,6 +67,10 @@
             } else {
                 // TODO: Throw Exception
             }
+        }
+        catch (InvocationTargetException ex)
+        {
+            throw new ApplicationRuntimeException(ex.getCause().getMessage(), getLocation(),
ex.getCause());
         }
         catch (Exception ex)
         {

Added: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/EagerLoadContributionModule.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/EagerLoadContributionModule.java?rev=627409&amp;view=auto
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/EagerLoadContributionModule.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/EagerLoadContributionModule.java
Wed Feb 13 05:54:07 2008
@@ -0,0 +1,30 @@
+package org.apache.hivemind.annotations;
+
+import hivemind.test.services.StringHolder;
+import hivemind.test.services.impl.StringHolderImpl;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.hivemind.annotations.definition.Contribution;
+import org.apache.hivemind.annotations.definition.Service;
+
+/**
+ * Module that eager loads a service by contributing it to "hivemind.EagerLoad"
+ */
+public class EagerLoadContributionModule extends AbstractAnnotatedModule
+{
+    @Service(id = "StringHolder")
+    public StringHolder getStringHolderService()
+    {
+        StringHolderImpl result = new StringHolderImpl();
+        result.setValue("test");
+        return result;
+    }
+   
+//    @Contribution(configurationId="hivemind.EagerLoad")
+//    public List eagerLoad() {
+//        return Collections.singletonList(service(StringHolder.class ));
+//    }
+
+}

Propchange: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/EagerLoadContributionModule.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/SimpleAnnotatedModule.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/SimpleAnnotatedModule.java?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/SimpleAnnotatedModule.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/SimpleAnnotatedModule.java
Wed Feb 13 05:54:07 2008
@@ -14,7 +14,6 @@
 
 package org.apache.hivemind.annotations;
 
-import hivemind.test.services.StringHolder;
 import hivemind.test.services.impl.StringHolderImpl;
 
 import java.util.ArrayList;

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
Wed Feb 13 05:54:07 2008
@@ -42,4 +42,12 @@
         assertEquals(service.getClass(), StringHolderImpl.class);
     }
 
+    
+    public void testEagerLoadContribution()
+    {
+        TypedRegistry registry = constructRegistry(EagerLoadContributionModule.class);
+        StringHolder service = registry.getService(StringHolder.class);
+        assertNotNull(service);
+    }
+    
 }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindMessages.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindMessages.java?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindMessages.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindMessages.java
Wed Feb 13 05:54:07 2008
@@ -59,4 +59,12 @@
                 .getJavaClassName(parameter.getClass()), ClassFabUtils
                 .getJavaClassName(expectedType));
     }
+    
+    /** @since 2.0 */
+    public static String contributionWrongType(Object contribution, Class expectedType)
+    {
+        return _formatter.format("contribution-wrong-type", ClassFabUtils
+                .getJavaClassName(contribution.getClass()), ClassFabUtils
+                .getJavaClassName(expectedType));
+    }
 }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindStrings.properties
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindStrings.properties?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindStrings.properties
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/HiveMindStrings.properties
Wed Feb 13 05:54:07 2008
@@ -18,6 +18,7 @@
 param-not-null=Parameter {0} must not be null.
 field-not-null=Field {0} has not been assigned.
 param-wrong-type=Parameter {0} is of type {1} which is not compatible with {2}.
+contribution-wrong-type=Contribution is of type {0} which is not compatible with {1}.
 
 
 

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/service/impl/EagerLoader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/service/impl/EagerLoader.java?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/service/impl/EagerLoader.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/service/impl/EagerLoader.java
Wed Feb 13 05:54:07 2008
@@ -18,6 +18,7 @@
 import java.util.List;
 
 import org.apache.hivemind.internal.ServicePoint;
+import org.apache.hivemind.util.Defense;
 
 /**
  * Implementation of the &lt;code&gt;hivemind.EagerLoad&lt;/code&gt; service, which
@@ -34,7 +35,9 @@
         Iterator i = _servicePoints.iterator();
         while (i.hasNext())
         {
-            ServicePoint point = (ServicePoint) i.next();
+            Object untypedPoint = i.next();
+            Defense.isContributionAssignable(untypedPoint, ServicePoint.class);
+            ServicePoint point = (ServicePoint) untypedPoint;
 
             point.forceServiceInstantiation();
         }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/Defense.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/Defense.java?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/Defense.java (original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/Defense.java Wed
Feb 13 05:54:07 2008
@@ -70,4 +70,18 @@
                     parameter,
                     expectedType));
     }
+    
+    /**
+     * Check that a contribution is assignable to a particular type.
+     * 
+     * @throws ClassCastException
+     *             if not assignable (with a useable message)
+     */
+    public static void isContributionAssignable(Object contribution, Class expectedType)
+    {
+        if (!expectedType.isAssignableFrom(contribution.getClass()))
+            throw new ClassCastException(HiveMindMessages.contributionWrongType(
+                    contribution,
+                    expectedType));
+    }    
 }

Modified: hivemind/hivemind2/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/pom.xml?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/pom.xml (original)
+++ hivemind/hivemind2/trunk/pom.xml Wed Feb 13 05:54:07 2008
@@ -6,7 +6,7 @@
     &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
     &lt;artifactId&gt;hivemind-project&lt;/artifactId&gt;
     &lt;packaging&gt;pom&lt;/packaging&gt;
-    &lt;version&gt;2.0-alpha-1&lt;/version&gt;
+    &lt;version&gt;2.0-alpha-2-SNAPSHOT&lt;/version&gt;
     &lt;name&gt;HiveMind Project&lt;/name&gt;
     &lt;inceptionYear&gt;2003&lt;/inceptionYear&gt;
     &lt;modules&gt;

Modified: hivemind/hivemind2/trunk/status.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/status.xml?rev=627409&amp;r1=627408&amp;r2=627409&amp;view=diff
==============================================================================
--- hivemind/hivemind2/trunk/status.xml (original)
+++ hivemind/hivemind2/trunk/status.xml Wed Feb 13 05:54:07 2008
@@ -27,7 +27,7 @@
     &lt;/actions&gt;
   &lt;/todo&gt;
   &lt;changes&gt;
-    &lt;release version="2.0-alpha-1" date="unreleased"&gt;
+    &lt;release version="2.0-alpha-2" date="unreleased"&gt;
     &lt;/release&gt;
   &lt;/changes&gt;
 &lt;/status&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>[Hivemind Wiki] Update of &quot;wow+power+leveling&quot; by AntonioGallardo</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200709.mbox/%3c20070911042201.20945.17127@eos.apache.org%3e"/>
<id>urn:uuid:%3c20070911042201-20945-17127@eos-apache-org%3e</id>
<updated>2007-09-11T04:22:01Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hivemind Wiki" for change notification.

The following page has been changed by AntonioGallardo:
http://wiki.apache.org/jakarta-hivemind/wow+power+leveling

The comment on the change is:
spam

------------------------------------------------------------------------------
- Baseball gave him his earliest challenge. He was an outstanding pitcher in Little League,
and eventually, as a senior in high school, made the [http://www.toppowerlevel.net wow powerleveling]
varsity, winning half the team‘s games with a record of five wins and two losses. At graduation,
the coach named Daniel the [http://www.toppowerlevel.net wow power level] team‘s most valuable
player. 
+ deleted
  
- 　　His finest hour, though, came at a school science fair. He entered an exhibit showing
how the [http://www.toppowerlevel.net wow power leveling] circulatory system works. It was
primitive and crude, especially compared to the fancy, computerized, blinking-light models
entered by other [http://www.toppowerlevel.net wow power level] students. My wife, Sara, felt
embarrassed for him. 
- 
- 　　It turned out that the other kids [http://www.toppowerlevel.net wow power leveling]
had not done their own work-their parents had made their exhibits. As the judges went on their
rounds, they found that these other kids couldn‘t answer their questions. Daniel answered
every one. When the judges awarded the [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power leveling] Albert Einstein Plaque for the best exhibit, they gave it to him. 
- 
- 　　By the time Daniel left for [http://www.toppowerlevel.net/powerlist.php?fid=2871 lotro
power leveling] he stood six feet tall and weighed 170 pounds. He was muscular and in superb
[http://www.toppowerlevel.net wow powerleveling] condition, but he never pitched another inning,
having given up baseball for English literature. I was sorry that he would not develop his
athletic talent, but proud that he had made such a mature decision. 
- 
- 　　One day I told Daniel that the great failing in my [http://www.toppowerlevel.net wow
power leveling] life had been that I didn‘t take a year or two off to travel when I finished
college. This is the best way, to my way of thinking, to broaden oneself and develop a larger
perspective on life. Once I had married and begun working, I found that the dream of [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power leveling] in another culture had vanished. 
- 
- 　　Daniel thought about this. His friends said that he would be insane to put his career
on [http://www.toppowerlevel.net wow powerleveling]. But he decided it wasn‘t so crazy.
After graduation, he worked as a waiter at college, a bike messenger and a house painter.
With the money he earned, he had enough to go to [http://www.toppowerlevel.net wow power level]
Paris. 
- 
- 　　The [http://www.toppowerlevel.net/powerlist.php?fid=2871 lotro power leveling] before
he was to leave, I tossed in bed. I was trying to figure out something to say. Nothing came
to mind. Maybe, I thought [http://www.toppowerlevel.net wow power leveling], it wasn‘t necessary
to say anything. 
- 
- 　　What does it matter in the course of a [http://www.toppowerlevel.net wow power level]
if a father never tells a son what he really thinks of him? But as I stood before Daniel,
I knew that it does matter. My father and I loved each other. Yet, I always regretted never
hearing him put his feelings into words and never having the memory of that moment. Now, I
could feel my palms sweat and my throat tighten. Why is it so hard to tell a son something
from the heart? My mouth turned dry, and I knew I would be able to get out only a few [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power leveling] words clearly. 
- 
- 　　“Daniel," I said, "if I could have picked [http://www.toppowerlevel.net wow powerleveling],
I would have picked you." 
- 
- 　　That‘s all I could say. I wasn‘t sure he understood what I meant. Then he came
toward me and threw his arms around me. For a moment, the [http://www.toppowerlevel.net wow
power leveling] world and all its people vanished, and there was just Daniel and me in our
home by the sea. 
- 
- 　　He was saying [http://www.toppowerlevel.net wow powerleveling], but my eyes misted
over, and I couldn‘t understand what he was saying. All I was aware of was the stubble on
his chin as his face pressed against mine. And then, the [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro powerleveling]. I went to [http://www.toppowerlevel.net wow power level] work, and Daniel
left a few hours later with his girlfriend. 
- 
- 　　That was seven weeks ago, and I think about [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro powerleveling] when I walk along the beach on weekends. Thousands of miles away, somewhere
out past the ocean waves breaking on the [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power level]
-  deserted shore, he might be scurrying across Boulevard Saint Germain, strolling through
a musty hallway of the Louvre, bending an elbow in a Left Bank café. 
- 
- 　　What I had said to Daniel was clumsy and trite. It was [http://www.toppowerlevel.net
wow power level]. And yet, it was everything.
- 


</pre>
</div>
</content>
</entry>
<entry>
<title>[Hivemind Wiki] Update of &quot;wow+power+leveling&quot; by loki002</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200709.mbox/%3c20070910232250.16696.91147@eos.apache.org%3e"/>
<id>urn:uuid:%3c20070910232250-16696-91147@eos-apache-org%3e</id>
<updated>2007-09-10T23:22:50Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hivemind Wiki" for change notification.

The following page has been changed by loki002:
http://wiki.apache.org/hivemind/wow+power+leveling

New page:
Baseball gave him his earliest challenge. He was an outstanding pitcher in Little League,
and eventually, as a senior in high school, made the [http://www.toppowerlevel.net wow powerleveling]
varsity, winning half the team‘s games with a record of five wins and two losses. At graduation,
the coach named Daniel the [http://www.toppowerlevel.net wow power level] team‘s most valuable
player. 

　　His finest hour, though, came at a school science fair. He entered an exhibit showing
how the [http://www.toppowerlevel.net wow power leveling] circulatory system works. It was
primitive and crude, especially compared to the fancy, computerized, blinking-light models
entered by other [http://www.toppowerlevel.net wow power level] students. My wife, Sara, felt
embarrassed for him. 

　　It turned out that the other kids [http://www.toppowerlevel.net wow power leveling]
had not done their own work-their parents had made their exhibits. As the judges went on their
rounds, they found that these other kids couldn‘t answer their questions. Daniel answered
every one. When the judges awarded the [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power leveling] Albert Einstein Plaque for the best exhibit, they gave it to him. 

　　By the time Daniel left for [http://www.toppowerlevel.net/powerlist.php?fid=2871 lotro
power leveling] he stood six feet tall and weighed 170 pounds. He was muscular and in superb
[http://www.toppowerlevel.net wow powerleveling] condition, but he never pitched another inning,
having given up baseball for English literature. I was sorry that he would not develop his
athletic talent, but proud that he had made such a mature decision. 

　　One day I told Daniel that the great failing in my [http://www.toppowerlevel.net wow
power leveling] life had been that I didn‘t take a year or two off to travel when I finished
college. This is the best way, to my way of thinking, to broaden oneself and develop a larger
perspective on life. Once I had married and begun working, I found that the dream of [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power leveling] in another culture had vanished. 

　　Daniel thought about this. His friends said that he would be insane to put his career
on [http://www.toppowerlevel.net wow powerleveling]. But he decided it wasn‘t so crazy.
After graduation, he worked as a waiter at college, a bike messenger and a house painter.
With the money he earned, he had enough to go to [http://www.toppowerlevel.net wow power level]
Paris. 

　　The [http://www.toppowerlevel.net/powerlist.php?fid=2871 lotro power leveling] before
he was to leave, I tossed in bed. I was trying to figure out something to say. Nothing came
to mind. Maybe, I thought [http://www.toppowerlevel.net wow power leveling], it wasn‘t necessary
to say anything. 

　　What does it matter in the course of a [http://www.toppowerlevel.net wow power level]
if a father never tells a son what he really thinks of him? But as I stood before Daniel,
I knew that it does matter. My father and I loved each other. Yet, I always regretted never
hearing him put his feelings into words and never having the memory of that moment. Now, I
could feel my palms sweat and my throat tighten. Why is it so hard to tell a son something
from the heart? My mouth turned dry, and I knew I would be able to get out only a few [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power leveling] words clearly. 

　　“Daniel," I said, "if I could have picked [http://www.toppowerlevel.net wow powerleveling],
I would have picked you." 

　　That‘s all I could say. I wasn‘t sure he understood what I meant. Then he came toward
me and threw his arms around me. For a moment, the [http://www.toppowerlevel.net wow power
leveling] world and all its people vanished, and there was just Daniel and me in our home
by the sea. 

　　He was saying [http://www.toppowerlevel.net wow powerleveling], but my eyes misted over,
and I couldn‘t understand what he was saying. All I was aware of was the stubble on his
chin as his face pressed against mine. And then, the [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro powerleveling]. I went to [http://www.toppowerlevel.net wow power level] work, and Daniel
left a few hours later with his girlfriend. 

　　That was seven weeks ago, and I think about [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro powerleveling] when I walk along the beach on weekends. Thousands of miles away, somewhere
out past the ocean waves breaking on the [http://www.toppowerlevel.net/powerlist.php?fid=2871
lotro power level]
 deserted shore, he might be scurrying across Boulevard Saint Germain, strolling through a
musty hallway of the Louvre, bending an elbow in a Left Bank café. 

　　What I had said to Daniel was clumsy and trite. It was [http://www.toppowerlevel.net
wow power level]. And yet, it was everything.


</pre>
</div>
</content>
</entry>
<entry>
<title>[Hivemind Wiki] Update of &quot;TomekCygan&quot; by JamesCarman</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200706.mbox/%3c20070611100751.10844.55474@eos.apache.org%3e"/>
<id>urn:uuid:%3c20070611100751-10844-55474@eos-apache-org%3e</id>
<updated>2007-06-11T10:07:51Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hivemind Wiki" for change notification.

The following page has been changed by JamesCarman:
http://wiki.apache.org/hivemind/TomekCygan

------------------------------------------------------------------------------
- TomekCygan
+ deleted
  
- Hi my name is Tomasz and im from Poland. I will try to help You guys moderate this wiki.
-  
- Email: profesjonalna@gmail.com - if You need please use it!
- 
- My bio: ... - I will fill it later in english now polish version:) 
- 
- Polish: Czesc wiec postanowilem pomoc wam tutaj na wiki w moderacji mam nadzieje ze zauwazycie
moja przydatnosc w przyszlosci. Obecnie pomagam w moderacji rowniez na innych wiki moinmoin
gdzie ceniona jest moja pomoc. Pozdrawiam osoby z polski. 
- 
- My website/moja strona: [http://www.profesjonalna-reklama.pl Pozycjonowanie]
- 
- Thats for now i will try to update news/find bugs and fix them.
- 


</pre>
</div>
</content>
</entry>
<entry>
<title>[Hivemind Wiki] Update of &quot;TomekCygan&quot; by TomekCygan</title>
<author><name>Apache Wiki &lt;wikidiffs@apache.org&gt;</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200706.mbox/%3c20070606125121.13660.44798@eos.apache.org%3e"/>
<id>urn:uuid:%3c20070606125121-13660-44798@eos-apache-org%3e</id>
<updated>2007-06-06T12:51:21Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Hivemind Wiki" for change notification.

The following page has been changed by TomekCygan:
http://wiki.apache.org/hivemind/TomekCygan

New page:
TomekCygan

Hi my name is Tomasz and im from Poland. I will try to help You guys moderate this wiki.
 
Email: profesjonalna@gmail.com - if You need please use it!

My bio: ... - I will fill it later in english now polish version:) 

Polish: Czesc wiec postanowilem pomoc wam tutaj na wiki w moderacji mam nadzieje ze zauwazycie
moja przydatnosc w przyszlosci. Obecnie pomagam w moderacji rowniez na innych wiki moinmoin
gdzie ceniona jest moja pomoc. Pozdrawiam osoby z polski. 

My website/moja strona: [http://www.profesjonalna-reklama.pl Pozycjonowanie]

Thats for now i will try to update news/find bugs and fix them.


</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r524886 - in /hivemind/hivemind2/trunk: annotations/pom.xml examples/pom.xml framework/pom.xml jmx/pom.xml library/pom.xml pom.xml xml/pom.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200704.mbox/%3c20070402185312.3CF411A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070402185312-3CF411A9838@eris-apache-org%3e</id>
<updated>2007-04-02T18:53:11Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Mon Apr  2 11:53:09 2007
New Revision: 524886

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=524886
Log:
HIVEMIND-204: scm-elements in pom.xml fixed

Modified:
    hivemind/hivemind2/trunk/annotations/pom.xml
    hivemind/hivemind2/trunk/examples/pom.xml
    hivemind/hivemind2/trunk/framework/pom.xml
    hivemind/hivemind2/trunk/jmx/pom.xml
    hivemind/hivemind2/trunk/library/pom.xml
    hivemind/hivemind2/trunk/pom.xml
    hivemind/hivemind2/trunk/xml/pom.xml

Modified: hivemind/hivemind2/trunk/annotations/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/annotations/pom.xml (original)
+++ hivemind/hivemind2/trunk/annotations/pom.xml Mon Apr  2 11:53:09 2007
@@ -42,6 +42,10 @@
             &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
+    &lt;scm&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/annotations&lt;/connection&gt;
+        &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations&lt;/url&gt;
+    &lt;/scm&gt;
     &lt;reporting&gt;
 			&lt;plugins&gt;
           &lt;plugin&gt;

Modified: hivemind/hivemind2/trunk/examples/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/examples/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/examples/pom.xml (original)
+++ hivemind/hivemind2/trunk/examples/pom.xml Mon Apr  2 11:53:09 2007
@@ -62,7 +62,7 @@
       	&lt;/plugins&gt;
     &lt;/reporting&gt;
     &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/examples&lt;/connection&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/examples&lt;/connection&gt;
         &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/examples&lt;/url&gt;
     &lt;/scm&gt;
     &lt;build&gt;

Modified: hivemind/hivemind2/trunk/framework/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/framework/pom.xml (original)
+++ hivemind/hivemind2/trunk/framework/pom.xml Mon Apr  2 11:53:09 2007
@@ -84,7 +84,7 @@
       	&lt;/plugins&gt;
     &lt;/reporting&gt;
     &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/framework&lt;/connection&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/framework&lt;/connection&gt;
         &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework&lt;/url&gt;
     &lt;/scm&gt;
 	  &lt;build&gt;

Modified: hivemind/hivemind2/trunk/jmx/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/jmx/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/jmx/pom.xml (original)
+++ hivemind/hivemind2/trunk/jmx/pom.xml Mon Apr  2 11:53:09 2007
@@ -74,7 +74,7 @@
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
     &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/jmx&lt;/connection&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/jmx&lt;/connection&gt;
         &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/jmx&lt;/url&gt;
     &lt;/scm&gt;
     &lt;reporting&gt;

Modified: hivemind/hivemind2/trunk/library/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/library/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/library/pom.xml (original)
+++ hivemind/hivemind2/trunk/library/pom.xml Mon Apr  2 11:53:09 2007
@@ -79,7 +79,7 @@
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
     &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/library&lt;/connection&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/library&lt;/connection&gt;
         &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/library&lt;/url&gt;
     &lt;/scm&gt;
     &lt;reporting&gt;

Modified: hivemind/hivemind2/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/pom.xml (original)
+++ hivemind/hivemind2/trunk/pom.xml Mon Apr  2 11:53:09 2007
@@ -53,7 +53,7 @@
         &lt;url&gt;http://issues.apache.org/jira/browse/HIVEMIND&lt;/url&gt;
     &lt;/issueManagement&gt;
     &lt;scm&gt;
-        &lt;connection&gt;svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/&lt;/connection&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/&lt;/connection&gt;
         &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/&lt;/url&gt;
     &lt;/scm&gt;
     

Modified: hivemind/hivemind2/trunk/xml/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/pom.xml?view=diff&amp;rev=524886&amp;r1=524885&amp;r2=524886
==============================================================================
--- hivemind/hivemind2/trunk/xml/pom.xml (original)
+++ hivemind/hivemind2/trunk/xml/pom.xml Mon Apr  2 11:53:09 2007
@@ -74,6 +74,10 @@
             &lt;scope&gt;test&lt;/scope&gt;
         &lt;/dependency&gt;
     &lt;/dependencies&gt;
+    &lt;scm&gt;
+        &lt;connection&gt;scm:svn:http://svn.apache.org/repos/asf/hivemind/hivemind2/trunk/xml&lt;/connection&gt;
+        &lt;url&gt;http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml&lt;/url&gt;
+    &lt;/scm&gt;
     &lt;reporting&gt;
 			&lt;plugins&gt;
           &lt;plugin&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r523824 - in /hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors: CustomExtensionProvider.java custom-manifest.mf</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070329201609.288141A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070329201609-288141A9838@eris-apache-org%3e</id>
<updated>2007-03-29T20:16:08Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar 29 13:16:05 2007
New Revision: 523824

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=523824
Log:
Unit test fixed (temporarily)

Added:
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/CustomExtensionProvider.java
Modified:
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf

Added: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/CustomExtensionProvider.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/CustomExtensionProvider.java?view=auto&amp;rev=523824
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/CustomExtensionProvider.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/CustomExtensionProvider.java
Thu Mar 29 13:16:05 2007
@@ -0,0 +1,14 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import org.apache.hivemind.annotations.AnnotationsExtensionProvider;
+import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistry;
+
+public class CustomExtensionProvider implements AnnotationsExtensionProvider
+{
+
+    public void registerAnnotationProcessors(AnnotationProcessorRegistry registry)
+    {
+//        registry.registerProcessor(annotationClass, processorClass)
+    }
+
+}

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf?view=diff&amp;rev=523824&amp;r1=523823&amp;r2=523824
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
Thu Mar 29 13:16:05 2007
@@ -1 +1,2 @@
-annotations-extension-providers: org.apache.hivemind.Test1
+annotations-extension-providers: org.apache.hivemind.annotations.definition.processors.CustomExtensionProvider
+




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r523821 - in /hivemind/hivemind2/trunk/annotations/src: java/org/apache/hivemind/annotations/definition/ java/org/apache/hivemind/annotations/definition/processors/ java/org/apache/hivemind/annotations/internal/ test/org/apache/hivemind/ann...</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070329200119.8A1731A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070329200119-8A1731A9838@eris-apache-org%3e</id>
<updated>2007-03-29T20:01:18Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar 29 13:01:16 2007
New Revision: 523821

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=523821
Log:
Implementation annotation added

Added:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/Implementation.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ImplementationProcessor.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/OverrideServiceModule.java
Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/Implementation.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/Implementation.java?view=auto&amp;rev=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/Implementation.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/Implementation.java
Thu Mar 29 13:01:16 2007
@@ -0,0 +1,38 @@
+// Copyright 2007 The 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.hivemind.annotations.definition;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.hivemind.internal.ServiceModel;
+
+/**
+ * Marks a method in an annotated module as the implementation of a service point.
+ * The return type of the method must match the corresponding service interface. 
+ * The method is used factory method for the construction of service implementations.
+ * 
+ * @author Achim Huegen
+ */
+@Documented
+@Retention(value = RetentionPolicy.RUNTIME)
+@Target(value = ElementType.METHOD)
+public @interface Implementation {
+    String serviceId();
+    String serviceModel() default ServiceModel.SINGLETON;
+}

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ImplementationProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ImplementationProcessor.java?view=auto&amp;rev=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ImplementationProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ImplementationProcessor.java
Thu Mar 29 13:01:16 2007
@@ -0,0 +1,51 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.lang.reflect.Method;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.annotations.definition.Implementation;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.CheckTools;
+import org.apache.hivemind.annotations.internal.MethodCallImplementationConstructor;
+import org.apache.hivemind.definition.ImplementationConstructor;
+import org.apache.hivemind.definition.ImplementationDefinition;
+import org.apache.hivemind.definition.impl.ImplementationDefinitionImpl;
+import org.apache.hivemind.util.IdUtils;
+
+public class ImplementationProcessor implements AnnotationProcessor
+{
+    private static final Log _log = LogFactory.getLog(ImplementationProcessor.class);
+
+    /**
+     * @see org.apache.hivemind.annotations.definition.processors.AnnotationProcessor#processAnnotation(org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext)
+     */
+    public boolean processAnnotation(AnnotationProcessingContext context)
+    {
+        Method method = (Method) context.getAnnotatedElement();
+        AnnotatedModuleDefinitionImpl module = context.getModule();
+        Implementation implementationAnnotation = (Implementation) context.getTargetAnnotation();

+        
+        CheckTools.checkMethodModifiers(method, 0, "implementation");
+        
+        if (_log.isDebugEnabled())
+        {
+            _log.debug("Method " + method.getName() + "classified as implementation.");
+        }
+        
+        // Create implementation constructor that calls the annotated method 
+        ImplementationConstructor constructor = new MethodCallImplementationConstructor(context.getLocation(),

+                method, context.getModuleInstanceProvider());
+
+        ImplementationDefinition id = new ImplementationDefinitionImpl(module, context.getLocation(),

+                constructor, implementationAnnotation.serviceModel(), true);
+        
+        String qualifiedServiceId = IdUtils.qualify(
+                module.getId(), implementationAnnotation.serviceId());
+
+        module.addImplementation(qualifiedServiceId, id);
+
+        return true;
+    }
+
+}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java?view=diff&amp;rev=523821&amp;r1=523820&amp;r2=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
Thu Mar 29 13:01:16 2007
@@ -47,7 +47,7 @@
                 method, context.getModuleInstanceProvider());
 
         ImplementationDefinition sid = new ImplementationDefinitionImpl(module, context.getLocation(),

-                constructor, serviceAnnotation.serviceModel(), true);
+                constructor, serviceAnnotation.serviceModel(), false);
 
         spd.addImplementation(sid);
 

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java?view=diff&amp;rev=523821&amp;r1=523820&amp;r2=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
Thu Mar 29 13:01:16 2007
@@ -67,6 +67,7 @@
     {
         _registryDefinition = registryDefinition;
         _classResolver = classResolver;
+        _annotationProcessorRegistry = annotationProcessorRegistry;
         _annotationProcessorFactory = new AnnotationProcessorFactory(annotationProcessorRegistry);
     }
     

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java?view=diff&amp;rev=523821&amp;r1=523820&amp;r2=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
Thu Mar 29 13:01:16 2007
@@ -3,10 +3,12 @@
 import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.annotations.definition.Configuration;
 import org.apache.hivemind.annotations.definition.Contribution;
+import org.apache.hivemind.annotations.definition.Implementation;
 import org.apache.hivemind.annotations.definition.Service;
 import org.apache.hivemind.annotations.definition.Submodule;
 import org.apache.hivemind.annotations.definition.processors.ConfigurationProcessor;
 import org.apache.hivemind.annotations.definition.processors.ContributionProcessor;
+import org.apache.hivemind.annotations.definition.processors.ImplementationProcessor;
 import org.apache.hivemind.annotations.definition.processors.ServiceProcessor;
 import org.apache.hivemind.annotations.definition.processors.SubmoduleProcessor;
 
@@ -37,6 +39,7 @@
         processorRegistry.registerProcessor(Configuration.class, ConfigurationProcessor.class);
         processorRegistry.registerProcessor(Contribution.class, ContributionProcessor.class);
         processorRegistry.registerProcessor(Submodule.class, SubmoduleProcessor.class);
+        processorRegistry.registerProcessor(Implementation.class, ImplementationProcessor.class);
     }
     
 }

Added: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/OverrideServiceModule.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/OverrideServiceModule.java?view=auto&amp;rev=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/OverrideServiceModule.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/OverrideServiceModule.java
Thu Mar 29 13:01:16 2007
@@ -0,0 +1,37 @@
+// Copyright 2007 The 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.hivemind.annotations;
+
+import hivemind.test.services.StringHolder;
+import hivemind.test.services.impl.StringHolderImpl;
+
+import org.apache.hivemind.annotations.definition.Implementation;
+import org.apache.hivemind.annotations.definition.Module;
+import org.apache.hivemind.annotations.definition.Service;
+import org.apache.hivemind.internal.ServiceModel;
+
+@Module(id = "testModule")
+public class OverrideServiceModule extends AbstractAnnotatedModule
+{
+    @Service(id = "Test")
+    public StringHolder getStringHolder() {
+        return null;
+    }
+
+    @Implementation(serviceId = "Test", serviceModel=ServiceModel.PRIMITIVE)
+    public StringHolder getStringHolderImpl() {
+        return new StringHolderImpl();
+    }
+}

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java?view=diff&amp;rev=523821&amp;r1=523820&amp;r2=523821
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModules.java
Thu Mar 29 13:01:16 2007
@@ -16,6 +16,7 @@
 
 import hivemind.test.services.ServiceAutowireTarget;
 import hivemind.test.services.StringHolder;
+import hivemind.test.services.impl.StringHolderImpl;
 
 public class TestAnnotatedModules extends AnnotationTestCase
 {
@@ -31,6 +32,14 @@
         TypedRegistry registry = constructRegistry(Supermodule.class);
         StringHolder service = registry.getService("super.sub.StringHolder", StringHolder.class);
         assertNotNull(service);
+    }
+
+    public void testOverrideServiceImplementation()
+    {
+        TypedRegistry registry = constructRegistry(OverrideServiceModule.class);
+        StringHolder service = registry.getService("testModule.Test", StringHolder.class);
+        assertNotNull(service);
+        assertEquals(service.getClass(), StringHolderImpl.class);
     }
 
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r521482 - in /hivemind/hivemind2/trunk: annotations/src/java/org/apache/hivemind/annotations/ annotations/src/java/org/apache/hivemind/annotations/definition/processors/ annotations/src/java/org/apache/hivemind/annotations/internal/ annotat...</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070322213834.1DE271A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070322213834-1DE271A9838@eris-apache-org%3e</id>
<updated>2007-03-22T21:38:33Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar 22 14:38:31 2007
New Revision: 521482

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=521482
Log:
More work on annotation processors 

Added:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsExtensionProvider.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorFactory.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationsExtensionLoader.java
      - copied, changed from r514886, hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/MappedClassLoader.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/TestCustomProcessor.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
Removed:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
Thu Mar 22 14:38:31 2007
@@ -18,7 +18,9 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
 import org.apache.hivemind.annotations.internal.AnnotatedModuleProcessor;
+import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistry;
 import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistryFactory;
 import org.apache.hivemind.definition.RegistryDefinition;
 import org.apache.hivemind.impl.DefaultClassResolver;
@@ -71,15 +73,28 @@
     }
 
     /**
-     * Reads an annotated module.
+     * Reads an annotated module. Uses the the default {@link AnnotationProcessorRegistry}.
      * 
      * @param moduleClass  class of the module
      */
     public void readModule(Class moduleClass)
     {
+        // TODO: Better cache the factory for performance?
+        AnnotationProcessorRegistryFactory factory = new AnnotationProcessorRegistryFactory();
+        readModule(moduleClass, factory.createDefaultRegistry(_classResolver));
+    }
+    
+    /**
+     * Reads an annotated module.
+     * 
+     * @param moduleClass  class of the module
+     * @param annotationProcessorRegistry  the registry the holds all known {@link AnnotationProcessor
annotation processors}
+     */
+    public void readModule(Class moduleClass, AnnotationProcessorRegistry annotationProcessorRegistry)
+    {
         AnnotatedModuleProcessor _processor = new AnnotatedModuleProcessor(
                 _registryDefinition, _classResolver, 
-                AnnotationProcessorRegistryFactory.createDefaultRegistry());
+                annotationProcessorRegistry);
         try
         {
             _processor.processModule(moduleClass);

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsExtensionProvider.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsExtensionProvider.java?view=auto&amp;rev=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsExtensionProvider.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsExtensionProvider.java
Thu Mar 22 14:38:31 2007
@@ -0,0 +1,8 @@
+package org.apache.hivemind.annotations;
+
+import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistry;
+
+public interface AnnotationsExtensionProvider
+{
+    public void registerAnnotationProcessors(AnnotationProcessorRegistry registry);
+}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
Thu Mar 22 14:38:31 2007
@@ -61,14 +61,14 @@
         return _formatter.format("annotated-method-protected-not-accessible", methodSig.toString());
     }
     
-    public static String unableToCreateAnnotationProcessor(String processorClassName, Exception
cause)
+    public static String unableToCreateAnnotationsExtensionProvider(String processorClassName,
Exception cause)
     {
-        return _formatter.format("unable-to-create-annotation-processor", processorClassName,
cause);
+        return _formatter.format("unable-to-create-annotations-extension-provider", processorClassName,
cause);
     }
 
-    public static String annotationProcessorWrongType(String processorClassName, Class requiredInterface)
+    public static String annotationsExtensionProviderWrongType(String processorClassName,
Class requiredInterface)
     {
-        return _formatter.format("annotation-processor-wrong-type", processorClassName, requiredInterface.getName());
+        return _formatter.format("annotations-extension-provider-wrong-type", processorClassName,
requiredInterface.getName());
     }
 
 }

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
Thu Mar 22 14:38:31 2007
@@ -18,5 +18,5 @@
 annotated-method-has-invalid-modifiers=Method ''{0}'' used as {1} has invalid modifiers:
{2}
 annotated-method-protected-not-accessible=Method ''{0}'' is protected but not accessible
by HiveMind. If a SecurityManager is used then HiveMind must be allowed to call Method#setAccessible.
 
-unable-to-create-annotation-processor=Unable to create AnnotationProcessor of type {0}: {1}
-annotation-processor-wrong-type=AnnotationProcessor class {0} must implement interface {1}
+unable-to-create-annotations-extension-provider=Unable to create AnnotationsExtensionProvider
of type {0}: {1}
+annotations-extension-provider-wrong-type=AnnotationsExtensionProvider class {0} must implement
interface {1}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
Thu Mar 22 14:38:31 2007
@@ -3,8 +3,12 @@
 import org.apache.hivemind.ApplicationRuntimeException;
 
 /**
- * The same instance is used for all annotations of one kind which are loaded
- * by the same AnnotatedModuleProcessor or AnnotatedModuleReader.
+ * Processes a method in an module class which is annotated with a specific
+ * annotation type. The processor gets full access to the module definition
+ * and can add extension points and extensions.
+ * 
+ * The same instance is used for all annotations of one kind which are defined
+ * in the same module.
  * 
  * @author Achim Huegen
  */

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
Thu Mar 22 14:38:31 2007
@@ -36,7 +36,8 @@
 /**
  * Does the work for {@link org.apache.hivemind.annotations.AnnotatedModuleReader}. 
  * Processes an annotated class and registers the defined extension and extension points

- * in a registry definition. For each module class a new instance of this processor is created.
+ * in a registry definition. For each module class a new instance of this processor must
+ * be created.
  * 
  * The processor iterates over the methods of the module class and their annotations.
  * Annotations defined in ancestors are included too.
@@ -59,13 +60,14 @@
     private RegistryDefinition _registryDefinition;
     
     private AnnotationProcessorRegistry _annotationProcessorRegistry;
+    private AnnotationProcessorFactory _annotationProcessorFactory;
 
     public AnnotatedModuleProcessor(RegistryDefinition registryDefinition,
             ClassResolver classResolver, AnnotationProcessorRegistry annotationProcessorRegistry)
     {
         _registryDefinition = registryDefinition;
         _classResolver = classResolver;
-        _annotationProcessorRegistry = annotationProcessorRegistry;
+        _annotationProcessorFactory = new AnnotationProcessorFactory(annotationProcessorRegistry);
     }
     
     public void processModule(Class moduleClass)
@@ -159,7 +161,7 @@
                     annotation, method, location, instanceProvider,
                     _annotationProcessorRegistry);
             
-            List&lt;AnnotationProcessor&gt; processors = _annotationProcessorRegistry.getProcessors(annotation.annotationType());
+            List&lt;AnnotationProcessor&gt; processors = _annotationProcessorFactory.getProcessors(annotation.annotationType());
             if (processors != null) {
                 for (AnnotationProcessor processor : processors)
                 {

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorFactory.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorFactory.java?view=auto&amp;rev=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorFactory.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorFactory.java
Thu Mar 22 14:38:31 2007
@@ -0,0 +1,56 @@
+package org.apache.hivemind.annotations.internal;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
+
+public class AnnotationProcessorFactory
+{
+    private AnnotationProcessorRegistry _processorRegistry;
+    private Map&lt;Class&lt;? extends Annotation&gt;, List&lt;AnnotationProcessor&gt;&gt;
processorLists = new HashMap&lt;Class&lt;? extends Annotation&gt;, List&lt;AnnotationProcessor&gt;&gt;();
+    
+    public AnnotationProcessorFactory(AnnotationProcessorRegistry processorRegistry)
+    {
+        _processorRegistry = processorRegistry;
+    }
+    
+    public List&lt;AnnotationProcessor&gt; getProcessors(Class&lt;? extends Annotation&gt;
annotationClass)
+    {
+        List&lt;AnnotationProcessor&gt; processorList = processorLists.get(annotationClass);
+        if (processorList == null) {
+            processorList = createProcessors(annotationClass);
+            processorLists.put(annotationClass, processorList);
+        }
+        return processorList;
+    }
+    
+    private List&lt;AnnotationProcessor&gt; createProcessors(Class&lt;? extends Annotation&gt;
annotationClass)
+    {
+        List&lt;AnnotationProcessor&gt; result = new ArrayList&lt;AnnotationProcessor&gt;();
+        
+        List&lt;Class&lt;? extends AnnotationProcessor&gt;&gt; processorClasses = _processorRegistry.getProcessorClasses(annotationClass);
+        for (Class&lt;? extends AnnotationProcessor&gt; processorClass : processorClasses)
+        {
+            AnnotationProcessor processor;
+            try
+            {
+                processor = processorClass.newInstance();
+                result.add(processor);
+            }
+            catch (Exception e)
+            {
+                // TODO: Improve error handling
+               throw new ApplicationRuntimeException(e);
+            }
+        }
+        
+        return result;
+    }
+
+}
+

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
Thu Mar 22 14:38:31 2007
@@ -10,21 +10,21 @@
 
 public class AnnotationProcessorRegistry
 {
-    private Map&lt;Class&lt;? extends Annotation&gt;, List&lt;AnnotationProcessor&gt;&gt;
processorLists = new HashMap&lt;Class&lt;? extends Annotation&gt;, List&lt;AnnotationProcessor&gt;&gt;();
+    private Map&lt;Class&lt;? extends Annotation&gt;, List&lt;Class&lt;? extends AnnotationProcessor&gt;&gt;&gt;
processorLists = new HashMap&lt;Class&lt;? extends Annotation&gt;, List&lt;Class&lt;? extends
AnnotationProcessor&gt;&gt;&gt;();
 
-    public List&lt;AnnotationProcessor&gt; getProcessors(Class&lt;? extends Annotation&gt;
annotationClass)
+    public List&lt;Class&lt;? extends AnnotationProcessor&gt;&gt; getProcessorClasses(Class&lt;?
extends Annotation&gt; annotationClass)
     {
         return processorLists.get(annotationClass);
     }
 
-    public void registerProcessor(Class&lt;? extends Annotation&gt; annotationClass, AnnotationProcessor
processor)
+    public void registerProcessor(Class&lt;? extends Annotation&gt; annotationClass, Class&lt;?
extends AnnotationProcessor&gt; processorClass)
     {
-        List&lt;AnnotationProcessor&gt; processorList = getProcessors(annotationClass);
+        List&lt;Class&lt;? extends AnnotationProcessor&gt;&gt; processorList = getProcessorClasses(annotationClass);
         if (processorList == null) {
-            processorList = new ArrayList&lt;AnnotationProcessor&gt;();
+            processorList = new ArrayList&lt;Class&lt;? extends AnnotationProcessor&gt;&gt;();
             processorLists.put(annotationClass, processorList);
         }
-        processorList.add(processor);
+        processorList.add(processorClass);
     }
 }
 

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
Thu Mar 22 14:38:31 2007
@@ -1,5 +1,6 @@
 package org.apache.hivemind.annotations.internal;
 
+import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.annotations.definition.Configuration;
 import org.apache.hivemind.annotations.definition.Contribution;
 import org.apache.hivemind.annotations.definition.Service;
@@ -12,14 +13,31 @@
 public class AnnotationProcessorRegistryFactory
 {
     
-    public static AnnotationProcessorRegistry createDefaultRegistry()
+    public AnnotationProcessorRegistryFactory()
+    {
+    }
+    
+    public AnnotationProcessorRegistry createDefaultRegistry(ClassResolver classResolver)
     {
         AnnotationProcessorRegistry result = new AnnotationProcessorRegistry();
-        result.registerProcessor(Service.class, new ServiceProcessor());
-        result.registerProcessor(Configuration.class, new ConfigurationProcessor());
-        result.registerProcessor(Contribution.class, new ContributionProcessor());
-        result.registerProcessor(Submodule.class, new SubmoduleProcessor());
+        loadExtensions(classResolver, result);
+        registerDefaultProcessors(result);
         return result;
     }
+
+    private void loadExtensions(ClassResolver classResolver, AnnotationProcessorRegistry
processorRegistry)
+    {
+        AnnotationsExtensionLoader extensionLoader = new AnnotationsExtensionLoader();
+        extensionLoader.loadExtensions(classResolver, processorRegistry);
+    }
+
+    private void registerDefaultProcessors(AnnotationProcessorRegistry processorRegistry)
+    {
+        processorRegistry.registerProcessor(Service.class, ServiceProcessor.class);
+        processorRegistry.registerProcessor(Configuration.class, ConfigurationProcessor.class);
+        processorRegistry.registerProcessor(Contribution.class, ContributionProcessor.class);
+        processorRegistry.registerProcessor(Submodule.class, SubmoduleProcessor.class);
+    }
+    
 }
 

Copied: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationsExtensionLoader.java
(from r514886, hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationsExtensionLoader.java?view=diff&amp;rev=521482&amp;p1=hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java&amp;r1=514886&amp;p2=hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationsExtensionLoader.java&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationsExtensionLoader.java
Thu Mar 22 14:38:31 2007
@@ -15,92 +15,89 @@
 package org.apache.hivemind.annotations.internal;
 
 import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.StringTokenizer;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.annotations.AnnotationsExtensionProvider;
 import org.apache.hivemind.annotations.AnnotationsMessages;
-import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
 import org.apache.hivemind.impl.ManifestReader;
 
 /**
+ * Loads all implementations of {@link AnnotationsExtensionProvider} that are defined
+ * in MANIFEST.MF files in the classpath.
+ * The providers get passed in a reference to {@link AnnotationProcessorRegistry} to which
+ * they can add {@link org.apache.hivemind.annotations.definition.processors.AnnotationProcessor}
classes.
+ * 
  * @author Achim Huegen
  */
-public class AnnotationExtensionLoader
+public class AnnotationsExtensionLoader
 {
-    private static final Log LOG = LogFactory.getLog(AnnotationExtensionLoader.class);
-    public static final String MANIFEST = "META-INF/MANIFEST.MF";
-    public static final String PROCESSOR_ATTRIBUTE_NAME = "annotation-definition-processors";
+    private static final Log LOG = LogFactory.getLog(AnnotationsExtensionLoader.class);
+    public static final String PROVIDER_ATTRIBUTE_NAME = "annotations-extension-providers";
 
-    private List _processors = new ArrayList();
-    
-    public AnnotationExtensionLoader(ClassResolver resolver)
+    public AnnotationsExtensionLoader()
     {
-        String[] processorValues = ManifestReader.getAttributeValues(resolver, PROCESSOR_ATTRIBUTE_NAME);
-        for (int i = 0; i &lt; processorValues.length; i++)
-        {
-            String processorValue = processorValues[i];
-            handleProcessorValue(resolver, processorValue);
-        }
     }
-    
-    /**
-     * @return  List with instances of {@link AnnotationProcessor}
-     */
-    public List getProcessors()
+   
+    public void loadExtensions(ClassResolver resolver, AnnotationProcessorRegistry annotationProcessorRegistry)
     {
-        return _processors;
+        String[] providerValues = ManifestReader.getAttributeValues(resolver, PROVIDER_ATTRIBUTE_NAME);
+        for (int i = 0; i &lt; providerValues.length; i++)
+        {
+            String providerValue = providerValues[i];
+            handleProviderValue(resolver, annotationProcessorRegistry, providerValue);
+        }
     }
 
     /**
-     * Parse the processor list in an attribute and load all classes.
+     * Parse the providers list in an attribute and load all classes.
      */
-    private void handleProcessorValue(ClassResolver resolver, String processors)
+    private void handleProviderValue(ClassResolver resolver, AnnotationProcessorRegistry
annotationProcessorRegistry, String providers)
     {
-        StringTokenizer tokenizer = new StringTokenizer(processors, ",");
+        StringTokenizer tokenizer = new StringTokenizer(providers, ",");
         while (tokenizer.hasMoreTokens())
         {   
-            String processorClassName = tokenizer.nextToken();
-            loadProcessor(resolver, processorClassName);
+            String providerClassName = tokenizer.nextToken();
+            loadProvider(resolver, annotationProcessorRegistry, providerClassName);
         }
     }
     
     /**
-     * Load a processor class and create an instance.
+     * Load a provider class and create an instance.
      * 
      * @param resolver
-     * @param processorClassName
+     * @param providerClassName
      */
-    private void loadProcessor(ClassResolver resolver, String processorClassName)
+    private void loadProvider(ClassResolver resolver, AnnotationProcessorRegistry annotationProcessorRegistry,
String providerClassName)
     {
         if (LOG.isDebugEnabled())
-            LOG.debug("Loading processor " + processorClassName);
-        Object processor = null;
+            LOG.debug("Loading provider " + providerClassName);
+        Object provider = null;
         try
         {
-            Class processorClass = resolver.findClass(processorClassName);
-            processor = processorClass.newInstance();
+            Class providerClass = resolver.findClass(providerClassName);
+            provider = providerClass.newInstance();
         }
         catch (Exception e)
         {
-            Exception cause = e;
+            Throwable cause = e;
             if (e instanceof InvocationTargetException)
             {
-                cause = (InvocationTargetException) e;
+                cause = ((InvocationTargetException) e).getTargetException();
             }
-            throw new ApplicationRuntimeException(AnnotationsMessages.unableToCreateAnnotationProcessor(processorClassName,
e),
+            throw new ApplicationRuntimeException(AnnotationsMessages.unableToCreateAnnotationsExtensionProvider(providerClassName,
e),
                     cause);
         }
-        // Check type of processor
-        if (!(processor instanceof AnnotationProcessor)) {
-            throw new ApplicationRuntimeException(AnnotationsMessages.annotationProcessorWrongType(processorClassName,
AnnotationProcessor.class));
+        // Check type of provider
+        if (!(provider instanceof AnnotationsExtensionProvider)) {
+            throw new ApplicationRuntimeException(AnnotationsMessages.annotationsExtensionProviderWrongType(providerClassName,
AnnotationsExtensionProvider.class));
         }
         
-        _processors.add(processor);
+        // Let the provider register its processors
+        ((AnnotationsExtensionProvider) provider).registerAnnotationProcessors(annotationProcessorRegistry);
     }
 
 }

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
Thu Mar 22 14:38:31 2007
@@ -16,6 +16,7 @@
 
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.annotations.internal.AnnotatedModuleProcessor;
+import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistry;
 import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistryFactory;
 import org.apache.hivemind.definition.ModuleDefinition;
 import org.apache.hivemind.definition.RegistryDefinition;
@@ -54,10 +55,16 @@
         assertNotNull(registry.getModule("Test"));
     }
   
+    private AnnotationProcessorRegistry getAnnotationProcessorRegistry()
+    {
+        AnnotationProcessorRegistryFactory factory = new AnnotationProcessorRegistryFactory();
+        return factory.createDefaultRegistry(new DefaultClassResolver());
+    }
+    
     public void testModuleClassNotFinal()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver(), AnnotationProcessorRegistryFactory.createDefaultRegistry());
+                new DefaultClassResolver(), getAnnotationProcessorRegistry());
         try
         {
             processor.processModule(FinalModule.class);
@@ -71,7 +78,7 @@
     public void testModuleClassNotAbstract()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver(), AnnotationProcessorRegistryFactory.createDefaultRegistry());
+                new DefaultClassResolver(), getAnnotationProcessorRegistry());
         try
         {
             processor.processModule(AbstractModule.class);
@@ -85,7 +92,7 @@
     public void testModuleClassPublic()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver(), AnnotationProcessorRegistryFactory.createDefaultRegistry());
+                new DefaultClassResolver(), getAnnotationProcessorRegistry());
         try
         {
             processor.processModule(NotPublicModule.class);

Added: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/MappedClassLoader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/MappedClassLoader.java?view=auto&amp;rev=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/MappedClassLoader.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/MappedClassLoader.java
Thu Mar 22 14:38:31 2007
@@ -0,0 +1,44 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.io.IOException;
+import java.net.URL;
+import java.security.SecureClassLoader;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+public class MappedClassLoader extends SecureClassLoader
+{
+    private Map mappedResources = new HashMap();
+
+    public MappedClassLoader(ClassLoader parent)
+    {
+        super(parent);
+    }
+    
+    public void addResource(String visiblePath, String originalPath)
+    {
+        mappedResources.put(visiblePath, originalPath);
+    }
+
+    /**
+     * @see java.lang.ClassLoader#findResource(java.lang.String)
+     */
+    protected URL findResource(String name)
+    {
+        return super.findResource(name);
+    }
+
+    /**
+     * @see java.lang.ClassLoader#findResources(java.lang.String)
+     */
+    protected Enumeration findResources(String name) throws IOException
+    {
+        if (mappedResources.containsKey(name)) {
+            String originalName = (String) mappedResources.get(name);
+            return getParent().getResources(originalName);
+        } 
+        
+        return super.findResources(name);
+    }
+}

Added: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/TestCustomProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/TestCustomProcessor.java?view=auto&amp;rev=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/TestCustomProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/TestCustomProcessor.java
Thu Mar 22 14:38:31 2007
@@ -0,0 +1,21 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import junit.framework.TestCase;
+
+import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.annotations.internal.AnnotationsExtensionLoader;
+import org.apache.hivemind.impl.DefaultClassResolver;
+
+public class TestCustomProcessor extends TestCase
+{
+
+    public void testCustomProcessor()
+    {
+        MappedClassLoader classLoader = new MappedClassLoader(Thread.currentThread().getContextClassLoader());
+        classLoader.addResource("META-INF/MANIFEST.MF", TestCustomProcessor.class.getPackage().getName().replace('.',
'/') + "/custom-manifest.mf");
+        
+        ClassResolver classResolver = new DefaultClassResolver(classLoader);
+        AnnotationsExtensionLoader loader = new AnnotationsExtensionLoader();
+        loader.loadExtensions(classResolver, null);
+    }
+}

Added: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf?view=auto&amp;rev=521482
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
(added)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/definition/processors/custom-manifest.mf
Thu Mar 22 14:38:31 2007
@@ -0,0 +1 @@
+annotations-extension-providers: org.apache.hivemind.Test1

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java?view=diff&amp;rev=521482&amp;r1=521481&amp;r2=521482
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
Thu Mar 22 14:38:31 2007
@@ -90,10 +90,10 @@
         }
         catch (Exception e)
         {
-            Exception cause = e;
+            Throwable cause = e;
             if (e instanceof InvocationTargetException)
             {
-                cause = (InvocationTargetException) e;
+                cause = ((InvocationTargetException) e).getTargetException();
             }
             throw new ApplicationRuntimeException(ImplMessages.unableToCreateProvider(providerClassName,
e),
                     cause);




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r521481 - /hivemind/hivemind2/trunk/jmx/src/java/org/apache/hivemind/management/log4j/LogManagement.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070322213743.0A01E1A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070322213743-0A01E1A9838@eris-apache-org%3e</id>
<updated>2007-03-22T21:37:42Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar 22 14:37:42 2007
New Revision: 521481

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=521481
Log:
Javadoc bug fixed

Modified:
    hivemind/hivemind2/trunk/jmx/src/java/org/apache/hivemind/management/log4j/LogManagement.java

Modified: hivemind/hivemind2/trunk/jmx/src/java/org/apache/hivemind/management/log4j/LogManagement.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/jmx/src/java/org/apache/hivemind/management/log4j/LogManagement.java?view=diff&amp;rev=521481&amp;r1=521480&amp;r2=521481
==============================================================================
--- hivemind/hivemind2/trunk/jmx/src/java/org/apache/hivemind/management/log4j/LogManagement.java
(original)
+++ hivemind/hivemind2/trunk/jmx/src/java/org/apache/hivemind/management/log4j/LogManagement.java
Thu Mar 22 14:37:42 2007
@@ -31,7 +31,6 @@
      * 
      * @param loggerPattern
      *            Name of the logger
-     * @return ObjectName of created MBean
      */
     public void addLoggerMBean(String loggerPattern);
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r521478 - in /hivemind/hivemind2/trunk: annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleLocation.java framework/src/java/org/apache/hivemind/Location.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070322212646.CBF0B1A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070322212646-CBF0B1A9838@eris-apache-org%3e</id>
<updated>2007-03-22T21:26:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar 22 14:26:45 2007
New Revision: 521478

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=521478
Log:
Reintroduced Line and Column in Location for better backward compatibility

Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleLocation.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/Location.java

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleLocation.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleLocation.java?view=diff&amp;rev=521478&amp;r1=521477&amp;r2=521478
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleLocation.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleLocation.java
Thu Mar 22 14:26:45 2007
@@ -99,4 +99,20 @@
         return getPosition();
     }
 
+    /**
+     * @see org.apache.hivemind.Location#getColumnNumber()
+     */
+    public int getColumnNumber()
+    {
+        return -1;
+    }
+
+    /**
+     * @see org.apache.hivemind.Location#getLineNumber()
+     */
+    public int getLineNumber()
+    {
+        return -1;
+    }
+
  }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/Location.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/Location.java?view=diff&amp;rev=521478&amp;r1=521477&amp;r2=521478
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/Location.java (original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/Location.java Thu Mar
22 14:26:45 2007
@@ -31,8 +31,21 @@
     
     /**
      * A position inside the resource. The format of the position
-     * is implementation specific.
+     * is implementation specific. It should include linenumber and column
+     * if known.
      */
     public String getPosition();
+    
+    /**
+     * The line within the resource containing the location,
+     * or -1 if the line number is not known.
+     * 
+     */
+    public int getLineNumber();
+    
+    /**
+     * The column number, or -1 if not known.
+     */
+    public int getColumnNumber();
     
 }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r514893 - /hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070305223125.D0D401A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070305223125-D0D401A9838@eris-apache-org%3e</id>
<updated>2007-03-05T22:31:25Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Mon Mar  5 14:31:25 2007
New Revision: 514893

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=514893
Log:
Load annotation processors extensions defined in manifest

Modified:
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java?view=diff&amp;rev=514893&amp;r1=514892&amp;r2=514893
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
Mon Mar  5 14:31:25 2007
@@ -50,14 +50,16 @@
         {
             Manifest manifest = manifests[i];
             String value = getAttributeValue(manifest, attributeName);
-            results.add(value);
+            if (value != null) {
+                results.add(value);
+            }
         }
         return (String[]) results.toArray(new String[results.size()]);
     }
     
     /**
      * Searches a manifest for a attribute of the given name.
-     * @return  the attribute value
+     * @return  the attribute value or null if the attribute is not defined
      */
     private static String getAttributeValue(Manifest manifest, String attributeName)
     {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r514886 - in /hivemind/hivemind2/trunk: annotations/src/java/org/apache/hivemind/annotations/ annotations/src/java/org/apache/hivemind/annotations/internal/ annotations/src/test/org/apache/hivemind/annotations/ framework/src/java/org/apache...</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070305220948.59AD01A9838@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070305220948-59AD01A9838@eris-apache-org%3e</id>
<updated>2007-03-05T22:09:47Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Mon Mar  5 14:09:46 2007
New Revision: 514886

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=514886
Log:
Load annotation processors extensions defined in manifest

Added:
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplMessages.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplStrings.properties
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsMessages.java
Mon Mar  5 14:09:46 2007
@@ -60,5 +60,15 @@
         MethodSignature methodSig = new MethodSignature(method);
         return _formatter.format("annotated-method-protected-not-accessible", methodSig.toString());
     }
+    
+    public static String unableToCreateAnnotationProcessor(String processorClassName, Exception
cause)
+    {
+        return _formatter.format("unable-to-create-annotation-processor", processorClassName,
cause);
+    }
+
+    public static String annotationProcessorWrongType(String processorClassName, Class requiredInterface)
+    {
+        return _formatter.format("annotation-processor-wrong-type", processorClassName, requiredInterface.getName());
+    }
 
 }

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotationsStrings.properties
Mon Mar  5 14:09:46 2007
@@ -18,3 +18,5 @@
 annotated-method-has-invalid-modifiers=Method ''{0}'' used as {1} has invalid modifiers:
{2}
 annotated-method-protected-not-accessible=Method ''{0}'' is protected but not accessible
by HiveMind. If a SecurityManager is used then HiveMind must be allowed to call Method#setAccessible.
 
+unable-to-create-annotation-processor=Unable to create AnnotationProcessor of type {0}: {1}
+annotation-processor-wrong-type=AnnotationProcessor class {0} must implement interface {1}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
Mon Mar  5 14:09:46 2007
@@ -14,24 +14,18 @@
 
 package org.apache.hivemind.annotations.internal;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.List;
 import java.util.StringTokenizer;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.annotations.AnnotationsMessages;
 import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
-import org.apache.hivemind.util.IOUtils;
-import org.apache.hivemind.util.URLResource;
+import org.apache.hivemind.impl.ManifestReader;
 
 /**
  * @author Achim Huegen
@@ -40,119 +34,56 @@
 {
     private static final Log LOG = LogFactory.getLog(AnnotationExtensionLoader.class);
     public static final String MANIFEST = "META-INF/MANIFEST.MF";
-    public static final String HIVEMIND_SECTION_NAME = "hivemind";
     public static final String PROCESSOR_ATTRIBUTE_NAME = "annotation-definition-processors";
-    
-    private List _providers = new ArrayList();
+
+    private List _processors = new ArrayList();
     
     public AnnotationExtensionLoader(ClassResolver resolver)
     {
-        processManifestFiles(resolver);
-    }
-    
-    public List getProviders()
-    {
-        return _providers;
-    }
-    
-    /**
-     * Process all manifest files found in the classpath
-     * @param resolver  the ClassResolver to use for the search
-     */
-    private void processManifestFiles(ClassResolver resolver)
-    {
-        if (LOG.isDebugEnabled())
-            LOG.debug("Processing manifest files visible to " + resolver);
-
-        ClassLoader loader = resolver.getClassLoader();
-        Enumeration e = null;
-
-        try
+        String[] processorValues = ManifestReader.getAttributeValues(resolver, PROCESSOR_ATTRIBUTE_NAME);
+        for (int i = 0; i &lt; processorValues.length; i++)
         {
-            e = loader.getResources(MANIFEST);
+            String processorValue = processorValues[i];
+            handleProcessorValue(resolver, processorValue);
         }
-        catch (IOException ex)
-        {
-            throw new ApplicationRuntimeException(ImplMessages.unableToFindProviders(resolver,
ex),
-                    ex);
-        }
-
-        while (e.hasMoreElements())
-        {
-            URL descriptorURL = (URL) e.nextElement();
-
-            processManifestFile(resolver, new URLResource(descriptorURL));
-        }
-
     }
-
-
+    
     /**
-     * Process a single manifest file.
-     * 
-     * @param resolver
-     * @param resource  pointer to the manifest file
+     * @return  List with instances of {@link AnnotationProcessor}
      */
-    private void processManifestFile(ClassResolver resolver, URLResource resource)
+    public List getProcessors()
     {
-        URL url = resource.getResourceURL();
-        InputStream manifestStream = null;
-        Manifest manifest;
-        try
-        {
-            manifestStream = IOUtils.openStreamWithoutCaching(url);
-            manifest = new Manifest(manifestStream);
-        }
-        catch (IOException e)
-        {
-            throw new ApplicationRuntimeException(ImplMessages.unableToReadManifest(url,
e),
-                    e);
-        }
-        finally
-        {
-            IOUtils.close(manifestStream);
-        }
-        // Search for an entry that defines a provider class
-        Attributes attributes = manifest.getMainAttributes();
-        if (attributes != null) {
-            String providers = attributes.getValue(PROCESSOR_ATTRIBUTE_NAME);
-            if (providers != null) {
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("Found providers '" + providers + "' defined in manifest file
'" + url.toString() + "'");
-                }
-                handleProviderAttribute(resolver, providers);
-            }
-        }
+        return _processors;
     }
 
     /**
-     * Parse the provider list in an attribute and load all classes.
+     * Parse the processor list in an attribute and load all classes.
      */
-    private void handleProviderAttribute(ClassResolver resolver, String providers)
+    private void handleProcessorValue(ClassResolver resolver, String processors)
     {
-        StringTokenizer tokenizer = new StringTokenizer(providers, ",");
+        StringTokenizer tokenizer = new StringTokenizer(processors, ",");
         while (tokenizer.hasMoreTokens())
         {   
-            String providerClassName = tokenizer.nextToken();
-            loadProvider(resolver, providerClassName);
+            String processorClassName = tokenizer.nextToken();
+            loadProcessor(resolver, processorClassName);
         }
     }
     
     /**
-     * Load a provider class and create an instance.
+     * Load a processor class and create an instance.
      * 
      * @param resolver
-     * @param providerClassName
+     * @param processorClassName
      */
-    private void loadProvider(ClassResolver resolver, String providerClassName)
+    private void loadProcessor(ClassResolver resolver, String processorClassName)
     {
         if (LOG.isDebugEnabled())
-            LOG.debug("Loading provider " + providerClassName);
-        Object provider = null;
+            LOG.debug("Loading processor " + processorClassName);
+        Object processor = null;
         try
         {
-            Class providerClass = resolver.findClass(providerClassName);
-            provider = providerClass.newInstance();
+            Class processorClass = resolver.findClass(processorClassName);
+            processor = processorClass.newInstance();
         }
         catch (Exception e)
         {
@@ -161,15 +92,15 @@
             {
                 cause = (InvocationTargetException) e;
             }
-            throw new ApplicationRuntimeException(ImplMessages.unableToCreateProvider(providerClassName,
e),
+            throw new ApplicationRuntimeException(AnnotationsMessages.unableToCreateAnnotationProcessor(processorClassName,
e),
                     cause);
         }
-        // Check type of provider
-        if (!(provider instanceof AnnotationProcessor)) {
-            throw new ApplicationRuntimeException(ImplMessages.providerWrongType(providerClassName,
RegistryProvider.class));
+        // Check type of processor
+        if (!(processor instanceof AnnotationProcessor)) {
+            throw new ApplicationRuntimeException(AnnotationsMessages.annotationProcessorWrongType(processorClassName,
AnnotationProcessor.class));
         }
         
-        _providers.add(provider);
+        _processors.add(processor);
     }
 
-}
+}
\ No newline at end of file

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
Mon Mar  5 14:09:46 2007
@@ -16,6 +16,7 @@
 
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.annotations.internal.AnnotatedModuleProcessor;
+import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistryFactory;
 import org.apache.hivemind.definition.ModuleDefinition;
 import org.apache.hivemind.definition.RegistryDefinition;
 import org.apache.hivemind.definition.ServicePointDefinition;
@@ -56,7 +57,7 @@
     public void testModuleClassNotFinal()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver());
+                new DefaultClassResolver(), AnnotationProcessorRegistryFactory.createDefaultRegistry());
         try
         {
             processor.processModule(FinalModule.class);
@@ -70,7 +71,7 @@
     public void testModuleClassNotAbstract()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver());
+                new DefaultClassResolver(), AnnotationProcessorRegistryFactory.createDefaultRegistry());
         try
         {
             processor.processModule(AbstractModule.class);
@@ -84,7 +85,7 @@
     public void testModuleClassPublic()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver());
+                new DefaultClassResolver(), AnnotationProcessorRegistryFactory.createDefaultRegistry());
         try
         {
             processor.processModule(NotPublicModule.class);

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplMessages.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplMessages.java?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplMessages.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplMessages.java
Mon Mar  5 14:09:46 2007
@@ -100,6 +100,11 @@
         return _formatter.format("unable-to-parse", resource, cause);
     }
 
+    static String unableToFindManifests(ClassResolver resolver, Throwable cause)
+    {
+        return _formatter.format("unable-to-find-manifests", resolver, cause);
+    }
+
     static String unableToFindProviders(ClassResolver resolver, Throwable cause)
     {
         return _formatter.format("unable-to-find-providers", resolver, cause);

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplStrings.properties
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplStrings.properties?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplStrings.properties
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ImplStrings.properties
Mon Mar  5 14:09:46 2007
@@ -52,6 +52,7 @@
 unable-to-map-configuration=Unable to map the contributions to configuration point {0}. All
top-level schema elements must define a key attribute.
 unable-to-convert-type=Unable to convert type ''{0}'' to a Java class, either as is, or in
package {1}.
 
+unable-to-find-manifests=Unable to locate manifest files in {0}: {1}
 unable-to-find-providers=Unable to locate manifest files in {0}: {1}
 unable-to-read-manifest=Unable to read manifest file {0}: {1}
 unable-to-create-provider=Unable to create provider of type {0}: {1}

Added: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java?view=auto&amp;rev=514886
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
(added)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ManifestReader.java
Mon Mar  5 14:09:46 2007
@@ -0,0 +1,152 @@
+package org.apache.hivemind.impl;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.util.IOUtils;
+import org.apache.hivemind.util.URLResource;
+
+/**
+ * Reads Manifest-Files (META-INF/MANIFEST.MF) and searches them for certain attributes.
+ * The {@link Manifest} instances are cached between two calls for better performance.
+ * 
+ * @author Achim Huegen
+ */
+public class ManifestReader
+{
+    private static final Log LOG = LogFactory.getLog(ManifestReader.class);
+    private static final String MANIFEST = "META-INF/MANIFEST.MF";
+    public static final String HIVEMIND_SECTION_NAME = "hivemind";
+    
+    /**
+     * Caches loaded manifests keyed by the ClassLoader
+     */
+    private static Map MANIFEST_CACHE = new HashMap();
+
+    /**
+     * Searches all manifest files found in the classpath by a ClassResolver
+     * for a attribute whose name is specified by &lt;code&gt;attributeName&lt;/code&gt;.
+     * @param resolver
+     * @param attributeName 
+     * @return all found attribute values
+     */
+    public static String[] getAttributeValues(ClassResolver resolver, String attributeName)
+    {
+        Manifest[] manifests = getManifests(resolver);
+        List results = new ArrayList();
+        for (int i = 0; i &lt; manifests.length; i++)
+        {
+            Manifest manifest = manifests[i];
+            String value = getAttributeValue(manifest, attributeName);
+            results.add(value);
+        }
+        return (String[]) results.toArray(new String[results.size()]);
+    }
+    
+    /**
+     * Searches a manifest for a attribute of the given name.
+     * @return  the attribute value
+     */
+    private static String getAttributeValue(Manifest manifest, String attributeName)
+    {
+        String value = null;
+        // Search for an entry 
+        Attributes attributes = manifest.getMainAttributes();
+        if (attributes != null) {
+            value = attributes.getValue(attributeName);
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("Found attribute '" + attributeName + "' with value '" + value

+                        + "' defined in manifest file'");
+            }
+        }
+        return value;
+    }
+    
+    private static Manifest[] getManifests(ClassResolver resolver)
+    {
+        // Try to load manifests from static cache
+        Manifest[] manifests = (Manifest[]) MANIFEST_CACHE.get(resolver.getClassLoader());
+        if (manifests == null) {
+            manifests = loadManifestFiles(resolver);
+            MANIFEST_CACHE.put(resolver.getClassLoader(), manifests);
+        }
+        return manifests;
+    }
+    
+    
+    /**
+     * Loads all manifest files found in the classpath
+     * @param resolver  the ClassResolver to use for the search
+     * @return an empty array if none have been found.
+     */
+    private static Manifest[] loadManifestFiles(ClassResolver resolver)
+    {
+        if (LOG.isDebugEnabled())
+            LOG.debug("Processing manifest files visible to " + resolver);
+
+        ClassLoader loader = resolver.getClassLoader();
+        Enumeration e = null;
+
+        try
+        {
+            e = loader.getResources(MANIFEST);
+        }
+        catch (IOException ex)
+        {
+            throw new ApplicationRuntimeException(ImplMessages.unableToFindManifests(resolver,
ex),
+                    ex);
+        }
+
+        List result = new ArrayList();
+        while (e.hasMoreElements())
+        {
+            URL descriptorURL = (URL) e.nextElement();
+
+            Manifest manifest = loadManifestFile(resolver, new URLResource(descriptorURL));
+            result.add(manifest);
+        }
+        return (Manifest[]) result.toArray(new Manifest[result.size()]);
+    }
+
+    /**
+     * Loads a single manifest file.
+     * 
+     * @param resolver
+     * @param resource  pointer to the manifest file
+     */
+    private static Manifest loadManifestFile(ClassResolver resolver, URLResource resource)
+    {
+        URL url = resource.getResourceURL();
+        InputStream manifestStream = null;
+        Manifest manifest;
+        try
+        {
+            manifestStream = IOUtils.openStreamWithoutCaching(url);
+            manifest = new Manifest(manifestStream);
+        }
+        catch (IOException e)
+        {
+            throw new ApplicationRuntimeException(ImplMessages.unableToReadManifest(url,
e),
+                    e);
+        }
+        finally
+        {
+            IOUtils.close(manifestStream);
+        }
+        return manifest;
+    }
+
+
+}

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java?view=diff&amp;rev=514886&amp;r1=514885&amp;r2=514886
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
Mon Mar  5 14:09:46 2007
@@ -14,23 +14,15 @@
 
 package org.apache.hivemind.impl;
 
-import java.io.IOException;
-import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.List;
 import java.util.StringTokenizer;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
-import org.apache.hivemind.util.IOUtils;
-import org.apache.hivemind.util.URLResource;
 
 /**
  * Searches for {@link org.apache.hivemind.impl.RegistryProvider} implementations
@@ -45,96 +37,32 @@
 public class RegistryProviderAutoDetector
 {
     private static final Log LOG = LogFactory.getLog(RegistryProviderAutoDetector.class);
-    public static final String MANIFEST = "META-INF/MANIFEST.MF";
-    public static final String HIVEMIND_SECTION_NAME = "hivemind";
     public static final String PROVIDER_ATTRIBUTE_NAME = "hivemind-providers";
     
     private List _providers = new ArrayList();
     
     public RegistryProviderAutoDetector(ClassResolver resolver)
     {
-        processManifestFiles(resolver);
-    }
-    
-    public List getProviders()
-    {
-        return _providers;
-    }
-    
-    /**
-     * Process all manifest files found in the classpath
-     * @param resolver  the ClassResolver to use for the search
-     */
-    private void processManifestFiles(ClassResolver resolver)
-    {
-        if (LOG.isDebugEnabled())
-            LOG.debug("Processing manifest files visible to " + resolver);
-
-        ClassLoader loader = resolver.getClassLoader();
-        Enumeration e = null;
-
-        try
+        String[] providerValues = ManifestReader.getAttributeValues(resolver, PROVIDER_ATTRIBUTE_NAME);
+        for (int i = 0; i &lt; providerValues.length; i++)
         {
-            e = loader.getResources(MANIFEST);
+            String providerValue = providerValues[i];
+            handleProviderValue(resolver, providerValue);
         }
-        catch (IOException ex)
-        {
-            throw new ApplicationRuntimeException(ImplMessages.unableToFindProviders(resolver,
ex),
-                    ex);
-        }
-
-        while (e.hasMoreElements())
-        {
-            URL descriptorURL = (URL) e.nextElement();
-
-            processManifestFile(resolver, new URLResource(descriptorURL));
-        }
-
     }
-
-
+    
     /**
-     * Process a single manifest file.
-     * 
-     * @param resolver
-     * @param resource  pointer to the manifest file
+     * @return  list with instances of {@link RegistryProvider}
      */
-    private void processManifestFile(ClassResolver resolver, URLResource resource)
+    public List getProviders()
     {
-        URL url = resource.getResourceURL();
-        InputStream manifestStream = null;
-        Manifest manifest;
-        try
-        {
-            manifestStream = IOUtils.openStreamWithoutCaching(url);
-            manifest = new Manifest(manifestStream);
-        }
-        catch (IOException e)
-        {
-            throw new ApplicationRuntimeException(ImplMessages.unableToReadManifest(url,
e),
-                    e);
-        }
-        finally
-        {
-            IOUtils.close(manifestStream);
-        }
-        // Search for an entry that defines a provider class
-        Attributes attributes = manifest.getMainAttributes();
-        if (attributes != null) {
-            String providers = attributes.getValue(PROVIDER_ATTRIBUTE_NAME);
-            if (providers != null) {
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("Found providers '" + providers + "' defined in manifest file
'" + url.toString() + "'");
-                }
-                handleProviderAttribute(resolver, providers);
-            }
-        }
+        return _providers;
     }
 
     /**
      * Parse the provider list in an attribute and load all classes.
      */
-    private void handleProviderAttribute(ClassResolver resolver, String providers)
+    private void handleProviderValue(ClassResolver resolver, String providers)
     {
         StringTokenizer tokenizer = new StringTokenizer(providers, ",");
         while (tokenizer.hasMoreTokens())




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r514579 - in /hivemind/hivemind2/trunk/annotations/src: java/org/apache/hivemind/annotations/ java/org/apache/hivemind/annotations/definition/processors/ java/org/apache/hivemind/annotations/internal/ test/org/apache/hivemind/annotations/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070305070104.8C44F1A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070305070104-8C44F1A981D@eris-apache-org%3e</id>
<updated>2007-03-05T07:01:04Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Mar  4 23:01:03 2007
New Revision: 514579

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=514579
Log:
More annotation processors

Added:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ConfigurationProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ContributionProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/SubmoduleProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedRegistryBuilder.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/AnnotationTestCase.java
    hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedModuleReader.java
Sun Mar  4 23:01:03 2007
@@ -18,15 +18,13 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
-import org.apache.hivemind.ErrorHandler;
-import org.apache.hivemind.HiveMind;
 import org.apache.hivemind.annotations.internal.AnnotatedModuleProcessor;
+import org.apache.hivemind.annotations.internal.AnnotationProcessorRegistryFactory;
 import org.apache.hivemind.definition.RegistryDefinition;
 import org.apache.hivemind.impl.DefaultClassResolver;
-import org.apache.hivemind.impl.DefaultErrorHandler;
 
 /**
- * Reads a annotated hivemind module into a {@link RegistryDefinition}. Thus
+ * Reads an annotated hivemind module into a {@link RegistryDefinition}. Thus
  * the defined services configurations and contributions are added to the
  * registry.
  * The class delegates the work to {@link AnnotatedModuleProcessor}
@@ -39,10 +37,6 @@
 
     private RegistryDefinition _registryDefinition;
 
-    private AnnotatedModuleProcessor _processor;
-
-    private ErrorHandler _errorHandler;
-
     private ClassResolver _classResolver;
 
     /**
@@ -50,22 +44,18 @@
      */
     public AnnotatedModuleReader(RegistryDefinition registryDefinition)
     {
-        this(registryDefinition, new DefaultClassResolver(), new DefaultErrorHandler());
+        this(registryDefinition, new DefaultClassResolver());
     }
 
     /**
      * @param registryDefinition  the registry definition to which the modules are added.
      * @param classResolver  the {@link ClassResolver} used to resolve all classes referenced
from 
      *          elements inside this module.
-     * @param errorHandler  errorHandler used for handling recoverable errors
      */
-    public AnnotatedModuleReader(RegistryDefinition registryDefinition, ClassResolver classResolver,
-            ErrorHandler errorHandler)
+    public AnnotatedModuleReader(RegistryDefinition registryDefinition, ClassResolver classResolver)
     {
         _registryDefinition = registryDefinition;
         _classResolver = classResolver;
-        _errorHandler = errorHandler;
-        _processor = new AnnotatedModuleProcessor(_registryDefinition, _classResolver, _errorHandler);
     }
 
     /**
@@ -87,13 +77,18 @@
      */
     public void readModule(Class moduleClass)
     {
+        AnnotatedModuleProcessor _processor = new AnnotatedModuleProcessor(
+                _registryDefinition, _classResolver, 
+                AnnotationProcessorRegistryFactory.createDefaultRegistry());
         try
         {
             _processor.processModule(moduleClass);
         }
         catch (RuntimeException ex)
         {
-            _errorHandler.error(LOG, ex.getMessage(), HiveMind.getLocation(ex), ex);
+            // TODO: Improve exception handling
+            throw ex;
+//            _errorHandler.error(LOG, ex.getMessage(), HiveMind.getLocation(ex), ex);
         }
     }
     

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedRegistryBuilder.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedRegistryBuilder.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedRegistryBuilder.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AnnotatedRegistryBuilder.java
Sun Mar  4 23:01:03 2007
@@ -91,7 +91,7 @@
         for (int i = 0; i &lt; moduleClassNames.length; i++)
         {
             AnnotatedModuleReader reader = new AnnotatedModuleReader(definition,
-                    _classResolver, _errorHandler);
+                    _classResolver);
             reader.readModule(moduleClassNames[i]);
         }
 
@@ -105,7 +105,7 @@
         for (int i = 0; i &lt; moduleClasses.length; i++)
         {
             AnnotatedModuleReader reader = new AnnotatedModuleReader(definition,
-                    _classResolver, _errorHandler);
+                    _classResolver);
             reader.readModule(moduleClasses[i]);
         }
 

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
Sun Mar  4 23:01:03 2007
@@ -3,8 +3,10 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
 
+import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.Location;
 import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.AnnotatedModuleProcessor;
 import org.apache.hivemind.annotations.internal.ModuleInstanceProvider;
 
 public interface AnnotationProcessingContext
@@ -15,4 +17,6 @@
     public Location getLocation();
     public AnnotatedModuleDefinitionImpl getModule(); 
     public ModuleInstanceProvider getModuleInstanceProvider();
+    public ClassResolver getClassResolver();
+    public AnnotatedModuleProcessor createSubmoduleProcessor();
 }

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
Sun Mar  4 23:01:03 2007
@@ -2,6 +2,12 @@
 
 import org.apache.hivemind.ApplicationRuntimeException;
 
+/**
+ * The same instance is used for all annotations of one kind which are loaded
+ * by the same AnnotatedModuleProcessor or AnnotatedModuleReader.
+ * 
+ * @author Achim Huegen
+ */
 public interface AnnotationProcessor
 {
     /**

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ConfigurationProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ConfigurationProcessor.java?view=auto&amp;rev=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ConfigurationProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ConfigurationProcessor.java
Sun Mar  4 23:01:03 2007
@@ -0,0 +1,57 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.annotations.definition.Configuration;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.CheckTools;
+import org.apache.hivemind.annotations.internal.MethodCallContributionConstructor;
+import org.apache.hivemind.definition.Contribution;
+import org.apache.hivemind.definition.Occurances;
+import org.apache.hivemind.definition.Visibility;
+import org.apache.hivemind.definition.impl.ConfigurationPointDefinitionImpl;
+import org.apache.hivemind.definition.impl.ContributionDefinitionImpl;
+
+public class ConfigurationProcessor implements AnnotationProcessor
+{
+    private static final Log _log = LogFactory.getLog(ConfigurationProcessor.class);
+
+    /**
+     * @see org.apache.hivemind.annotations.definition.processors.AnnotationProcessor#processAnnotation(org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext)
+     */
+    public boolean processAnnotation(AnnotationProcessingContext context)
+    {
+        Method method = (Method) context.getAnnotatedElement();
+        AnnotatedModuleDefinitionImpl module = context.getModule();
+        Configuration configurationAnnotation = (Configuration) context.getTargetAnnotation();

+        
+        CheckTools.checkMethodModifiers(method, 0, "configuration point");
+        
+        if (_log.isDebugEnabled())
+        {
+            _log.debug("Method " + method.getName() + "classified as configuration point.");
+        }
+        
+        Visibility visibility = Visibility.PUBLIC;
+        if (Modifier.isProtected(method.getModifiers())) {
+            visibility = Visibility.PRIVATE;
+        }
+        
+        ConfigurationPointDefinitionImpl cpd = new ConfigurationPointDefinitionImpl(module,
configurationAnnotation.id(), 
+                context.getLocation(), visibility, method.getReturnType().getName(), Occurances.UNBOUNDED,
+                false);
+        module.addConfigurationPoint(cpd);
+        
+        // Add method implementation as initial contribution
+        Contribution contribution = new MethodCallContributionConstructor(
+                context.getLocation(), method, context.getModuleInstanceProvider());
+        ContributionDefinitionImpl cd = new ContributionDefinitionImpl(module, context.getLocation(),
contribution, true);
+        cpd.addContribution(cd);
+
+        return true;
+    }
+
+}

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ContributionProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ContributionProcessor.java?view=auto&amp;rev=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ContributionProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ContributionProcessor.java
Sun Mar  4 23:01:03 2007
@@ -0,0 +1,46 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.lang.reflect.Method;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.annotations.definition.Contribution;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.CheckTools;
+import org.apache.hivemind.annotations.internal.MethodCallContributionConstructor;
+import org.apache.hivemind.definition.impl.ContributionDefinitionImpl;
+import org.apache.hivemind.util.IdUtils;
+
+public class ContributionProcessor implements AnnotationProcessor
+{
+    private static final Log _log = LogFactory.getLog(ContributionProcessor.class);
+
+    /**
+     * @see org.apache.hivemind.annotations.definition.processors.AnnotationProcessor#processAnnotation(org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext)
+     */
+    public boolean processAnnotation(AnnotationProcessingContext context)
+    {
+        Method method = (Method) context.getAnnotatedElement();
+        AnnotatedModuleDefinitionImpl module = context.getModule();
+        Contribution contributionAnnotation = (Contribution) context.getTargetAnnotation();

+        
+        CheckTools.checkMethodModifiers(method, 0, "contribution");
+        
+        if (_log.isDebugEnabled())
+        {
+            _log.debug("Method " + method.getName() + "classified as contribution.");
+        }
+        
+        org.apache.hivemind.definition.Contribution constructor = new MethodCallContributionConstructor(
+                context.getLocation(), method, context.getModuleInstanceProvider());
+
+        ContributionDefinitionImpl cd = new ContributionDefinitionImpl(module, context.getLocation(),
constructor, false);
+        String qualifiedConfigurationId = IdUtils.qualify(
+                module.getId(),
+                contributionAnnotation.configurationId());
+        module.addContribution(qualifiedConfigurationId, cd);
+
+        return true;
+    }
+
+}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
Sun Mar  4 23:01:03 2007
@@ -5,10 +5,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hivemind.Location;
 import org.apache.hivemind.annotations.definition.Service;
 import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
-import org.apache.hivemind.annotations.internal.AnnotatedModuleLocation;
 import org.apache.hivemind.annotations.internal.CheckTools;
 import org.apache.hivemind.annotations.internal.MethodCallImplementationConstructor;
 import org.apache.hivemind.definition.ImplementationConstructor;

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/SubmoduleProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/SubmoduleProcessor.java?view=auto&amp;rev=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/SubmoduleProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/SubmoduleProcessor.java
Sun Mar  4 23:01:03 2007
@@ -0,0 +1,43 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.lang.reflect.Method;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.annotations.definition.Submodule;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.AnnotatedModuleProcessor;
+import org.apache.hivemind.annotations.internal.CheckTools;
+import org.apache.hivemind.util.IdUtils;
+
+public class SubmoduleProcessor implements AnnotationProcessor
+{
+    private static final Log _log = LogFactory.getLog(SubmoduleProcessor.class);
+
+    /**
+     * @see org.apache.hivemind.annotations.definition.processors.AnnotationProcessor#processAnnotation(org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext)
+     */
+    public boolean processAnnotation(AnnotationProcessingContext context)
+    {
+        Method method = (Method) context.getAnnotatedElement();
+        AnnotatedModuleDefinitionImpl module = context.getModule();
+        Submodule submoduleAnnotation = (Submodule) context.getTargetAnnotation(); 
+        
+        CheckTools.checkMethodModifiers(method, 0, "submodule");
+        
+        if (_log.isDebugEnabled())
+        {
+            _log.debug("Method " + method.getName() + "classified as submodule.");
+        }
+        
+        String fullModuleId = IdUtils.qualify(
+                module.getId(),
+                submoduleAnnotation.id());
+        // TODO: Check if return type is defined
+        AnnotatedModuleProcessor submoduleProcessor = context.createSubmoduleProcessor();
+        submoduleProcessor.processModule(method.getReturnType(), fullModuleId);
+
+        return true;
+    }
+
+}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
Sun Mar  4 23:01:03 2007
@@ -23,35 +23,27 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
-import org.apache.hivemind.ErrorHandler;
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.hivemind.annotations.AnnotationsMessages;
-import org.apache.hivemind.annotations.definition.Configuration;
 import org.apache.hivemind.annotations.definition.Module;
-import org.apache.hivemind.annotations.definition.Service;
-import org.apache.hivemind.annotations.definition.Submodule;
 import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
 import org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext;
 import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
-import org.apache.hivemind.annotations.definition.processors.ServiceProcessor;
-import org.apache.hivemind.definition.Contribution;
-import org.apache.hivemind.definition.ImplementationConstructor;
-import org.apache.hivemind.definition.ImplementationDefinition;
-import org.apache.hivemind.definition.Occurances;
 import org.apache.hivemind.definition.RegistryDefinition;
-import org.apache.hivemind.definition.Visibility;
-import org.apache.hivemind.definition.impl.ConfigurationPointDefinitionImpl;
-import org.apache.hivemind.definition.impl.ContributionDefinitionImpl;
-import org.apache.hivemind.definition.impl.ImplementationDefinitionImpl;
-import org.apache.hivemind.definition.impl.ServicePointDefinitionImpl;
 import org.apache.hivemind.util.ClasspathResource;
-import org.apache.hivemind.util.IdUtils;
 
 /**
- * Does the work for {@link org.apache.hivemind.annotations.AnnotatedModuleReader}. Processes
an
- * annotated class and registers the defined extension and extension points in a registry
- * definition.
+ * Does the work for {@link org.apache.hivemind.annotations.AnnotatedModuleReader}. 
+ * Processes an annotated class and registers the defined extension and extension points

+ * in a registry definition. For each module class a new instance of this processor is created.
+ * 
+ * The processor iterates over the methods of the module class and their annotations.
+ * Annotations defined in ancestors are included too.
+ * For each found annotation a list of registered processors for the annotation type 
+ * is requested from the associated {@link AnnotationProcessorRegistry}. 
+ * The processors are called and can contribute to the module definition.
+ * 
  * The construction of extension points and extensions bases on reflective method calls
  * to an instance of the module class. The module instance is created by a 
  * {@link ModuleInstanceProvider} during registry construction. 
@@ -64,19 +56,16 @@
 
     private ClassResolver _classResolver;
 
-    private ErrorHandler _errorHandler;
-
     private RegistryDefinition _registryDefinition;
     
     private AnnotationProcessorRegistry _annotationProcessorRegistry;
 
     public AnnotatedModuleProcessor(RegistryDefinition registryDefinition,
-            ClassResolver classResolver, ErrorHandler errorHandler)
+            ClassResolver classResolver, AnnotationProcessorRegistry annotationProcessorRegistry)
     {
         _registryDefinition = registryDefinition;
         _classResolver = classResolver;
-        _errorHandler = errorHandler;
-        _annotationProcessorRegistry = createAnnotationProcessorRegistry();
+        _annotationProcessorRegistry = annotationProcessorRegistry;
     }
     
     public void processModule(Class moduleClass)
@@ -110,13 +99,6 @@
 
     }
     
-    private AnnotationProcessorRegistry createAnnotationProcessorRegistry()
-    {
-        AnnotationProcessorRegistry result = new AnnotationProcessorRegistry();
-        result.registerProcessor(Service.class, new ServiceProcessor());
-        return result;
-    }
-    
     /**
      * Ensures that a module class fulfills all prerequisites.
      * 
@@ -172,160 +154,22 @@
             Location location = new AnnotatedModuleLocation(module.getLocation().getResource(),

                     method.getDeclaringClass(), method);
 
-            AnnotationProcessingContext context = new AnnotationProcessingContextImpl(module,
-                    annotation, method, location, instanceProvider);
+            AnnotationProcessingContext context = new AnnotationProcessingContextImpl(
+                    _registryDefinition, module, _classResolver,
+                    annotation, method, location, instanceProvider,
+                    _annotationProcessorRegistry);
             
-            List&lt;AnnotationProcessor&gt; processors = _annotationProcessorRegistry.getProcessors(annotation.getClass());
+            List&lt;AnnotationProcessor&gt; processors = _annotationProcessorRegistry.getProcessors(annotation.annotationType());
             if (processors != null) {
                 for (AnnotationProcessor processor : processors)
                 {
-                    processor.processAnnotation(null);
+                    processor.processAnnotation(context);
                 }
             }
-            
-            if (Service.class.equals(annotation.annotationType()))
-            {
-                processAnnotatedServiceMethod(
-                        method,
-                        (Service) annotation,
-                        module,
-                        instanceProvider);
-            }
-            else if (Configuration.class.equals(annotation.annotationType()))
-            {
-                processAnnotatedConfigurationMethod(
-                        method,
-                        (Configuration) annotation,
-                        module,
-                        instanceProvider);
-            }
-            else if (org.apache.hivemind.annotations.definition.Contribution.class.equals(annotation.annotationType()))
-            {
-                processAnnotatedContributionMethod(
-                        method,
-                        (org.apache.hivemind.annotations.definition.Contribution) annotation,
-                        module,
-                        instanceProvider);
-            }
-            else if (Submodule.class.equals(annotation.annotationType()))
-            {
-                processAnnotatedSubmoduleMethod(
-                        method,
-                        (Submodule) annotation,
-                        module,
-                        instanceProvider);
-            }
-        }
-
-    }
-    
-
-    private void processAnnotatedServiceMethod(Method method, Service service,
-            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
-    {
-        CheckTools.checkMethodModifiers(method, 0, "service point");
-        
-        if (_log.isDebugEnabled())
-        {
-            _log.debug("Method " + method.getName() + "classified as service point.");
-        }
-        
-        Location location = new AnnotatedModuleLocation(module.getLocation().getResource(),

-                method.getDeclaringClass(), method);
-
-        Visibility visibility = Visibility.PUBLIC;
-        if (Modifier.isProtected(method.getModifiers())) {
-            visibility = Visibility.PRIVATE;
-        }
-        ServicePointDefinitionImpl spd = new ServicePointDefinitionImpl(module, service.id(),
location, 
-                visibility, method.getReturnType().getName());
-        module.addServicePoint(spd);
-
-        ImplementationConstructor constructor = new MethodCallImplementationConstructor(location,

-                method, instanceProvider);
-
-        ImplementationDefinition sid = new ImplementationDefinitionImpl(module, location,

-                constructor, service.serviceModel(), true);
-
-        spd.addImplementation(sid);
-
-    }
-
-    private void processAnnotatedConfigurationMethod(Method method, Configuration configuration,

-            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
-    {
-        CheckTools.checkMethodModifiers(method, 0, "configuration point");
-
-        if (_log.isDebugEnabled())
-        {
-            _log.debug("Method " + method.getName() + "classified as configuration point.");
-        }
-        
-        Location location = new AnnotatedModuleLocation(module.getLocation().getResource(),

-                method.getDeclaringClass(), method);
-        
-        Visibility visibility = Visibility.PUBLIC;
-        if (Modifier.isProtected(method.getModifiers())) {
-            visibility = Visibility.PRIVATE;
         }
-        ConfigurationPointDefinitionImpl cpd = new ConfigurationPointDefinitionImpl(module,
configuration.id(), 
-                location, visibility, method.getReturnType().getName(), Occurances.UNBOUNDED,
-                false);
-        module.addConfigurationPoint(cpd);
-        
-        // Add method implementation as initial contribution
-        Contribution contribution = new MethodCallContributionConstructor(
-                location, method, instanceProvider);
-        ContributionDefinitionImpl cd = new ContributionDefinitionImpl(module, location,
contribution, true);
-        cpd.addContribution(cd);
-    }
-
-    private void processAnnotatedContributionMethod(Method method, org.apache.hivemind.annotations.definition.Contribution
contribution, 
-            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
-    {
-        CheckTools.checkMethodModifiers(method, 0, "contribution");
-
-        if (_log.isDebugEnabled())
-        {
-            _log.debug("Method " + method.getName() + "classified as contribution.");
-        }
-        
-        Location location = new AnnotatedModuleLocation(module.getLocation().getResource(),

-                method.getDeclaringClass(), method);
-        
-        Contribution constructor = new MethodCallContributionConstructor(
-                location, method, instanceProvider);
-
-        ContributionDefinitionImpl cd = new ContributionDefinitionImpl(module, location,
constructor, false);
-        String qualifiedConfigurationId = IdUtils.qualify(
-                module.getId(),
-                contribution.configurationId());
-        module.addContribution(qualifiedConfigurationId, cd);
 
     }
-    
-    /**
-     * Processes a method that is marked as submodule definition.
-     */
-    private void processAnnotatedSubmoduleMethod(Method method, Submodule submodule, 
-            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
-    {
-        CheckTools.checkMethodModifiers(method, 0, "submodule");
 
-        if (_log.isDebugEnabled())
-        {
-            _log.debug("Method " + method.getName() + "classified as submodule.");
-        }
-        
-        String fullModuleId = IdUtils.qualify(
-                module.getId(),
-                submodule.id());
-        // TODO: Check if return type is defined
-        AnnotatedModuleProcessor submoduleProcessor = new AnnotatedModuleProcessor(_registryDefinition,
-                _classResolver, _errorHandler);
-        submoduleProcessor.processModule(method.getReturnType(), fullModuleId);
-    }
-    
     /**
      * Creates a location pointing at the module class. 
      */

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java?view=auto&amp;rev=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationExtensionLoader.java
Sun Mar  4 23:01:03 2007
@@ -0,0 +1,175 @@
+// Copyright 2007 The 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.hivemind.annotations.internal;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
+import org.apache.hivemind.util.IOUtils;
+import org.apache.hivemind.util.URLResource;
+
+/**
+ * @author Achim Huegen
+ */
+public class AnnotationExtensionLoader
+{
+    private static final Log LOG = LogFactory.getLog(AnnotationExtensionLoader.class);
+    public static final String MANIFEST = "META-INF/MANIFEST.MF";
+    public static final String HIVEMIND_SECTION_NAME = "hivemind";
+    public static final String PROCESSOR_ATTRIBUTE_NAME = "annotation-definition-processors";
+    
+    private List _providers = new ArrayList();
+    
+    public AnnotationExtensionLoader(ClassResolver resolver)
+    {
+        processManifestFiles(resolver);
+    }
+    
+    public List getProviders()
+    {
+        return _providers;
+    }
+    
+    /**
+     * Process all manifest files found in the classpath
+     * @param resolver  the ClassResolver to use for the search
+     */
+    private void processManifestFiles(ClassResolver resolver)
+    {
+        if (LOG.isDebugEnabled())
+            LOG.debug("Processing manifest files visible to " + resolver);
+
+        ClassLoader loader = resolver.getClassLoader();
+        Enumeration e = null;
+
+        try
+        {
+            e = loader.getResources(MANIFEST);
+        }
+        catch (IOException ex)
+        {
+            throw new ApplicationRuntimeException(ImplMessages.unableToFindProviders(resolver,
ex),
+                    ex);
+        }
+
+        while (e.hasMoreElements())
+        {
+            URL descriptorURL = (URL) e.nextElement();
+
+            processManifestFile(resolver, new URLResource(descriptorURL));
+        }
+
+    }
+
+
+    /**
+     * Process a single manifest file.
+     * 
+     * @param resolver
+     * @param resource  pointer to the manifest file
+     */
+    private void processManifestFile(ClassResolver resolver, URLResource resource)
+    {
+        URL url = resource.getResourceURL();
+        InputStream manifestStream = null;
+        Manifest manifest;
+        try
+        {
+            manifestStream = IOUtils.openStreamWithoutCaching(url);
+            manifest = new Manifest(manifestStream);
+        }
+        catch (IOException e)
+        {
+            throw new ApplicationRuntimeException(ImplMessages.unableToReadManifest(url,
e),
+                    e);
+        }
+        finally
+        {
+            IOUtils.close(manifestStream);
+        }
+        // Search for an entry that defines a provider class
+        Attributes attributes = manifest.getMainAttributes();
+        if (attributes != null) {
+            String providers = attributes.getValue(PROCESSOR_ATTRIBUTE_NAME);
+            if (providers != null) {
+                if (LOG.isDebugEnabled()) {
+                    LOG.debug("Found providers '" + providers + "' defined in manifest file
'" + url.toString() + "'");
+                }
+                handleProviderAttribute(resolver, providers);
+            }
+        }
+    }
+
+    /**
+     * Parse the provider list in an attribute and load all classes.
+     */
+    private void handleProviderAttribute(ClassResolver resolver, String providers)
+    {
+        StringTokenizer tokenizer = new StringTokenizer(providers, ",");
+        while (tokenizer.hasMoreTokens())
+        {   
+            String providerClassName = tokenizer.nextToken();
+            loadProvider(resolver, providerClassName);
+        }
+    }
+    
+    /**
+     * Load a provider class and create an instance.
+     * 
+     * @param resolver
+     * @param providerClassName
+     */
+    private void loadProvider(ClassResolver resolver, String providerClassName)
+    {
+        if (LOG.isDebugEnabled())
+            LOG.debug("Loading provider " + providerClassName);
+        Object provider = null;
+        try
+        {
+            Class providerClass = resolver.findClass(providerClassName);
+            provider = providerClass.newInstance();
+        }
+        catch (Exception e)
+        {
+            Exception cause = e;
+            if (e instanceof InvocationTargetException)
+            {
+                cause = (InvocationTargetException) e;
+            }
+            throw new ApplicationRuntimeException(ImplMessages.unableToCreateProvider(providerClassName,
e),
+                    cause);
+        }
+        // Check type of provider
+        if (!(provider instanceof AnnotationProcessor)) {
+            throw new ApplicationRuntimeException(ImplMessages.providerWrongType(providerClassName,
RegistryProvider.class));
+        }
+        
+        _providers.add(provider);
+    }
+
+}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
Sun Mar  4 23:01:03 2007
@@ -3,9 +3,11 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
 
+import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.Location;
 import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
 import org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext;
+import org.apache.hivemind.definition.RegistryDefinition;
 
 public class AnnotationProcessingContextImpl implements AnnotationProcessingContext
 {
@@ -14,15 +16,26 @@
     private AnnotatedModuleDefinitionImpl _module;
     private ModuleInstanceProvider _moduleInstanceProvider;
     private Annotation _targetAnnotation;
-
-    public AnnotationProcessingContextImpl(AnnotatedModuleDefinitionImpl module, Annotation
targetAnnotation, AnnotatedElement annotatedElement, Location location, ModuleInstanceProvider
moduleInstanceProvider)
+    private RegistryDefinition _registryDefinition;
+    private ClassResolver _classResolver;
+    private AnnotationProcessorRegistry _annotationProcessorRegistry;
+    
+    public AnnotationProcessingContextImpl(
+            RegistryDefinition registryDefinition, AnnotatedModuleDefinitionImpl module,
+            ClassResolver classResolver,
+            Annotation targetAnnotation, AnnotatedElement annotatedElement, 
+            Location location, ModuleInstanceProvider moduleInstanceProvider,
+            AnnotationProcessorRegistry annotationProcessorRegistry)
     {
         super();
+        _registryDefinition = registryDefinition;
         _module = module;
+        _classResolver = classResolver;
         _targetAnnotation = targetAnnotation;
         _annotatedElement = annotatedElement;
         _location = location;
         _moduleInstanceProvider = moduleInstanceProvider;
+        _annotationProcessorRegistry = annotationProcessorRegistry;
     }
 
     public Annotation[] getAllAnnotations()
@@ -53,6 +66,17 @@
     public Annotation getTargetAnnotation()
     {
         return _targetAnnotation;
+    }
+
+    public ClassResolver getClassResolver()
+    {
+        return _classResolver;
+    }
+
+    public AnnotatedModuleProcessor createSubmoduleProcessor()
+    {
+        return new AnnotatedModuleProcessor(_registryDefinition,
+                _classResolver, _annotationProcessorRegistry);
     }
 
 }

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java?view=auto&amp;rev=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistryFactory.java
Sun Mar  4 23:01:03 2007
@@ -0,0 +1,25 @@
+package org.apache.hivemind.annotations.internal;
+
+import org.apache.hivemind.annotations.definition.Configuration;
+import org.apache.hivemind.annotations.definition.Contribution;
+import org.apache.hivemind.annotations.definition.Service;
+import org.apache.hivemind.annotations.definition.Submodule;
+import org.apache.hivemind.annotations.definition.processors.ConfigurationProcessor;
+import org.apache.hivemind.annotations.definition.processors.ContributionProcessor;
+import org.apache.hivemind.annotations.definition.processors.ServiceProcessor;
+import org.apache.hivemind.annotations.definition.processors.SubmoduleProcessor;
+
+public class AnnotationProcessorRegistryFactory
+{
+    
+    public static AnnotationProcessorRegistry createDefaultRegistry()
+    {
+        AnnotationProcessorRegistry result = new AnnotationProcessorRegistry();
+        result.registerProcessor(Service.class, new ServiceProcessor());
+        result.registerProcessor(Configuration.class, new ConfigurationProcessor());
+        result.registerProcessor(Contribution.class, new ContributionProcessor());
+        result.registerProcessor(Submodule.class, new SubmoduleProcessor());
+        return result;
+    }
+}
+

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/AnnotationTestCase.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/AnnotationTestCase.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/AnnotationTestCase.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/AnnotationTestCase.java
Sun Mar  4 23:01:03 2007
@@ -16,9 +16,13 @@
 
 import org.apache.hivemind.definition.RegistryDefinition;
 import org.apache.hivemind.definition.impl.RegistryDefinitionImpl;
-import org.apache.hivemind.impl.DefaultErrorHandler;
 import org.apache.hivemind.test.HiveMindTestCase;
 
+/**
+ * Ancestor for test cases that use annotated modules.
+ * 
+ * @author Achim Huegen
+ */
 public class AnnotationTestCase extends HiveMindTestCase
 {
     protected TypedRegistry constructRegistry(String ... moduleClassNames)
@@ -39,8 +43,7 @@
 
         for (int i = 0; i &lt; moduleClasses.length; i++)
         {
-            AnnotatedModuleReader reader = new AnnotatedModuleReader(definition, getClassResolver(),
-                    new DefaultErrorHandler());
+            AnnotatedModuleReader reader = new AnnotatedModuleReader(definition, getClassResolver());
             reader.readModule(moduleClasses[i]);
         }
 

Modified: hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java?view=diff&amp;rev=514579&amp;r1=514578&amp;r2=514579
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/test/org/apache/hivemind/annotations/TestAnnotatedModuleReader.java
Sun Mar  4 23:01:03 2007
@@ -21,7 +21,6 @@
 import org.apache.hivemind.definition.ServicePointDefinition;
 import org.apache.hivemind.definition.impl.RegistryDefinitionImpl;
 import org.apache.hivemind.impl.DefaultClassResolver;
-import org.apache.hivemind.impl.DefaultErrorHandler;
 
 public class TestAnnotatedModuleReader extends AnnotationTestCase
 {
@@ -57,7 +56,7 @@
     public void testModuleClassNotFinal()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver(), new DefaultErrorHandler());
+                new DefaultClassResolver());
         try
         {
             processor.processModule(FinalModule.class);
@@ -71,7 +70,7 @@
     public void testModuleClassNotAbstract()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver(), new DefaultErrorHandler());
+                new DefaultClassResolver());
         try
         {
             processor.processModule(AbstractModule.class);
@@ -85,7 +84,7 @@
     public void testModuleClassPublic()
     {
         AnnotatedModuleProcessor processor = new AnnotatedModuleProcessor(new RegistryDefinitionImpl(),
-                new DefaultClassResolver(), new DefaultErrorHandler());
+                new DefaultClassResolver());
         try
         {
             processor.processModule(NotPublicModule.class);




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r514403 - in /hivemind/hivemind2/trunk: framework/src/java/org/apache/hivemind/impl/ framework/src/java/org/apache/hivemind/util/ xml/src/java/org/apache/hivemind/parse/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070304143116.527CF1A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070304143116-527CF1A981D@eris-apache-org%3e</id>
<updated>2007-03-04T14:31:16Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Mar  4 06:31:15 2007
New Revision: 514403

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=514403
Log:
Caching for URL connections disable to prevent jar file locking in web applications

Modified:
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/MessageFinderImpl.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/IOUtils.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/URLResource.java
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/XmlResourceProcessor.java

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/MessageFinderImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/MessageFinderImpl.java?view=diff&amp;rev=514403&amp;r1=514402&amp;r2=514403
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/MessageFinderImpl.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/MessageFinderImpl.java
Sun Mar  4 06:31:15 2007
@@ -160,7 +160,7 @@
 
         try
         {
-            stream = new BufferedInputStream(url.openStream());
+            stream = new BufferedInputStream(IOUtils.openStreamWithoutCaching(url));
 
             result.load(stream);
 

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java?view=diff&amp;rev=514403&amp;r1=514402&amp;r2=514403
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryProviderAutoDetector.java
Sun Mar  4 06:31:15 2007
@@ -15,6 +15,7 @@
 package org.apache.hivemind.impl;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -28,6 +29,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.util.IOUtils;
 import org.apache.hivemind.util.URLResource;
 
 /**
@@ -100,15 +102,21 @@
     private void processManifestFile(ClassResolver resolver, URLResource resource)
     {
         URL url = resource.getResourceURL();
+        InputStream manifestStream = null;
         Manifest manifest;
         try
         {
-            manifest = new Manifest(url.openStream());
+            manifestStream = IOUtils.openStreamWithoutCaching(url);
+            manifest = new Manifest(manifestStream);
         }
         catch (IOException e)
         {
             throw new ApplicationRuntimeException(ImplMessages.unableToReadManifest(url,
e),
                     e);
+        }
+        finally
+        {
+            IOUtils.close(manifestStream);
         }
         // Search for an entry that defines a provider class
         Attributes attributes = manifest.getMainAttributes();

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/IOUtils.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/IOUtils.java?view=diff&amp;rev=514403&amp;r1=514402&amp;r2=514403
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/IOUtils.java (original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/IOUtils.java Sun
Mar  4 06:31:15 2007
@@ -16,6 +16,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
 
 /**
  * Tiny utilities used with InputStream and friends.
@@ -41,4 +43,21 @@
                 // Ignored.
             }
     }
+    
+    /**
+     * Opens the input stream of an URL. To prevent jar locking the cache
+     * is disabled before. Jar locking is experiencied under servlet containers on Windows.
+     * (http://tomcat.apache.org/faq/windows.html#lock).
+     * @param url  the url
+     * @return the input stream
+     * @throws IOException 
+     */
+    public static InputStream openStreamWithoutCaching(URL url) throws IOException
+    {
+        // These call should are equivalent to URL#openStream()
+        URLConnection conn = url.openConnection();
+        conn.setUseCaches(false);
+        return conn.getInputStream();
+    }
+    
 }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/URLResource.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/URLResource.java?view=diff&amp;rev=514403&amp;r1=514402&amp;r2=514403
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/URLResource.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/util/URLResource.java
Sun Mar  4 06:31:15 2007
@@ -61,7 +61,7 @@
             try
             {
                 URL test = new URL( getPath() );
-                InputStream stream = test.openStream();
+                InputStream stream = IOUtils.openStreamWithoutCaching(test);
                 if( stream != null )
                 {
                     stream.close();

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/XmlResourceProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/XmlResourceProcessor.java?view=diff&amp;rev=514403&amp;r1=514402&amp;r2=514403
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/XmlResourceProcessor.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/XmlResourceProcessor.java
Sun Mar  4 06:31:15 2007
@@ -28,6 +28,7 @@
 import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.ErrorHandler;
 import org.apache.hivemind.Resource;
+import org.apache.hivemind.util.IOUtils;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
@@ -115,7 +116,11 @@
     {
         InputSource source = getInputSource(resource);
 
-        parser.parse(source, contentHandler);
+        try {
+            parser.parse(source, contentHandler);
+        } finally {
+            IOUtils.close(source.getByteStream());
+        }
 
         return contentHandler.getModuleDescriptor();
     }
@@ -126,7 +131,7 @@
         {
             URL url = resource.getResourceURL();
 
-            return new InputSource(url.openStream());
+            return new InputSource(IOUtils.openStreamWithoutCaching(url));
         }
         catch (Exception e)
         {




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513812 - in /hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations: definition/impl/ definition/processors/ internal/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070302153211.26E801A9820@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070302153211-26E801A9820@eris-apache-org%3e</id>
<updated>2007-03-02T15:32:10Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Fri Mar  2 07:32:09 2007
New Revision: 513812

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513812
Log:
Annotation processing factored out for easy support of custom annotations

Added:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/impl/
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/impl/AnnotatedModuleDefinitionImpl.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/CheckTools.java
Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/impl/AnnotatedModuleDefinitionImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/impl/AnnotatedModuleDefinitionImpl.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/impl/AnnotatedModuleDefinitionImpl.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/impl/AnnotatedModuleDefinitionImpl.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,20 @@
+package org.apache.hivemind.annotations.definition.impl;
+
+import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.Location;
+import org.apache.hivemind.definition.impl.ModuleDefinitionImpl;
+
+public class AnnotatedModuleDefinitionImpl extends ModuleDefinitionImpl
+{
+
+    public AnnotatedModuleDefinitionImpl(String id, Location location, ClassResolver resolver,
String packageName)
+    {
+        super(id, location, resolver, packageName);
+    }
+
+    public AnnotatedModuleDefinitionImpl(String id, Location location)
+    {
+        super(id, location);
+    }
+
+}

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessingContext.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,18 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+
+import org.apache.hivemind.Location;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.ModuleInstanceProvider;
+
+public interface AnnotationProcessingContext
+{
+    public AnnotatedElement getAnnotatedElement();
+    public Annotation getTargetAnnotation();
+    public Annotation[] getAllAnnotations();
+    public Location getLocation();
+    public AnnotatedModuleDefinitionImpl getModule(); 
+    public ModuleInstanceProvider getModuleInstanceProvider();
+}

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/AnnotationProcessor.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,13 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import org.apache.hivemind.ApplicationRuntimeException;
+
+public interface AnnotationProcessor
+{
+    /**
+     * @param context
+     * @return true if annotation has been processed. Used for chaining.
+     * @throws ApplicationRuntimeException  if annotation can not be processed due to inconsistent
data. 
+     */
+    public boolean processAnnotation(AnnotationProcessingContext context) throws ApplicationRuntimeException;
+}

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/definition/processors/ServiceProcessor.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,59 @@
+package org.apache.hivemind.annotations.definition.processors;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hivemind.Location;
+import org.apache.hivemind.annotations.definition.Service;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.internal.AnnotatedModuleLocation;
+import org.apache.hivemind.annotations.internal.CheckTools;
+import org.apache.hivemind.annotations.internal.MethodCallImplementationConstructor;
+import org.apache.hivemind.definition.ImplementationConstructor;
+import org.apache.hivemind.definition.ImplementationDefinition;
+import org.apache.hivemind.definition.Visibility;
+import org.apache.hivemind.definition.impl.ImplementationDefinitionImpl;
+import org.apache.hivemind.definition.impl.ServicePointDefinitionImpl;
+
+public class ServiceProcessor implements AnnotationProcessor
+{
+    private static final Log _log = LogFactory.getLog(ServiceProcessor.class);
+
+    /**
+     * @see org.apache.hivemind.annotations.definition.processors.AnnotationProcessor#processAnnotation(org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext)
+     */
+    public boolean processAnnotation(AnnotationProcessingContext context)
+    {
+        Method method = (Method) context.getAnnotatedElement();
+        AnnotatedModuleDefinitionImpl module = context.getModule();
+        Service serviceAnnotation = (Service) context.getTargetAnnotation(); 
+        
+        CheckTools.checkMethodModifiers(method, 0, "service point");
+        
+        if (_log.isDebugEnabled())
+        {
+            _log.debug("Method " + method.getName() + "classified as service point.");
+        }
+        
+        Visibility visibility = Visibility.PUBLIC;
+        if (Modifier.isProtected(method.getModifiers())) {
+            visibility = Visibility.PRIVATE;
+        }
+        ServicePointDefinitionImpl spd = new ServicePointDefinitionImpl(module, serviceAnnotation.id(),
context.getLocation(), 
+                visibility, method.getReturnType().getName());
+        module.addServicePoint(spd);
+
+        ImplementationConstructor constructor = new MethodCallImplementationConstructor(context.getLocation(),

+                method, context.getModuleInstanceProvider());
+
+        ImplementationDefinition sid = new ImplementationDefinitionImpl(module, context.getLocation(),

+                constructor, serviceAnnotation.serviceModel(), true);
+
+        spd.addImplementation(sid);
+
+        return true;
+    }
+
+}

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java?view=diff&amp;rev=513812&amp;r1=513811&amp;r2=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
Fri Mar  2 07:32:09 2007
@@ -17,6 +17,7 @@
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.util.List;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -30,6 +31,10 @@
 import org.apache.hivemind.annotations.definition.Module;
 import org.apache.hivemind.annotations.definition.Service;
 import org.apache.hivemind.annotations.definition.Submodule;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext;
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
+import org.apache.hivemind.annotations.definition.processors.ServiceProcessor;
 import org.apache.hivemind.definition.Contribution;
 import org.apache.hivemind.definition.ImplementationConstructor;
 import org.apache.hivemind.definition.ImplementationDefinition;
@@ -38,7 +43,6 @@
 import org.apache.hivemind.definition.Visibility;
 import org.apache.hivemind.definition.impl.ConfigurationPointDefinitionImpl;
 import org.apache.hivemind.definition.impl.ContributionDefinitionImpl;
-import org.apache.hivemind.definition.impl.ModuleDefinitionImpl;
 import org.apache.hivemind.definition.impl.ImplementationDefinitionImpl;
 import org.apache.hivemind.definition.impl.ServicePointDefinitionImpl;
 import org.apache.hivemind.util.ClasspathResource;
@@ -63,6 +67,8 @@
     private ErrorHandler _errorHandler;
 
     private RegistryDefinition _registryDefinition;
+    
+    private AnnotationProcessorRegistry _annotationProcessorRegistry;
 
     public AnnotatedModuleProcessor(RegistryDefinition registryDefinition,
             ClassResolver classResolver, ErrorHandler errorHandler)
@@ -70,6 +76,7 @@
         _registryDefinition = registryDefinition;
         _classResolver = classResolver;
         _errorHandler = errorHandler;
+        _annotationProcessorRegistry = createAnnotationProcessorRegistry();
     }
     
     public void processModule(Class moduleClass)
@@ -87,7 +94,7 @@
     {
         checkModuleClassPrerequisites(moduleClass);
         
-        ModuleDefinitionImpl module = new ModuleDefinitionImpl(moduleId,
+        AnnotatedModuleDefinitionImpl module = new AnnotatedModuleDefinitionImpl(moduleId,
                 createModuleLocation(moduleClass), _classResolver, moduleClass.getPackage().getName());
 
         // processServices(moduleClass);
@@ -103,6 +110,13 @@
 
     }
     
+    private AnnotationProcessorRegistry createAnnotationProcessorRegistry()
+    {
+        AnnotationProcessorRegistry result = new AnnotationProcessorRegistry();
+        result.registerProcessor(Service.class, new ServiceProcessor());
+        return result;
+    }
+    
     /**
      * Ensures that a module class fulfills all prerequisites.
      * 
@@ -124,7 +138,7 @@
         }
     }
 
-    private void processModuleMethods(Class moduleClass, ModuleDefinitionImpl module,
+    private void processModuleMethods(Class moduleClass, AnnotatedModuleDefinitionImpl module,
             ModuleInstanceProvider instanceProvider)
     {
         // We need access to protected methods via getDeclaredMethods
@@ -142,7 +156,7 @@
         }
     }
 
-    private void processMethod(Method method, ModuleDefinitionImpl module,
+    private void processMethod(Method method, AnnotatedModuleDefinitionImpl module,
             ModuleInstanceProvider instanceProvider)
     {
         if (_log.isDebugEnabled())
@@ -154,7 +168,21 @@
         for (int j = 0; j &lt; annotations.length; j++)
         {
             Annotation annotation = annotations[j];
-
+            
+            Location location = new AnnotatedModuleLocation(module.getLocation().getResource(),

+                    method.getDeclaringClass(), method);
+
+            AnnotationProcessingContext context = new AnnotationProcessingContextImpl(module,
+                    annotation, method, location, instanceProvider);
+            
+            List&lt;AnnotationProcessor&gt; processors = _annotationProcessorRegistry.getProcessors(annotation.getClass());
+            if (processors != null) {
+                for (AnnotationProcessor processor : processors)
+                {
+                    processor.processAnnotation(null);
+                }
+            }
+            
             if (Service.class.equals(annotation.annotationType()))
             {
                 processAnnotatedServiceMethod(
@@ -191,43 +219,11 @@
 
     }
     
-    /**
-     * Ensures that an annotated method has only allowed modifiers.
-     * By default Modifier.PUBLIC and Modifier.PROTECTED are allowed.
-     * @param method  the method
-     * @param allowedModifiers  allowed {@link Modifier modifiers}. 
-     * @param methodType  used in error messages to describe what the method is used for
-     */
-    protected void checkMethodModifiers(Method method, int allowedModifiers, String methodType)
-    {
-        // These modifiers are allowed
-        final int validModifiers = Modifier.PUBLIC | Modifier.PROTECTED | allowedModifiers;
-        
-        int invalidModifiers = method.getModifiers() &amp; ~validModifiers;
-        if (invalidModifiers &gt; 0) {
-            throw new ApplicationRuntimeException(AnnotationsMessages.annotatedMethodHasInvalidModifiers(method,
methodType, invalidModifiers));
-        }
-
-        // TODO: Check for package access
-        
-        // Check for setAccessible-Errors when Modifier.PROTECTED is used
-        if (Modifier.isProtected(method.getModifiers())) {
-            // Try to set method accessible
-            try
-            {
-                method.setAccessible(true);
-            }
-            catch (SecurityException e)
-            {
-                throw new ApplicationRuntimeException(AnnotationsMessages.annotatedMethodIsProtectedAndNotAccessible(method,
methodType));
-            }
-        }
-    }
 
     private void processAnnotatedServiceMethod(Method method, Service service,
-            ModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
+            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
     {
-        checkMethodModifiers(method, 0, "service point");
+        CheckTools.checkMethodModifiers(method, 0, "service point");
         
         if (_log.isDebugEnabled())
         {
@@ -255,9 +251,10 @@
 
     }
 
-    private void processAnnotatedConfigurationMethod(Method method, Configuration configuration,
ModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
+    private void processAnnotatedConfigurationMethod(Method method, Configuration configuration,

+            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
     {
-        checkMethodModifiers(method, 0, "configuration point");
+        CheckTools.checkMethodModifiers(method, 0, "configuration point");
 
         if (_log.isDebugEnabled())
         {
@@ -283,9 +280,10 @@
         cpd.addContribution(cd);
     }
 
-    private void processAnnotatedContributionMethod(Method method, org.apache.hivemind.annotations.definition.Contribution
contribution, ModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
+    private void processAnnotatedContributionMethod(Method method, org.apache.hivemind.annotations.definition.Contribution
contribution, 
+            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
     {
-        checkMethodModifiers(method, 0, "contribution");
+        CheckTools.checkMethodModifiers(method, 0, "contribution");
 
         if (_log.isDebugEnabled())
         {
@@ -309,9 +307,10 @@
     /**
      * Processes a method that is marked as submodule definition.
      */
-    private void processAnnotatedSubmoduleMethod(Method method, Submodule submodule, ModuleDefinitionImpl
module, ModuleInstanceProvider instanceProvider)
+    private void processAnnotatedSubmoduleMethod(Method method, Submodule submodule, 
+            AnnotatedModuleDefinitionImpl module, ModuleInstanceProvider instanceProvider)
     {
-        checkMethodModifiers(method, 0, "submodule");
+        CheckTools.checkMethodModifiers(method, 0, "submodule");
 
         if (_log.isDebugEnabled())
         {

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessingContextImpl.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,58 @@
+package org.apache.hivemind.annotations.internal;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+
+import org.apache.hivemind.Location;
+import org.apache.hivemind.annotations.definition.impl.AnnotatedModuleDefinitionImpl;
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessingContext;
+
+public class AnnotationProcessingContextImpl implements AnnotationProcessingContext
+{
+    private AnnotatedElement _annotatedElement;
+    private Location _location;
+    private AnnotatedModuleDefinitionImpl _module;
+    private ModuleInstanceProvider _moduleInstanceProvider;
+    private Annotation _targetAnnotation;
+
+    public AnnotationProcessingContextImpl(AnnotatedModuleDefinitionImpl module, Annotation
targetAnnotation, AnnotatedElement annotatedElement, Location location, ModuleInstanceProvider
moduleInstanceProvider)
+    {
+        super();
+        _module = module;
+        _targetAnnotation = targetAnnotation;
+        _annotatedElement = annotatedElement;
+        _location = location;
+        _moduleInstanceProvider = moduleInstanceProvider;
+    }
+
+    public Annotation[] getAllAnnotations()
+    {
+        return _annotatedElement.getAnnotations();
+    }
+
+    public AnnotatedElement getAnnotatedElement()
+    {
+        return _annotatedElement;
+    }
+
+    public Location getLocation()
+    {
+        return _location;
+    }
+
+    public AnnotatedModuleDefinitionImpl getModule()
+    {
+        return _module;
+    }
+
+    public ModuleInstanceProvider getModuleInstanceProvider()
+    {
+        return _moduleInstanceProvider;
+    }
+
+    public Annotation getTargetAnnotation()
+    {
+        return _targetAnnotation;
+    }
+
+}

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotationProcessorRegistry.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,30 @@
+package org.apache.hivemind.annotations.internal;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.hivemind.annotations.definition.processors.AnnotationProcessor;
+
+public class AnnotationProcessorRegistry
+{
+    private Map&lt;Class&lt;? extends Annotation&gt;, List&lt;AnnotationProcessor&gt;&gt;
processorLists = new HashMap&lt;Class&lt;? extends Annotation&gt;, List&lt;AnnotationProcessor&gt;&gt;();
+
+    public List&lt;AnnotationProcessor&gt; getProcessors(Class&lt;? extends Annotation&gt;
annotationClass)
+    {
+        return processorLists.get(annotationClass);
+    }
+
+    public void registerProcessor(Class&lt;? extends Annotation&gt; annotationClass, AnnotationProcessor
processor)
+    {
+        List&lt;AnnotationProcessor&gt; processorList = getProcessors(annotationClass);
+        if (processorList == null) {
+            processorList = new ArrayList&lt;AnnotationProcessor&gt;();
+            processorLists.put(annotationClass, processorList);
+        }
+        processorList.add(processor);
+    }
+}
+

Added: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/CheckTools.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/CheckTools.java?view=auto&amp;rev=513812
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/CheckTools.java
(added)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/CheckTools.java
Fri Mar  2 07:32:09 2007
@@ -0,0 +1,43 @@
+package org.apache.hivemind.annotations.internal;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.annotations.AnnotationsMessages;
+
+public class CheckTools
+{
+    /**
+     * Ensures that an annotated method has only allowed modifiers.
+     * By default Modifier.PUBLIC and Modifier.PROTECTED are allowed.
+     * @param method  the method
+     * @param allowedModifiers  allowed {@link Modifier modifiers}. 
+     * @param methodType  used in error messages to describe what the method is used for
+     */
+    public static void checkMethodModifiers(Method method, int allowedModifiers, String methodType)
+    {
+        // These modifiers are allowed
+        final int validModifiers = Modifier.PUBLIC | Modifier.PROTECTED | allowedModifiers;
+        
+        int invalidModifiers = method.getModifiers() &amp; ~validModifiers;
+        if (invalidModifiers &gt; 0) {
+            throw new ApplicationRuntimeException(AnnotationsMessages.annotatedMethodHasInvalidModifiers(method,
methodType, invalidModifiers));
+        }
+
+        // TODO: Check for package access
+        
+        // Check for setAccessible-Errors when Modifier.PROTECTED is used
+        if (Modifier.isProtected(method.getModifiers())) {
+            // Try to set method accessible
+            try
+            {
+                method.setAccessible(true);
+            }
+            catch (SecurityException e)
+            {
+                throw new ApplicationRuntimeException(AnnotationsMessages.annotatedMethodIsProtectedAndNotAccessible(method,
methodType));
+            }
+        }
+    }
+}




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513656 - in /hivemind/hivemind-site/trunk/src/site/xdoc: index.xml news.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070302081609.A036E1A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070302081609-A036E1A981A@eris-apache-org%3e</id>
<updated>2007-03-02T08:16:09Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Fri Mar  2 00:16:08 2007
New Revision: 513656

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513656
Log:
Some typos fixed

Modified:
    hivemind/hivemind-site/trunk/src/site/xdoc/index.xml
    hivemind/hivemind-site/trunk/src/site/xdoc/news.xml

Modified: hivemind/hivemind-site/trunk/src/site/xdoc/index.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/xdoc/index.xml?view=diff&amp;rev=513656&amp;r1=513655&amp;r2=513656
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/xdoc/index.xml (original)
+++ hivemind/hivemind-site/trunk/src/site/xdoc/index.xml Fri Mar  2 00:16:08 2007
@@ -5,7 +5,7 @@
         &lt;author email="ahuegen@apache.org"&gt;Achim Huegen&lt;/author&gt;
     &lt;/properties&gt;
     &lt;body&gt;
-        &lt;section name="Welcome to HiveMind 2"&gt;
+        &lt;section name="Welcome to HiveMind"&gt;
 
             &lt;div id="downloadbox"&gt;
                 &lt;h5&gt;Get HiveMind 1.1.1&lt;/h5&gt;

Modified: hivemind/hivemind-site/trunk/src/site/xdoc/news.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/xdoc/news.xml?view=diff&amp;rev=513656&amp;r1=513655&amp;r2=513656
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/xdoc/news.xml (original)
+++ hivemind/hivemind-site/trunk/src/site/xdoc/news.xml Fri Mar  2 00:16:08 2007
@@ -11,7 +11,7 @@
       &lt;subsection name="First alpha release of HiveMind 2"&gt;
         &lt;p&gt; A public alpha version of &lt;a href="http://hivemind.apache.org/hivemind2"&gt;HiveMind
2&lt;/a&gt; is available.
            It is available via the Maven repository or from the &lt;a href="download.html"&gt;HiveMind
download page&lt;/a&gt;.
-           First documentation is available on the &lt;a href="http://cwiki.apache.org/HIVMINED2"&gt;new
wiki&lt;/a&gt;.
+           First documentation is available on the &lt;a href="http://cwiki.apache.org/HIVEMIND2"&gt;new
wiki&lt;/a&gt;.
         &lt;/p&gt;
       &lt;/subsection&gt;
  




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513501 - in /hivemind/hivemind2/trunk/xml/src: java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java test/org/apache/hivemind/xml/OverrideService.xml test/org/apache/hivemind/xml/TestServiceOverride.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301232542.377751A9828@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301232542-377751A9828@eris-apache-org%3e</id>
<updated>2007-03-01T23:25:41Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 13:15:57 2007
New Revision: 513501

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513501
Log:
Overriding of services in xml fixed

Added:
    hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/OverrideService.xml
    hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java
  (contents, props changed)
      - copied, changed from r505487, hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestSubModule.java
Modified:
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java?view=diff&amp;rev=513501&amp;r1=513500&amp;r2=513501
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
Thu Mar  1 13:15:57 2007
@@ -218,7 +218,8 @@
     }
 
     /**
-     * Adds one implementation and its interceptors to a module definition.
+     * Adds one standalone implementation and its interceptors to a module definition.
+     * This implementation overrides inline implementations of the service point.
      */
     private void addImplementationAndInterceptors(ModuleDefinitionImpl sourceModule, String
qualifiedPointId, ImplementationDescriptor id)
     {
@@ -228,7 +229,7 @@
         if (builder != null) {
             ImplementationDefinitionImpl implementation = new ImplementationDefinitionImpl(
                     sourceModule, builder.getLocation(), builder.createConstructor(sourceModule.getId()),
-                    builder.getServiceModel(), false);
+                    builder.getServiceModel(), true);
             sourceModule.addImplementation(qualifiedPointId, implementation); 
         }
         

Added: hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/OverrideService.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/OverrideService.xml?view=auto&amp;rev=513501
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/OverrideService.xml (added)
+++ hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/OverrideService.xml Thu
Mar  1 13:15:57 2007
@@ -0,0 +1,28 @@
+&lt;?xml version="1.0"?&gt;
+&lt;!-- 
+   Copyright 2004, 2005 The 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.
+--&gt;
+
+&lt;module id="hivemind.test.override" version="1.0.0"&gt;
+
+  &lt;service-point id="TestService" interface="java.lang.Runnable" &gt;
+    &lt;create-instance class="hivemind.test.services.impl.RunnableImpl" model="primitive"/&gt;
+  &lt;/service-point&gt;
+  
+  &lt;implementation service-id="TestService"&gt;
+    &lt;create-instance class="org.apache.hivemind.service.impl.MockRunnable" model="primitive"/&gt;
+  &lt;/implementation&gt;
+
+&lt;/module&gt;
\ No newline at end of file

Copied: hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java
(from r505487, hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestSubModule.java)
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java?view=diff&amp;rev=513501&amp;p1=hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestSubModule.java&amp;r1=505487&amp;p2=hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java&amp;r2=513501
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestSubModule.java (original)
+++ hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java
Thu Mar  1 13:15:57 2007
@@ -14,36 +14,26 @@
 
 package org.apache.hivemind.xml;
 
-import hivemind.test.services.SimpleService;
-
 import org.apache.hivemind.Registry;
+import org.apache.hivemind.service.impl.MockRunnable;
 
 /**
- * Tests the ability for a module to include &amp;lt;sub-module&amp;gt;s.
+ * Tests the overriding of a service implementation.
  * 
  * @author Howard Lewis Ship
  */
-public class TestSubModule extends XmlTestCase
+public class TestServiceOverride extends XmlTestCase
 {
     public void testNestedSubModule() throws Exception
     {
-        Registry r = buildFrameworkRegistry("OuterModule.xml");
-
-        SimpleService s = (SimpleService) r.getService(
-                "hivemind.test.outer.Simple",
-                SimpleService.class);
-
-        assertEquals(11, s.add(4, 7));
+        Registry r = buildFrameworkRegistry("OverrideService.xml");
 
-    }
-
-    public void testMissingSubModule() throws Exception
-    {
-        interceptLogging();
+        Runnable service = (Runnable) r.getService(
+                "hivemind.test.override.TestService",
+                Runnable.class);
 
-        buildFrameworkRegistry("MissingSubModule.xml");
+        assertTrue(service instanceof MockRunnable);
 
-        assertLoggedMessagePattern("Sub-module .*?/DoesNotExist\\.xml does not exist\\.");
     }
 
 }

Propchange: hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java
------------------------------------------------------------------------------
    cvs2svn:cvs-rev = 1.6

Propchange: hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/xml/TestServiceOverride.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513499 - /hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/service/impl/ClassResolverHolderImpl.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301232539.34BF51A9826@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301232539-34BF51A9826@eris-apache-org%3e</id>
<updated>2007-03-01T23:25:36Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 13:15:19 2007
New Revision: 513499

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513499
Log:
Unused imports removed

Modified:
    hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/service/impl/ClassResolverHolderImpl.java

Modified: hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/service/impl/ClassResolverHolderImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/service/impl/ClassResolverHolderImpl.java?view=diff&amp;rev=513499&amp;r1=513498&amp;r2=513499
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/service/impl/ClassResolverHolderImpl.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/test/org/apache/hivemind/service/impl/ClassResolverHolderImpl.java
Thu Mar  1 13:15:19 2007
@@ -17,7 +17,6 @@
 
 import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.service.ClassResolverHolder;
-import org.apache.hivemind.service.TestBuilderFactory;
 
 /**
  * Used with {@link org.apache.hivemind.service.TestBuilderFactory}.




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513485 - /hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/UniqueAttributeDefinition.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301203057.B862A1A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301203057-B862A1A981A@eris-apache-org%3e</id>
<updated>2007-03-01T20:30:57Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 12:30:56 2007
New Revision: 513485

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513485
Log:
Unit test fixed

Modified:
    hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/UniqueAttributeDefinition.xml

Modified: hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/UniqueAttributeDefinition.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/UniqueAttributeDefinition.xml?view=diff&amp;rev=513485&amp;r1=513484&amp;r2=513485
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/UniqueAttributeDefinition.xml
(original)
+++ hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/UniqueAttributeDefinition.xml
Thu Mar  1 12:30:56 2007
@@ -29,7 +29,7 @@
 		&lt;/element&gt;
 	&lt;/schema&gt;
 
-	&lt;configuration-point id="MyExtensionPoint" occurs="1..n" schema-id="UniqueAttributeBroken"&gt;
+	&lt;configuration-point id="MyExtensionPoint" occurs="1..n" schema-id="UniqueAttributeBroken"
lazy="true"&gt;
 		Description of MyExtensionPoint.
 	&lt;/configuration-point&gt;
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513484 - /hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301202143.314EF1A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301202143-314EF1A981D@eris-apache-org%3e</id>
<updated>2007-03-01T20:21:43Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 12:21:42 2007
New Revision: 513484

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513484
Log:
Type conversion boolean &lt;-&gt; Boolean fixed

Modified:
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java?view=diff&amp;rev=513484&amp;r1=513483&amp;r2=513484
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
Thu Mar  1 12:21:42 2007
@@ -129,7 +129,7 @@
         _type = type;
     }
 
-    public void setLazy(Boolean lazy)
+    public void setLazy(boolean lazy)
     {
         _lazy = lazy;
     }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513480 - /hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301201609.505601A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301201609-505601A981A@eris-apache-org%3e</id>
<updated>2007-03-01T20:16:09Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 12:16:08 2007
New Revision: 513480

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513480
Log:
Type conversion boolean &lt;-&gt; Boolean fixed

Modified:
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java?view=diff&amp;rev=513480&amp;r1=513479&amp;r2=513480
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
Thu Mar  1 12:16:08 2007
@@ -788,7 +788,7 @@
                 typeName);
         cpd.setType(fullTypeName);
         
-        Boolean lazy = getBooleanAttribute("lazy", false);
+        boolean lazy = getBooleanAttribute("lazy", false);
         cpd.setLazy(lazy);
 
         md.addConfigurationPoint(cpd);




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513479 - /hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301201515.0D0C21A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301201515-0D0C21A981A@eris-apache-org%3e</id>
<updated>2007-03-01T20:15:14Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 12:15:14 2007
New Revision: 513479

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513479
Log:
Reverted last checkin which was a mistake

Modified:
    hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java

Modified: hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java?view=diff&amp;rev=513479&amp;r1=513478&amp;r2=513479
==============================================================================
--- hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
(original)
+++ hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
Thu Mar  1 12:15:14 2007
@@ -23,10 +23,6 @@
 import org.apache.hivemind.impl.RegistryBuilder;
 import org.apache.hivemind.internal.AbstractServiceImplementationConstructor;
 import org.apache.hivemind.internal.ServiceModel;
-import org.apache.hivemind.service.Autowiring;
-import org.apache.hivemind.service.ClassFactory;
-import org.apache.hivemind.service.ThreadEventNotifier;
-import org.apache.hivemind.service.ThreadLocalStorage;
 import org.apache.hivemind.util.ClasspathResource;
 
 /**
@@ -44,11 +40,6 @@
         Calculator calculator = (Calculator) registry.getService(Calculator.class);
         double result = calculator.add(10, 20);
         System.out.println("Result: " + result);
-        
-        registry.getService("hivemind.ClassFactory", ClassFactory.class);
-        registry.getService("hivemind.ThreadEventNotifier", ThreadEventNotifier.class);
-        registry.getService("hivemind.ThreadLocalStorage", ThreadLocalStorage.class);
-        registry.getService("hivemind.Autowiring", Autowiring.class);
     }
     
     private Registry constructRegistry()
@@ -58,7 +49,6 @@
         registryDefinition.addModule(module);
         
         RegistryBuilder builder = new RegistryBuilder(registryDefinition);
-        builder.autoDetectModules();
         Registry registry = builder.constructRegistry();
         return registry;
     }




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513472 - in /hivemind/hivemind2/trunk: annotations/src/java/org/apache/hivemind/annotations/internal/ examples/src/java/org/apache/examples/definition/ framework/src/java/org/apache/hivemind/definition/ framework/src/java/org/apache/hivemi...</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301200604.B08071A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301200604-B08071A981A@eris-apache-org%3e</id>
<updated>2007-03-01T20:06:04Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 12:06:02 2007
New Revision: 513472

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513472
Log:
Laziness of configurations can be configured in definition API

Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
    hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/ConfigurationPointDefinition.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ConfigurationPointDefinitionImpl.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionHelper.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ConfigurationPointImpl.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/CoreServicesProvider.java
    hivemind/hivemind2/trunk/framework/src/test/hivemind/test/FrameworkTestCase.java
    hivemind/hivemind2/trunk/xml/src/descriptor/META-INF/hivemodule.xml
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.properties
    hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/BadAttributes.xml
    hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/Simple.xml

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/internal/AnnotatedModuleProcessor.java
Thu Mar  1 12:06:02 2007
@@ -272,7 +272,8 @@
             visibility = Visibility.PRIVATE;
         }
         ConfigurationPointDefinitionImpl cpd = new ConfigurationPointDefinitionImpl(module,
configuration.id(), 
-                location, visibility, method.getReturnType().getName(), Occurances.UNBOUNDED);
+                location, visibility, method.getReturnType().getName(), Occurances.UNBOUNDED,
+                false);
         module.addConfigurationPoint(cpd);
         
         // Add method implementation as initial contribution

Modified: hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
(original)
+++ hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
Thu Mar  1 12:06:02 2007
@@ -23,6 +23,10 @@
 import org.apache.hivemind.impl.RegistryBuilder;
 import org.apache.hivemind.internal.AbstractServiceImplementationConstructor;
 import org.apache.hivemind.internal.ServiceModel;
+import org.apache.hivemind.service.Autowiring;
+import org.apache.hivemind.service.ClassFactory;
+import org.apache.hivemind.service.ThreadEventNotifier;
+import org.apache.hivemind.service.ThreadLocalStorage;
 import org.apache.hivemind.util.ClasspathResource;
 
 /**
@@ -40,6 +44,11 @@
         Calculator calculator = (Calculator) registry.getService(Calculator.class);
         double result = calculator.add(10, 20);
         System.out.println("Result: " + result);
+        
+        registry.getService("hivemind.ClassFactory", ClassFactory.class);
+        registry.getService("hivemind.ThreadEventNotifier", ThreadEventNotifier.class);
+        registry.getService("hivemind.ThreadLocalStorage", ThreadLocalStorage.class);
+        registry.getService("hivemind.Autowiring", Autowiring.class);
     }
     
     private Registry constructRegistry()
@@ -49,6 +58,7 @@
         registryDefinition.addModule(module);
         
         RegistryBuilder builder = new RegistryBuilder(registryDefinition);
+        builder.autoDetectModules();
         Registry registry = builder.constructRegistry();
         return registry;
     }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/ConfigurationPointDefinition.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/ConfigurationPointDefinition.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/ConfigurationPointDefinition.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/ConfigurationPointDefinition.java
Thu Mar  1 12:06:02 2007
@@ -68,4 +68,9 @@
      * @return  returns all parsers as instances of {@link ConfigurationParserDefinition}
      */
     public Collection getParsers();
+    
+    /**
+     * @return  returns true if the configuration should be created on first call to one
of its methods.
+     */
+    public boolean isLazy();
 }

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ConfigurationPointDefinitionImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ConfigurationPointDefinitionImpl.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ConfigurationPointDefinitionImpl.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ConfigurationPointDefinitionImpl.java
Thu Mar  1 12:06:02 2007
@@ -45,6 +45,8 @@
     private Collection _contributions = new ArrayList();
     
     private Map _parsers = new HashMap();
+    
+    private boolean _lazy;
 
     public ConfigurationPointDefinitionImpl(ModuleDefinition module)
     {
@@ -52,11 +54,12 @@
     }
 
     public ConfigurationPointDefinitionImpl(ModuleDefinition module, String id, Location
location, Visibility visibility,
-            String containerClassName, Occurances expectedContributions)
+            String containerClassName, Occurances expectedContributions, boolean lazy)
     {
         super(module, id, location, visibility);
         _containerClassName = containerClassName;
         _expectedContributions = expectedContributions;
+        _lazy = lazy;
     }
 
     /**
@@ -151,6 +154,24 @@
     public ConfigurationParserDefinition getParser(String inputFormat)
     {
         return (ConfigurationParserDefinition) _parsers.get(inputFormat);
+    }
+
+    /**
+     * @see org.apache.hivemind.definition.ConfigurationPointDefinition#isLazy()
+     */
+    public boolean isLazy()
+    {
+        return _lazy;
+    }
+
+    /**
+     * Sets the lazy mode of the configuration. Lazy construction is supported only if
+     * the configuration type is an interface.
+     * @param lazy  true if if the configuration should be created on first call to one of
its methods.
+     */
+    protected void setLazy(boolean lazy)
+    {
+        _lazy = lazy;
     }
 
 

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionHelper.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionHelper.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionHelper.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionHelper.java
Thu Mar  1 12:06:02 2007
@@ -81,10 +81,10 @@
                 serviceModel);
     }
     
-    public ConfigurationPointDefinition addConfigurationPoint(String configurationPointId,
String containerType)
+    public ConfigurationPointDefinition addConfigurationPoint(String configurationPointId,
String containerType, boolean lazy)
     {
         ConfigurationPointDefinitionImpl result = new ConfigurationPointDefinitionImpl(_module,
configurationPointId, _module
-                .getLocation(), Visibility.PUBLIC, containerType, Occurances.UNBOUNDED);
+                .getLocation(), Visibility.PUBLIC, containerType, Occurances.UNBOUNDED, lazy);
 
         _module.addConfigurationPoint(result);
         return result;

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ConfigurationPointImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ConfigurationPointImpl.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ConfigurationPointImpl.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/ConfigurationPointImpl.java
Thu Mar  1 12:06:02 2007
@@ -113,12 +113,13 @@
      */
     public boolean isLazy()
     {
-        // TODO annotations: make configurable
         // exclude ServiceModels, otherwise a cycle occurs because the proxy generation
         // requires the {@link ClassFactory service}
+        // non interface types are not supported because this gets just too expensive
+        // in terms of cpu and memory: 3 proxy classes would be needed
         return !getExtensionPointId().equals("hivemind.ServiceModels") &amp;&amp; 
           getConfigurationType().isInterface() &amp;&amp;
-          !Modifier.isFinal(getConfigurationType().getModifiers());
+          getConfigurationPointDefinition().isLazy();
     }
 
     /**

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/CoreServicesProvider.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/CoreServicesProvider.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/CoreServicesProvider.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/CoreServicesProvider.java
Thu Mar  1 12:06:02 2007
@@ -204,7 +204,7 @@
         // Configuration to which services may be contributed. The corresponding services
are instantiated eagerly, as the Registry is started. 
         // The order in which services are instantiated is not specified.
 
-        helper.addConfigurationPoint("EagerLoad", List.class.getName());
+        helper.addConfigurationPoint("EagerLoad", List.class.getName(), false);
     }
 
     /**
@@ -231,7 +231,7 @@
         // A configuration to which startup objects may be contributed (as objects or services).

         // Startup objects must implement the java.lang.Runnable interface. Order of execution
is expliclitly NOT defined.
 
-        ConfigurationPointDefinition cpd = helper.addConfigurationPoint("Startup", List.class.getName());
+        ConfigurationPointDefinition cpd = helper.addConfigurationPoint("Startup", List.class.getName(),
false);
         
         final List services = getDefaultStartupServices();
         helper.addContributionDefinition(cpd, new Contribution() {
@@ -255,7 +255,7 @@
     {
 
         ConfigurationPointDefinition cpd = helper.addConfigurationPoint("ServiceModels",

-                Map.class.getName());
+                Map.class.getName(), false);
         
         final List serviceModels = getDefaultServiceModels();
         helper.addContributionDefinition(cpd, new Contribution() {
@@ -344,7 +344,7 @@
     private void addAutowiringStrategiesConfiguration()
     {
 
-        ConfigurationPointDefinition cpd = helper.addConfigurationPoint("AutowiringStrategies",
List.class.getName());
+        ConfigurationPointDefinition cpd = helper.addConfigurationPoint("AutowiringStrategies",
List.class.getName(), false);
         
         final List serviceModels = getDefaultAutowiringStrategies();
         helper.addContributionDefinition(cpd, new Contribution() {

Modified: hivemind/hivemind2/trunk/framework/src/test/hivemind/test/FrameworkTestCase.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/test/hivemind/test/FrameworkTestCase.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/test/hivemind/test/FrameworkTestCase.java (original)
+++ hivemind/hivemind2/trunk/framework/src/test/hivemind/test/FrameworkTestCase.java Thu Mar
 1 12:06:02 2007
@@ -101,7 +101,7 @@
     {
         ConfigurationPointDefinitionImpl result = new ConfigurationPointDefinitionImpl(module,
pointId,
                 newLocation(), Visibility.PUBLIC, ArrayList.class.getName(),
-                Occurances.UNBOUNDED);
+                Occurances.UNBOUNDED, false);
 
         return result;
     }

Modified: hivemind/hivemind2/trunk/xml/src/descriptor/META-INF/hivemodule.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/descriptor/META-INF/hivemodule.xml?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/descriptor/META-INF/hivemodule.xml (original)
+++ hivemind/hivemind2/trunk/xml/src/descriptor/META-INF/hivemodule.xml Thu Mar  1 12:06:02
2007
@@ -443,7 +443,7 @@
       &lt;/element&gt;
   &lt;/schema&gt;
   
-  &lt;configuration-point id="Translators"&gt;
+  &lt;configuration-point id="Translators" lazy="true"&gt;
     
     Used to define new translators that can be used in contribution conversion rules. 
     Translators must have unique names.

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlCoreServicesProvider.java
Thu Mar  1 12:06:02 2007
@@ -105,8 +105,8 @@
      */
     private void addSymbolSourcesConfiguration(ModuleDefinition md)
     {
-        ConfigurationPointDefinition cpd = helper.addConfigurationPoint("SymbolSources",
List.class.getName());
-
+        ConfigurationPointDefinition cpd = helper.addConfigurationPoint("SymbolSources",
List.class.getName(), true);
+        
         helper.addContributionDefinition(cpd, new Contribution()
         {
 
@@ -156,7 +156,7 @@
         
         // Configuration point for setting defaults for symbol values.
 
-        helper.addConfigurationPoint(configurationId, Map.class.getName());
+        helper.addConfigurationPoint(configurationId, Map.class.getName(), false);
     }  
     
     /**

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/impl/XmlModuleDescriptorProcessor.java
Thu Mar  1 12:06:02 2007
@@ -288,7 +288,7 @@
 
             ConfigurationPointDefinitionImpl configurationPoint = new ConfigurationPointDefinitionImpl(
                     module, cpd.getId(), cpd.getLocation(), cpd.getVisibility(), 
-                    cpd.getType(), cpd.getCount());
+                    cpd.getType(), cpd.getCount(), cpd.isLazy());
             module.addConfigurationPoint(configurationPoint);
             
             // If schema is embedded we can add a parser now, otherwise it must

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/ConfigurationPointDescriptor.java
Thu Mar  1 12:06:02 2007
@@ -38,6 +38,9 @@
 
     /** @since 1.1 */
     private Visibility _visibility = Visibility.PUBLIC;
+    
+    /** @since 2.0 */
+    private boolean _lazy;
 
     /**
      * Type of the configuration
@@ -53,6 +56,7 @@
         builder.append("contributionsSchema", _contributionsSchema);
         builder.append("contributionsSchemaId", _contributionsSchemaId);
         builder.append("visibility", _visibility);
+        builder.append("lazy", _lazy);
 
         return builder.toString();
     }
@@ -123,5 +127,18 @@
     public void setType(String type)
     {
         _type = type;
+    }
+
+    public void setLazy(Boolean lazy)
+    {
+        _lazy = lazy;
+    }
+
+    /**
+     * @since 2.0
+     */
+    public boolean isLazy()
+    {
+        return _lazy;
     }
 }

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.java
Thu Mar  1 12:06:02 2007
@@ -783,10 +783,13 @@
         // Qualify the interface name with the defined package name (which will
         // often implicitly or explicitly match the module id).
 
-        String fullContainerTypeName = IdUtils.qualify(
+        String fullTypeName = IdUtils.qualify(
                 _moduleDescriptor.getPackageName(),
                 typeName);
-        cpd.setType(fullContainerTypeName);
+        cpd.setType(fullTypeName);
+        
+        Boolean lazy = getBooleanAttribute("lazy", false);
+        cpd.setLazy(lazy);
 
         md.addConfigurationPoint(cpd);
     }

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.properties
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.properties?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.properties
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/parse/DescriptorParser.properties
Thu Mar  1 12:06:02 2007
@@ -24,6 +24,7 @@
 required.configuration-point.schema-id=false
 required.configuration-point.visibility=false
 required.configuration-point.type=false
+required.configuration-point.lazy=false
 
 required.service-point.id=true
 required.service-point.interface=false

Modified: hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/BadAttributes.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/BadAttributes.xml?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/BadAttributes.xml (original)
+++ hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/BadAttributes.xml Thu Mar 
1 12:06:02 2007
@@ -16,7 +16,7 @@
 --&gt;
 
 &lt;module id="hivemind.test.config" version="1.0.0"&gt;
-	&lt;configuration-point id="BadAttributes" schema-id="Datum"/&gt;
+	&lt;configuration-point id="BadAttributes" schema-id="Datum" lazy="true"/&gt;
 	&lt;schema id="Datum"&gt;
 		&lt;element name="datum"&gt;
 			&lt;attribute name="key" required="true"/&gt;

Modified: hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/Simple.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/Simple.xml?view=diff&amp;rev=513472&amp;r1=513471&amp;r2=513472
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/Simple.xml (original)
+++ hivemind/hivemind2/trunk/xml/src/test/hivemind/test/config/Simple.xml Thu Mar  1 12:06:02
2007
@@ -16,7 +16,7 @@
 --&gt;
 
 &lt;module id="hivemind.test.config" version="1.0.0"&gt;
-	&lt;configuration-point id="Simple" schema-id="Datum"/&gt;
+	&lt;configuration-point id="Simple" schema-id="Datum" lazy="true"/&gt;
 
 		&lt;schema id="Datum"&gt;
 			&lt;element name="datum"&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513396 - in /hivemind/hivemind2/trunk: annotations/src/java/org/apache/hivemind/annotations/AbstractAnnotatedModule.java xml/src/java/org/apache/hivemind/xml/definition/impl/HiveMindSchemaParser.java</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200703.mbox/%3c20070301162501.D42ED1A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070301162501-D42ED1A981A@eris-apache-org%3e</id>
<updated>2007-03-01T16:25:01Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Thu Mar  1 08:25:00 2007
New Revision: 513396

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513396
Log:
Fixed javadoc error

Modified:
    hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AbstractAnnotatedModule.java
    hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/xml/definition/impl/HiveMindSchemaParser.java

Modified: hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AbstractAnnotatedModule.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AbstractAnnotatedModule.java?view=diff&amp;rev=513396&amp;r1=513395&amp;r2=513396
==============================================================================
--- hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AbstractAnnotatedModule.java
(original)
+++ hivemind/hivemind2/trunk/annotations/src/java/org/apache/hivemind/annotations/AbstractAnnotatedModule.java
Thu Mar  1 08:25:00 2007
@@ -29,7 +29,7 @@
     /**
      * @return  the registry the module is loaded in
      */
-    public TypedRegistry getRegistry()
+    protected TypedRegistry getRegistry()
     {
         return _typedRegistry;
     }

Modified: hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/xml/definition/impl/HiveMindSchemaParser.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/xml/definition/impl/HiveMindSchemaParser.java?view=diff&amp;rev=513396&amp;r1=513395&amp;r2=513396
==============================================================================
--- hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/xml/definition/impl/HiveMindSchemaParser.java
(original)
+++ hivemind/hivemind2/trunk/xml/src/java/org/apache/hivemind/xml/definition/impl/HiveMindSchemaParser.java
Thu Mar  1 08:25:00 2007
@@ -42,7 +42,7 @@
     }
 
     /**
-     * @param  a list of {@link Element}s
+     * @param data  a list of {@link Element}s
      * @see org.apache.hivemind.definition.ConfigurationParser#parse(org.apache.hivemind.definition.ContributionContext,
java.lang.Object)
      */
     public Object parse(ContributionContext context, Object data)




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r513021 - in /hivemind/hivemind2/trunk: examples/src/java/org/apache/examples/definition/ framework/src/java/org/apache/hivemind/definition/impl/ framework/src/java/org/apache/hivemind/impl/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070228224615.655E91A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070228224615-655E91A981D@eris-apache-org%3e</id>
<updated>2007-02-28T22:46:15Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Wed Feb 28 14:46:14 2007
New Revision: 513021

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=513021
Log:
Java Registry Definition API example

Added:
    hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/
    hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
Modified:
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionImpl.java
    hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryBuilder.java

Added: hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java?view=auto&amp;rev=513021
==============================================================================
--- hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
(added)
+++ hivemind/hivemind2/trunk/examples/src/java/org/apache/examples/definition/JavaDefinitionExample.java
Wed Feb 28 14:46:14 2007
@@ -0,0 +1,100 @@
+package org.apache.examples.definition;
+
+import org.apache.examples.Adder;
+import org.apache.examples.Calculator;
+import org.apache.examples.impl.AdderImpl;
+import org.apache.examples.impl.CalculatorImpl;
+import org.apache.hivemind.Location;
+import org.apache.hivemind.Registry;
+import org.apache.hivemind.Resource;
+import org.apache.hivemind.definition.ImplementationConstructionContext;
+import org.apache.hivemind.definition.ImplementationConstructor;
+import org.apache.hivemind.definition.ImplementationDefinition;
+import org.apache.hivemind.definition.ModuleDefinition;
+import org.apache.hivemind.definition.RegistryDefinition;
+import org.apache.hivemind.definition.Visibility;
+import org.apache.hivemind.definition.impl.ImplementationDefinitionImpl;
+import org.apache.hivemind.definition.impl.ModuleDefinitionImpl;
+import org.apache.hivemind.definition.impl.RegistryDefinitionImpl;
+import org.apache.hivemind.definition.impl.ServicePointDefinitionImpl;
+import org.apache.hivemind.impl.CreateClassServiceConstructor;
+import org.apache.hivemind.impl.DefaultClassResolver;
+import org.apache.hivemind.impl.LocationImpl;
+import org.apache.hivemind.impl.RegistryBuilder;
+import org.apache.hivemind.internal.AbstractServiceImplementationConstructor;
+import org.apache.hivemind.internal.ServiceModel;
+import org.apache.hivemind.util.ClasspathResource;
+
+/**
+ * Demonstrates the use of the java registry definition API.
+ * 
+ * @author Achim Huegen
+ */
+public class JavaDefinitionExample
+{
+    public static void main(String[] args)
+    {
+        JavaDefinitionExample example = new JavaDefinitionExample();
+        Registry registry = example.constructRegistry();
+        
+        Calculator calculator = (Calculator) registry.getService(Calculator.class);
+        double result = calculator.add(10, 20);
+        System.out.println("Result: " + result);
+    }
+    
+    private Registry constructRegistry()
+    {
+        RegistryDefinition registryDefinition = new RegistryDefinitionImpl();
+        ModuleDefinition module = defineModule(registryDefinition);
+        registryDefinition.addModule(module);
+        
+        RegistryBuilder builder = new RegistryBuilder(registryDefinition);
+        Registry registry = builder.constructRegistry();
+        return registry;
+    }
+
+    private ModuleDefinition defineModule(RegistryDefinition registryDefinition)
+    {
+        ModuleDefinitionImpl module = new ModuleDefinitionImpl("calculator", createLocation());
+         
+        // Define the calculator service
+        ServicePointDefinitionImpl calculatorService = new ServicePointDefinitionImpl(module,

+                "Calculator", null, Visibility.PUBLIC, Calculator.class.getName());
+
+        // Define inline implementation constructor, that wires the Adder service
+        ImplementationConstructor calculatorConstructor = new AbstractServiceImplementationConstructor(createLocation())
+        {
+            public Object constructCoreServiceImplementation(ImplementationConstructionContext
context)
+            {
+                CalculatorImpl result = new CalculatorImpl();
+                result.setAdder((Adder) context.getService(Adder.class));
+                return result;
+            }
+        };
+        ImplementationDefinition calculatorImplementation = new ImplementationDefinitionImpl(module,
null, 
+                calculatorConstructor, ServiceModel.PRIMITIVE, true);
+        calculatorService.addImplementation(calculatorImplementation);
+        module.addServicePoint(calculatorService);
+        
+        // Define the adder service
+        ServicePointDefinitionImpl adderService = new ServicePointDefinitionImpl(module,

+                "Adder", null, Visibility.PUBLIC, Adder.class.getName());
+
+        ImplementationDefinition adderImplementation = new ImplementationDefinitionImpl(module,
null, 
+                new CreateClassServiceConstructor(createLocation(), AdderImpl.class.getName()),

+                ServiceModel.PRIMITIVE, true);
+        adderService.addImplementation(adderImplementation);
+        module.addServicePoint(adderService);
+        
+        return module;
+    }
+    
+    protected static Location createLocation()
+    {
+        String path = "/" + JavaDefinitionExample.class.getName().replace('.', '/');
+
+        Resource r = new ClasspathResource(new DefaultClassResolver(), path);
+
+        return new LocationImpl(r, 1);
+    }    
+}

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionImpl.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionImpl.java?view=diff&amp;rev=513021&amp;r1=513020&amp;r2=513021
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionImpl.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/definition/impl/ModuleDefinitionImpl.java
Wed Feb 28 14:46:14 2007
@@ -33,6 +33,7 @@
 import org.apache.hivemind.definition.InterceptorDefinition;
 import org.apache.hivemind.definition.ServicePointDefinition;
 import org.apache.hivemind.definition.UnresolvedExtension;
+import org.apache.hivemind.impl.DefaultClassResolver;
 
 /**
  * Default implementation of {@link ExtensionDefinition}.
@@ -63,10 +64,14 @@
     
     private Collection _unresolvedConfigurationParsers = new ArrayList();
     
-    public ModuleDefinitionImpl()
+    /**
+     * @param id  the id of the module 
+     */
+    public ModuleDefinitionImpl(String id, Location location)
     {
-    }
-
+        this(id, location, new DefaultClassResolver(), null);
+    }    
+    
     /**
      * @param id  the id of the module 
      * @param location  the location of the module 

Modified: hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryBuilder.java
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryBuilder.java?view=diff&amp;rev=513021&amp;r1=513020&amp;r2=513021
==============================================================================
--- hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryBuilder.java
(original)
+++ hivemind/hivemind2/trunk/framework/src/java/org/apache/hivemind/impl/RegistryBuilder.java
Wed Feb 28 14:46:14 2007
@@ -127,7 +127,7 @@
      */
     public Registry constructRegistry()
     {
-        return constructRegistry();
+        return constructRegistry(Locale.getDefault());
     }
     
     /**




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r512026 - /hivemind/hivemind-site/trunk/src/site/apt/download.apt</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070226215414.B785A1A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070226215414-B785A1A981A@eris-apache-org%3e</id>
<updated>2007-02-26T21:54:14Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Mon Feb 26 13:54:13 2007
New Revision: 512026

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=512026
Log:
Signatures added

Modified:
    hivemind/hivemind-site/trunk/src/site/apt/download.apt

Modified: hivemind/hivemind-site/trunk/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/apt/download.apt?view=diff&amp;rev=512026&amp;r1=512025&amp;r2=512026
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/apt/download.apt (original)
+++ hivemind/hivemind-site/trunk/src/site/apt/download.apt Mon Feb 26 13:54:13 2007
@@ -6,12 +6,12 @@
 11 January 2007
  ------
 
-HiveMind is distributed in several formats for your convenience.
-
-You will be prompted for a mirror - if the file is not found on yours, please be patient,
as it may take 24
-hours to reach all mirrors.
-
-HiveMind is distributed under the {{{http://hivemind.apache.org/license.html} Apache License,
version 2.0}}.
+	HiveMind is distributed in several formats for your convenience.
+	
+	You will be prompted for a mirror - if the file is not found on yours, please be patient,
as it may take 24
+	hours to reach all mirrors.
+	
+	HiveMind is distributed under the {{{http://hivemind.apache.org/license.html} Apache License,
version 2.0}}.
 
 Download HiveMind 1.1.1 [stable]
 
@@ -30,12 +30,12 @@
 *-------------------------+---------+----------+-----------+
 |                         | Mirrors | Checksum | Signature |
 *-------------------------+---------+----------+-----------+
-| HiveMind 2.0-alpha-1-bin binary (tar.gz)      | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz}
hivemind-2.0-alpha-1-bin.tar.gz}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz.md5}
hivemind-2.0-alpha-1-bin.tar.gz.md5}} | - | 
+| HiveMind 2.0-alpha-1-bin binary (tar.gz)      | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz}
hivemind-2.0-alpha-1-bin.tar.gz}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz.md5}
hivemind-2.0-alpha-1-bin.tar.gz.md5}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz.asc}
hivemind-2.0-alpha-1-bin.tar.gz.asc}} | 
 *-------------------------+---------+----------+-----------+
-| HiveMind 2.0-alpha-1-bin binary (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip}
hivemind-2.0-alpha-1-bin.zip}} | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip.md5}
hivemind-2.0-alpha-1-bin.zip.md5}} | - | 
+| HiveMind 2.0-alpha-1-bin binary (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip}
hivemind-2.0-alpha-1-bin.zip}} | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip.md5}
hivemind-2.0-alpha-1-bin.zip.md5}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip.asc}
hivemind-2.0-alpha-1-bin.zip.asc}} | 
 *-------------------------+---------+----------+-----------+
-| HiveMind 2.0-alpha-1-src source (tar.gz)      | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz}
hivemind-2.0-alpha-1-src.tar.gz}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz.md5}
hivemind-2.0-alpha-1-src.tar.gz.md5}} | - | 
+| HiveMind 2.0-alpha-1-src source (tar.gz)      | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz}
hivemind-2.0-alpha-1-src.tar.gz}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz.md5}
hivemind-2.0-alpha-1-src.tar.gz.md5}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz.asc}
hivemind-2.0-alpha-1-src.tar.gz.asc}} | 
 *-------------------------+---------+----------+-----------+
-| HiveMind 2.0-alpha-1-src source (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip}
hivemind-2.0-alpha-1-src.zip}} | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip.md5}
hivemind-2.0-alpha-1-src.zip.md5}} | - | 
+| HiveMind 2.0-alpha-1-src source (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip}
hivemind-2.0-alpha-1-src.zip}} | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip.md5}
hivemind-2.0-alpha-1-src.zip.md5}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip.asc}
hivemind-2.0-alpha-1-src.zip.asc}} | 
 *-------------------------+---------+----------+-----------+
 




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511609 - in /hivemind/hivemind2/trunk: pom.xml src/main/assembly/bin.xml src/main/assembly/src.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225210406.BD97C1A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225210406-BD97C1A981A@eris-apache-org%3e</id>
<updated>2007-02-25T21:04:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 13:04:05 2007
New Revision: 511609

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511609
Log:
Maven assembly information corrected

Modified:
    hivemind/hivemind2/trunk/pom.xml
    hivemind/hivemind2/trunk/src/main/assembly/bin.xml
    hivemind/hivemind2/trunk/src/main/assembly/src.xml

Modified: hivemind/hivemind2/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/pom.xml?view=diff&amp;rev=511609&amp;r1=511608&amp;r2=511609
==============================================================================
--- hivemind/hivemind2/trunk/pom.xml (original)
+++ hivemind/hivemind2/trunk/pom.xml Sun Feb 25 13:04:05 2007
@@ -183,6 +183,7 @@
                 &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
                 &lt;version&gt;2.1&lt;/version&gt;
                 &lt;configuration&gt;
+                    &lt;finalName&gt;hivemind-${pom.version}&lt;/finalName&gt;
                     &lt;descriptors&gt;
                         &lt;descriptor&gt;src/main/assembly/bin.xml&lt;/descriptor&gt;
                         &lt;descriptor&gt;src/main/assembly/src.xml&lt;/descriptor&gt;

Modified: hivemind/hivemind2/trunk/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/src/main/assembly/bin.xml?view=diff&amp;rev=511609&amp;r1=511608&amp;r2=511609
==============================================================================
--- hivemind/hivemind2/trunk/src/main/assembly/bin.xml (original)
+++ hivemind/hivemind2/trunk/src/main/assembly/bin.xml Sun Feb 25 13:04:05 2007
@@ -2,7 +2,6 @@
     &lt;id&gt;bin&lt;/id&gt;
     &lt;formats&gt;
         &lt;format&gt;tar.gz&lt;/format&gt;
-        &lt;format&gt;tar.bz2&lt;/format&gt;
         &lt;format&gt;zip&lt;/format&gt;
     &lt;/formats&gt;
     &lt;includeBaseDirectory&gt;false&lt;/includeBaseDirectory&gt;

Modified: hivemind/hivemind2/trunk/src/main/assembly/src.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/src/main/assembly/src.xml?view=diff&amp;rev=511609&amp;r1=511608&amp;r2=511609
==============================================================================
--- hivemind/hivemind2/trunk/src/main/assembly/src.xml (original)
+++ hivemind/hivemind2/trunk/src/main/assembly/src.xml Sun Feb 25 13:04:05 2007
@@ -2,7 +2,6 @@
     &lt;id&gt;src&lt;/id&gt;
     &lt;formats&gt;
         &lt;format&gt;tar.gz&lt;/format&gt;
-        &lt;format&gt;tar.bz2&lt;/format&gt;
         &lt;format&gt;zip&lt;/format&gt;
     &lt;/formats&gt;
     &lt;includeBaseDirectory&gt;false&lt;/includeBaseDirectory&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511608 - in /hivemind/hivemind-site/trunk: pom.xml src/site/apt/download.apt src/site/site.xml src/site/xdoc/hivemind2.xml src/site/xdoc/index.xml src/site/xdoc/news.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225210258.89D6D1A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225210258-89D6D1A981D@eris-apache-org%3e</id>
<updated>2007-02-25T21:02:58Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 13:02:57 2007
New Revision: 511608

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511608
Log:
Announcement and download for 2.0-alpha-1

Removed:
    hivemind/hivemind-site/trunk/src/site/xdoc/hivemind2.xml
Modified:
    hivemind/hivemind-site/trunk/pom.xml
    hivemind/hivemind-site/trunk/src/site/apt/download.apt
    hivemind/hivemind-site/trunk/src/site/site.xml
    hivemind/hivemind-site/trunk/src/site/xdoc/index.xml
    hivemind/hivemind-site/trunk/src/site/xdoc/news.xml

Modified: hivemind/hivemind-site/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/pom.xml?view=diff&amp;rev=511608&amp;r1=511607&amp;r2=511608
==============================================================================
--- hivemind/hivemind-site/trunk/pom.xml (original)
+++ hivemind/hivemind-site/trunk/pom.xml Sun Feb 25 13:02:57 2007
@@ -5,7 +5,7 @@
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
     &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
     &lt;artifactId&gt;hivemind-site&lt;/artifactId&gt;
-    &lt;version&gt;2.0-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;2.0&lt;/version&gt;
     &lt;packaging&gt;pom&lt;/packaging&gt;
     &lt;name&gt;HiveMind&lt;/name&gt;
     &lt;description&gt;Services and configuration micro kernel.&lt;/description&gt;

Modified: hivemind/hivemind-site/trunk/src/site/apt/download.apt
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/apt/download.apt?view=diff&amp;rev=511608&amp;r1=511607&amp;r2=511608
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/apt/download.apt (original)
+++ hivemind/hivemind-site/trunk/src/site/apt/download.apt Sun Feb 25 13:02:57 2007
@@ -6,14 +6,14 @@
 11 January 2007
  ------
 
-Download HiveMind 1.1.1 [stable]
+HiveMind is distributed in several formats for your convenience.
 
-  HiveMind is distributed in several formats for your convenience.
+You will be prompted for a mirror - if the file is not found on yours, please be patient,
as it may take 24
+hours to reach all mirrors.
 
-  You will be prompted for a mirror - if the file is not found on yours, please be patient,
as it may take 24
-  hours to reach all mirrors.
+HiveMind is distributed under the {{{http://hivemind.apache.org/license.html} Apache License,
version 2.0}}.
 
-  HiveMind 1.1.1 is distributed under the {{{http://hivemind.apache.org/license.html} Apache
License, version 2.0}}.
+Download HiveMind 1.1.1 [stable]
 
 *-------------------------+---------+----------+-----------+
 |                         | Mirrors | Checksum | Signature |
@@ -23,5 +23,19 @@
 | HiveMind 1.1.1 (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-1.1.1.zip}
hivemind-1.1.1.zip}} | - | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-1.1.1.zip.asc}
hivemind-1.1.1.zip.asc}} |
 *-------------------------+---------+----------+-----------+
 | HiveMind 1.1.1 Documentation (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-1.1.1-docs.tar.gz}
hivemind-1.1.1-docs.tar.gz}} | - | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-1.1.1-docs.tar.gz.asc}
hivemind-1.1.1-docs.tar.gz.asc}} |
+*-------------------------+---------+----------+-----------+
+
+Download HiveMind 2.0-alpha1 [alpha]
+
+*-------------------------+---------+----------+-----------+
+|                         | Mirrors | Checksum | Signature |
+*-------------------------+---------+----------+-----------+
+| HiveMind 2.0-alpha-1-bin binary (tar.gz)      | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz}
hivemind-2.0-alpha-1-bin.tar.gz}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.tar.gz.md5}
hivemind-2.0-alpha-1-bin.tar.gz.md5}} | - | 
+*-------------------------+---------+----------+-----------+
+| HiveMind 2.0-alpha-1-bin binary (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip}
hivemind-2.0-alpha-1-bin.zip}} | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-bin.zip.md5}
hivemind-2.0-alpha-1-bin.zip.md5}} | - | 
+*-------------------------+---------+----------+-----------+
+| HiveMind 2.0-alpha-1-src source (tar.gz)      | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz}
hivemind-2.0-alpha-1-src.tar.gz}} | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.tar.gz.md5}
hivemind-2.0-alpha-1-src.tar.gz.md5}} | - | 
+*-------------------------+---------+----------+-----------+
+| HiveMind 2.0-alpha-1-src source (zip)         | {{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip}
hivemind-2.0-alpha-1-src.zip}} | {{{{http://www.apache.org/dyn/closer.cgi/hivemind/hivemind-2.0-alpha-1-src.zip.md5}
hivemind-2.0-alpha-1-src.zip.md5}} | - | 
 *-------------------------+---------+----------+-----------+
 

Modified: hivemind/hivemind-site/trunk/src/site/site.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/site.xml?view=diff&amp;rev=511608&amp;r1=511607&amp;r2=511608
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/site.xml (original)
+++ hivemind/hivemind-site/trunk/src/site/site.xml Sun Feb 25 13:02:57 2007
@@ -28,14 +28,13 @@
         &lt;menu name="Quick Links"&gt;
             &lt;item name="Home" href="/index.html"/&gt;
             &lt;item name="Download" href="/download.html"/&gt;
-            &lt;item name="Wiki" href="http://wiki.apache.org/hivemind/"/&gt;
-          &lt;!--  &lt;item name="Wiki" href="http://cwiki.apache.org/HIVEMIND2/"/&gt; --&gt;
+            &lt;item name="Old Wiki" href="http://wiki.apache.org/hivemind/"/&gt;
+            &lt;item name="New Wiki" href="http://cwiki.apache.org/HIVEMIND2/"/&gt; 
             &lt;item name="News" href="/news.html"/&gt;
         &lt;/menu&gt;
         &lt;menu name="Versions"&gt;
             &lt;item name="HiveMind 1.1 (active)" href="http://hivemind.apache.org/hivemind1"/&gt;
-            &lt;item name="HiveMind 2 (unreleased)" href="/hivemind2.html"/&gt;
-&lt;!--            &lt;item name="HiveMind 2 (unreleased)" href="http://hivemind.apache.org/hivemind2"/&gt;
--&gt;
+            &lt;item name="HiveMind 2 (alpha)" href="http://hivemind.apache.org/hivemind2"/&gt;
         &lt;/menu&gt;
         ${reports} 
     &lt;/body&gt;

Modified: hivemind/hivemind-site/trunk/src/site/xdoc/index.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/xdoc/index.xml?view=diff&amp;rev=511608&amp;r1=511607&amp;r2=511608
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/xdoc/index.xml (original)
+++ hivemind/hivemind-site/trunk/src/site/xdoc/index.xml Sun Feb 25 13:02:57 2007
@@ -5,7 +5,7 @@
         &lt;author email="ahuegen@apache.org"&gt;Achim Huegen&lt;/author&gt;
     &lt;/properties&gt;
     &lt;body&gt;
-        &lt;section name="Welcome to HiveMind"&gt;
+        &lt;section name="Welcome to HiveMind 2"&gt;
 
             &lt;div id="downloadbox"&gt;
                 &lt;h5&gt;Get HiveMind 1.1.1&lt;/h5&gt;
@@ -15,11 +15,20 @@
                     &lt;/a&gt; HiveMind 1.1.1 &lt;/p&gt;
 
                 &lt;br/&gt;
+                
+                &lt;h5&gt;Get HiveMind 2.0-alpha-1&lt;/h5&gt;
+                &lt;p&gt;
+                    &lt;a href="download.html"&gt;
+                        &lt;img valign="top" src="images/folder-open.gif" border="0" alt=""
title="download"/&gt; Download
+                    &lt;/a&gt; HiveMind 2.0-alpha-1 &lt;/p&gt;
+
+                &lt;br/&gt;
 
                 &lt;!-- Leave the last few news items here --&gt;
 
                 &lt;h5&gt;New!&lt;/h5&gt;
                 &lt;ul style="list-style:none"&gt;
+                    &lt;li&gt;&lt;a href="news.html#First alpha release of HiveMind 2"&gt;First
alpha release of HiveMind 2&lt;/a&gt;&lt;/li&gt;
                     &lt;li&gt;&lt;a href="news.html#New Site"&gt;New Site&lt;/a&gt;&lt;/li&gt;
                     &lt;li&gt;&lt;a href="news.html#HiveMind - Now Top Level"&gt;HiveMind
- Now Top Level Project&lt;/a&gt;&lt;/li&gt;
                 &lt;/ul&gt;

Modified: hivemind/hivemind-site/trunk/src/site/xdoc/news.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/src/site/xdoc/news.xml?view=diff&amp;rev=511608&amp;r1=511607&amp;r2=511608
==============================================================================
--- hivemind/hivemind-site/trunk/src/site/xdoc/news.xml (original)
+++ hivemind/hivemind-site/trunk/src/site/xdoc/news.xml Sun Feb 25 13:02:57 2007
@@ -8,6 +8,13 @@
     &lt;section name="General"&gt;
       &lt;p&gt;Keep up to date with the latest events in the HiveMind world.&lt;/p&gt;
 
+      &lt;subsection name="First alpha release of HiveMind 2"&gt;
+        &lt;p&gt; A public alpha version of &lt;a href="http://hivemind.apache.org/hivemind2"&gt;HiveMind
2&lt;/a&gt; is available.
+           It is available via the Maven repository or from the &lt;a href="download.html"&gt;HiveMind
download page&lt;/a&gt;.
+           First documentation is available on the &lt;a href="http://cwiki.apache.org/HIVMINED2"&gt;new
wiki&lt;/a&gt;.
+        &lt;/p&gt;
+      &lt;/subsection&gt;
+ 
       &lt;subsection name="New Site"&gt;
         &lt;p&gt; The HiveMind site has experienced a major redesign as preparation
           for the oncoming first release of HiveMind 2




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511607 - /hivemind/hivemind-site/trunk/maven-skin/pom.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225210230.6BD151A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225210230-6BD151A981A@eris-apache-org%3e</id>
<updated>2007-02-25T21:02:30Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 13:02:29 2007
New Revision: 511607

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511607
Log:
Release 2.0

Modified:
    hivemind/hivemind-site/trunk/maven-skin/pom.xml

Modified: hivemind/hivemind-site/trunk/maven-skin/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind-site/trunk/maven-skin/pom.xml?view=diff&amp;rev=511607&amp;r1=511606&amp;r2=511607
==============================================================================
--- hivemind/hivemind-site/trunk/maven-skin/pom.xml (original)
+++ hivemind/hivemind-site/trunk/maven-skin/pom.xml Sun Feb 25 13:02:29 2007
@@ -4,14 +4,14 @@
     &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
     &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
     &lt;artifactId&gt;maven-skin&lt;/artifactId&gt;
-    &lt;version&gt;2.0-SNAPSHOT&lt;/version&gt;
+    &lt;version&gt;2.0&lt;/version&gt;
     &lt;name&gt;HiveMind Site Skin&lt;/name&gt;
     &lt;description&gt;HiveMind Maven2 Site Skin&lt;/description&gt;
     
     &lt;parent&gt;
         &lt;groupId&gt;org.apache.hivemind&lt;/groupId&gt;
         &lt;artifactId&gt;hivemind-site&lt;/artifactId&gt;
-        &lt;version&gt;2.0.0&lt;/version&gt;
+        &lt;version&gt;2.0&lt;/version&gt;
     &lt;/parent&gt;
     
 &lt;/project&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511582 - /hivemind/hivemind2/tags/releases/2.0-alpha-1/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225195013.8B94D1A981F@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225195013-8B94D1A981F@eris-apache-org%3e</id>
<updated>2007-02-25T19:50:13Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 11:50:12 2007
New Revision: 511582

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511582
Log:
Release 2.0-alpha-1

Added:
    hivemind/hivemind2/tags/releases/2.0-alpha-1/
      - copied from r511581, hivemind/hivemind2/trunk/



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511581 - /hivemind/hivemind2/tags/releases/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225195000.58D711A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225195000-58D711A981D@eris-apache-org%3e</id>
<updated>2007-02-25T19:50:00Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 11:49:59 2007
New Revision: 511581

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511581
Log: (empty)

Added:
    hivemind/hivemind2/tags/releases/



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511580 - /hivemind/hivemind2/tags/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225194946.EF64C1A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225194946-EF64C1A981A@eris-apache-org%3e</id>
<updated>2007-02-25T19:49:46Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 11:49:46 2007
New Revision: 511580

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511580
Log: (empty)

Added:
    hivemind/hivemind2/tags/



</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511492 - /hivemind/hivemind2/trunk/src/main/assembly/src.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225124606.3FBD61A981D@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225124606-3FBD61A981D@eris-apache-org%3e</id>
<updated>2007-02-25T12:46:06Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 04:46:05 2007
New Revision: 511492

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511492
Log:
Maven assembly information added

Modified:
    hivemind/hivemind2/trunk/src/main/assembly/src.xml

Modified: hivemind/hivemind2/trunk/src/main/assembly/src.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/src/main/assembly/src.xml?view=diff&amp;rev=511492&amp;r1=511491&amp;r2=511492
==============================================================================
--- hivemind/hivemind2/trunk/src/main/assembly/src.xml (original)
+++ hivemind/hivemind2/trunk/src/main/assembly/src.xml Sun Feb 25 04:46:05 2007
@@ -1,5 +1,5 @@
 &lt;assembly&gt;
-    &lt;id&gt;project&lt;/id&gt;
+    &lt;id&gt;src&lt;/id&gt;
     &lt;formats&gt;
         &lt;format&gt;tar.gz&lt;/format&gt;
         &lt;format&gt;tar.bz2&lt;/format&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511485 - in /hivemind/hivemind2/trunk: pom.xml src/main/ src/main/assembly/ src/main/assembly/bin.xml src/main/assembly/src.xml</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070225123335.3AE411A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070225123335-3AE411A981A@eris-apache-org%3e</id>
<updated>2007-02-25T12:33:35Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sun Feb 25 04:33:34 2007
New Revision: 511485

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511485
Log:
Maven assembly information added

Added:
    hivemind/hivemind2/trunk/src/main/
    hivemind/hivemind2/trunk/src/main/assembly/
    hivemind/hivemind2/trunk/src/main/assembly/bin.xml
    hivemind/hivemind2/trunk/src/main/assembly/src.xml
Modified:
    hivemind/hivemind2/trunk/pom.xml

Modified: hivemind/hivemind2/trunk/pom.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/pom.xml?view=diff&amp;rev=511485&amp;r1=511484&amp;r2=511485
==============================================================================
--- hivemind/hivemind2/trunk/pom.xml (original)
+++ hivemind/hivemind2/trunk/pom.xml Sun Feb 25 04:33:34 2007
@@ -12,8 +12,8 @@
     &lt;modules&gt;
         &lt;module&gt;framework&lt;/module&gt;
         &lt;module&gt;xml&lt;/module&gt;
-        &lt;module&gt;library&lt;/module&gt;
         &lt;module&gt;annotations&lt;/module&gt;
+        &lt;module&gt;library&lt;/module&gt;
         &lt;module&gt;jmx&lt;/module&gt;
         &lt;module&gt;examples&lt;/module&gt;
     &lt;/modules&gt;
@@ -155,9 +155,9 @@
             &lt;/resource&gt;
             &lt;resource&gt;
                 &lt;directory&gt;src/descriptor&lt;/directory&gt;
-				&lt;excludes&gt;
-          			&lt;exclude&gt;**/test-jar-dummy/*.*&lt;/exclude&gt;
-        		&lt;/excludes&gt;
+								&lt;excludes&gt;
+          				&lt;exclude&gt;**/test-jar-dummy/*.*&lt;/exclude&gt;
+        				&lt;/excludes&gt;
             &lt;/resource&gt;
         &lt;/resources&gt;
         &lt;testSourceDirectory&gt;src/test&lt;/testSourceDirectory&gt;
@@ -179,6 +179,16 @@
                     &lt;locales&gt;en&lt;/locales&gt;
                 &lt;/configuration&gt;
             &lt;/plugin&gt;
+						&lt;plugin&gt;
+                &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.1&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;descriptors&gt;
+                        &lt;descriptor&gt;src/main/assembly/bin.xml&lt;/descriptor&gt;
+                        &lt;descriptor&gt;src/main/assembly/src.xml&lt;/descriptor&gt;
+                    &lt;/descriptors&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
         &lt;/plugins&gt;
         &lt;!-- Set defaults across other modules. --&gt;
         &lt;pluginManagement&gt;
@@ -225,21 +235,6 @@
                 &lt;/plugin&gt;
                 &lt;plugin&gt;
                     &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
-                    &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
-                    &lt;executions&gt;
-                        &lt;execution&gt;
-                            &lt;phase&gt;package&lt;/phase&gt;
-                            &lt;configuration&gt;
-                                &lt;descriptorId&gt;src&lt;/descriptorId&gt;
-                            &lt;/configuration&gt;
-                            &lt;goals&gt;
-                                &lt;goal&gt;assembly&lt;/goal&gt;
-                            &lt;/goals&gt;
-                        &lt;/execution&gt;
-                    &lt;/executions&gt;
-                &lt;/plugin&gt;
-                &lt;plugin&gt;
-                    &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                     &lt;artifactId&gt;maven-source-plugin&lt;/artifactId&gt;
                     &lt;executions&gt;
                         &lt;execution&gt;
@@ -276,6 +271,14 @@
             &lt;/plugin&gt;
         &lt;/plugins&gt;
     &lt;/reporting&gt;
+    &lt;!--
+    &lt;repositories&gt;
+        &lt;repository&gt;
+            &lt;id&gt;apache.snapshots&lt;/id&gt;
+            &lt;url&gt;http://people.apache.org/repo/m2-snapshot-repository&lt;/url&gt;
+        &lt;/repository&gt;
+    &lt;/repositories&gt;
+    --&gt;
     &lt;distributionManagement&gt;
         &lt;site&gt;
             &lt;id&gt;apache-www&lt;/id&gt;

Added: hivemind/hivemind2/trunk/src/main/assembly/bin.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/src/main/assembly/bin.xml?view=auto&amp;rev=511485
==============================================================================
--- hivemind/hivemind2/trunk/src/main/assembly/bin.xml (added)
+++ hivemind/hivemind2/trunk/src/main/assembly/bin.xml Sun Feb 25 04:33:34 2007
@@ -0,0 +1,42 @@
+&lt;assembly&gt;
+    &lt;id&gt;bin&lt;/id&gt;
+    &lt;formats&gt;
+        &lt;format&gt;tar.gz&lt;/format&gt;
+        &lt;format&gt;tar.bz2&lt;/format&gt;
+        &lt;format&gt;zip&lt;/format&gt;
+    &lt;/formats&gt;
+    &lt;includeBaseDirectory&gt;false&lt;/includeBaseDirectory&gt;
+    &lt;fileSets&gt;
+        &lt;fileSet&gt;
+            &lt;includes&gt;
+                &lt;include&gt;README*&lt;/include&gt;
+                &lt;include&gt;LICENSE*&lt;/include&gt;
+                &lt;include&gt;NOTICE*&lt;/include&gt;
+            &lt;/includes&gt;
+        &lt;/fileSet&gt;
+        &lt;fileSet&gt;
+            &lt;directory&gt;target&lt;/directory&gt;
+            &lt;outputDirectory&gt;&lt;/outputDirectory&gt;
+            &lt;includes&gt;
+                &lt;include&gt;*.jar&lt;/include&gt;
+            &lt;/includes&gt;
+        &lt;/fileSet&gt;
+    &lt;/fileSets&gt;
+    &lt;moduleSets&gt;
+        &lt;moduleSet&gt;
+            &lt;includes&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-framework&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-xml&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-annotations&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-lib&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-jmx&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-examples&lt;/include&gt;
+            &lt;/includes&gt;
+            &lt;binaries&gt;
+                &lt;outputDirectory&gt;modules/${artifactId}&lt;/outputDirectory&gt;
+                &lt;includeDependencies&gt;false&lt;/includeDependencies&gt;
+                &lt;unpack&gt;false&lt;/unpack&gt;
+            &lt;/binaries&gt;
+        &lt;/moduleSet&gt;
+    &lt;/moduleSets&gt;
+&lt;/assembly&gt;

Added: hivemind/hivemind2/trunk/src/main/assembly/src.xml
URL: http://svn.apache.org/viewvc/hivemind/hivemind2/trunk/src/main/assembly/src.xml?view=auto&amp;rev=511485
==============================================================================
--- hivemind/hivemind2/trunk/src/main/assembly/src.xml (added)
+++ hivemind/hivemind2/trunk/src/main/assembly/src.xml Sun Feb 25 04:33:34 2007
@@ -0,0 +1,31 @@
+&lt;assembly&gt;
+    &lt;id&gt;project&lt;/id&gt;
+    &lt;formats&gt;
+        &lt;format&gt;tar.gz&lt;/format&gt;
+        &lt;format&gt;tar.bz2&lt;/format&gt;
+        &lt;format&gt;zip&lt;/format&gt;
+    &lt;/formats&gt;
+    &lt;includeBaseDirectory&gt;false&lt;/includeBaseDirectory&gt;
+    &lt;fileSets&gt;
+        &lt;fileSet&gt;
+            &lt;directory&gt;.&lt;/directory&gt;
+            &lt;outputDirectory&gt;&lt;/outputDirectory&gt;
+            &lt;excludes&gt;
+                &lt;exclude&gt;**/target/**&lt;/exclude&gt;
+                &lt;exclude&gt;**/bin/**&lt;/exclude&gt;
+            &lt;/excludes&gt;
+        &lt;/fileSet&gt;
+    &lt;/fileSets&gt;
+    &lt;moduleSets&gt;
+        &lt;moduleSet&gt;
+            &lt;includes&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-framework&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-xml&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-annotations&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-lib&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-jmx&lt;/include&gt;
+                &lt;include&gt;org.apache.hivemind:hivemind-examples&lt;/include&gt;
+            &lt;/includes&gt;
+        &lt;/moduleSet&gt;
+    &lt;/moduleSets&gt;
+&lt;/assembly&gt;




</pre>
</div>
</content>
</entry>
<entry>
<title>svn commit: r511325 - in /hivemind/hivemind2/trunk/src/documentation: classes/ conf/</title>
<author><name>ahuegen@apache.org</name></author>
<link rel="alternate" href="http://mail-archives.apache.org/mod_mbox/hivemind-commits/200702.mbox/%3c20070224185725.73D741A981A@eris.apache.org%3e"/>
<id>urn:uuid:%3c20070224185725-73D741A981A@eris-apache-org%3e</id>
<updated>2007-02-24T18:57:25Z</updated>
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
<pre>
Author: ahuegen
Date: Sat Feb 24 10:57:24 2007
New Revision: 511325

URL: http://svn.apache.org/viewvc?view=rev&amp;rev=511325
Log:
Forrest configurations removed

Removed:
    hivemind/hivemind2/trunk/src/documentation/classes/
    hivemind/hivemind2/trunk/src/documentation/conf/



</pre>
</div>
</content>
</entry>
</feed>
