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:[EMAIL PROTECTED]">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:[EMAIL PROTECTED]">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>