You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/03/20 22:00:34 UTC

svn commit: r520584 - in /maven/archiva/branches/archiva-jpox-database-refactor/archiva-model: pom.xml src/main/mdo/archiva-base.xml src/main/mdo/archiva.xml

Author: joakime
Date: Tue Mar 20 14:00:33 2007
New Revision: 520584

URL: http://svn.apache.org/viewvc?view=rev&rev=520584
Log:
Furthor work against the model definition.

Added:
    maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva-base.xml
      - copied, changed from r519169, maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml
Removed:
    maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml
Modified:
    maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/pom.xml

Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/pom.xml?view=diff&rev=520584&r1=520583&r2=520584
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/pom.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/pom.xml Tue Mar 20 14:00:33 2007
@@ -65,30 +65,21 @@
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
         <version>1.0-alpha-15-SNAPSHOT</version>
-        <configuration>
-          <version>1.0.0</version>
-          <packageWithVersion>false</packageWithVersion>
-          <model>src/main/mdo/archiva.xml</model>
-        </configuration>
         <executions>
           <execution>
-            <id>modello-java</id>
+            <id>archiva-base</id>
             <goals>
               <goal>java</goal>
+              <goal>xsd</goal>
+              <goal>jpox-jdo-mapping</goal>
               <goal>jpox-metadata-class</goal>
-              <!--
               <goal>xpp3-writer</goal>
               <goal>xpp3-reader</goal>
-               -->
-            </goals>
-          </execution>
-          <execution>
-            <id>jpox-jdo-mapping</id>
-            <goals>
-              <goal>jpox-jdo-mapping</goal>
             </goals>
             <configuration>
-              <outputDirectory>${basedir}/target/classes/org/apache/maven/archiva/model/</outputDirectory>
+              <version>1.0.0</version>
+              <packageWithVersion>false</packageWithVersion>
+              <model>src/main/mdo/archiva-base.xml</model>
             </configuration>
           </execution>
         </executions>

Copied: maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva-base.xml (from r519169, maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml)
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva-base.xml?view=diff&rev=520584&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml&r1=519169&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva-base.xml&r2=520584
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-model/src/main/mdo/archiva-base.xml Tue Mar 20 14:00:33 2007
@@ -1,7 +1,9 @@
 <?xml version="1.0" ?>
-<model jpox.table-prefix="ARCHIVA_">
-  <id>archiva-model</id>
-  <name>ArchivaModel</name>
+<model jpox.table-prefix="ARCHIVA_"
+       xsd.namespace="http://maven.apache.org/archiva/MODEL-1.0.0"
+       xsd.target-namespace="http://maven.apache.org/archiva/MODEL-1.0.0">
+  <id>archiva-base-model</id>
+  <name>ArchivaBaseModel</name>
   <version>1.0.0</version>
   <description>Archiva Model</description>
   <defaults>
@@ -12,20 +14,84 @@
   </defaults>
 
   <classes>
-    <class stash.storable="false" rootElement="true">
-      <name>ArchivaDatabase</name>
+    <class stash.storable="false" 
+           rootElement="true"
+           jpox.enabled="false">
+      <name>ArchivaAll</name>
       <version>1.0.0+</version>
+      <description>
+        This object is only used for the XML backup / restore features of Archiva.
+        This object is not serialized to the Database.
+      </description>
       <fields>
         <field>
-          <name>Repositories</name>
+          <name>repositories</name>
           <version>1.0.0+</version>
           <association>
             <type>ArchivaRepositoryModel</type>
             <multiplicity>*</multiplicity>
           </association>
         </field>
+        <field>
+          <name>artifacts</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ArchivaArtifactModel</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>repositoryMetadata</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ArchivaRepositoryMetadata</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>projects</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ArchivaProjectModel</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>artifactHealth</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ArchivaArtifactHealth</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>repositoryMetadataHealth</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ArchivaRepositoryMetadataHealth</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>repositoryContentStatistics</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>RepositoryContentStatistics</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
       </fields>
     </class>
+
+    <!-- _______________________________________________________________
+          ____                      _ _
+         |  _ \ ___ _ __   ___  ___(_) |_ ___  _ __ _   _
+         | |_) / _ \ '_ \ / _ \/ __| | __/ _ \| '__| | | |
+         |  _ <  __/ |_) | (_) \__ \ | || (_) | |  | |_| |
+         |_| \_\___| .__/ \___/|___/_|\__\___/|_|   \__, |
+                   |_|                              |___/
+      -->
+
     <class stash.storable="true"
            jpox.table="REPOSITORIES">
       <name>ArchivaRepositoryModel</name>
@@ -169,6 +235,19 @@
         <codeSegment>
           <version>1.0.0+</version>
           <code>
+          <![CDATA[
+    /**
+     * Default Constructor.
+     * NOTE: The RepositoryContent object is invalid, and cannot be persisted to
+     *       the database until you set the {@link #setGroupId(String)}, 
+     *       {@link #setArtifactId(String)}, and {@link #setVersion(String)} values
+     *       first.
+     */ 
+    public RepositoryContent()
+    {
+        /* Do nothing */
+    }
+
     public RepositoryContent( String groupId, String artifactId, String version )
     {
         this.setGroupId( groupId );
@@ -191,12 +270,22 @@
         this.setArtifactId( artifactId );
         this.setVersion( version );
     }
-          </code>
+          ]]></code>
         </codeSegment>
       </codeSegments>
     </class>
+
+    <!-- _______________________________________________________________
+           _         _   _  __            _
+          / \   _ __| |_(_)/ _| __ _  ___| |_
+         / _ \ | '__| __| | |_ / _` |/ __| __|
+        / ___ \| |  | |_| |  _| (_| | (__| |_
+       /_/   \_\_|   \__|_|_|  \__,_|\___|\__|
+
+      -->
+
     <class stash.storable="true"
-           jpox.table="ARTIFACTS">
+           jpox.table="ARTIFACT">
       <name>ArchivaArtifactModel</name>
       <version>1.0.0+</version>
       <fields>
@@ -233,10 +322,61 @@
             The type of artifact.
           </description>
         </field>
+        <field>
+          <name>checksumMD5</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <required>false</required>
+          <description>
+            The MD5 checksum for the artifact file.
+          </description>
+        </field>
+        <field>
+          <name>checksumSHA1</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <required>false</required>
+          <description>
+            The SHA1 checksum for the artifact file.
+          </description>
+        </field>
+        <field>
+          <name>checksumBytecode</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <required>false</required>
+          <description>
+            The SHA1 checksum for the bytecode in the artifact file. (Can be empty if
+            the artifact contains no bytecode)
+          </description>
+        </field>
+        <field>
+          <name>whenIndexed</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>Date</type>
+          <required>false</required>
+          <description>
+            The timestamp when this artifact was indexed.
+          </description>
+        </field>
+        <field>
+          <name>origin</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <required>false</required>
+          <description>
+            The origin of this artifact. (Filesystem, Proxy, Deploy)
+          </description>
+        </field>
       </fields>
     </class>
     <class stash.storable="true"
-           jpox.table="REPOSITORY_METADATAS">
+           jpox.table="REPOSITORY_METADATA">
       <name>ArchivaRepositoryMetadata</name>
       <version>1.0.0+</version>
       <fields>
@@ -276,8 +416,662 @@
             The list of available version ids.
           </description>
         </field>
+        <field>
+          <name>whenIndexed</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>Date</type>
+          <required>false</required>
+          <description>
+            The timestamp when this artifact was indexed.
+          </description>
+        </field>
+        <field>
+          <name>lastUpdated</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>Date</type>
+          <required>false</required>
+          <description>
+            the timestamp when this artifact was indexed.
+          </description>
+        </field>
+        <field>
+          <name>origin</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <required>false</required>
+          <description>
+            The origin of this artifact. (Filesystem, Proxy, Deploy)
+          </description>
+        </field>
       </fields>
     </class>
+
+    <!-- _______________________________________________________________
+         __  __                         ____            _           _
+        |  \/  | __ ___   _____ _ __   |  _ \ _ __ ___ (_) ___  ___| |_
+        | |\/| |/ _` \ \ / / _ \ '_ \  | |_) | '__/ _ \| |/ _ \/ __| __|
+        | |  | | (_| |\ V /  __/ | | | |  __/| | | (_) | |  __/ (__| |_
+        |_|  |_|\__,_| \_/ \___|_| |_| |_|   |_|  \___// |\___|\___|\__|
+                                                     |__/
+     -->
+
+    <class stash.storable="true"
+           jpox.table="PROJECT">
+      <name>ArchivaProjectModel</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>contentKey</name>
+          <identity>true</identity>
+          <version>1.0.0+</version>
+          <required>true</required>
+          <association>
+            <type>RepositoryContent</type>
+            <multiplicity>1</multiplicity>
+          </association>
+          <description>
+            The content key for this artifact.
+          </description>
+        </field>
+        <field>
+          <name>parentContentKey</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>false</required>
+          <association>
+            <type>RepositoryContent</type>
+            <multiplicity>1</multiplicity>
+          </association>
+          <description>
+            The content key for a parent reference.
+          </description>
+        </field>
+        <field>
+          <name>packaging</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>true</required>
+          <type>String</type>
+          <description>
+            The declared packaging for this project model.
+          </description>
+        </field>
+        <field>
+          <name>origin</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>true</required>
+          <type>String</type>
+          <description>
+            The Origin of this Model. (Filesystem, Proxy, or Deploy)
+          </description>
+        </field>
+        <field>
+          <name>whenIndexed</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>true</required>
+          <type>Date</type>
+          <description>
+            The timestamp when this model was indexed.
+          </description>
+        </field>
+        <field>
+          <name>url</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>false</required>
+          <type>String</type>
+          <description>
+            The URL for the project's homepage.
+          </description>
+        </field>
+        <field>
+          <name>organization</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>false</required>
+          <association>
+            <type>Organization</type>
+          </association>
+        </field>
+        <field>
+          <name>licenses</name>
+          <identity>false</identity>
+          <version>1.0.0+</version>
+          <required>false</required>
+          <association>
+            <type>License</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>issueManagement</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The project's issue management system information.]]></description>
+          <association>
+            <type>IssueManagement</type>
+          </association>
+        </field>
+        <field>
+          <name>ciManagement</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The project's continuous integration information.]]></description>
+          <association>
+            <type>CiManagement</type>
+          </association>
+        </field>
+        <field>
+          <name>scm</name>
+          <version>1.0.0+</version>
+          <description>
+            <![CDATA[Specification for the SCM used by the project, such as CVS, Subversion, etc.]]></description>
+          <association>
+            <type>Scm</type>
+          </association>
+        </field>
+        <field>
+          <name>individuals</name>
+          <version>1.0.0+</version>
+          <description>
+            The list of individuals around this project.
+          </description>
+          <association>
+            <type>Individual</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>dependencies</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+              This element describes all of the dependencies associated with a
+              project.
+          ]]></description>
+          <association>
+            <type>Dependency</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>repositories</name>
+          <version>1.0.0+</version>
+          <description>
+            The list project repositories in use by this project.
+          </description>
+          <association>
+            <type>ProjectRepository</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>plugins</name>
+          <version>1.0.0+</version>
+          <description>
+            The list of plugins that this project uses.
+          </description>
+          <association>
+            <type>RepositoryContent</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>reports</name>
+          <version>1.0.0+</version>
+          <description>
+            The list of reports that this project uses.
+          </description>
+          <association>
+            <type>RepositoryContent</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="ORGANIZATION">
+      <name>Organization</name>
+      <description>Specifies the organization that produces this project.</description>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The full name of the organization.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The URL to the organization's home page.]]></description>
+          <type>String</type>
+        </field>
+        <field jpox.column="FAVICON_URL">
+          <name>favicon</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            The URL to the organization's logo image.  This can be an URL relative
+            to the base directory of the generated web site,
+            (e.g., <code>/images/org-logo.png</code>) or an absolute URL
+            (e.g., <code>http://my.corp/logo.png</code>).  This value is used
+            when generating the project documentation.
+          ]]></description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="LICENSES">
+      <name>License</name>
+      <description><![CDATA[
+        Describes the licenses for this project.  This is used to generate
+        the license page of the project's web site, as well as being taken into consideration in other reporting and
+        validation. The licenses listed for the project are that of the project itself, and not of dependencies.
+      ]]></description>
+      <version>1.0.0+</version>
+      <fields>
+        <field jpox.column="LICENSE_ID">
+          <name>id</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <description>
+            The type of license.
+          </description>
+        </field>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The full legal name of the license.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The official url for the license text.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>comments</name>
+          <description>
+            Addendum information pertaining to this license.
+          </description>
+          <version>1.0.0+</version>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="ISSUE_MANAGEMENT">
+      <name>IssueManagement</name>
+      <description>
+        Information about the issue tracking (or bug tracking) system used to manage this project.
+      </description>
+      <version>1.0.0+</version>
+      <fields>
+        <field jpox.column="SYSTEM_NAME">
+          <name>system</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The name of the issue management system, e.g. Bugzilla]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[URL for the issue management system used by the project.]]></description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>CiManagement</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field jpox.column="SYSTEM_NAME">
+          <name>system</name>
+          <version>1.0.0+</version>
+          <description>
+            <![CDATA[The name of the continuous integration system, e.g. <code>continuum</code>.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0+</version>
+          <description>
+            <![CDATA[URL for the continuous integration system used by the project if it has a web interface.]]></description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>Individual</name>
+      <description>
+        Description of a person who has contributed to the project.
+        This includes contributors and commitors.
+      </description>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>name</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The full name of the individual.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>email</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The email address of the individual.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>principal</name>
+          <version>1.0.0+</version>
+          <description>
+            The RedBack (plexus security) principal associated with this Invididual.
+          </description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>commitor</name>
+          <version>1.0.0+</version>
+          <description>
+            The flag if this user is a developer and/or commitor.
+          </description>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[The URL for the homepage of the individual.]]></description>
+          <type>String</type>
+        </field>
+        <!-- TODO: should this just be a single Organization element -->
+        <field>
+          <name>organization</name>
+          <alias>organisation</alias>
+          <version>1.0.0+</version>
+          <description><![CDATA[The organization to which the individual belongs.]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>organizationUrl</name>
+          <alias>organisationUrl</alias>
+          <version>1.0.0+</version>
+          <description><![CDATA[The URL of the organization.]]></description>
+          <type>String</type>
+        </field>
+        <field jpox.column="CONTRIBUTOR_ROLES">
+          <name>roles</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            The roles the individual plays in the project.  Each role is
+            described by a <code>role</code> element, the body of which is a
+            role name. This can also be used to describe the contribution.
+          ]]></description>
+          <association>
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>timezone</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            The timezone the individual is in. This is a number in the range -11 to 12.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>properties</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            Properties about the individual, such as an instant messenger handle.
+          ]]></description>
+          <type>Properties</type>
+          <association xml.mapStyle="inline">
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="DEPENDENCY">
+      <name>Dependency</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>contentKey</name>
+          <identity>true</identity>
+          <version>1.0.0+</version>
+          <required>true</required>
+          <association>
+            <type>RepositoryContent</type>
+            <multiplicity>1</multiplicity>
+          </association>
+          <description>
+            The content key for this dependency.
+          </description>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            This url will be provided to the user if the jar file cannot be downloaded
+            from the central repository.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field jpox.column="DEPENDENCY_TYPE">
+          <name>type</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            The type of dependency. This defaults to <code>jar</code>. While it usually represents the extension on
+            the filename of the dependency, that is not always the case. A type can be mapped to a different
+            extension and a classifier.
+            The type often correspongs to the packaging used, though this is also not always the case.
+            Some examples are <code>jar</code>, <code>war</code>, <code>ejb-client</code> and <code>test-jar</code>.
+            New types can be defined by plugins that set
+            <code>extensions</code> to <code>true</code>, so this is not a complete list.
+          ]]></description>
+          <type>String</type>
+          <defaultValue>jar</defaultValue>
+        </field>
+        <field>
+          <name>classifier</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            The classifier of the dependency. This allows distinguishing two artifacts that belong to the same POM but
+            were built differently, and is appended to the filename after the version. For example,
+            <code>jdk14</code> and <code>jdk15</code>.
+          ]]></description>
+          <type>String</type>
+          <required>false</required>
+        </field>
+        <field jpox.column="DEPENDENCY_SCOPE">
+          <name>scope</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            The scope of the dependency - <code>compile</code>, <code>runtime</code>, <code>test</code>,
+            <code>system</code>, and <code>provided</code>. Used to
+            calculate the various classpaths used for compilation, testing, and so on. It also assists in determining
+            which artifacts to include in a distribution of this project. For more information, see
+            <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the
+            dependency mechanism</a>.]]>
+          </description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>systemPath</name>
+          <version>1.0.0+</version>
+          <description><![CDATA[
+            FOR SYSTEM SCOPE ONLY. Note that use of this property is <b>discouraged</b> and may be replaced in later
+            versions. This specifies the path on the filesystem for this dependency.
+            Requires an absolute path for the value, not relative.
+            Use a property that gives the machine specific absolute path,
+            e.g. <code>${java.home}</code>.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>exclusions</name>
+          <version>1.0.0+</version>
+          <description>
+            Lists a set of artifacts that should be excluded from this dependency's artifact list when it comes to
+            calculating transitive dependencies.
+          </description>
+          <association>
+            <type>Exclusion</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>optional</name>
+          <version>1.0.0+</version>
+          <description>
+            Indicates the dependency is optional for use of this library. While the version of the dependency will be
+            taken into account for dependency calculation if the library is used elsewhere, it will not be passed on
+            transitively.
+          </description>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="EXCLUSIONS">
+      <name>Exclusion</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>groupId</name>
+          <version>4.0.0</version>
+          <description><![CDATA[The group ID of the project to exclude.]]></description>
+          <type>String</type>
+          <required>true</required>
+        </field>
+        <field>
+          <name>artifactId</name>
+          <version>4.0.0</version>
+          <description><![CDATA[The artifact ID of the project to exclude.]]></description>
+          <type>String</type>
+          <required>true</required>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="SCM">
+      <name>Scm</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field jpox.column="SCM_URL">
+          <name>connection</name>
+          <version>1.0.0</version>
+          <description><![CDATA[
+              The source control management system URL
+              that describes the repository and how to connect to the
+              repository. For more information, see the
+              <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a>
+              and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>.
+              This connection is read-only.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>developerConnection</name>
+          <version>1.0.0</version>
+          <description><![CDATA[
+            Just like <code>connection</code>, but for developers, i.e. this scm connection
+            will not be read only.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>1.0.0</version>
+          <description>
+            <![CDATA[The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.]]></description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class stash.storable="true"
+           jpox.table="PROJECT_REPOSITORIES">
+      <name>ProjectRepository</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>id</name>
+          <version>4.0.0</version>
+          <description><![CDATA[
+            A unique identifier for a repository. This is used to match the repository to configuration in
+            the <code>settings.xml</code> file, for example.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>name</name>
+          <version>4.0.0</version>
+          <description><![CDATA[
+            Human readable name of the repository.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>url</name>
+          <version>4.0.0</version>
+          <description><![CDATA[
+             The url of the repository, in the form <code>protocol://hostname/path</code>.
+          ]]></description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>layout</name>
+          <version>4.0.0</version>
+          <description><![CDATA[
+            The type of layout this repository uses for locating and storing artifacts - can be <code>legacy</code> or
+            <code>default</code>.
+          ]]></description>
+          <type>String</type>
+          <defaultValue>default</defaultValue>
+        </field>
+        <field>
+          <name>plugins</name>
+          <version>1.0.0+</version>
+          <description>
+            Flag indicating if this repository is for plugin resolution.
+          </description>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>releases</name>
+          <version>1.0.0+</version>
+          <description>
+            Flag indicating if this repository has release versioned artifacts.
+          </description>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>snapshots</name>
+          <version>1.0.0+</version>
+          <description>
+            Flag indicating if this repository has snapshot versioned artifacts.
+          </description>
+          <type>boolean</type>
+        </field>
+      </fields>
+    </class>
+
+    <!-- _______________________________________________________________
+          _   _            _ _   _
+         | | | | ___  __ _| | |_| |__
+         | |_| |/ _ \/ _` | | __| '_ \
+         |  _  |  __/ (_| | | |_| | | |
+         |_| |_|\___|\__,_|_|\__|_| |_|
+      -->
+
     <class stash.storable="true"
            jpox.table="HEALTH_PROBLEMS">
       <name>HealthProblem</name>
@@ -381,6 +1175,15 @@
         </field>
       </fields>
     </class>
+
+    <!-- _______________________________________________________________
+          ____  _        _   _     _   _
+         / ___|| |_ __ _| |_(_)___| |_(_) ___ ___
+         \___ \| __/ _` | __| / __| __| |/ __/ __|
+          ___) | || (_| | |_| \__ \ |_| | (__\__ \
+         |____/ \__\__,_|\__|_|___/\__|_|\___|___/
+      -->
+
     <class stash.storable="true"
            jpox.table="REPOSITORY_STATS">
       <name>RepositoryContentStatistics</name>