You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2006/02/09 17:03:30 UTC

svn commit: r376331 - in /maven/sandbox/proficio: ./ proficio-api/ proficio-api/src/ proficio-api/src/main/ proficio-api/src/main/java/ proficio-api/src/main/java/org/ proficio-api/src/main/java/org/apache/ proficio-api/src/main/java/org/apache/maven/ ...

Author: jvanzyl
Date: Thu Feb  9 08:03:26 2006
New Revision: 376331

URL: http://svn.apache.org/viewcvs?rev=376331&view=rev
Log:
unfinished cut for sharing purposes

Added:
    maven/sandbox/proficio/
    maven/sandbox/proficio/notes.txt   (with props)
    maven/sandbox/proficio/pom.xml   (with props)
    maven/sandbox/proficio/proficio-api/
    maven/sandbox/proficio/proficio-api/pom.xml   (with props)
    maven/sandbox/proficio/proficio-api/src/
    maven/sandbox/proficio/proficio-api/src/main/
    maven/sandbox/proficio/proficio-api/src/main/java/
    maven/sandbox/proficio/proficio-api/src/main/java/org/
    maven/sandbox/proficio/proficio-api/src/main/java/org/apache/
    maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/
    maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/
    maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java   (with props)
    maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java   (with props)
    maven/sandbox/proficio/proficio-api/src/test/
    maven/sandbox/proficio/proficio-api/src/test/java/
    maven/sandbox/proficio/proficio-api/src/test/java/org/
    maven/sandbox/proficio/proficio-api/src/test/java/org/apache/
    maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/
    maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/
    maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java   (with props)
    maven/sandbox/proficio/proficio-core/
    maven/sandbox/proficio/proficio-core/pom.xml   (with props)
    maven/sandbox/proficio/proficio-core/src/
    maven/sandbox/proficio/proficio-core/src/main/
    maven/sandbox/proficio/proficio-core/src/main/java/
    maven/sandbox/proficio/proficio-core/src/main/java/org/
    maven/sandbox/proficio/proficio-core/src/main/java/org/apache/
    maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/
    maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/
    maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java   (with props)
    maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java   (with props)
    maven/sandbox/proficio/proficio-core/src/test/
    maven/sandbox/proficio/proficio-core/src/test/java/
    maven/sandbox/proficio/proficio-core/src/test/java/org/
    maven/sandbox/proficio/proficio-core/src/test/java/org/apache/
    maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/
    maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/
    maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java   (with props)
    maven/sandbox/proficio/proficio-model/
    maven/sandbox/proficio/proficio-model/pom.xml   (with props)
    maven/sandbox/proficio/proficio-model/src/
    maven/sandbox/proficio/proficio-model/src/main/
    maven/sandbox/proficio/proficio-model/src/main/mdo/
    maven/sandbox/proficio/proficio-model/src/main/mdo/proficio.mdo
    maven/sandbox/proficio/proficio-plugins/
    maven/sandbox/proficio/proficio-web/
    maven/sandbox/proficio/proficio-xmlrpc/

Added: maven/sandbox/proficio/notes.txt
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/notes.txt?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/notes.txt (added)
+++ maven/sandbox/proficio/notes.txt Thu Feb  9 08:03:26 2006
@@ -0,0 +1,37 @@
+Continuum failed to prove that plexus is good for developing applications. I still want to be able to whip together
+an application in a day like you can with Ruby on Rails.
+
+o easy database persistence
+o easy webservices: xmlrpc,SOAP,optimized REST (using modello)
+o easy scripting of components
+o convenient development mode where things are reloaded correctly
+o testing proved to be incredibly difficult
+
+Workflow for creating an application
+
+o design a white site or gui app
+  - here a javascript screen builder would be idea or something like abeile for a gui builder
+
+o create the object model
+o create the application model
+o create the workflow
+o create rules
+o need to be able to do this visually
+
+
+Persistence?
+
+OJB
+JPOX seemed to be a failure
+Mr Persister
+Stash
+iBatis
+
+Security
+
+Acegi
+Plexus Security
+What other options are there?
+
+My dream of the half-day application prototype. Something fully working that is usable. A quick app that works but
+is then fully customizable.
\ No newline at end of file

Propchange: maven/sandbox/proficio/notes.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/notes.txt
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/pom.xml
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/pom.xml?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/pom.xml (added)
+++ maven/sandbox/proficio/pom.xml Thu Feb  9 08:03:26 2006
@@ -0,0 +1,17 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.proficio</groupId>
+  <artifactId>proficio</artifactId>
+  <packaging>jar</packaging>
+  <version>1</version>
+  <name>Maven Quick Start Archetype</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/sandbox/proficio/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-api/pom.xml
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-api/pom.xml?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-api/pom.xml (added)
+++ maven/sandbox/proficio/proficio-api/pom.xml Thu Feb  9 08:03:26 2006
@@ -0,0 +1,17 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.proficio</groupId>
+  <artifactId>proficio</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Maven Quick Start Archetype</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+      <version>1.0-alpha-9</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/sandbox/proficio/proficio-api/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-api/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java (added)
+++ maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java Thu Feb  9 08:03:26 2006
@@ -0,0 +1,13 @@
+package org.apache.maven.proficio;
+
+/**
+ * Hello world!
+ *
+ */
+public class DefaultProficio
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/DefaultProficio.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java (added)
+++ maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java Thu Feb  9 08:03:26 2006
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2006 Your Corporation. All Rights Reserved.
+ */
+package org.apache.maven.proficio;
+
+/**
+ * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
+ * @version $Id$
+ */
+public interface Proficio
+{
+}

Propchange: maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-api/src/main/java/org/apache/maven/proficio/Proficio.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java (added)
+++ maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java Thu Feb  9 08:03:26 2006
@@ -0,0 +1,38 @@
+package org.apache.maven.proficio;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}

Propchange: maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-api/src/test/java/org/apache/maven/proficio/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-core/pom.xml
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-core/pom.xml?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-core/pom.xml (added)
+++ maven/sandbox/proficio/proficio-core/pom.xml Thu Feb  9 08:03:26 2006
@@ -0,0 +1,17 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.proficio</groupId>
+  <artifactId>proficio</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Maven Quick Start Archetype</name>
+  <url>http://maven.apache.org</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+      <version>1.0-alpha-9</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>

Propchange: maven/sandbox/proficio/proficio-core/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-core/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java (added)
+++ maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java Thu Feb  9 08:03:26 2006
@@ -0,0 +1,13 @@
+package org.apache.maven.proficio;
+
+/**
+ * Hello world!
+ *
+ */
+public class DefaultProficio
+{
+    public static void main( String[] args )
+    {
+        System.out.println( "Hello World!" );
+    }
+}

Propchange: maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/DefaultProficio.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java (added)
+++ maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java Thu Feb  9 08:03:26 2006
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2006 Your Corporation. All Rights Reserved.
+ */
+package org.apache.maven.proficio;
+
+/**
+ * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
+ * @version $Id$
+ */
+public interface Proficio
+{
+}

Propchange: maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-core/src/main/java/org/apache/maven/proficio/Proficio.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java (added)
+++ maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java Thu Feb  9 08:03:26 2006
@@ -0,0 +1,38 @@
+package org.apache.maven.proficio;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}

Propchange: maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-core/src/test/java/org/apache/maven/proficio/AppTest.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-model/pom.xml
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-model/pom.xml?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-model/pom.xml (added)
+++ maven/sandbox/proficio/proficio-model/pom.xml Thu Feb  9 08:03:26 2006
@@ -0,0 +1,30 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.proficio</groupId>
+  <artifactId>proficio-model</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>Proficio Model</name>
+  <url>http://maven.apache.org</url>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.modello</groupId>
+        <artifactId>modello-maven-plugin</artifactId>
+        <version>1.0-alpha-5</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>java</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <version>1.0.0</version>
+          <packageWithVersion>false</packageWithVersion>
+          <model>src/main/mdo/proficio.mdo</model>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/sandbox/proficio/proficio-model/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/proficio/proficio-model/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/sandbox/proficio/proficio-model/src/main/mdo/proficio.mdo
URL: http://svn.apache.org/viewcvs/maven/sandbox/proficio/proficio-model/src/main/mdo/proficio.mdo?rev=376331&view=auto
==============================================================================
--- maven/sandbox/proficio/proficio-model/src/main/mdo/proficio.mdo (added)
+++ maven/sandbox/proficio/proficio-model/src/main/mdo/proficio.mdo Thu Feb  9 08:03:26 2006
@@ -0,0 +1,994 @@
+<model>
+  <id>proficio</id>
+  <name>Proficio</name>
+  <description>Proficio's object model.</description>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.maven.proficio.model</value>
+    </default>
+  </defaults>
+
+  <classes>
+    <class rootElement="true">
+      <name>ProjectGroup</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>groupId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="8192">
+          <name>description</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field jpox.mappedBy="projectGroup">
+          <name>projects</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.join="false">
+            <type>Project</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-build-details">
+          <name>notifiers</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ProjectNotifier</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-build-details">
+          <name>buildDefinitions</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>BuildDefinition</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>Project</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <required>true</required>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>groupId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>artifactId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>executorId</name>
+          <version>1.0.0</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="8192">
+          <name>description</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="256">
+          <name>url</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="256">
+          <name>scmUrl</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>scmTag</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>scmUsername</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>scmPassword</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>version</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <!-- TODO: should these 3 just be queried from the builds list? -->
+        <field>
+          <name>state</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <defaultValue>1</defaultValue>
+        </field>
+        <field>
+          <name>oldState</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <!-- TODO: maybe buildresult itself? -->
+        <field>
+          <name>latestBuildId</name>
+          <version>1.0.0</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>buildNumber</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field stash.maxSize="256">
+          <name>workingDirectory</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field jpox.mappedBy="project" jpox.fetchGroupNames="project-with-builds">
+          <name>buildResults</name>
+          <version>1.0.0+</version>
+          <association jpox.join="false">
+            <type>BuildResult</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <!-- TODO: remove -->
+        <field jpox.fetchGroupNames="project-with-checkout-result">
+          <name>checkoutResult</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ScmResult</type>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-all-details">
+          <name>developers</name>
+          <version>1.0.0+</version>
+          <association jpox.join="false">
+            <type>ProjectDeveloper</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-all-details">
+          <name>parent</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.join="false">
+            <type>ProjectDependency</type>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-all-details">
+          <name>dependencies</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.join="false">
+            <type>ProjectDependency</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>projectGroup</name>
+          <version>1.0.0+</version>
+          <required>true</required>
+          <association stash.part="true" jpox.dependent="false">
+            <type>ProjectGroup</type>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-build-details project-all-details">
+          <name>notifiers</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ProjectNotifier</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field jpox.fetchGroupNames="project-build-details project-all-details">
+          <name>buildDefinitions</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>BuildDefinition</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>ProjectNotifier</name>
+      <version>1.0.0+</version>
+      <description>
+        Configures one method for notifying users/developers when a build breaks.
+      </description>
+      <fields>
+        <field>
+          <name>id</name>
+          <required>true</required>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>type</name>
+          <version>1.0.0+</version>
+          <defaultValue>mail</defaultValue>
+          <type>String</type>
+          <description>The mechanism used to deliver notifications.</description>
+        </field>
+        <field>
+          <name>from</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <description>The origin of the notifier (pom or user).</description>
+        </field>
+        <field>
+          <name>enabled</name>
+          <version>1.0.0+</version>
+          <defaultValue>true</defaultValue>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>recipientType</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>sendOnSuccess</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>sendOnFailure</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>sendOnError</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>sendOnWarning</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>configuration</name>
+          <version>1.0.0+</version>
+          <description>Extended configuration specific to this notifier goes here.</description>
+          <type>Map</type>
+          <association xml.mapStyle="inline" stash.part="true" stash.keyType="java.lang.String">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+      <codeSegments>
+        <codeSegment>
+          <version>1.0.0+</version>
+          <code><![CDATA[
+
+              public static final int FROM_PROJECT = 1;
+
+              public static final int FROM_USER = 2;
+
+              public boolean isFromProject()
+              {
+                  return from == FROM_PROJECT;
+              }
+
+              public boolean isFromUser()
+              {
+                  return from == FROM_USER;
+              }
+          ]]></code>
+        </codeSegment>
+      </codeSegments>
+    </class>
+
+    <class>
+      <name>ProjectDeveloper</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>scmId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>email</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>continuumId</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>ProjectDependency</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>groupId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>artifactId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>version</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>BuildResult</name>
+      <version>1.0.0+</version>
+      <description><![CDATA[
+        This class is a single continuum build.
+      ]]></description>
+      <fields>
+        <field>
+          <name>project</name>
+          <version>1.0.0+</version>
+          <!-- required>true</required -->
+          <association stash.part="true" jpox.dependent="false">
+            <type>Project</type>
+          </association>
+        </field>
+        <field>
+          <name>id</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>buildNumber</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>state</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>trigger</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>startTime</name>
+          <version>1.0.0+</version>
+          <!-- TODO: Because JPOX persists as UTC and pulls back using the local time, we have to take over -->
+          <type>long</type>
+        </field>
+        <field>
+          <name>endTime</name>
+          <version>1.0.0+</version>
+          <!-- TODO: Because JPOX persists as UTC and pulls back using the local time, we have to take over -->
+          <type>long</type>
+        </field>
+        <field stash.maxSize="8192">
+          <name>error</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>success</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>exitCode</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field jpox.fetchGroupNames="build-result-with-details">
+          <name>scmResult</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ScmResult</type>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>ScmResult</name>
+      <packageName>org.apache.maven.continuum.model.scm</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>success</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>commandLine</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="1024">
+          <name>providerMessage</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <!-- TODO: page to disk? -->
+        <field stash.maxSize="1024">
+          <name>commandOutput</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="8192">
+          <name>exception</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>changes</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.join="false">
+            <type>ChangeSet</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>ChangeSet</name>
+      <packageName>org.apache.maven.continuum.model.scm</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>author</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field stash.maxSize="8192">
+          <name>comment</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>date</name>
+          <version>1.0.0+</version>
+          <!-- TODO: Because JPOX persists as UTC and pulls back using the local time, we have to take over -->
+          <type>long</type>
+        </field>
+        <field>
+          <name>files</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.join="false">
+            <type>ChangeFile</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>ChangeFile</name>
+      <packageName>org.apache.maven.continuum.model.scm</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>revision</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>status</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>BuildDefinition</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <required>true</required>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>defaultForProject</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+        </field>
+        <field>
+          <name>goals</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>arguments</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>buildFile</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>schedule</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.dependent="false">
+            <type>Schedule</type>
+          </association>
+        </field>
+        <field>
+          <name>profile</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.dependent="false">
+            <type>Profile</type>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>Schedule</name>
+      <version>1.0.0+</version>
+      <description><![CDATA[
+        Schedule for a project.
+      ]]></description>
+      <fields>
+        <field>
+          <name>id</name>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>active</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>delay</name>
+          <description><![CDATA[
+            Delay in seconds.
+          ]]></description>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>cronExpression</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>Profile</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>active</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>scmMode</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>buildWithoutChanges</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>jdk</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.dependent="false">
+            <type>Installation</type>
+          </association>
+        </field>
+        <field>
+          <name>builder</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.dependent="false">
+            <type>Installation</type>
+          </association>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>Installation</name>
+      <packageName>org.apache.maven.continuum.model.system</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>version</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>path</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>SystemConfiguration</name>
+      <packageName>org.apache.maven.continuum.model.system</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>guestAccountEnabled</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>defaultScheduleDescription</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <defaultValue>Run hourly</defaultValue>
+        </field>
+        <field>
+          <name>defaultScheduleCronExpression</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <defaultValue>0 0 * * * ?</defaultValue>
+        </field>
+        <field>
+          <name>workingDirectory</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <defaultValue>working-directory</defaultValue>
+        </field>
+        <field>
+          <name>buildOutputDirectory</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <defaultValue>build-output-directory</defaultValue>
+        </field>
+        <field>
+          <name>baseUrl</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>companyName</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>companyLogoUrl</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>companyUrl</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>initialized</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>UserGroup</name>
+      <packageName>org.apache.maven.continuum.model.system</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>permissions</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.dependent="false">
+            <type>Permission</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>ContinuumUser</name>
+      <packageName>org.apache.maven.continuum.model.system</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>accountId</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <identifier>true</identifier>
+        </field>
+        <field>
+          <name>username</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>guest</name>
+          <version>1.0.0+</version>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+        </field>
+        <field>
+          <name>hashedPassword</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>fullName</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>email</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>group</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" jpox.dependent="false">
+            <type>UserGroup</type>
+          </association>
+        </field>
+        <field>
+          <name>notificationAddresses</name>
+          <version>1.0.0+</version>
+          <association stash.part="true" >
+            <type>NotificationAddress</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+      <codeSegments>
+        <codeSegment>
+          <version>1.0.0+</version>
+          <code><![CDATA[
+            public String getPassword()
+            {
+                return "";
+            }
+
+            public void setPassword( String password )
+            {
+                setHashedPassword( crypt( password ) );
+            }
+
+            public boolean equalsPassword( String password )
+            {
+                if ( hashedPassword == null && password == null )
+                {
+                    return true;
+                }
+
+                if ( ( hashedPassword == null && password != null ) || ( hashedPassword == null && password != null ) )
+                {
+                    return false;
+                }
+
+                return hashedPassword.equals( crypt( password ) );
+            }
+
+            private String crypt( String data )
+            {
+                try
+                {
+                    java.security.MessageDigest digester = java.security.MessageDigest.getInstance( "SHA-1" );
+                    digester.reset();
+                    digester.update( data.getBytes() );
+                    return encode( digester.digest() );
+                }
+                catch( Exception e )
+                {
+                    return data;
+                }
+            }
+
+            /**
+             * Encodes a 128 bit or 160-bit byte array into a String.
+             *
+             * @param binaryData Array containing the digest
+             * @return Encoded hex string, or null if encoding failed
+             */
+            private String encode( byte[] binaryData )
+            {
+                if ( binaryData.length != 16 && binaryData.length != 20 )
+                {
+                    int bitLength = binaryData.length * 8;
+                    throw new IllegalArgumentException( "Unrecognised length for binary data: " + bitLength + " bits" );
+                }
+
+                String retValue = "";
+
+                for ( int i = 0; i < binaryData.length; i++ )
+                {
+                    String t = Integer.toHexString( binaryData[i] & 0xff );
+        
+                    if ( t.length() == 1 )
+                    {
+                        retValue += ( "0" + t );
+                    }
+                    else
+                    {
+                        retValue += t;
+                    }
+                }
+
+                return retValue.trim();
+            }
+          ]]></code>
+        </codeSegment>
+      </codeSegments>
+    </class>
+
+    <class>
+      <name>Permission</name>
+      <packageName>org.apache.maven.continuum.model.system</packageName>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <identifier>true</identifier>
+          <version>1.0.0+</version>
+          <type>int</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+
+    <class>
+      <name>NotificationAddress</name>
+      <version>1.0.0+</version>
+      <packageName>org.apache.maven.continuum.model.system</packageName>
+      <description>
+        Configures one method for notifying users/developers when a build breaks.
+      </description>
+      <fields>
+        <field>
+          <name>type</name>
+          <version>1.0.0+</version>
+          <defaultValue>mail</defaultValue>
+          <type>String</type>
+          <description>The mechanism used to deliver notifications.</description>
+        </field>
+        <field>
+          <name>address</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+        <field>
+          <name>configuration</name>
+          <version>1.0.0+</version>
+          <description>Extended configuration specific to this notifier goes here.</description>
+          <type>Map</type>
+          <association xml.mapStyle="inline" stash.part="true" stash.keyType="java.lang.String">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</model>