* <<<jdbc/users>>> - the user store
- Configuring an external database for either or both of these sources depends is configured in <<<plexus.xml>>> if you are using the
+ Configuring an external database for either or both of these sources depends is configured in <<<jetty.xml>>> if you are using the
{{{standalone.html} standalone installation}}, or in the application server configuration if you are using the {{{webapp.html} web application
installation}}.
+ By default the archiva and users databases are stored in the <<<databases>>> directory where Archiva is installed. To change the
+ path, just edit all instances of the "DatabaseName" property in <<<conf/jetty.xml>>> (see below).
+
++------+
+...
+<New id="archiva" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/archiva</Arg>
+ <Arg>
+ <New class="org.apache.derby.jdbc.EmbeddedDataSource">
+ <Set name="DatabaseName">/path/to/database/directory/archiva</Set>
+ <Set name="user">sa</Set>
+ <Set name="createDatabase">create</Set>
+ </New>
+ </Arg>
+</New>
+
+<New id="archivaShutdown" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/archivaShutdown</Arg>
+ <Arg>
+ <New class="org.apache.derby.jdbc.EmbeddedDataSource">
+ <Set name="DatabaseName">/path/to/database/directory/archiva</Set>
+ <Set name="user">sa</Set>
+ <Set name="shutdownDatabase">shutdown</Set>
+ </New>
+ </Arg>
+</New>
+
+<New id="users" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/users</Arg>
+ <Arg>
+ <New class="org.apache.derby.jdbc.EmbeddedDataSource">
+ <Set name="DatabaseName">/path/to/database/directory/users</Set>
+ <Set name="user">sa</Set>
+ <Set name="createDatabase">create</Set>
+ </New>
+ </Arg>
+</New>
+
+<New id="usersShutdown" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/usersShutdown</Arg>
+ <Arg>
+ <New class="org.apache.derby.jdbc.EmbeddedDataSource">
+ <Set name="DatabaseName">/path/to/database/directory/users</Set>
+ <Set name="user">sa</Set>
+ <Set name="shutdownDatabase">shutdown</Set>
+ </New>
+ </Arg>
+</New>
+...
++------+
+
* Backing up the database
While it is a good idea to back up both databases, it is not strictly necessary to back up the repository database on a regular basis. Should any
* Running Archiva
- Archiva can be run using one of two techniques:
+ Archiva can be run by executing:
- * Using the OS specific scripts in <<<bin/linux-x86-32/run.sh>>> (select the one for your environment). The argument can be <<<console>>> to run interactively, or <<<start>>> to run in the background
- (in this case, run the script with <<<stop>>> to later stop the server).
-
- * Using the generic <<<bin/plexus.sh>>> script which will run Archiva interactively
+ * <<<bin/archiva>>>, or <<<bin/archiva.bat>>> for windows (select the one for your environment). The argument can be <<<console>>> to run
+ interactively, or <<<start>>> to run in the background (in this case, run the script with <<<stop>>> to later stop the server). The logs
+ are available in the <<<logs>>> directory where Archiva is installed.
[]
-* Separating the base from the installation
-
- The standalone instance of Archiva uses the Plexus application server, which is capable of separating it's configuration from installation,
- in much the same way Tomcat does, for example, with it's <<<CATALINA_BASE>>> and <<<CATALINA_HOME>>> environment variables.
-
- This is achieved by the following steps:
-
- [[1]] Creating the base location. For example, you might install Archiva in <<</opt/archiva-1.0>>> and the data in <<</var/archiva>>>. Create the directories <<</var/archiva/logs>>>, <<</var/archiva/data>>> and <<</var/archiva/conf>>>.
-
- [[2]] Copy the configuration files from the Archiva installation (eg <<</opt/archiva-1.0/conf>>> to the new location (eg. <<</var/archiva/conf>>>). If you've previously run Archiva, you may need to edit <<<conf/archiva.xml>>> to change the location of the repositories
-
- [[3]] Set the environment variable <<<PLEXUS_BASE>>> to the data location (eg. <<</var/archiva>>>). In bash, be sure to export the variable.
-
- [[4]] Start Archiva standalone as described above from the installation location
-
- Note, that Archiva still needs write access to the installation directory, as the application server needs to extract the WAR and services.
-
* Configuring Archiva
Archiva's configuration is loaded from the following files, in order of most precedent:
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.
+ by providing a JDBC driver and editing the <<<jetty.xml>>> file.
- [[1]] Place the jar containing the JDBC driver in <<<$ARCHIVA_HOME/core>>>.
+ [[1]] Place the jar containing the JDBC driver in <<<$ARCHIVA_HOME/lib>>>.
- [[2]] Edit <<<$ARCHIVA_HOME/conf/plexus.xml>>>, providing the JDBC driver class
- name, and the database url, username, and password.
+ [[2]] Edit <<<$ARCHIVA_HOME/conf/jetty.xml>>>, providing the JDBC driver class
+ name, database url, username, and password.
[]
- For example:
+ The example below uses Mysql for the database server. You can take a look at
+ {{{http://cwiki.apache.org/confluence/display/ARCHIVA/Archiva+with+MySQL}Archiva with MySQL}}
+ for more details.
+------+
-<!--
- 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>
+ ...
+ <!-- Archiva Database -->
+
+ <New id="archiva" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/archiva</Arg>
+ <Arg>
+ <New class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
+ <Set name="serverName">localhost</Set>
+ <Set name="databaseName">archiva</Set>
+ <Set name="user">archiva</Set>
+ <Set name="password">sa</Set>
+ </New>
+ </Arg>
+ </New>
+
+ <New id="archivaShutdown" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/archivaShutdown</Arg>
+ <Arg>
+ <New class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
+ <Set name="serverName">localhost</Set>
+ <Set name="databaseName">archiva</Set>
+ <Set name="user">archiva</Set>
+ <Set name="password">sa</Set>
+ </New>
+ </Arg>
+ </New>
+
+ <!-- Users / Security Database -->
+
+ <New id="users" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/users</Arg>
+ <Arg>
+ <New class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
+ <Set name="serverName">localhost</Set>
+ <Set name="databaseName">redback</Set>
+ <Set name="user">archiva</Set>
+ <Set name="password">sa</Set>
+ </New>
+ </Arg>
+ </New>
+
+ <New id="usersShutdown" class="org.mortbay.jetty.plus.naming.Resource">
+ <Arg>jdbc/usersShutdown</Arg>
+ <Arg>
+ <New class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource">
+ <Set name="url">jdbc:mysql://localhost/redback</Set>
+ <Set name="user">archiva</Set>
+ <Set name="password">sa</Set>
+ </New>
+ </Arg>
+ </New>
+ ...
+------+
More information about using Derby Network Server as an external user database
Installing Archiva
- The quickest way to install Archiva is to use the standalone distribution. This includes a bundled Jetty server, started using the Plexus Application Server.
- For more information on advanced configuration of this instance, refer to the {{{adminguide/standalone.html} Administration Guide}}. It is highly recommended
- that if you intend to use this permanently that you use the base and installation separation described in that document.
+ The quickest way to install Archiva is to use the standalone distribution. This includes a bundled Jetty server which can be easily started.
+ For more information on advanced configuration of this instance, refer to the {{{adminguide/standalone.html} Administration Guide}}.
To get started right away, you can run the following after unpacking:
----
-./bin/linux-x86-32/run.sh console
+./bin/archiva console
----
- You will need to choose a different start command based on your platform, or use the generic <<<./bin/plexus.sh>>> script. The <<<console>>> argument
+ You will need to choose a different start command based on your platform. The <<<console>>> argument
starts the server with the logs going to standard output, and waits for Ctrl+C to stop the server.
<<Note:>> A Derby exception "Schema 'SA' does not exist" occurs, but is not of concern.