diff options
Diffstat (limited to 'archiva-docs')
50 files changed, 2386 insertions, 0 deletions
diff --git a/archiva-docs/pom.xml b/archiva-docs/pom.xml new file mode 100644 index 000000000..e504ddbb5 --- /dev/null +++ b/archiva-docs/pom.xml @@ -0,0 +1,78 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-docs</artifactId> + <packaging>pom</packaging> + <name>Archiva Documentation</name> + <url>http://maven.apache.org/archiva/docs/${project.version}/</url> + + <build> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>2.1</version> + <configuration> + <descriptor>src/site/assembly/docs.xml</descriptor> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>attached</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + <finalName>apache-archiva-${project.version}</finalName> + </build> + + <reporting> + <excludeDefaults>true</excludeDefaults> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-project-info-reports-plugin</artifactId> + <version>2.0.1</version> + <reportSets> + <reportSet> + <reports> + <report>license</report> + <report>project-team</report> + </reports> + </reportSet> + </reportSets> + </plugin> + </plugins> + </reporting> + + <distributionManagement> + <site> + <id>apache.website</id> + <url>${siteBaseDeployment}/docs/${project.version}</url> + </site> + </distributionManagement> +</project> diff --git a/archiva-docs/release-readme.txt b/archiva-docs/release-readme.txt new file mode 100644 index 000000000..aceda60fd --- /dev/null +++ b/archiva-docs/release-readme.txt @@ -0,0 +1,51 @@ +Archiva release process. + +1) Perform a release:prepare at root of subversion tree. + +2) Perform a release:peform at the root of subversion tree. + + Be sure you have the appropriate $HOME/.m2/settings.xml settings. + + <profiles> + <profile> + <id>release</id> + <properties> + <gpg.passphrase>********</gpg.passphrase> + </properties> + </profile> + </profiles> + + Be sure you update your gpg passphrase!! + +3) Create the vote for release email. + +4) Wait 72 hours + +5) Tabulate votes + + If a negative binding vote occurs, the release must be reviewed. + If 3 or more positive binding votes occur, then the release is blessed. + +6) Perform a stage:copy of the staged repository to the m2-ibiblio-rsync-repository location. + This plugin can be found at the subversion url below: + https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-stage-plugin + + $ mvn stage:copy -Dsource="http://people.apache.org/builds/maven/archiva/1.0-alpha-1/m2-staging-repository/" -Dtarget="scpexe://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository" -Dversion=1.0-alpha-1 -DrepositoryId=apache.releases + +7) Copy the binaries over to the dist directory. + + $ ssh people.apache.org cp /www/people.apache.org/builds/maven/archiva/1.0-alpha-1/archiva-*-bin* /www/www.apache.org/dist/maven/binaries/ + + $ ssh people.apache.org cp /www/people.apache.org/builds/maven/archiva/1.0-alpha-1/archiva-*-src* /www/www.apache.org/dist/maven/source/ + +8) Update the archiva-site documents to point to the new downloads. + + Update the released binaries to the latest in archiva-site/src/site/apt/download.apt + To point to the new binaries and source files. + + Also add the latest release in the Latest News in archiva-site/src/site/xdoc/index.xml + +9) Deploy the site. + + $ mvn clean site:site site:deploy + diff --git a/archiva-docs/src/site/apt/adminguide/configuration-files.apt b/archiva-docs/src/site/apt/adminguide/configuration-files.apt new file mode 100644 index 000000000..8f9518389 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/configuration-files.apt @@ -0,0 +1,8 @@ + ------ + Configuration Files of Apache Archiva + ------ + +Configuration Files of Apache Archiva + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/configuration.apt b/archiva-docs/src/site/apt/adminguide/configuration.apt new file mode 100644 index 000000000..990b1a810 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/configuration.apt @@ -0,0 +1,8 @@ + ------ + Runtime Configuration of Apache Archiva + ------ + +Runtime Configuration of Apache Archiva + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/consumers.apt b/archiva-docs/src/site/apt/adminguide/consumers.apt new file mode 100644 index 000000000..20be04b49 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/consumers.apt @@ -0,0 +1,8 @@ + ------ + Understanding Consumers in Apache Archiva + ------ + +Understanding Consumers in Apache Archiva + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/databases.apt b/archiva-docs/src/site/apt/adminguide/databases.apt new file mode 100644 index 000000000..b1e001231 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/databases.apt @@ -0,0 +1,11 @@ + ------ + Apache Archiva Databases + ------ + +Apache Archiva Databases + + :STUB: This is a documentation stub. + +~~TODO: give general information on configuration for an external database +~~TODO: use mysql or external derby as an example +~~TODO: link to wiki location that does others diff --git a/archiva-docs/src/site/apt/adminguide/index.apt b/archiva-docs/src/site/apt/adminguide/index.apt new file mode 100644 index 000000000..9f255f611 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/index.apt @@ -0,0 +1,8 @@ + ------ + System Administrators Guide to Apache Archiva + ------ + +System Administrators Guide to Apache Archiva + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/installing.apt b/archiva-docs/src/site/apt/adminguide/installing.apt new file mode 100644 index 000000000..4005854f6 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/installing.apt @@ -0,0 +1,9 @@ + ------ + Installing Apache Archiva + ------ + +Installing Apache Archiva + + :STUB: This is a documentation stub. + +~~TODO: ensure upgrading is covered - does it need to be a separate doc diff --git a/archiva-docs/src/site/apt/adminguide/network-proxies.apt b/archiva-docs/src/site/apt/adminguide/network-proxies.apt new file mode 100644 index 000000000..ba04fc4d6 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/network-proxies.apt @@ -0,0 +1,8 @@ + ------ + Understanding Network Proxy Configuration of Apache Archiva + ------ + +Understanding Network Proxy Configuration of Apache Archiva + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt b/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt new file mode 100644 index 000000000..0502b0ed4 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/proxy-connectors.apt @@ -0,0 +1,8 @@ + ------ + Understanding Proxy Connector Configuration of Apache Archiva + ------ + +Understanding Proxy Connector Configuration of Apache Archiva + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/reports.apt b/archiva-docs/src/site/apt/adminguide/reports.apt new file mode 100644 index 000000000..eb95a950b --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/reports.apt @@ -0,0 +1,66 @@ + ------ + Making the most of Reporting in Apache Archiva + ------ + Maria Odea Ching + ------ + 12 Nov 2007 + ------ + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +Making the most of Reporting in Apache Archiva + + Reporting in Archiva is currently limited to a detailed listing of the problematic artifacts in the different + repositories. Problematic artifacts are those artifacts that were detected by Archiva to have defects (ex. + the versions in the pom and in the artifact itself do not match). + +* Configuring a Report + + There are 3 fields which can be configured when viewing the reports. These are: the number of rows per page, + the group id and the repository. + + 1. Setting the row count. This field is for configuring the number of rows or artifacts to be displayed per page + of the report. By default, this is set to 100. The minimum number of rows per page is 10 and the maximum number + of rows is 1000. + + 2. Setting the group id. The group id pertains to the group id of the artifact (ex. org.apache.maven.plugins). + This field has a blank default value -- meaning, show defective artifacts which has any group id. + + 3. Setting the repository. You can view the defective artifacts found on specific repositories by setting the + repository field. By default, it is set to All Repositories. Please note that the repository field options list + only contains the repositories which have one or more defective artifacts in it. So not all the repositories + you have configured in the Repositories section will show up in this list, unless of course they all contain + defective artifacts. + +* Contents of a Report + + The Show Report button will display a detailed list of problematic artifacts filtered according to the + configuration you've set. Below is a sample Archiva report: + + +[../images/archiva-report.jpg] Archiva Report + + You can see in the sample report that there are links to the groupId and artifactId directories + of each artifact. Clicking on any of these links will bring you to the appropriate navigation page in the + Repository Browse. Going back to the report, shown below the links is the specific problem or defect of the + artifact. These are usually detected during repository or database scanning. The page number is also displayed on + the lower left-hand part of the report. + diff --git a/archiva-docs/src/site/apt/adminguide/repositories.apt b/archiva-docs/src/site/apt/adminguide/repositories.apt new file mode 100644 index 000000000..0a8fc33d3 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/repositories.apt @@ -0,0 +1,159 @@ + ------ + Understanding Repository Configuration of Apache Archiva + ------ + Maria Odea Ching + ------ + 13 Nov 2007 + ------ + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +Understanding Repository Configuration of Apache Archiva + +~~NOTE TO MYSELF: Review this! and improve the format and the contents +~~ Some parts sounds confusing to me (or am i just tired?) + + Archiva has two types of repository configuration: managed repository and remote repository. + +* Managed Repository + + A managed repository is a repository which resides locally to the server where Archiva is running. It could serve as a + proxy repository, an internal deployment repository or a local mirror repository. + + Managed repository fields: + + 1. identifier - the id of the repository. This must be unique. + + 2. name - the name of the repository. + + 3. directory - the location of the repository. If the path specified does not exist, Archiva will create the missing + directories. + + 4. type - the repository layout (maven 2 or maven 1) + + 5. cron - the cron schedule when repository scanning will be executed. + + 6. repository purge by days older - the first option for repository purge. Archiva will check how old the artifact is + and if it is older than the set number of days in this field, then the artifact will be deleted respecting the retention + count (see #7) of course. In order to disable the purge by number of days old and set Archiva to purge by retention count, just set the + repository purge field to 0. The maximum number of days which can be set here is 1000. + + 7. repository purge by retention count - the second option for repository purge. When running the repository purge, Archiva + will retain only the number of artifacts set for this field for a specific snapshot version. + + 8. releases included - specifies whether there are released artifacts in the repository. + + 9. snapshots included - specifies whether there are snapshot artifacts in the repository. + + 10. scannable - specifies whether the repository can be scanned. + + 11. delete released snapshots - specifies whether to remove those snapshot artifacts which already has release versions + of it in the repository during repository purge. + + Each repository has its own Webdav url. This allows the user to browse and access the repository via webdav. The url has the + following format: + ++----+ +http://[URL TO ARCHIVA]/repository/[REPOSITORY ID] (e.g. http://localhost:8080/archiva/repository/releases). ++----+ + + Managed repositories can be explicitly scanned by clicking the 'Scan Repository Now' button in the repositories page. A pom + snippet is also available for each repository. The \<distributionManagement\> section can be copied and pasted into a + project's pom to specify that the project will be deployed in that managed repository. The \<repositories\> section on the + other hand, can be copied and pasted to a project's pom.xml or to Maven's settings.xml to tell Maven to get artifacts + from the managed repository when building the project. + + For more details about the repository purge from numbers 6 and 7 above, please take a look at the Repository Purge section + below. + +* Remote Repository + + A remote repository is a repository which resides remotely. These repositories are usually the proxied repositories. See + Proxy Connectors on how to proxy a repository. + + Remote repository fields: + + 1. identifier - the id of the remote repository. + + 2. name - the name of the remote repository. + + 3. url - the url of the remote repository. + + 4. username - the username (if authentication is needed) to be used to access the repository. + + 5. password - the password (if authentication is needed) to be used to access the repository. + + 6. type - the layout (maven 2 or maven 1) of the remote repository. + +* Repository Purge + + Repository purge is the process of cleaning up the repository of old snapshots. When deploying a snapshot to a repository, + Maven deploys the project/artifact with a timestamped version. Doing daily/nightly builds of the project then tends to bloat + the repository. What if the artifact is large? Then disk space will definitely be a problem. That's where Archiva's repository + purge feature comes in. Given a criteria to use -- by the number of days old and by retention count, it would clean up the + repository by removing old snapshots. + + Let's take a look at different behaviours for repository purge using the following scenario: + ++----+ +Artifacts in the repository: + +../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.jar +../artifact-x/2.0-SNAPSHOT/artifact-x-20061118.060401-2.pom +../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.jar +../artifact-x/2.0-SNAPSHOT/artifact-x-20070113.034619-3.pom +../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.jar +../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.pom ++----+ + + 1. Repository Purge By Days Older + + Using this criteria for the purge, Archiva will check how old an artifact is and if it is older than the set value in the + repository purge by days older field, then the artifact will be deleted respecting the retention count of course. + + If repository purge by days older is set to 100 days (with repository purge by retention count field set to 1), + and the current date is let's say 03-01-2007, given the scenario above.. the following artifacts will be retained: + artifact-x-20070113.034619-3.jar, artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and + artifact-x-20070203.028902-4.pom. It is clear in the version timestamps that these 4 artifacts are not more than + 100 days old from the current date (which is 03-01-2007 in our example) so they are all retained. In this case + the retention count doesn't have any effect since the priority is the age of the artifact. + + Now, if the repository purge by days older is set to 30 days (with repository purge by retention count field still + set to 1) and the current date is still 03-01-2007, then given the same scenario above.. only the following artifacts + will be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. In this case, we can see + that the retained artifacts are still not older by the number of days set in the repository purge by days older field + and the retention count is still met. + + Now, let's set the repository purge by days older to 10 days (with repository purge by retention count field still + set to 1) and the current date is still 03-01-2007, then still given the same repository contents above.. the + following artifacts will still be retained: artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom. + It is clear from the version timestamps that the artifacts ARE MORE THAN the repository purge by days older value, + which is 10 days. Why is it still retained? Recall the value of the repository purge by retention count -- 1 :) + This ensures that there is ALWAYS 1 artifact timestamped version retained for every unique version snapshot directory + of an artifact. + + 2. Repository Purge By Retention Count + + If the repository purge by retention count field is set to 2, then only the artifacts artifact-x-20070113.034619-3.jar, + artifact-x-20070113.034619-3.pom, artifact-x-20070203.028902-4.jar and artifact-x-20070203.028902-4.pom will be retained + in the repository. The oldest snapshots will be deleted maintaining only a number of snapshots equivalent to the set + retention count. +
\ No newline at end of file diff --git a/archiva-docs/src/site/apt/adminguide/roles.apt b/archiva-docs/src/site/apt/adminguide/roles.apt new file mode 100644 index 000000000..962303204 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/roles.apt @@ -0,0 +1,8 @@ + ------ + Understanding Apache Archiva Security Roles + ------ + +Understanding Apache Archiva Security Roles + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/security.apt b/archiva-docs/src/site/apt/adminguide/security.apt new file mode 100644 index 000000000..33770e4b0 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/security.apt @@ -0,0 +1,8 @@ + ------ + Understanding Apache Archiva Security + ------ + +Understanding Apache Archiva Security + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/adminguide/standalone.apt b/archiva-docs/src/site/apt/adminguide/standalone.apt new file mode 100644 index 000000000..85ea30a29 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/standalone.apt @@ -0,0 +1,11 @@ + ------ + Installing Standalone Distribution of Apache Archiva + ------ + +Installing Standalone Distribution of Apache Archiva + + :STUB: This is a documentation stub. + +~~TODO: link to quick start as it covers the most basic scenario +~~TODO: ensure to refer to advanced configuration options, such as PLEXUS_BASE + diff --git a/archiva-docs/src/site/apt/adminguide/webapp.apt b/archiva-docs/src/site/apt/adminguide/webapp.apt new file mode 100644 index 000000000..8dc32a6a5 --- /dev/null +++ b/archiva-docs/src/site/apt/adminguide/webapp.apt @@ -0,0 +1,11 @@ + ------ + Installing Apache Archiva as a Web Application + ------ + +Installing Apache Archiva as a Web Application + + :STUB: This is a documentation stub. + +~~TODO: show example using Tomcat 6. +~~TODO: link to wiki location for other application servers + diff --git a/archiva-docs/src/site/apt/customising/writing-consumer.apt b/archiva-docs/src/site/apt/customising/writing-consumer.apt new file mode 100644 index 000000000..e61e95666 --- /dev/null +++ b/archiva-docs/src/site/apt/customising/writing-consumer.apt @@ -0,0 +1,8 @@ + ------ + Writing a Custom Repository Consumer + ------ + +Writing a Custom Repository Consumer + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/guides/configuration.apt b/archiva-docs/src/site/apt/guides/configuration.apt new file mode 100644 index 000000000..c307dff93 --- /dev/null +++ b/archiva-docs/src/site/apt/guides/configuration.apt @@ -0,0 +1,63 @@ + ------ + Archiva Configuration + ------ + The Maven Team + ------ + 8 March 2007 + ------ + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +Archiva Configuration + +* Web Configuration + + Archiva can be fully configured from the web interface (with the exception of the {{{security-configuration.html} security properties, presently}}). + + ... + +~~TODO: more details needed, but I wanted to get this started + +* File system configuration + + While Archiva can be fully configred by the web interface, the configuration will be saved to the file system and can be edited from there if needed. + + Archiva's configuration is loaded from the following files, in order of most precedent: + + * <<<~/.m2/archiva.xml>>> + + * <<<$ARCHIVA_BASE/conf/archiva.xml>>> + + * <<<$ARCHIVA_HOME/conf/archiva.xml>>> + + When Archiva saves it's configuration, all configuration is stored to a single file. The file chosen is by the following rules: + + * If <<<~/.m2/archiva.xml>>> exists, it is saved there + + * Otherwise, it is saved to <<<$ARCHIVA_BASE/conf/archiva.xml>>>, regardless of whether it previously existed. + + The configuration will never be saved in <<<$ARCHIVA_HOME>>>. + + Note that the configuration can be edited, but only when Archiva is not running as it will not reload a changed configuration file, and will save over it + if something is changed in the web interface. + +~~TODO: format? + diff --git a/archiva-docs/src/site/apt/guides/getting-started.apt b/archiva-docs/src/site/apt/guides/getting-started.apt new file mode 100644 index 000000000..f8d6c42b6 --- /dev/null +++ b/archiva-docs/src/site/apt/guides/getting-started.apt @@ -0,0 +1,120 @@ + ----- + Getting Started with Archiva + ----- + Henri Yandell + ----- + 1 October 2006 + ----- + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +To deploy Archiva on Plexus + + Plexus is a container developed as a part of Maven. It provides a very simple way to get started with Archiva: + + * Unpack the archiva-plexus-runtime/target/archiva-bin.tar.gz archive into a directory of your choice. + + * Start with: ./bin/plexus.sh start or a platform specific version. + + * A Derby exception "Schema 'SA' does not exist" occurs, but is not of concern. + +To deploy Archiva on Tomcat 5.5 + + * Create a directory in tomcat called archiva, at the same level as bin, conf, logs and the others. + + * Copy the war file from apps/archiva/lib into the new directory + + * Create a conf/Catalina/localhost/archiva.xml file with the following data: + ++-------------------------------------------------------------------------+ + <?xml version="1.0" encoding="UTF-8"?> + <Context path="/archiva" + docBase="${catalina.home}/archiva/archiva-webapp-1.0-SNAPSHOT.war"> + + <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource" + username="sa" + password="" + driverClassName="org.apache.derby.jdbc.EmbeddedDriver" + url="jdbc:derby:database/archiva;create=true" /> + + <Resource name="jdbc/archiva" auth="Container" type="javax.sql.DataSource" + username="sa" + password="" + driverClassName="org.apache.derby.jdbc.EmbeddedDriver" + url="jdbc:derby:database/archiva;create=true" /> + + <Resource name="mail/Session" auth="Container" + type="javax.mail.Session" + mail.smtp.host="localhost"/> + </Context> ++-------------------------------------------------------------------------+ + + * <<Note>>: Tomcat 5.5.20 and 5.5.23 are missing MailSessionFactory and a + few other classes. JNDI mail sessions will <not> work. Use Tomcat 5.5.17 + instead, or see {{{http://issues.apache.org/bugzilla/show_bug.cgi?id=40668} + Bug 40668}} for a workaround. + + * Copy $HOME/.m2/org/apache/derby/derby/10.1.3.1/derby-10.1.3.1.jar (or from the remote repository) into the Tomcat + common/lib + + * To deal with a current bug, you'll also need to add the following to your ${catalina.home}/conf/web.xml in the + relevant section (search for jspx): + ++-------------------------------------------------------------------------+ + <servlet-mapping> + <servlet-name>jsp</servlet-name> + <url-pattern>*.jspf</url-pattern> + </servlet-mapping> ++-------------------------------------------------------------------------+ + + When you first start Archiva, you will see an Exception that schema SA does not exist - however it doesn't appear to + cause a problem. If you use a username other than 'sa', such as 'archiva', then you seem to get the same error but + Tomcat fails to start the context and you have to shutdown and restart again. + +Setting up your Archiva instance + + * Goto {{http://localhost:8080/archiva/}} + + * On the first page - setup your administration user. The password requires a numerical character and must not be + longer than 8 chars. You'll then need to log in. User 'admin' as the username and the password you've entered. + + * On the second page - setup your first repository. It can be both an m1 and an m2 repository. + + * On the third page - setup your indexing. Mostly this means choosing a directory to put the index in. It'll + re-index every hour. + +Updating Archiva within a Tomcat + + While exploring Archiva, or perhaps while developing with it, you will want to delete the + current state. Presuming you followed the instructions above, you will need to remove the + following files from the ${catalina.home} directory. Ensure your Tomcat has first been + shutdown. + ++-------------------------------------------------------------------------+ + # Remove the database + rm -r bin/database/ bin/derby.log + # Remove the archiva configuration + rm $HOME/.m2/archiva.xml + # Remove the temporary Tomcat files + rm webapps/archiva/ work/Catalina/localhost/archiva/ logs/* + # Remove the war file (if you're deploying a new one) + rm archiva/*.war ++-------------------------------------------------------------------------+ diff --git a/archiva-docs/src/site/apt/guides/maven-configuration.apt b/archiva-docs/src/site/apt/guides/maven-configuration.apt new file mode 100644 index 000000000..26fb1447a --- /dev/null +++ b/archiva-docs/src/site/apt/guides/maven-configuration.apt @@ -0,0 +1,267 @@ + ----- + Client Configuration + ----- + ----- + 17 November 2006 + ----- + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +Configuring Maven-2 to use an Archiva repository + + To get your local Maven 2 installation to use an Archiva proxy you need to add the repositories you require to your 'settings.xml'. This file is usually found in ${user.dir}/.m2/settings.xml (see the {{{http://maven.apache.org/settings.html}Settings Reference}}). + + You will need to add one entry for each repository that is setup in Archiva. If your repository contains plugins; remember to also include a <pluginRepository> setting. + + <URL-TO-ARCHIVA> => where to find Archiva eg. http://localhost:8080/archiva + + <REPOSITORY-ID> => Identifer for the proxied repository inside Archiva eg. internal, releases + + ~~ <URL-NAME> => Another identifier, this time for normal repositories [one of the these will go away] + +* Configuring a Repository + + [[1]] create a new profile to setup your repositories + ++-------------------------------------------------------------------------+ + <settings> + ... + <profiles> + <profile> + <id>Repository Proxy</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <!-- ******************************************************* --> + <!-- repositories for jar artifacts --> + <!-- ******************************************************* --> + <repositories> + <repository> + ... + </repository> + ... + </repositories> + <!-- ******************************************************* --> + <!-- repositories for maven plugins --> + <!-- ******************************************************* --> + <pluginRepositories> + <pluginRepository> + ... + </pluginRepository> + ... + </pluginRepositories> + </profile> + ... + </profiles> + ... + </settings> ++-------------------------------------------------------------------------+ + + [[2]] add your repository configuration to the profile... + + You can copy the repository configuration from the POM Snippet on the Archiva Administration Page for a normal repository. It should look much like: + ++-------------------------------------------------------------------------+ + <repository> + <id>repository-1</id> + <url>URL-TO-ARCHIVA/repository/REPOSITORY-ID</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> ++-------------------------------------------------------------------------+ + +* Configuring Maven-2 to deploy to an Archiva repository + + [[1]] Create a user in Archiva to use for deployment + + [[2]] The deployment user needs the Role 'Repository Manager' for each repository that you want to deploy to + + [[3]] Define the server for deployment inside your 'settings.xml', use the newly created user for authentication + ++-------------------------------------------------------------------------+ + <settings> + ... + <servers> + <server> + <id>deployment.webdav</id> + <username>{archiva-deployment-user}</username> + <password>{archiva-deployment-pwd}</password> + </server> + ... + </servers> + ... + </settings> ++-------------------------------------------------------------------------+ + +* Deploying to Archiva + + [[1]] Configure the distributionManagement part of your pom.xml + ++-------------------------------------------------------------------------+ + <project> + ... + <distributionManagement> + <repository> + <id>deployment.webdav</id> + <name>Internal Release Repository</name> + <url>dav:URL-TO-ARCHIVA/repository/REPOSITORY-ID/</url> + </repository> + <snapshotRepository> + <id>deployment.webdav</id> + <name>Internal Snapshot Repository</name> + <url>dav:URL-TO-ARCHIVA/repository/REPOSITORY-ID/</url> + </snapshotRepository> + </distributionManagement> + ... + </project> ++-------------------------------------------------------------------------+ + + [[2]] Add a build extension to your pom.xml to use webdav + ++-------------------------------------------------------------------------+ + <project> + ... + <build> + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-webdav</artifactId> + <version>1.0-beta-2</version> + </extension> + </extensions> + </build> + ... + </project> ++-------------------------------------------------------------------------+ + + [[3]] Finally the user that is running archiva (tomcat-user, plexus-user,..) must have write access to the deployment repository. + +* Deploying Third-Party Artifacts to Archiva + + [[1]] In the directory from which you intend to execute "<<<mvn + deploy:deploy-file>>>", save the following content as <<<pom.xml>>>. + ++-------+ +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>com.example</groupId> + <artifactId>webdav-deploy</artifactId> + <packaging>pom</packaging> + <version>1</version> + <name>Webdav Deployment POM</name> + + <build> + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-webdav</artifactId> + <version>1.0-beta-2</version> + </extension> + </extensions> + </build> + +</project> ++-------+ + + This pom will not be deployed with the artifact, it simply serves to make the + wagon-webdav jar available to the build process. + + Alternately, save this file somewhere else, and use "<<<mvn ... -f + /path/to/filename>>>" to force the use of an alternate POM file. + + [[2]] Deploy the artifact: + ++------+ +mvn deploy:deploy-file -Dfile=filename.jar -DpomFile=filename.pom + -DrepositoryId=deployment.webdav + -Durl=dav:URL-TO-ARCHIVA/repository/REPOSITORY-ID ++------+ + +Archiva as a Proxy + +* Creating a New Proxy Repository + + Archiva has pre-configured proxy connectors for the 'internal' managed repo and the 'central' and 'maven2-repository.dev.java.net' remote repositories. + + To create a new proxy repository, just do the following: + + [[1]] Add a new managed repository + + Go to Repositories --> Add (Managed Repository) + + Create the managed repository (let's say 'releases') which would serve as the proxy repo. + + Do not forget to set the necessary permissions or user roles in Users Management if you want this repository to be secured. + + [[2]] Add a remote repository + + Go to Repositories --> Add (Remote Repository) + + Add the remote repository you want to proxy. + + [[3]] Create a proxy connector + + Go to Proxy Connectors --> Add + + Fill up the following fields: + + * Network Proxy* - if your network connection has a network proxy, then this should be configured via the Network Proxies in Archiva. Select the network proxy, if you're using one, that will be used for this proxy connector. + + * Managed Repository* - the managed repository you want to connect to the remote repository. + + * Remote Repository* - the repository you want to proxy + + * Policies - the download policies that will be used by Archiva when proxying + + * Properties + + * Black List Patterns - the patterns that will be blacklisted during proxying + + * White List Patterns - the patterns that will be included during proxying + +* Using the Proxy Repository with Maven + + Set-up your settings.xml file as shown above in sections 1 and 2 of Configuring a Repository. In this case, use the repository configuration of the managed repository you've created. + + Then, configure the <server> settings in the settings.xml file as shown below: + ++-------------------------------------------------------------------------+ + <settings> + ... + <servers> + <server> + <id>releases</id> + <username>{archiva-user}</username> + <password>{archiva-pwd}</password> + </server> + ... + </servers> + ... + </settings> ++-------------------------------------------------------------------------+ + + Execute a Maven 2 build. Artifacts should be downloaded from the proxy repository/repositories you've set in your settings.xml + +
\ No newline at end of file diff --git a/archiva-docs/src/site/apt/guides/security-configuration.apt b/archiva-docs/src/site/apt/guides/security-configuration.apt new file mode 100644 index 000000000..2263cb409 --- /dev/null +++ b/archiva-docs/src/site/apt/guides/security-configuration.apt @@ -0,0 +1,126 @@ + ------ + Archiva Security Configuration + ------ + The Maven Team + ------ + 17 February 2007 + ------ + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + +Archiva Security Configuration + +* Properties + + Archiva makes use of Redback to handle user ids, passwords and roles. + + Security properties and password rules can be configured in the + <<<security.properties>>> file, which by default is searched for in: + + * <<<~/.m2/security.properties>>> + + * <<<$ARCHIVA_HOME/conf/security.properties>>> + + [] + + (In the above list, <<<~>>> is the home directory of the user who is running + Archiva, and <<<$ARCHIVA_HOME>>> is the directory where Archiva is installed, + such as <<</opt/archiva-1.0-SNAPSHOT>>>.) + +~~ TODO: Link to plexus-redback documentation when available + + Following are some of the properties you can modify. For a complete list, + consult the default properties file in Redback's svn repo: + {{{http://svn.codehaus.org/redback/redback/trunk/redback-configuration/src/main/resources/org/codehaus/plexus/redback/config-defaults.properties} + config-defaults.properties}} + ++-----+ +# Security Policies +#security.policy.password.encoder= +security.policy.password.previous.count=6 +security.policy.password.expiration.days=90 +security.policy.allowed.login.attempt=3 + +# Password Rules +security.policy.password.rule.alphanumeric.enabled=false +security.policy.password.rule.alphacount.enabled=true +security.policy.password.rule.alphacount.minimum=1 +security.policy.password.rule.characterlength.enabled=true +security.policy.password.rule.characterlength.minimum=1 +security.policy.password.rule.characterlength.maximum=8 +security.policy.password.rule.musthave.enabled=true +security.policy.password.rule.numericalcount.enabled=true +security.policy.password.rule.numericalcount.minimum=1 +security.policy.password.rule.reuse.enabled=true +security.policy.password.rule.nowhitespace.enabled=true ++-----+ + + <<Note:>> Archiva's list of configuration files is <itself> configurable, and + can be found in: + <<<$ARCHIVA_HOME/apps/archiva/webapp/WEB-INF/classes/META-INF/plexus/application.xml>>> + +* Database + + By default, Archiva uses embedded {{{http://db.apache.org/derby}Apache Derby}} + to store the user information. It can be configured to use an external database + by providing a JDBC driver and editing the <<<plexus.xml>>> file. + + [[1]] Place the jar containing the JDBC driver in <<<$ARCHIVA_HOME/core>>>. + + [[2]] Edit <<<$ARCHIVA_HOME/conf/plexus.xml>>>, providing the JDBC driver class + name, and the database url, username, and password. + + [] + + For example: + ++------+ +<!-- + Datasources +--> +<resource> + <name>jdbc/users</name> + <type>javax.sql.DataSource</type> + <properties> + <property> + <name>driverClassName</name> + <value>org.apache.derby.jdbc.ClientDriver</value> + </property> + <property> + <name>url</name> + <value>jdbc:derby://localhost:1527/archiva-users;create=true</value> + </property> + <property> + <name>username</name> + <value>user1</value> + </property> + <property> + <name>password</name> + <value>user1</value> + </property> + </properties> +</resource> ++------+ + + More information about using Derby Network Server as an external user database + for Archiva can be found on the wiki: + {{{http://docs.codehaus.org/display/MAVENUSER/Archiva+User+DB+on+Derby+Network+Server} + Archiva User DB on Derby Network Server}} diff --git a/archiva-docs/src/site/apt/index.apt b/archiva-docs/src/site/apt/index.apt new file mode 100644 index 000000000..d5fbd1f7e --- /dev/null +++ b/archiva-docs/src/site/apt/index.apt @@ -0,0 +1,25 @@ + ----- + Welcome to Maven Archiva + ----- + ----- + ----- + + Archiva is a build artifact repository manager for use with + build tools such as {{{http://maven.apache.org} Maven}}, {{{http://maven.apache.org/continuum/} Continuum}}, and {{{http://ant.apache.org/} ANT}}. + + With Archiva, you can share artifacts with other developers and manage the associated + security required, aggregate (proxy) content from remote artifact repositories, visualise + your artifact utilisation with search, browse and reporting, and perform routine + maintenance on your repositories. + + ~~TODO: improve appearance of links + + To get started with Archiva, read the following documentation: + + * {{{/quick-start.html} A Quick Getting Started Guide}} + + * {{{/userguide/index.html} User's Guide}} + + * {{{/adminguide/index.html} Administrator's Guide}} + + [] diff --git a/archiva-docs/src/site/apt/quick-start.apt b/archiva-docs/src/site/apt/quick-start.apt new file mode 100644 index 000000000..c50b40b29 --- /dev/null +++ b/archiva-docs/src/site/apt/quick-start.apt @@ -0,0 +1,8 @@ + ------ + Quick Start + ------ + +Quick Start + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/userguide/browsing.apt b/archiva-docs/src/site/apt/userguide/browsing.apt new file mode 100644 index 000000000..e73c11d6d --- /dev/null +++ b/archiva-docs/src/site/apt/userguide/browsing.apt @@ -0,0 +1,70 @@ + ------ + Browsing + ------ + Maria Odea Ching + ------ + 9 November 2007 + ------ + +~~ Licensed to the Apache Software Foundation (ASF) under one +~~ or more contributor license agreements. See the NOTICE file +~~ distributed with this work for additional information +~~ regarding copyright ownership. The ASF licenses this file +~~ to you under the Apache License, Version 2.0 (the +~~ "License"); you may not use this file except in compliance +~~ with the License. You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, +~~ software distributed under the License is distributed on an +~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +~~ KIND, either express or implied. See the License for the +~~ specific language governing permissions and limitations +~~ under the License. + +~~ NOTE: For help with the syntax of this file, see: +~~ http://maven.apache.org/guides/mini/guide-apt-format.html + + +Browsing + +* Permissions + + The user can only browse those repositories where the user is an observer or a manager. If the user does not + have permission to access any repository, a message saying "You have access to no repositories. Ask your + system administrator for access" will be displayed. + +* Repository Browse Layout + + The current layout of the repositories in Repository Browse uses the Maven 2 layout, which is the groupId, + artifactId and version. When the version is clicked, the Artifact Info page (see the next section) will be + displayed. There is currently an issue with regard to Maven 1 artifacts, see {{{http://jira.codehaus.org/browse/MRM-585} http://jira.codehaus.org/browse/MRM-585}}. + +* Artifact Info + + The Artifact Info page is divided into 5 views: + + 1. Info. Basic information about the artifact is displayed here. These are the groupId, artifactId, version and + packaging. A dependency pom snippet is also available, which a user can just copy and paste in a pom file + to declare the artifact as a dependency of the project. + + 2. Dependencies. The dependencies of the artifact will be listed here. The user can easily navigate to a specific + dependency by clicking on the groupId, artifactId or version link. The scope of the dependency is also shown. + + 3. Dependency Tree. The dependencies of the artifact are displayed in a tree-like view, which can also be + navigated. + + 4. Used By. Lists all the artifacts in the repository which use this artifact. + + 5. Mailing Lists. The project mailing lists available in the artifact's pom are displayed here. + +* Downloading Artifacts + + Artifacts can be downloaded from the artifact info page. All files, except for the metadata.xml files, that are + associated with the artifact are available in the download box. The size of the files in bytes are displayed + at the right section of the download box. + + + +
\ No newline at end of file diff --git a/archiva-docs/src/site/apt/userguide/deploy.apt b/archiva-docs/src/site/apt/userguide/deploy.apt new file mode 100644 index 000000000..30fbbdb48 --- /dev/null +++ b/archiva-docs/src/site/apt/userguide/deploy.apt @@ -0,0 +1,8 @@ + ------ + Deploying to Repository + ------ + +Deploying to Repository + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/userguide/find-artifact.apt b/archiva-docs/src/site/apt/userguide/find-artifact.apt new file mode 100644 index 000000000..132636716 --- /dev/null +++ b/archiva-docs/src/site/apt/userguide/find-artifact.apt @@ -0,0 +1,8 @@ + ------ + Identifying an Artifact + ------ + +Identifying an Artifact + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/userguide/index.apt b/archiva-docs/src/site/apt/userguide/index.apt new file mode 100644 index 000000000..58ef923d2 --- /dev/null +++ b/archiva-docs/src/site/apt/userguide/index.apt @@ -0,0 +1,8 @@ + ------ + User Guide + ------ + +User Guide + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/userguide/searching.apt b/archiva-docs/src/site/apt/userguide/searching.apt new file mode 100644 index 000000000..dd1cf04ed --- /dev/null +++ b/archiva-docs/src/site/apt/userguide/searching.apt @@ -0,0 +1,8 @@ + ------ + Searching + ------ + +Searching + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/apt/userguide/using-repository.apt b/archiva-docs/src/site/apt/userguide/using-repository.apt new file mode 100644 index 000000000..0fff28b49 --- /dev/null +++ b/archiva-docs/src/site/apt/userguide/using-repository.apt @@ -0,0 +1,8 @@ + ------ + Using as a Repository + ------ + +Using as a Repository + + :STUB: This is a documentation stub. + diff --git a/archiva-docs/src/site/assembly/docs.xml b/archiva-docs/src/site/assembly/docs.xml new file mode 100644 index 000000000..e19dfb70a --- /dev/null +++ b/archiva-docs/src/site/assembly/docs.xml @@ -0,0 +1,33 @@ +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +<assembly> + <id>docs</id> + <formats> + <format>zip</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <fileSets> + <fileSet> + <directory>target/site</directory> + <outputDirectory>/docs/</outputDirectory> + </fileSet> + </fileSets> +</assembly> + diff --git a/archiva-docs/src/site/resources/css/site.css b/archiva-docs/src/site/resources/css/site.css new file mode 100755 index 000000000..3ca753781 --- /dev/null +++ b/archiva-docs/src/site/resources/css/site.css @@ -0,0 +1,63 @@ +a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { + background: none; + padding-right: 0; +} + +body ul { + list-style-type: square; +} + +#downloadbox { + float: right; + margin-left: 2em; + padding-left: 1em; + padding-right: 1em; + padding-bottom: 1em; + border: 1px solid #999; + background-color: #eee; + width: 17.5em; +} + +#downloadbox h5 { + color: #000; + margin: 0; + border-bottom: 1px solid #aaaaaa; + font-size: smaller; + padding: 0; + margin-top: 1em; +} + +#downloadbox p { + margin-top: 1em; + margin-bottom: 0; +} + +#downloadbox li { + text-indent: inherit; +} + +div.p { + margin-top: 5px; + margin-bottom: 10px; +} + +pre.commandline { + border: 1px solid #bbb; + background-color: white; + margin-top: 5px; + margin-bottom: 5px; + font-size: 10pt; + padding: 15px; + color: gray; +} + +pre.commandline .input { + color: #55f; +} + +pre.commandline .command { + color: black; + font-weight: bold; +} + + diff --git a/archiva-docs/src/site/resources/images/archiva-report.jpg b/archiva-docs/src/site/resources/images/archiva-report.jpg Binary files differnew file mode 100644 index 000000000..fce00e828 --- /dev/null +++ b/archiva-docs/src/site/resources/images/archiva-report.jpg diff --git a/archiva-docs/src/site/resources/images/graph-multimodule.dot b/archiva-docs/src/site/resources/images/graph-multimodule.dot new file mode 100644 index 000000000..759dab34e --- /dev/null +++ b/archiva-docs/src/site/resources/images/graph-multimodule.dot @@ -0,0 +1,239 @@ +// Auto generated dot file from plexus-graphing-graphviz. +digraph gid { + + // Graph Defaults + graph [ + rankdir="TB" + ]; + + // Node Defaults. + node [ + fontname="Helvetica", + fontsize="8", + shape="box" + ]; + + // Edge Defaults. + edge [ + arrowsize="0.8" + fontsize="8", + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_REPOSITORY_LAYER10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-repository-layer\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" [ + label="org.apache.maven.archiva\narchiva-webapp\n1.0-SNAPSHOT\nwar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_PLEXUS_APPLICATION10_SNAPSHOTPLEXUS_APPLICATION" [ + label="org.apache.maven.archiva\narchiva-plexus-application\n1.0-SNAPSHOT\nplexus-application", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-core\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_CONFIGURATION10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-configuration\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_PROXY10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-proxy\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_REPORTS_STANDARD10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-reports-standard\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_CLI10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-cli\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_CONVERTER10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-converter\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_APPLET10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-applet\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_PLEXUS_RUNTIME10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-plexus-runtime\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_DISCOVERER10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-discoverer\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_SECURITY10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-security\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Node + "ORGAPACHEMAVENARCHIVAARCHIVA_INDEXER10_SNAPSHOTJAR" [ + label="org.apache.maven.archiva\narchiva-indexer\n1.0-SNAPSHOT\njar", + fontsize="8", + shape=box + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_CONVERTER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_APPLET10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_PLEXUS_APPLICATION10_SNAPSHOTPLEXUS_APPLICATION" -> "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_INDEXER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_CONFIGURATION10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_PLEXUS_RUNTIME10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_PLEXUS_APPLICATION10_SNAPSHOTPLEXUS_APPLICATION" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CLI10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_PROXY10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_DISCOVERER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_REPORTS_STANDARD10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_INDEXER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_DISCOVERER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_REPORTS_STANDARD10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_REPOSITORY_LAYER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_REPORTS_STANDARD10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_DISCOVERER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_DISCOVERER10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_PROXY10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_PROXY10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_CONFIGURATION10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CONVERTER10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_REPORTS_STANDARD10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_REPORTS_STANDARD10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_CORE10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; + + // Edge + "ORGAPACHEMAVENARCHIVAARCHIVA_WEBAPP10_SNAPSHOTWAR" -> "ORGAPACHEMAVENARCHIVAARCHIVA_SECURITY10_SNAPSHOTJAR" [ + arrowtail=none, + arrowhead=normal + ]; +} diff --git a/archiva-docs/src/site/resources/images/graph-multimodule.png b/archiva-docs/src/site/resources/images/graph-multimodule.png Binary files differnew file mode 100644 index 000000000..a7450d1c7 --- /dev/null +++ b/archiva-docs/src/site/resources/images/graph-multimodule.png diff --git a/archiva-docs/src/site/resources/images/scheduling.svg b/archiva-docs/src/site/resources/images/scheduling.svg new file mode 100755 index 000000000..7e255690b --- /dev/null +++ b/archiva-docs/src/site/resources/images/scheduling.svg @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1052.3622" + height="744.09448" + id="svg2" + sodipodi:version="0.32" + inkscape:version="0.45.1" + version="1.0" + sodipodi:docbase="C:\code\archiva-trunk\archiva-site\src\site\resources\images" + sodipodi:docname="scheduling.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="560.51091" + inkscape:cy="376.79373" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="1052.3622px" + height="744.09448px" + inkscape:window-width="877" + inkscape:window-height="713" + inkscape:window-x="1" + inkscape:window-y="-1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g3135"> + <rect + rx="19.2857" + ry="19.2857" + y="149.76445" + x="89.955666" + height="45.802929" + width="207.23151" + id="rect3129" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text3131" + y="181.61317" + x="192.79211" + style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + y="181.61317" + x="192.79211" + id="tspan3133" + sodipodi:role="line">Scheduler</tspan></text> + </g> + <g + id="g3140" + transform="translate(125.71429,157.14286)"> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1" + id="rect3142" + width="207.23151" + height="45.802929" + x="89.955666" + y="149.76445" + ry="19.2857" + rx="19.2857" /> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + x="192.79211" + y="181.61317" + id="text3144" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3146" + x="192.79211" + y="181.61317">Task Queue</tspan></text> + </g> + <g + transform="translate(192.85715,247.14286)" + id="g3148"> + <rect + rx="19.2857" + ry="19.2857" + y="149.76445" + x="89.955666" + height="45.802929" + width="207.23151" + id="rect3150" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text3152" + y="181.61317" + x="192.79211" + style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + y="181.61317" + x="192.79211" + id="tspan3154" + sodipodi:role="line">Task Executor</tspan></text> + </g> + <g + id="g3156" + transform="translate(414.28572,151.42857)"> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.9113363;stroke-opacity:1" + id="rect3158" + width="207.23151" + height="45.802929" + x="89.955666" + y="149.76445" + ry="19.2857" + rx="19.2857" /> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" + x="192.79211" + y="181.61317" + id="text3160" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3162" + x="192.79211" + y="181.61317">Task Executor</tspan></text> + </g> + </g> +</svg> diff --git a/archiva-docs/src/site/resources/images/tour/admin.png b/archiva-docs/src/site/resources/images/tour/admin.png Binary files differnew file mode 100644 index 000000000..8523f32ef --- /dev/null +++ b/archiva-docs/src/site/resources/images/tour/admin.png diff --git a/archiva-docs/src/site/resources/images/tour/project.png b/archiva-docs/src/site/resources/images/tour/project.png Binary files differnew file mode 100644 index 000000000..025217782 --- /dev/null +++ b/archiva-docs/src/site/resources/images/tour/project.png diff --git a/archiva-docs/src/site/resources/images/tour/proxy.png b/archiva-docs/src/site/resources/images/tour/proxy.png Binary files differnew file mode 100644 index 000000000..7a4ee1305 --- /dev/null +++ b/archiva-docs/src/site/resources/images/tour/proxy.png diff --git a/archiva-docs/src/site/resources/images/tour/reports.png b/archiva-docs/src/site/resources/images/tour/reports.png Binary files differnew file mode 100644 index 000000000..29b7d926b --- /dev/null +++ b/archiva-docs/src/site/resources/images/tour/reports.png diff --git a/archiva-docs/src/site/resources/images/tour/search.png b/archiva-docs/src/site/resources/images/tour/search.png Binary files differnew file mode 100644 index 000000000..a6bba9393 --- /dev/null +++ b/archiva-docs/src/site/resources/images/tour/search.png diff --git a/archiva-docs/src/site/resources/images/tour/security.png b/archiva-docs/src/site/resources/images/tour/security.png Binary files differnew file mode 100644 index 000000000..02c5af2be --- /dev/null +++ b/archiva-docs/src/site/resources/images/tour/security.png diff --git a/archiva-docs/src/site/site.xml b/archiva-docs/src/site/site.xml new file mode 100644 index 000000000..aad0f544e --- /dev/null +++ b/archiva-docs/src/site/site.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> + +<project> + <body> + <breadcrumbs> + <item name="1.0-SNAPSHOT" href="/docs/1.0-SNAPSHOT/" /> +<!-- TODO in beta-6 + <item name="${project.version}" href="/docs/${project.version}" /> +--> + </breadcrumbs> + + <menu name="Introduction"> + <item name="Quick Start" href="/quick-start.html" /> + <item name="Feature Tour" href="/tour/index.html" /> + </menu> + + <menu name="Users Guide"> + <item name="Browsing" href="/userguide/browsing.html" /> + <item name="Searching" href="/userguide/searching.html" /> + <item name="Identifying an Artifact" href="/userguide/find-artifact.html" /> + <item name="Using as a repository" href="/userguide/using-repository.html" /> + <item name="Deploying to repository" href="/userguide/deploy.html" /> + </menu> + + <menu name="Administrators Guide"> +<!-- TODO: add an overview in future versions + <item name="Structure of Archiva" href="/adminguide/structure.html" /> +--> + <item name="Installing Archiva" href="/adminguide/installing.html" collapse="true"> + <item name="Installing Standalone" href="/adminguide/standalone.html" /> + <item name="Installing as a WAR" href="/adminguide/webapp.html" /> + </item> + <item name="Databases" href="/adminguide/databases.html" /> + <item name="Security" href="/adminguide/security.html" collapse="true"> + <item name="Roles" href="/adminguide/roles.html" /> +<!-- TODO: for a future version + <item name="Using LDAP" href="/adminguide/ldap.html" /> +--> + </item> + <item name="Runtime Configuration" href="/adminguide/configuration.html" collapse="true"> + <item name="Repositories" href="/adminguide/repositories.html" /> + <item name="Proxy Connectors" href="/adminguide/proxy-connectors.html" /> + <item name="Network Proxies" href="/adminguide/network-proxies.html" /> + <item name="Consumers" href="/adminguide/consumers.html" /> + </item> + <item name="Configuration Files" href="/adminguide/configuration-files.html" /> + <item name="Reports" href="/adminguide/reports.html" /> + </menu> + + <menu name="Customising Archiva"> + <item name="Writing a Consumer Plugin" href="/customising/writing-consumers.html" /> + </menu> + + <!-- to be removed later, once content has been shifted to permanent home --> + <menu name="Old Menu (deprecated)"> + <item name="Getting Started" href="/guides/getting-started.html"/> + <item name="FAQ" href="http://docs.codehaus.org/display/MAVENUSER/Archiva+FAQ"/> + <item name="Maven Configuration" href="/guides/maven-configuration.html"/> + <item name="Security Configuration" href="/guides/security-configuration.html"/> + <item name="Other Configuration" href="/guides/configuration.html"/> + <item name="Hacking Archiva" href="/hacking/index.html"/> + </menu> + </body> +</project> diff --git a/archiva-docs/src/site/xdoc/hacking/index.xml b/archiva-docs/src/site/xdoc/hacking/index.xml new file mode 100644 index 000000000..75df98742 --- /dev/null +++ b/archiva-docs/src/site/xdoc/hacking/index.xml @@ -0,0 +1,394 @@ +<?xml version="1.0"?> +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> + +<document> + <properties> + <title>Hacking Maven Archiva</title> + </properties> + <body> + <section name="Hacking Maven Archiva"> + <div class="p"> + So, you wanna start hacking away at Archiva huh? + </div> + + <div class="p"> + These pages are for you! + </div> + + <div class="p"> + Be sure to read the sections for Database, Configuration, and + Concepts. Beyond that, the + <a href="../ref/latest/apidocs/index.html">Javadoc</a> + is your friend. + </div> + + <div class="p"> + Developer reference docs for the latest snapshot + can be found starting + <a href="../ref/latest/index.html">here</a>. + </div> + + <div class="p"> + If you don't see the topic covered here, ask! Ask in the + <a href="../mail-lists.html">archiva-dev mailing list</a>, + or in the <a href="irc://irc.codehaus.org/#archiva">#archiva</a> + irc channel. + </div> + + <subsection name="Getting the Source Code"> + <p> + First, you'll need the source code. It is stored in subversion on + the public svn.apache.org site. You can use the + <a href="/source-repository.html">basic subversion access steps</a>, + or follow the steps below... + </p> + +<pre class="commandline"> +<span class="input">[code]$ <span class="command">svn checkout http://svn.apache.org/repos/asf/maven/archiva/trunk archiva</span></span> +A archiva/archiva-database +A archiva/archiva-database/src +A archiva/archiva-database/src/test +A archiva/archiva-database/src/test/java +... (snip hundreds of checkout entries) ... +A archiva/archiva-scheduled/src/main/resources/META-INF/plexus +A archiva/archiva-scheduled/src/main/resources/META-INF/plexus/components.xml +A archiva/archiva-scheduled/pom.xml + U archiva +Checked out revision 539934. + +<span class="input">[code]$ <span class="command">ls</span></span> +archiva + +<span class="input">[code]$ <span class="command">cd archiva</span></span> + +<span class="input">[code/archiva]$ <span class="command">ls</span></span> +archiva-base/ archiva-reporting/ archiva-web/ maven-meeper/ +archiva-cli/ archiva-scheduled/ archiva-workflow/ pom.xml +archiva-database/ archiva-site/ design/ +</pre> + </subsection> + + <subsection name="The Tools"> + <p> + You will need the following tools. + </p> + <ul> + <li>Maven 2.0.5 (or newer)</li> + <li>Java SDK 1.5.0_10 (or newer)</li> + <li>An IDE (or plain editor) of your choice.</li> + </ul> + </subsection> + + <subsection name="Building Archiva"> + <p> + Archiva uses the Maven tool suite to do all things within + the build. (compile, test, archive, install, deploy, etc...) + The standard goals apply here. + </p> + <p> + There are 2 non-distributable artifacts in use within archiva, + that cannot be placed on the public / global repository system + by anyone but Sun. In order to build archiva, you will need to + manually install these artifact into your local repository. + Follow the steps below. + </p> + <ul> + <li>The <code>javax.resource:connector:1.0:jar</code> artifact</li> + <ol> + <li>Download the 1.0 connector zip from: <a href="http://java.sun.com/j2ee/connector/download.html">http://java.sun.com/j2ee/connector/download.html</a></li> + <li>Unpack the zip to gain access to the jar file.</li> + <li>Install it: <code>mvn install:install-file -DgroupId=javax.resource -DartifactId=connector -Dversion=1.0 -Dpackaging=jar -Dfile=connector.jar</code></li> + </ol> + <li>The <code>javax.transaction:jta:1.0.1B:jar</code> artifact</li> + <ol> + <li>Download the 1.0.1B jta zip from: <a href="http://java.sun.com/products/jta/">http://java.sun.com/products/jta/</a></li> + <li>Install it: <code>mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=jta-1_0_1B-classes.zip</code></li> + </ol> + </ul> + </subsection> + + <subsection name="Compile / Test"> + <p> + Archiva uses the standard maven goals. Use them. + </p> +<pre class="commandline"> +<span class="input">[archiva]$ <span class="command">mvn clean install</span></span> +[INFO] Scanning for projects... +[INFO] Reactor build order: +[INFO] Archiva + +... (snip output) ... + +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESSFUL +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 4 minutes 29 seconds +[INFO] Finished at: Sun May 20 17:00:09 EDT 2007 +[INFO] Final Memory: 50M/61M +[INFO] ------------------------------------------------------------------------ +</pre> + + <p> + NOTE: Your first compile will take the longest, as maven will + download all the missing dependencies into your local repository + at this point. + </p> + </subsection> + + <subsection name="Running Archiva"> + <p> + You have a few ways (in development time) to run archiva. + </p> + + <ul> + <li> + <p>Using the jetty:run plugin w/default settings.</p> + +<pre class="commandline"> +<span class="input">[archiva]$ <span class="command">cd archiva-web/archiva-webapp</span></span> + +<span class="input">[archiva-webapp]$ <span class="command">mvn clean jetty:run</span></span> +[INFO] Scanning for projects... +[INFO] Searching repository for plugin with prefix: 'jetty'. +[INFO] --------------------------------------------------------------------- +[INFO] Building Archiva Web :: Application +[INFO] task-segment: [clean, jetty:run] +[INFO] --------------------------------------------------------------------- +[INFO] [clean:clean] + +... ( snip lots of output ) ... + +2007-05-20 18:47:49.790:/:INFO: Initializing org.codehaus.plexus.webdav.simple.SimpleDavServerComponent +2007-05-20 18:47:49.813::INFO: Started SelectChannelConnector @ 0.0.0.0:9091 +[INFO] Started Jetty Server +[INFO] Starting scanner at interval of 10 seconds. +</pre> + <p>At this point you can use your browser to goto <a href="http://localhost:9091/">http://localhost:9091/</a></p> + </li> + + <li>Using the jetty:run plugin w/mysql settings. + +<pre class="commandline"> +<span class="input">[archiva]$ <span class="command">cd archiva-web/archiva-webapp</span></span> + +<span class="input">[archiva-webapp]$ <span class="command">mvn -Pmysql clean jetty:run</span></span> +[INFO] Scanning for projects... +[INFO] Searching repository for plugin with prefix: 'jetty'. +[INFO] --------------------------------------------------------------------- +[INFO] Building Archiva Web :: Application +[INFO] task-segment: [clean, jetty:run] +[INFO] --------------------------------------------------------------------- +[INFO] [clean:clean] + +... ( snip lots of output ) ... + +2007-05-20 18:47:49.790:/:INFO: Initializing org.codehaus.plexus.webdav.simple.SimpleDavServerComponent +2007-05-20 18:47:49.813::INFO: Started SelectChannelConnector @ 0.0.0.0:9091 +[INFO] Started Jetty Server +[INFO] Starting scanner at interval of 10 seconds. +</pre> + </li> + <li>Using the built plexus-application standalone binary. + +<pre class="commandline"> +<span class="input">[archiva]$ <span class="command">cd archiva-web/archiva-standalone/archiva-plexus-runtime/target</span></span> + +<span class="input">[target]$ <span class="command">tar -zxvf archiva-1.0-alpha-1-SNAPSHOT-bin.tar.gz</span></span> + +<span class="input">[target]$ <span class="command">cd archiva-1.0-alpha-1-SNAPSHOT/bin</span></span> + +<span class="input">[bin]$ <span class="command">ls</span></span> +linux-x86-32 plexus.bat solaris-sparc-64 +linux-x86-64 plexus.sh solaris-x86-32 +macosx-universal-32 solaris-sparc-32 windows-x86-32 + +<span class="input">[bin]$ <span class="command">cd linux-x86-32</span></span> + +<span class="input">[linux-x86-32]$ <span class="command">ls</span></span> +libwrapper.so run.sh wrapper wrapper.conf + +<span class="input">[linux-x86-32]$ <span class="command">./run.sh start</span></span> +</pre> + </li> + </ul> + </subsection> + </section> + + <section name="Databases"> + <p>There are 2 databases in use by archiva.</p> + <ol> + <li>redback (security) - the database for security related information + such as Users, Roles, Permissions, Login Keys, etc...</li> + <li>archiva - the database that contains the repository information, + reports, statistics, etc...</li> + </ol> + <p> + See the general <a href="/database/index.html">database use and + care</a> section about this. + </p> + </section> + + <section name="Configuration"> + <p>The configuration of archiva is accomplished via the + <code>$HOME/.m2/archiva.xml</code> file. + </p> + <p> + See the general <a href="/configuration/index.html">configuration</a> + section on details about this. + </p> + </section> + + <section name="Concepts"> + <ul> + <li>Modules & Source Tree</li> + <li>Plexus Basics</li> + <ul> + <li>Purpose</li> + <li>Role & Hint</li> + <li>Descriptors</li> + <ul> + <li>META-INF/plexus/components.xml</li> + <li>META-INF/plexus/application.xml</li> + <li>src/test/resources/${package}/${test}.xml</li> + </ul> + <li>plexus-maven-plugin</li> + <ul> + <li>generated and/or merge</li> + <li>javadoc tags</li> + </ul> + </ul> + <li>Model</li> + <ul> + <li>Heirarchy of artifacts.</li> + <ul> + <li>Project: ( group Id + artifact Id )</li> + <li>Versioned: ( project + version )</li> + <li>Artifact: ( versioned + classifier + type )</li> + </ul> + <li>Types of objects.</li> + <ul> + <li>Archiva Project Model</li> + <li>Archiva Artifact</li> + <ul> + <li>Java Platform Extension</li> + </ul> + <li>Archiva Repository</li> + <li>Archiva Reposiotry Metadata</li> + <li>Repository Statistics</li> + <li>Repository Problem</li> + </ul> + <li>Types of Repositories</li> + <ul> + <li>Managed</li> + <ul> + <li>file://... URLs only</li> + <li>Indexed</li> + <li>Statistics</li> + </ul> + <li>Remote</li> + </ul> + </ul> + <li>Database / Persistence</li> + <ul> + <li>JDO / JPox</li> + <li>Query / Constraints</li> + <ul> + <li>Declarative</li> + <li>Simple</li> + </ul> + </ul> + <li>Scheduling</li> + <ul> + <li>How plexus-quartz & plexus-taskqueue fit in.</li> + <li>Types of Jobs</li> + <ul> + <li>Repository Scanning</li> + <ul> + <li>Known Files</li> + <li>Ignored Files</li> + <li>Unknown Files</li> + </ul> + <li>Database Updates</li> + <ul> + <li>Periodic</li> + <ul> + <li>Unprocesed Process</li> + <li>Cleanup</li> + </ul> + <li>Nightly</li> + </ul> + </ul> + </ul> + <li>Consumers</li> + <ul> + <li>Purpose</li> + <li>Discovery</li> + <li>Configuration</li> + <li>Types of Consumers</li> + <ul> + <li>Repository Artifact</li> + <li>Database Unprocessed</li> + <li>Database Cleanup</li> + </ul> + </ul> + <li>Repository Connectors</li> + <ul> + <li>Proxy Connector</li> + <ul> + <li>Pre Download Policies</li> + <li>Post Download Policies</li> + </ul> + </ul> + <li>Maven Artifact / Project Libraries</li> + <ul> + <li>Bidirectional Repository Layout</li> + <li>Project Readers</li> + <li>Project Filters</li> + <li>Project Resolvers</li> + </ul> + <li>Indexer</li> + <ul> + <li>Bytecode</li> + <li>File Content</li> + <li>Hashcodes</li> + <li>Analyze / Index</li> + <li>Search / Query</li> + </ul> + <li>Reporting</li> + <ul> + <li>Reporting Manager</li> + <li>Artifact Reports</li> + <li>Metadata Reports</li> + <li>Project Reports</li> + </ul> + <li>Web Framework</li> + <ul> + <li>Webwork & XWork</li> + <li><archiva: /> taglib</li> + <ul> + <li><archiva:copy-paste /></li> + <li><archiva:download /></li> + <li><archiva:group-id-link /></li> + </ul> + </ul> + </ul> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/admin.xml b/archiva-docs/src/site/xdoc/tour/admin.xml new file mode 100644 index 000000000..610618e6e --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/admin.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Graphical Administration</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <section name="Graphical Administration"> + <div style="text-align: center"> + <img src="../images/tour/admin.png" width="640" height="401" alt="" /> + <p> + Archiva has a comprehensive web-based administration interface for configuring repositories, + remote proxies, scheduled jobs and more. The configuration is kept in sync with the XML + configuration files so that they can also be hand-edited if necessary. + </p> + <p> + <a href="proxy.html">Previous: Remote Proxying Cache</a> | + <strong>Graphical Administration</strong> | + <a href="security.html">Next: Role-based Security</a> + </p> + </div> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/index.xml b/archiva-docs/src/site/xdoc/tour/index.xml new file mode 100644 index 000000000..45b222989 --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/index.xml @@ -0,0 +1,78 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Feature Tour</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <style type="text/css"> +table { + width: inherit; + margin-left: 5em; +} +tr { + text-align: center; +} +td { + font-size: inherit; +} +table.bodyTable tr.a { + background-color: inherit; +} +table.bodyTable tr.b { + background-color: inherit; +} + </style> + <section name="Archiva Feature Tour"> + + <p> + Archiva is a feature rich repository manager. Below is a short tour of some of the features that are available. + </p> + + <table> + <tr> + <td> + <a href="project.html"> + <img src="../images/tour/project.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br/> + 1. Project Information + </a> + </td> + <td> + <a href="search.html"> + <img src="../images/tour/search.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br/> + 2. Artifact Search + </a> + </td> + <td> + <a href="proxy.html"> + <img src="../images/tour/proxy.png" width="150" height="93" style="border: 1px solid silver; margin-bottom: 0.25em" alt="" /><br/> + 3. Remote Proxying Cache + </a> + </td> + </tr> + <tr> + <td> + <a href="admin.html"> + <img src="../images/tour/admin.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br/> + 4. Graphical Administration + </a> + </td> + <td> + <a href="security.html"> + <img src="../images/tour/security.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br/> + 5. Role-based Security + </a> + </td> + <td> + <a href="reports.html"> + <img src="../images/tour/reports.png" width="150" height="93" style="border: 1px solid silver; margin-left: 0.25em; margin-bottom: 0.25em" alt="" /><br/> + 6. Integrity Reports + </a> + </td> + </tr> + </table> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/project.xml b/archiva-docs/src/site/xdoc/tour/project.xml new file mode 100644 index 000000000..00300b489 --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/project.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Project Information</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <section name="Project Information"> + <div style="text-align: center"> + <img src="../images/tour/project.png" width="640" height="401" alt="" /> + <p> + Archiva provides an informative display for projects and artifacts stored in the repository. + This includes a user-friendly display of the Maven project information, as well as the relationships + between projects. + </p> + <p> + <a href="index.html">Previous: Feature Tour</a> | + <strong>Project Information</strong> | + <a href="search.html">Next: Artifact Search</a> + </p> + </div> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/proxy.xml b/archiva-docs/src/site/xdoc/tour/proxy.xml new file mode 100644 index 000000000..9e1073b38 --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/proxy.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Remote Proxying Cache</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <section name="Remote Proxying Cache"> + <div style="text-align: center"> + <img src="../images/tour/proxy.png" width="640" height="401" alt="" /> + <p> + Archiva can operate as a proxy for remote repositories, allowing you to improve build + performance by caching artifacts in a closer network location, and control artifact + usage through the use of white and black lists on proxy connectors. + </p> + <p> + <a href="search.html">Previous: Artifact Search</a> | + <strong>Remote Proxying Cache</strong> | + <a href="admin.html">Next: Graphical Administration</a> + </p> + </div> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/reports.xml b/archiva-docs/src/site/xdoc/tour/reports.xml new file mode 100644 index 000000000..99800a5e8 --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/reports.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Integrity Reports</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <section name="Integrity Reports"> + <div style="text-align: center"> + <img src="../images/tour/reports.png" width="640" height="401" alt="" /> + <p> + Archiva monitors the state of the managed repositories and keeps track of + potential problems to allow improvement of metadata and to assist in + troubleshooting problems. + </p> + <p> + <a href="security.html">Previous: Role-based Security</a> | + <strong>Integrity Reports</strong> | + <a href="index.html">Next: Feature Tour</a> + </p> + </div> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/search.xml b/archiva-docs/src/site/xdoc/tour/search.xml new file mode 100644 index 000000000..e144873e9 --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/search.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Artifact Search</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <section name="Artifact Search"> + <div style="text-align: center"> + <img src="../images/tour/search.png" width="640" height="401" alt="" /> + <p> + Archiva has both a user-friendly browsing interface, and powerful search functionalities. The contents of all artifacts are indexed, + including Maven project information and Java class information to facilitate locating code within any repository. + By using the "Find Artifact" feature, you can identify unknown artifacts based on the database of known checksums for known artifacts. + </p> + <p> + <a href="project.html">Previous: Project Information</a> | + <strong>Artifact Search</strong> | + <a href="proxy.html">Next: Remote Proxying Cache</a> + </p> + </div> + </section> + </body> +</document> diff --git a/archiva-docs/src/site/xdoc/tour/security.xml b/archiva-docs/src/site/xdoc/tour/security.xml new file mode 100644 index 000000000..1e49c9fa9 --- /dev/null +++ b/archiva-docs/src/site/xdoc/tour/security.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<document> + <properties> + <title>Role-based Security</title> + <author email="brett@apache.org">Brett Porter</author> + </properties> + <head> + </head> + <body> + <section name="Role-based Security"> + <div style="text-align: center"> + <img src="../images/tour/security.png" width="640" height="401" alt="" /> + <p> + Archiva uses the Redback security framework to provide flexible role-based security controls for repositories. + You can use the graphical interface to maintain user accounts, as well as secure repositories for read and/or write + access for individuals, or given roles. + </p> + <p> + <a href="admin.html">Previous: Graphical Administration</a> | + <strong>Role-based Security</strong> | + <a href="reports.html">Next: Integrity Reports</a> + </p> + </div> + </section> + </body> +</document> |