--- /dev/null
+<?xml version="1.0" ?>
+<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>
+ <default>
+ <key>package</key>
+ <value>org.apache.maven.archiva.model</value>
+ </default>
+ </defaults>
+
+ <classes>
+ <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>
+ <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>
+ <version>1.0.0+</version>
+ <fields>
+ <field>
+ <name>id</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The unique ID for the repository.
+ </description>
+ </field>
+ <field>
+ <name>name</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The Name of the repository.
+ </description>
+ </field>
+ <field>
+ <name>url</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The URL of the repository.
+ </description>
+ </field>
+ <field>
+ <name>creationSource</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The Source of this repository.
+ (Example: Configuration, POM)
+ </description>
+ </field>
+ <field>
+ <name>layoutName</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The layout of the repository.
+ (Either 'default', or 'legacy')
+ </description>
+ </field>
+ <field>
+ <name>releasePolicy</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The releases policy of the repository.
+ </description>
+ </field>
+ <field>
+ <name>snapshotPolicy</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The snapshot policy of the repository.
+ </description>
+ </field>
+ </fields>
+ </class>
+ <class stash.storable="true"
+ jpox.table="REPOSITORY_CONTENT_KEYS"
+ jpox.use-identifiers-as-primary-key="true"
+ jpox.identity-type="application"
+ jpox.identity-class="RepositoryContentKey">
+ <name>RepositoryContent</name>
+ <version>1.0.0+</version>
+ <description>
+ Repository Content Identifier.
+ </description>
+ <fields>
+ <field jpox.primary-key="true"
+ jpox.value-strategy="off"
+ jpox.persistence-modifier="persistent">
+ <name>groupId</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The Group ID of the repository content.
+ </description>
+ </field>
+ <field jpox.primary-key="true"
+ jpox.value-strategy="off"
+ jpox.persistence-modifier="persistent">
+ <name>artifactId</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ The Artifact ID of the repository content.
+ </description>
+ </field>
+ <field jpox.primary-key="true"
+ jpox.value-strategy="off"
+ jpox.persistence-modifier="persistent">
+ <name>version</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>false</required>
+ <description>
+ The version of the repository content.
+ </description>
+ </field>
+ <field jpox.primary-key="true"
+ jpox.value-strategy="off"
+ jpox.persistence-modifier="persistent">
+ <name>repositoryId</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The repository associated with this content.
+ </description>
+ </field>
+ </fields>
+ <codeSegments>
+ <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 );
+ this.setArtifactId( artifactId );
+ this.setVersion( version );
+ }
+
+ public RepositoryContent( String repositoryId, String groupId, String artifactId, String version )
+ {
+ this.setRepositoryId( repositoryId );
+ this.setGroupId( groupId );
+ this.setArtifactId( artifactId );
+ this.setVersion( version );
+ }
+
+ public RepositoryContent( ArchivaRepositoryModel repository, String groupId, String artifactId, String version )
+ {
+ this.setRepositoryId( repository.getId() );
+ this.setGroupId( groupId );
+ this.setArtifactId( artifactId );
+ this.setVersion( version );
+ }
+ ]]></code>
+ </codeSegment>
+ </codeSegments>
+ </class>
+
+ <!-- _______________________________________________________________
+ _ _ _ __ _
+ / \ _ __| |_(_)/ _| __ _ ___| |_
+ / _ \ | '__| __| | |_ / _` |/ __| __|
+ / ___ \| | | |_| | _| (_| | (__| |_
+ /_/ \_\_| \__|_|_| \__,_|\___|\__|
+
+ -->
+
+ <class stash.storable="true"
+ jpox.table="ARTIFACT">
+ <name>ArchivaArtifactModel</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>classifier</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>false</required>
+ <description>
+ The classifier for this artifact.
+ </description>
+ </field>
+ <field jpox.column="FILE_TYPE">
+ <name>type</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <type>String</type>
+ <required>true</required>
+ <description>
+ 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_METADATA">
+ <name>ArchivaRepositoryMetadata</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 repository metadata.
+ </description>
+ </field>
+ <field>
+ <name>releasedVersion</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>false</required>
+ <type>String</type>
+ <description>
+ The released version id.
+ </description>
+ </field>
+ <field>
+ <name>availableVersions</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>false</required>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ <description>
+ 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>
+ <version>1.0.0+</version>
+ <fields>
+ <field jpox.column="PROBLEM_TYPE">
+ <name>type</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The type of health problem.
+ </description>
+ </field>
+ <field jpox.column="PROBLEM_ORIGIN">
+ <name>origin</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The origin of the health problem.
+ </description>
+ </field>
+ <field>
+ <name>message</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The origin of the health problem.
+ </description>
+ </field>
+ </fields>
+ </class>
+ <class stash.storable="true"
+ jpox.table="HEALTH_ARTIFACTS">
+ <name>ArchivaArtifactHealth</name>
+ <version>1.0.0+</version>
+ <fields>
+ <field>
+ <name>artifact</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <required>true</required>
+ <association>
+ <type>ArchivaArtifactModel</type>
+ <multiplicity>1</multiplicity>
+ </association>
+ <description>
+ The Artifact to report on.
+ </description>
+ </field>
+ <field>
+ <name>problems</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>false</required>
+ <association>
+ <type>HealthProblem</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ <description>
+ The list of problems associated with this artifact.
+ </description>
+ </field>
+ </fields>
+ </class>
+ <class stash.storable="true"
+ jpox.table="HEALTH_REPOSITORY_METADATAS">
+ <name>ArchivaRepositoryMetadataHealth</name>
+ <version>1.0.0+</version>
+ <fields>
+ <field>
+ <name>repositoryMetadata</name>
+ <identity>true</identity>
+ <version>1.0.0+</version>
+ <required>true</required>
+ <association>
+ <type>ArchivaRepositoryMetadata</type>
+ <multiplicity>1</multiplicity>
+ </association>
+ <description>
+ The ArchivaRepositoryMetadata to report on.
+ </description>
+ </field>
+ <field>
+ <name>problems</name>
+ <identity>false</identity>
+ <version>1.0.0+</version>
+ <required>false</required>
+ <association>
+ <type>HealthProblem</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ <description>
+ The list of problems associated with this repository metadata.
+ </description>
+ </field>
+ </fields>
+ </class>
+
+ <!-- _______________________________________________________________
+ ____ _ _ _ _ _
+ / ___|| |_ __ _| |_(_)___| |_(_) ___ ___
+ \___ \| __/ _` | __| / __| __| |/ __/ __|
+ ___) | || (_| | |_| \__ \ |_| | (__\__ \
+ |____/ \__\__,_|\__|_|___/\__|_|\___|___/
+ -->
+
+ <class stash.storable="true"
+ jpox.table="REPOSITORY_STATS">
+ <name>RepositoryContentStatistics</name>
+ <version>1.0.0+</version>
+ <fields>
+ <field>
+ <name>repositoryId</name>
+ <version>1.0.0+</version>
+ <identity>false</identity>
+ <required>true</required>
+ <type>String</type>
+ <description>
+ The repository id the statistics belong to.
+ </description>
+ </field>
+ <field>
+ <name>whenGathered</name>
+ <version>1.0.0+</version>
+ <identity>false</identity>
+ <required>true</required>
+ <type>Date</type>
+ <description>
+ The timestamp on when this set of statistics was gathered.
+ </description>
+ </field>
+ <field>
+ <name>duration</name>
+ <version>1.0.0+</version>
+ <identity>false</identity>
+ <required>true</required>
+ <type>long</type>
+ <description>
+ The duration (in milliseconds) for the gathering of the statistics.
+ </description>
+ </field>
+ <field>
+ <name>totalFileCount</name>
+ <version>1.0.0+</version>
+ <identity>false</identity>
+ <required>true</required>
+ <type>long</type>
+ <description>
+ The total number of files in the repository.
+ </description>
+ </field>
+ <field>
+ <name>newFileCount</name>
+ <version>1.0.0+</version>
+ <identity>false</identity>
+ <required>true</required>
+ <type>long</type>
+ <description>
+ The number of new files discovered.
+ </description>
+ </field>
+ </fields>
+ <codeSegments>
+ <codeSegment>
+ <version>1.0.0+</version>
+ <code>
+ private transient long startTimestamp;
+
+ public void triggerStart() {
+ startTimestamp = System.currentTimeMillis();
+ }
+
+ public void triggerFinished() {
+ long finished = System.currentTimeMillis();
+ setDuration( finished - startTimestamp );
+ setWhenGathered( new java.util.Date( finished ) );
+ }
+
+ public void increaseFileCount() {
+ this.totalFileCount++;
+ }
+
+ public void increaseNewFileCount() {
+ this.newFileCount++;
+ }
+ </code>
+ </codeSegment>
+ </codeSegments>
+ </class>
+ </classes>
+</model>
+++ /dev/null
-<?xml version="1.0" ?>
-<model jpox.table-prefix="ARCHIVA_">
- <id>archiva-model</id>
- <name>ArchivaModel</name>
- <version>1.0.0</version>
- <description>Archiva Model</description>
- <defaults>
- <default>
- <key>package</key>
- <value>org.apache.maven.archiva.model</value>
- </default>
- </defaults>
-
- <classes>
- <class stash.storable="false" rootElement="true">
- <name>ArchivaDatabase</name>
- <version>1.0.0+</version>
- <fields>
- <field>
- <name>Repositories</name>
- <version>1.0.0+</version>
- <association>
- <type>ArchivaRepositoryModel</type>
- <multiplicity>*</multiplicity>
- </association>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="REPOSITORIES">
- <name>ArchivaRepositoryModel</name>
- <version>1.0.0+</version>
- <fields>
- <field>
- <name>id</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The unique ID for the repository.
- </description>
- </field>
- <field>
- <name>name</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The Name of the repository.
- </description>
- </field>
- <field>
- <name>url</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The URL of the repository.
- </description>
- </field>
- <field>
- <name>creationSource</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The Source of this repository.
- (Example: Configuration, POM)
- </description>
- </field>
- <field>
- <name>layoutName</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The layout of the repository.
- (Either 'default', or 'legacy')
- </description>
- </field>
- <field>
- <name>releasePolicy</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The releases policy of the repository.
- </description>
- </field>
- <field>
- <name>snapshotPolicy</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The snapshot policy of the repository.
- </description>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="REPOSITORY_CONTENT_KEYS"
- jpox.use-identifiers-as-primary-key="true"
- jpox.identity-type="application"
- jpox.identity-class="RepositoryContentKey">
- <name>RepositoryContent</name>
- <version>1.0.0+</version>
- <description>
- Repository Content Identifier.
- </description>
- <fields>
- <field jpox.primary-key="true"
- jpox.value-strategy="off"
- jpox.persistence-modifier="persistent">
- <name>groupId</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The Group ID of the repository content.
- </description>
- </field>
- <field jpox.primary-key="true"
- jpox.value-strategy="off"
- jpox.persistence-modifier="persistent">
- <name>artifactId</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The Artifact ID of the repository content.
- </description>
- </field>
- <field jpox.primary-key="true"
- jpox.value-strategy="off"
- jpox.persistence-modifier="persistent">
- <name>version</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>false</required>
- <description>
- The version of the repository content.
- </description>
- </field>
- <field jpox.primary-key="true"
- jpox.value-strategy="off"
- jpox.persistence-modifier="persistent">
- <name>repositoryId</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <required>true</required>
- <type>String</type>
- <description>
- The repository associated with this content.
- </description>
- </field>
- </fields>
- <codeSegments>
- <codeSegment>
- <version>1.0.0+</version>
- <code>
- public RepositoryContent( String groupId, String artifactId, String version )
- {
- this.setGroupId( groupId );
- this.setArtifactId( artifactId );
- this.setVersion( version );
- }
-
- public RepositoryContent( String repositoryId, String groupId, String artifactId, String version )
- {
- this.setRepositoryId( repositoryId );
- this.setGroupId( groupId );
- this.setArtifactId( artifactId );
- this.setVersion( version );
- }
-
- public RepositoryContent( ArchivaRepositoryModel repository, String groupId, String artifactId, String version )
- {
- this.setRepositoryId( repository.getId() );
- this.setGroupId( groupId );
- this.setArtifactId( artifactId );
- this.setVersion( version );
- }
- </code>
- </codeSegment>
- </codeSegments>
- </class>
- <class stash.storable="true"
- jpox.table="ARTIFACTS">
- <name>ArchivaArtifactModel</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>classifier</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>false</required>
- <description>
- The classifier for this artifact.
- </description>
- </field>
- <field jpox.column="FILE_TYPE">
- <name>type</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <type>String</type>
- <required>true</required>
- <description>
- The type of artifact.
- </description>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="REPOSITORY_METADATAS">
- <name>ArchivaRepositoryMetadata</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 repository metadata.
- </description>
- </field>
- <field>
- <name>releasedVersion</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>false</required>
- <type>String</type>
- <description>
- The released version id.
- </description>
- </field>
- <field>
- <name>availableVersions</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>false</required>
- <association>
- <type>String</type>
- <multiplicity>*</multiplicity>
- </association>
- <description>
- The list of available version ids.
- </description>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="HEALTH_PROBLEMS">
- <name>HealthProblem</name>
- <version>1.0.0+</version>
- <fields>
- <field jpox.column="PROBLEM_TYPE">
- <name>type</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>true</required>
- <type>String</type>
- <description>
- The type of health problem.
- </description>
- </field>
- <field jpox.column="PROBLEM_ORIGIN">
- <name>origin</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>true</required>
- <type>String</type>
- <description>
- The origin of the health problem.
- </description>
- </field>
- <field>
- <name>message</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>true</required>
- <type>String</type>
- <description>
- The origin of the health problem.
- </description>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="HEALTH_ARTIFACTS">
- <name>ArchivaArtifactHealth</name>
- <version>1.0.0+</version>
- <fields>
- <field>
- <name>artifact</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <required>true</required>
- <association>
- <type>ArchivaArtifactModel</type>
- <multiplicity>1</multiplicity>
- </association>
- <description>
- The Artifact to report on.
- </description>
- </field>
- <field>
- <name>problems</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>false</required>
- <association>
- <type>HealthProblem</type>
- <multiplicity>*</multiplicity>
- </association>
- <description>
- The list of problems associated with this artifact.
- </description>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="HEALTH_REPOSITORY_METADATAS">
- <name>ArchivaRepositoryMetadataHealth</name>
- <version>1.0.0+</version>
- <fields>
- <field>
- <name>repositoryMetadata</name>
- <identity>true</identity>
- <version>1.0.0+</version>
- <required>true</required>
- <association>
- <type>ArchivaRepositoryMetadata</type>
- <multiplicity>1</multiplicity>
- </association>
- <description>
- The ArchivaRepositoryMetadata to report on.
- </description>
- </field>
- <field>
- <name>problems</name>
- <identity>false</identity>
- <version>1.0.0+</version>
- <required>false</required>
- <association>
- <type>HealthProblem</type>
- <multiplicity>*</multiplicity>
- </association>
- <description>
- The list of problems associated with this repository metadata.
- </description>
- </field>
- </fields>
- </class>
- <class stash.storable="true"
- jpox.table="REPOSITORY_STATS">
- <name>RepositoryContentStatistics</name>
- <version>1.0.0+</version>
- <fields>
- <field>
- <name>repositoryId</name>
- <version>1.0.0+</version>
- <identity>false</identity>
- <required>true</required>
- <type>String</type>
- <description>
- The repository id the statistics belong to.
- </description>
- </field>
- <field>
- <name>whenGathered</name>
- <version>1.0.0+</version>
- <identity>false</identity>
- <required>true</required>
- <type>Date</type>
- <description>
- The timestamp on when this set of statistics was gathered.
- </description>
- </field>
- <field>
- <name>duration</name>
- <version>1.0.0+</version>
- <identity>false</identity>
- <required>true</required>
- <type>long</type>
- <description>
- The duration (in milliseconds) for the gathering of the statistics.
- </description>
- </field>
- <field>
- <name>totalFileCount</name>
- <version>1.0.0+</version>
- <identity>false</identity>
- <required>true</required>
- <type>long</type>
- <description>
- The total number of files in the repository.
- </description>
- </field>
- <field>
- <name>newFileCount</name>
- <version>1.0.0+</version>
- <identity>false</identity>
- <required>true</required>
- <type>long</type>
- <description>
- The number of new files discovered.
- </description>
- </field>
- </fields>
- <codeSegments>
- <codeSegment>
- <version>1.0.0+</version>
- <code>
- private transient long startTimestamp;
-
- public void triggerStart() {
- startTimestamp = System.currentTimeMillis();
- }
-
- public void triggerFinished() {
- long finished = System.currentTimeMillis();
- setDuration( finished - startTimestamp );
- setWhenGathered( new java.util.Date( finished ) );
- }
-
- public void increaseFileCount() {
- this.totalFileCount++;
- }
-
- public void increaseNewFileCount() {
- this.newFileCount++;
- }
- </code>
- </codeSegment>
- </codeSegments>
- </class>
- </classes>
-</model>