</transformers>
<artifactSet>
<excludes>
- <exclude>xerces:xercesImpl</exclude>
+ <exclude>xerces:xercesImpl</exclude>
<exclude>xml-apis:xml-apis</exclude>
<exclude>xalan:xalan</exclude>
<exclude>commons-beanutils:commons-beanutils</exclude>
~~TODO: revise more as suggested by Jeff in the dev list
- Archiva has two types of repository configuration: managed repository and remote repository.
-
+ 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:
-
+ 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:
+
* <identifier> - the id of the repository. This must be unique.
-
+
* <name> - the name of the repository.
-
- * <directory> - the location of the repository. If the path specified does not exist, Archiva will create the missing
- directories.
-
- * <index directory> - the location of the index files generated by Archiva. If no location is specified, then the index directory
- (named <<<.indexer>>>) will be created at the root of the repository directory. Another directory named <<<.index>>> is also created
- at the root of the repository directory. This is not configurable though as it contains the packaged/bundled index which is consumed
- by different consumers of the index such as M2Eclipse.
-
+
+ * <directory> - the location of the repository. If the path specified does not
+ exist, Archiva will create the missing directories.
+
+ * <index directory> - the location of the index files generated by Archiva. If
+ no location is specified, then the index directory (named <<<.indexer>>>)
+ will be created at the root of the repository directory. Another directory
+ named <<<.index>>> is also created at the root of the repository directory.
+ This is not configurable though as it contains the packaged/bundled index
+ which is consumed by different consumers of the index such as M2Eclipse.
+
* <type> - the repository layout (maven 2 or maven 1)
-
- * <cron> - the {{{http://quartz.sourceforge.net/javadoc/org/quartz/CronTrigger.html}cron schedule}} when repository scanning will be executed.
-
- * <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. See the Repository Purge section
- below for more details.
-
- * <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. See the Repository Purge section
- below for more details.
-
- * <releases included> - specifies whether there are released artifacts in the repository.
-
- * <block re-deployment of released artifacts> - specifies whether released artifacts that are already existing in the repository can be overwritten.
- Note that this only take effects for non-snapshot deployments.
-
- * <snapshots included> - specifies whether there are snapshot artifacts in the repository.
-
- * <scannable> - specifies whether the repository can be scanned, meaning it is a local repository which can be indexed, browsed,
- purged, etc.
-
- * <delete released snapshots> - specifies whether to remove those snapshot artifacts which already has release versions
- of it in the repository during repository purge.
-
+
+ * <cron> - the
+ {{{http://quartz.sourceforge.net/javadoc/org/quartz/CronTrigger.html}cron
+ schedule}} when repository scanning will be executed.
+
+ * <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. See the Repository Purge section below for more details.
+
+ * <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. See
+ the Repository Purge section below for more details.
+
+ * <releases included> - specifies whether there are released artifacts in the
+ repository.
+
+ * <block re-deployment of released artifacts> - specifies whether released
+ artifacts that are already existing in the repository can be overwritten.
+ Note that this only take effects for non-snapshot deployments.
+
+ * <snapshots included> - specifies whether there are snapshot artifacts in the
+ repository.
+
+ * <scannable> - specifies whether the repository can be scanned, meaning it is
+ a local repository which can be indexed, browsed, purged, etc.
+
+ * <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:
-
-+----+
+
+ 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).
+----+
- 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.
-
+ 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.
+
* 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.
+ 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:
- Remote repository fields:
-
* <identifier> - the id of the remote repository.
-
+
* <name> - the name of the remote repository.
-
- * <url> - the url of the remote repository. It is also possible to use a 'file://' url to proxy a local repository. Be careful that if this local repository is a managed repository of archiva which has some proxies connectors, those ones won't be triggered.
-
- * <username> - the username (if authentication is needed) to be used to access the repository.
-
- * <password> - the password (if authentication is needed) to be used to access the repository.
-
- * <type> - the layout (maven 2 or maven 1) of the remote repository.
- * <Activate download remote index> - to activate downloading remote index to add available remote artifacts in search queries.
+ * <url> - the url of the remote repository. It is also possible to use a
+ 'file://' url to proxy a local repository. Be careful that if this local
+ repository is a managed repository of archiva which has some proxies
+ connectors, those ones won't be triggered.
- * <Remote index url, can be relative to url> - path of the remote index directory.
+ * <username> - the username (if authentication is needed) to be used to access
+ the repository.
- * <Cron expression> - cron expression for downloading remote index (default weekly on sunday)
+ * <password> - the password (if authentication is needed) to be used to access
+ the repository.
- * <Directory index storage> - path to store index directory, default will be ${appserver.base}/data/remotes/${repositoryId}/.index
+ * <type> - the layout (maven 2 or maven 1) of the remote repository.
- * <Download Remote Index Timeout in seconds> - read time out for downloading remote index files (default 300)
+ * <Activate download remote index> - to activate downloading remote index to
+ add available remote artifacts in search queries.
- * <Network Proxy to Use for download Remote Index> - proxy to use for downloading remote index files.
+ * <Remote index url, can be relative to url> - path of the remote index
+ directory.
+ * <Cron expression> - cron expression for downloading remote index (default
+ weekly on sunday)
+ * <Directory index storage> - path to store index directory, default will be
+ ${appserver.base}/data/remotes/${repositoryId}/.index
+
+ * <Download Remote Index Timeout in seconds> - read time out for downloading
+ remote index files (default 300)
+
+ * <Network Proxy to Use for download Remote Index> - proxy to use for
+ downloading remote index files.
[../images/remote-repositories.png] Remote Repositories
You can also trigger an immediate download of remote index files.
-
+
* Scanning a Repository
-
- Repository scan can be executed on schedule or it can be explicitly executed by clicking the 'Scan Repository Now' button in
- the repositories page. By default, Archiva only processes new artifacts in the repository with respect to the last run of the
- repository scanner. Meaning that if the artifact's last modified date is newer than the last repository scan, then the artifact
- will be processed. Otherwise, it will be skipped. You can override this behavior and force Archiva to process all artifacts regardless
- of its age by ticking the 'Process All Artifacts' checkbox in the repositories page and clicking the 'Scan Repository Now' button.
+
+ Repository scan can be executed on schedule or it can be explicitly executed
+ by clicking the 'Scan Repository Now' button in the repositories page. By
+ default, Archiva only processes new artifacts in the repository with respect
+ to the last run of the repository scanner. Meaning that if the artifact's last
+ modified date is newer than the last repository scan, then the artifact will
+ be processed. Otherwise, it will be skipped. You can override this behavior
+ and force Archiva to process all artifacts regardless of its age by ticking
+ the 'Process All Artifacts' checkbox in the repositories page and clicking the
+ 'Scan Repository Now' button.
[../images/repositories.png] Repositories
- For every artifact found by the repository scanner, processing is done on this artifact by different
- consumers. Examples of the processing done are: indexing, repository purge and database update. Details about consumers are
- available in the {{{./consumers.html} Consumers}} page.
+ For every artifact found by the repository scanner, processing is done on this
+ artifact by different consumers. Examples of the processing done are: indexing,
+ repository purge and database update. Details about consumers are available in
+ the {{{./consumers.html} Consumers}} page.
* 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.
+ 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.
- Please take note that the by number of days old criteria is activated by default (set to 100 days). In order to de-activate it and
- use the by retention count criteria, you must set the Repository Purge By Days Older field to 0. Another thing to note here is that
- if the by number of days old criteria is activated, the retention count would still be respected (See the Repository Purge By Days Older
- section below for more details) but not the other way around.
-
- Let's take a look at different behaviours for repository purge using the following scenario:
+ Please take note that the by number of days old criteria is activated by
+ default (set to 100 days). In order to de-activate it and use the by retention
+ count criteria, you must set the Repository Purge By Days Older field to 0.
+ Another thing to note here is that if the by number of days old criteria is
+ activated, the retention count would still be respected (See the Repository
+ Purge By Days Older section below for more details) but not the other way
+ around.
+
+ 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-20070203.028902-4.jar
../artifact-x/2.0-SNAPSHOT/artifact-x-20070203.028902-4.pom
+----+
-
+
[[1]] Repository Purge By Number of 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.
-
+
+ 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 (regardless of how old or new the artifact is).
+
+ 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 (regardless of
+ how old or new the artifact is).
** Deleting Released Snapshots
- You can also configure Archiva to clean up snapshot artifacts that have already been released. This can be done by ticking
- the Delete Released Snapshots checkbox in the Repository Configuration form.
+ You can also configure Archiva to clean up snapshot artifacts that have
+ already been released. This can be done by ticking the Delete Released Snapshots
+ checkbox in the Repository Configuration form.
+
+ Once this feature is enabled, if Archiva encounters a snapshot artifact during
+ repository scanning, it would check <<all>> the repositories configured for a
+ released version of that snapshot. If it finds one, then it would delete the
+ entire snapshot version directory.
- Once this feature is enabled, if Archiva encounters a snapshot artifact during repository scanning, it would check <<all>> the
- repositories configured for a released version of that snapshot. If it finds one, then it would delete the entire
- snapshot version directory.
-
- It should be noted that this feature is entirely separate from the repository purge by number of days older and by
- retention count.
+ It should be noted that this feature is entirely separate from the repository
+ purge by number of days older and by retention count.
<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="Deleting an Artifact" href="/userguide/delete-artifact.html" />
+ <item name="Deleting an Artifact" href="/userguide/delete-artifact.html" />
<item name="Using as a repository" href="/userguide/using-repository.html" />
<item name="Deploying to repository" href="/userguide/deploy.html" />
<item name="Configuring Virtual Repositories" href="/userguide/virtual-repositories.html" />
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
- <Set name="lowResourcesConnections">5000</Set>
- <Set name="lowResourcesMaxIdleTime">5000</Set>
+ <Set name="lowResourcesConnections">5000</Set>
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<New class="org.eclipse.jetty.deploy.WebAppDeployer">
<Set name="contexts"><Ref id="Contexts"/></Set>
<Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/apps</Set>
- <Set name="parentLoaderPriority">false</Set>
- <Set name="extract">true</Set>
- <Set name="allowDuplicates">false</Set>
+ <Set name="parentLoaderPriority">false</Set>
+ <Set name="extract">true</Set>
+ <Set name="allowDuplicates">false</Set>
</New>
</Arg>
</Call>
</Array>
<!-- ARCHIVA CONFIG -->
-
+
<New id="validation_mail" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>mail/Session</Arg>
<Arg>
}
private java.util.Map<String, java.util.List<String>> groupToRepositoryMap;
-
+
public java.util.Map<String, java.util.List<String>> getGroupToRepositoryMap()
{
- if ( repositoryGroups != null && managedRepositories != null )
+ if ( repositoryGroups != null && managedRepositories != null )
{
java.util.Map<String, java.util.List<String>> map = new java.util.HashMap<String, java.util.List<String>>();
public String getGroupId()
{
return artifact.split( ":" )[0];
- }
+ }
public String getArtifactId()
{
return artifact.split( ":" )[1];
- }
+ }
public String getVersion()
{
return artifact.split( ":" )[2];
- }
+ }
public String getClassifier()
{
- String classifier = artifact.split( ":" )[3];
+ String classifier = artifact.split( ":" )[3];
return classifier.length() > 0 ? classifier : null;
- }
+ }
public String getType()
{
{
return delegate.supportsDirectoryCopy();
}
-
+
public void setTimeout(int val)
{
- // ignore
+ // ignore
}
public int getTimeout()
{
return 0;
- }
+ }
public Repository getRepository()
{
-->
<metadata>
- <groupId>org.apache.maven.test</groupId>
- <artifactId>get-default-metadata</artifactId>
- <version>1.0</version>
-</metadata>
\ No newline at end of file
+ <groupId>org.apache.maven.test</groupId>
+ <artifactId>get-default-metadata</artifactId>
+ <version>1.0</version>
+</metadata>
assertLayout( path, groupId, artifactId, version, null, type );
}
- /**
- * [MRM-768] Artifact type "maven-plugin" does not distinguish maven1 and maven2 plugins.
- * This produces conflicts when m2 plugins are stored in legacy-layout repository
- */
+ /**
+ * [MRM-768] Artifact type "maven-plugin" does not distinguish maven1 and maven2 plugins.
+ * This produces conflicts when m2 plugins are stored in legacy-layout repository
+ */
@Test
- public void testMaven1Maven2PluginTypeDistinc()
- throws Exception
+ public void testMaven1Maven2PluginTypeDistinc()
+ throws Exception
{
String groupId = "com.sun.tools.xjc.maven2";
String artifactId = "maven-jaxb-plugin";
String path = "com.sun.tools.xjc.maven2/maven-plugins/maven-jaxb-plugin-1.1.jar";
assertLayout( path, groupId, artifactId, version, null, type );
- }
-
+ }
+
/**
* Perform a roundtrip through the layout routines to determine success.
* @param classifier TODO
public static void display( String version )
{
String banner = getBanner( version );
- LoggerFactory.getLogger( Banner.class ).info( StringUtils.repeat( "_", 25 ) + eol + banner );
+ LoggerFactory.getLogger( Banner.class ).info( StringUtils.repeat( "_", 25 ) + eol + banner );
}
}
</init-param>
</filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
+ <filter-mapping>
+ <filter-name>encodingFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <listener>
+ <listener-class>
+ org.springframework.web.context.ContextLoaderListener
+ </listener-class>
+ </listener>
+ <listener>
+ <!-- TODO: some Spring technique for this? -->
+ <listener-class>
+ org.apache.archiva.web.startup.ArchivaStartup
+ </listener-class>
+ </listener>
+
+ <listener>
+ <listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>
+ </listener>
+ <!-- to cleanup temporary group index created during a session -->
<listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <listener>
- <!-- TODO: some Spring technique for this? -->
- <listener-class>
- org.apache.archiva.web.startup.ArchivaStartup
- </listener-class>
- </listener>
-
- <listener>
- <listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>
- </listener>
-
- <!-- to cleanup temporary group index created during a session -->
- <listener>
- <listener-class>org.apache.archiva.webdav.util.TemporaryGroupIndexSessionCleaner</listener-class>
- </listener>
+ <listener-class>org.apache.archiva.webdav.util.TemporaryGroupIndexSessionCleaner</listener-class>
+ </listener>
+
+ <servlet>
+ <servlet-name>RepositoryServlet</servlet-name>
+ <servlet-class>
+ org.apache.archiva.webdav.RepositoryServlet
+ </servlet-class>
+ <!-- Loading this on startup so as to take advantage of configuration listeners -->
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet>
+ <servlet-name>XmlRpcServlet</servlet-name>
+ <servlet-class>
+ com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet
+ </servlet-class>
+ <init-param>
+ <param-name>serviceListBeanName</param-name>
+ <param-value>xmlrpcServicesList</param-value>
+ </init-param>
+ <init-param>
+ <param-name>authHandlerBeanName</param-name>
+ <param-value>xmlRpcAuthenticator</param-value>
+ </init-param>
+ <init-param>
+ <param-name>enabledForExtensions</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>2</load-on-startup>
+ </servlet>
<servlet>
- <servlet-name>RepositoryServlet</servlet-name>
- <servlet-class>
- org.apache.archiva.webdav.RepositoryServlet
- </servlet-class>
- <!-- Loading this on startup so as to take advantage of configuration listeners -->
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>XmlRpcServlet</servlet-name>
- <servlet-class>
- com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet
- </servlet-class>
- <init-param>
- <param-name>serviceListBeanName</param-name>
- <param-value>xmlrpcServicesList</param-value>
- </init-param>
- <init-param>
- <param-name>authHandlerBeanName</param-name>
- <param-value>xmlRpcAuthenticator</param-value>
- </init-param>
- <init-param>
- <param-name>enabledForExtensions</param-name>
- <param-value>true</param-value>
- </init-param>
- <load-on-startup>2</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>RedbackXmlRpcServlet</servlet-name>
- <servlet-class>com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet</servlet-class>
- <init-param>
- <param-name>serviceListBeanName</param-name>
- <param-value>redbackXmlrpcServicesList</param-value>
- </init-param>
- <init-param>
- <param-name>authHandlerBeanName</param-name>
- <param-value>redbackXmlRpcAuthenticator</param-value>
- </init-param>
- <init-param>
- <param-name>enabledForExtensions</param-name>
- <param-value>true</param-value>
- </init-param>
- </servlet>
-
- <servlet>
- <servlet-name>RssFeedServlet</servlet-name>
- <servlet-class>
- org.apache.archiva.web.rss.RssFeedServlet
- </servlet-class>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>RssFeedServlet</servlet-name>
- <url-pattern>/feeds/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>RepositoryServlet</servlet-name>
- <url-pattern>/repository/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>XmlRpcServlet</servlet-name>
- <url-pattern>/xmlrpc</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>RedbackXmlRpcServlet</servlet-name>
- <url-pattern>/redback-xmlrpc</url-pattern>
- </servlet-mapping>
-
- <resource-ref>
- <res-ref-name>jdbc/users</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Shareable</res-sharing-scope>
- </resource-ref>
- <resource-ref>
- <res-ref-name>mail/Session</res-ref-name>
- <res-type>javax.mail.Session</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Shareable</res-sharing-scope>
- </resource-ref>
+ <servlet-name>RedbackXmlRpcServlet</servlet-name>
+ <servlet-class>com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet</servlet-class>
+ <init-param>
+ <param-name>serviceListBeanName</param-name>
+ <param-value>redbackXmlrpcServicesList</param-value>
+ </init-param>
+ <init-param>
+ <param-name>authHandlerBeanName</param-name>
+ <param-value>redbackXmlRpcAuthenticator</param-value>
+ </init-param>
+ <init-param>
+ <param-name>enabledForExtensions</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet>
+ <servlet-name>RssFeedServlet</servlet-name>
+ <servlet-class>
+ org.apache.archiva.web.rss.RssFeedServlet
+ </servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>RssFeedServlet</servlet-name>
+ <url-pattern>/feeds/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>RepositoryServlet</servlet-name>
+ <url-pattern>/repository/*</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>XmlRpcServlet</servlet-name>
+ <url-pattern>/xmlrpc</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>RedbackXmlRpcServlet</servlet-name>
+ <url-pattern>/redback-xmlrpc</url-pattern>
+ </servlet-mapping>
+ <resource-ref>
+ <res-ref-name>jdbc/users</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>mail/Session</res-ref-name>
+ <res-type>javax.mail.Session</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
<servlet>
<servlet-name>CXFServlet</servlet-name>
assertTextPresent( "You must enter a type." );
}
- public void testAddLegacyArtifact_InvalidValues()
- {
+ public void testAddLegacyArtifact_InvalidValues()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "<> ~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"",
+ addLegacyArtifactPath( "<> ~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"" , "<> \\/~+[ ]'\"",
false );
- assertTextPresent( "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
+ assertTextPresent( "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
+ }
- public void testAddLegacyArtifact_InvalidLegacyPath()
- {
+ public void testAddLegacyArtifact_InvalidLegacyPath()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "<> ~+[ ]'\"" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "jar", false );
- assertTextPresent( "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- }
+ addLegacyArtifactPath( "<> ~+[ ]'\"" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "jar", false );
+ assertTextPresent( "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
+ }
- public void testAddLegacyArtifact_InvalidGroupId()
- {
+ public void testAddLegacyArtifact_InvalidGroupId()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "<> \\/~+[ ]'\"" , "test" , "1.0-SNAPSHOT" , "testing" , "jar", false );
- assertTextPresent( "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
+ addLegacyArtifactPath( "test" , "<> \\/~+[ ]'\"" , "test" , "1.0-SNAPSHOT" , "testing" , "jar", false );
+ assertTextPresent( "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ }
- public void testAddLegacyArtifact_InvalidArtifactId()
- {
+ public void testAddLegacyArtifact_InvalidArtifactId()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "<> \\/~+[ ]'\"" , "1.0-SNAPSHOT" , "testing" , "jar", false );
- assertTextPresent( "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
+ addLegacyArtifactPath( "test" , "test" , "<> \\/~+[ ]'\"" , "1.0-SNAPSHOT" , "testing" , "jar", false );
+ assertTextPresent( "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ }
- public void testAddLegacyArtifact_InvalidVersion()
- {
+ public void testAddLegacyArtifact_InvalidVersion()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "test" , "<> \\/~+[ ]'\"" , "testing" , "jar", false );
- assertTextPresent( "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
+ addLegacyArtifactPath( "test" , "test" , "test" , "<> \\/~+[ ]'\"" , "testing" , "jar", false );
+ assertTextPresent( "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ }
- public void testAddLegacyArtifact_InvalidType()
- {
+ public void testAddLegacyArtifact_InvalidType()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "<> \\/~+[ ]'\"", false );
- assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
+ addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "testing" , "<> \\/~+[ ]'\"", false );
+ assertTextPresent( "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ }
- public void testAddLegacyArtifact_InvalidClassifier()
- {
+ public void testAddLegacyArtifact_InvalidClassifier()
+ {
goToLegacySupportPage();
clickLinkWithText( "Add" );
- addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "<> \\/~+[ ]'\"" , "jar", false );
- assertTextPresent( "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
-}
\ No newline at end of file
+ addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "<> \\/~+[ ]'\"" , "jar", false );
+ assertTextPresent( "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ }
+}
}
@Test (dependsOnMethods = { "testAddNetworkProxiesNullHostname" } )
- public void testAddNetworkProxiesInvalidValues()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "<> \\/~+[ ]'\"", "<> ~+[ ]'\"", "<> ~+[ ]'\"", "0", "<> ~+[ ]'\"", "");
- assertTextPresent( "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ public void testAddNetworkProxiesInvalidValues()
+ {
+ goToNetworkProxiesPage();
+ addNetworkProxy( "<> \\/~+[ ]'\"", "<> ~+[ ]'\"", "<> ~+[ ]'\"", "0", "<> ~+[ ]'\"", "");
+ assertTextPresent( "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
assertTextPresent( "Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)." );
assertTextPresent( "Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
assertTextPresent( "Port needs to be larger than 1" );
assertTextPresent( "Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
- }
+ }
@Test (dependsOnMethods = { "testAddNetworkProxiesInvalidValues" } )
- public void testAddNetworkProxiesInvalidIdentifier()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "<> \\/~+[ ]'\"", "http", "localhost", "8080", "", "");
- assertTextPresent( "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
- }
+ public void testAddNetworkProxiesInvalidIdentifier()
+ {
+ goToNetworkProxiesPage();
+ addNetworkProxy( "<> \\/~+[ ]'\"", "http", "localhost", "8080", "", "");
+ assertTextPresent( "Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
+ }
@Test (dependsOnMethods = { "testAddNetworkProxiesInvalidIdentifier" } )
- public void testAddNetworkProxiesInvalidProtocol()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "<> ~+[ ]'\"", "localhost", "8080", "", "");
- assertTextPresent( "Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)." );
- }
+ public void testAddNetworkProxiesInvalidProtocol()
+ {
+ goToNetworkProxiesPage();
+ addNetworkProxy( "testing123", "<> ~+[ ]'\"", "localhost", "8080", "", "");
+ assertTextPresent( "Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)." );
+ }
@Test (dependsOnMethods = { "testAddNetworkProxiesInvalidProtocol" } )
- public void testAddNetworkProxiesInvalidHostname()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "<> ~+[ ]'\"", "8080", "", "");
- assertTextPresent( "Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
- }
+ public void testAddNetworkProxiesInvalidHostname()
+ {
+ goToNetworkProxiesPage();
+ addNetworkProxy( "testing123", "http", "<> ~+[ ]'\"", "8080", "", "");
+ assertTextPresent( "Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." );
+ }
@Test (dependsOnMethods = { "testAddNetworkProxiesInvalidHostname" } )
- public void testAddNetworkProxiesInvalidPort()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "localhost", "0", "", "");
- assertTextPresent( "Port needs to be larger than 1" );
- }
+ public void testAddNetworkProxiesInvalidPort()
+ {
+ goToNetworkProxiesPage();
+ addNetworkProxy( "testing123", "http", "localhost", "0", "", "");
+ assertTextPresent( "Port needs to be larger than 1" );
+ }
@Test (dependsOnMethods = { "testAddNetworkProxiesInvalidPort" } )
- public void testAddNetworkProxiesInvalidUsername()
- {
- goToNetworkProxiesPage();
- addNetworkProxy( "testing123", "http", "localhost", "8080", "<> ~+[ ]'\"", "");
- assertTextPresent( "Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
+ public void testAddNetworkProxiesInvalidUsername()
+ {
+ goToNetworkProxiesPage();
+ addNetworkProxy( "testing123", "http", "localhost", "8080", "<> ~+[ ]'\"", "");
+ assertTextPresent( "Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." );
}
@Test (dependsOnMethods = { "testAddNetworkProxiesInvalidUsername" } )
assertTextPresent( "testing123" );
}
-}
\ No newline at end of file
+}
permission java.util.PropertyPermission "java.vendor", "read";\r
permission java.util.PropertyPermission "java.vendor.url", "read";\r
permission java.util.PropertyPermission "java.class.version", "read";\r
- permission java.util.PropertyPermission "java.specification.version", "read";\r
- permission java.util.PropertyPermission "java.specification.vendor", "read";\r
- permission java.util.PropertyPermission "java.specification.name", "read";\r
+ permission java.util.PropertyPermission "java.specification.version", "read";\r
+ permission java.util.PropertyPermission "java.specification.vendor", "read";\r
+ permission java.util.PropertyPermission "java.specification.name", "read";\r
\r
- permission java.util.PropertyPermission "java.vm.specification.version", "read";\r
- permission java.util.PropertyPermission "java.vm.specification.vendor", "read";\r
- permission java.util.PropertyPermission "java.vm.specification.name", "read";\r
- permission java.util.PropertyPermission "java.vm.version", "read";\r
- permission java.util.PropertyPermission "java.vm.vendor", "read";\r
- permission java.util.PropertyPermission "java.vm.name", "read";\r
+ permission java.util.PropertyPermission "java.vm.specification.version", "read";\r
+ permission java.util.PropertyPermission "java.vm.specification.vendor", "read";\r
+ permission java.util.PropertyPermission "java.vm.specification.name", "read";\r
+ permission java.util.PropertyPermission "java.vm.version", "read";\r
+ permission java.util.PropertyPermission "java.vm.vendor", "read";\r
+ permission java.util.PropertyPermission "java.vm.name", "read";\r
\r
// Required for OpenJMX\r
permission java.lang.RuntimePermission "getAttribute";\r
\r
- // Allow read of JAXP compliant XML parser debug\r
- permission java.util.PropertyPermission "jaxp.debug", "read";\r
+ // Allow read of JAXP compliant XML parser debug\r
+ permission java.util.PropertyPermission "jaxp.debug", "read";\r
\r
// Precompiled JSPs need access to this package.\r
permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";\r
-<?xml version='1.0' encoding='utf-8'?>\r
-<!--\r
- Licensed to the Apache Software Foundation (ASF) under one or more\r
- contributor license agreements. See the NOTICE file distributed with\r
- this work for additional information regarding copyright ownership.\r
- The ASF licenses this file to You under the Apache License, Version 2.0\r
- (the "License"); you may not use this file except in compliance with\r
- the License. You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
--->\r
-<!-- The contents of this file will be loaded for each web application -->\r
-<Context>\r
-\r
- <!-- Default set of monitored resources -->\r
- <WatchedResource>WEB-INF/web.xml</WatchedResource>\r
- \r
- <!-- Uncomment this to disable session persistence across Tomcat restarts -->\r
- <!--\r
- <Manager pathname="" />\r
- -->\r
-\r
- <!-- Uncomment this to enable Comet connection tacking (provides events\r
- on session expiration as well as webapp lifecycle) -->\r
- <!--\r
- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />\r
- -->\r
-\r
-</Context>
\ No newline at end of file
+<?xml version='1.0' encoding='utf-8'?>
+<!--
+ 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.
+-->
+<!-- The contents of this file will be loaded for each web application -->
+<Context>
+
+ <!-- Default set of monitored resources -->
+ <WatchedResource>WEB-INF/web.xml</WatchedResource>
+
+ <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+ <!--
+ <Manager pathname="" />
+ -->
+
+ <!-- Uncomment this to enable Comet connection tacking (provides events
+ on session expiration as well as webapp lifecycle) -->
+ <!--
+ <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
+ -->
+
+</Context>
String path = httpServletRequest.getServletPath();
if ("".equals(path)){
- // if JEE 5 spec is correctly implemented, the "/*" pattern implies an empty string in servletpath
- path = httpServletRequest.getPathInfo();
+ // if JEE 5 spec is correctly implemented, the "/*" pattern implies an empty string in servletpath
+ path = httpServletRequest.getPathInfo();
}
if (StringUtils.isEmpty( path ))
application/oda oda
application/ogg ogg
application/pdf pdf
-application/pgp-encrypted pgp
+application/pgp-encrypted pgp
application/postscript ai eps ps
application/rdf+xml rdf
application/smil smi smil
<%--td>${repository.layout}</td--%>
<td>
<c:choose>
- <c:when test="${repository.layout == 'default'}">
- Maven 2.x Repository
- </c:when>
- <c:otherwise>
- Maven 1.x Repository
- </c:otherwise>
- </c:choose>
- </td>
+ <c:when test="${repository.layout == 'default'}">
+ Maven 2.x Repository
+ </c:when>
+ <c:otherwise>
+ Maven 1.x Repository
+ </c:otherwise>
+ </c:choose>
+ </td>
</tr>
<tr>
<td>Cron:</td>
</tr>
</table>
</div>
-
+
<s:form method="post" action="%{action}" namespace="/admin" validate="true" theme="simple">
<div class="buttons">
<s:hidden name="repository.id" value="%{#attr.repository.id}"/>
<c:choose>
<c:when test="${action == 'addRepository'}">
- <s:submit value="Save" method="confirmAdd"/>
- </c:when>
- <c:otherwise>
- <s:submit value="Save" method="confirmUpdate"/>
- </c:otherwise>
- </c:choose>
+ <s:submit value="Save" method="confirmAdd"/>
+ </c:when>
+ <c:otherwise>
+ <s:submit value="Save" method="confirmUpdate"/>
+ </c:otherwise>
+ </c:choose>
<s:submit value="Cancel" method="execute"/>
</div>
<c:choose>
<c:when test="${mode == 'edit'}">
<c:set var="addedit" value="Edit" />
- <c:set var="networkProxyName" value="${proxy.id}" />
+ <c:set var="networkProxyName" value="${proxy.id}" />
</c:when>
<c:otherwise>
<c:set var="addedit" value="Add" />
<s:hidden name="mode"/>
<s:token/>
- <c:choose>
- <c:when test="${mode == 'edit'}">
- <s:hidden name="proxy.id"/>
- </c:when>
- <c:otherwise>
- <s:textfield name="proxy.id" label="Identifier" size="10" required="true"/>
- </c:otherwise>
- </c:choose>
+ <c:choose>
+ <c:when test="${mode == 'edit'}">
+ <s:hidden name="proxy.id"/>
+ </c:when>
+ <c:otherwise>
+ <s:textfield name="proxy.id" label="Identifier" size="10" required="true"/>
+ </c:otherwise>
+ </c:choose>
<%@ include file="/WEB-INF/jsp/admin/include/networkProxyForm.jspf" %>
<s:submit value="Save Network Proxy"/>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
<div style="float:right">
<c:choose>
- <c:when test="${remoteRepoExists}">
- <redback:ifAnyAuthorized permissions="archiva-manage-configuration">
- <s:url id="addProxyConnectorUrl" action="addProxyConnector"/>
- <s:a href="%{addProxyConnectorUrl}" cssClass="create">
- <img src="<c:url value="/images/icons/create.png" />"/>
- Add
- </s:a>
- </redback:ifAnyAuthorized>
- </c:when>
- <c:otherwise>
- <img src="<c:url value="/images/icons/create.png" />"/>
- Add (Disabled. No remote repositories)
- </c:otherwise>
+ <c:when test="${remoteRepoExists}">
+ <redback:ifAnyAuthorized permissions="archiva-manage-configuration">
+ <s:url id="addProxyConnectorUrl" action="addProxyConnector"/>
+ <s:a href="%{addProxyConnectorUrl}" cssClass="create">
+ <img src="<c:url value="/images/icons/create.png" />"/> Add
+ </s:a>
+ </redback:ifAnyAuthorized>
+ </c:when>
+ <c:otherwise>
+ <img src="<c:url value="/images/icons/create.png" />"/>
+ Add (Disabled. No remote repositories)
+ </c:otherwise>
</c:choose>
</div>
<s:param name="struts.token"><s:property value="struts.token"/></s:param>
</s:url>
<c:if test="${connector.disabled}">
- <s:a href="%{enableProxyConnectorUrl}" title="Enable Proxy Connector">
- <img src="${iconDisable}"/>
- </s:a>
+ <s:a href="%{enableProxyConnectorUrl}" title="Enable Proxy Connector">
+ <img src="${iconDisable}"/>
+ </s:a>
</c:if>
<c:if test="${connector.disabled == false}">
- <s:a href="%{disableProxyConnectorUrl}" title="Disable Proxy Connector">
- <img src="${iconEnable}"/>
- </s:a>
+ <s:a href="%{disableProxyConnectorUrl}" title="Disable Proxy Connector">
+ <img src="${iconEnable}"/>
+ </s:a>
</c:if>
<c:if test="${pc.count > 1}">
<s:a href="%{sortUpProxyConnectorUrl}" title="Move Proxy Connector Up">
</redback:ifAnyAuthorized>
<c:url var="rssFeedIconUrl" value="/images/icons/rss-feed.png"/>
<a href='/archiva/feeds/<c:out value="${repository.id}" />'>
- <img src="${rssFeedIconUrl}" />
+ <img src="${rssFeedIconUrl}" />
</a>
</div>
<td><c:out value="${repository.location}" /></td>
</tr>
<c:if test="${!empty (repository.indexDirectory)}">
- <tr>
- <th>Index Directory</th>
- <td><c:out value="${repository.indexDirectory}" /></td>
- </tr>
+ <tr>
+ <th>Index Directory</th>
+ <td><c:out value="${repository.indexDirectory}" /></td>
+ </tr>
</c:if>
<tr>
<th>WebDAV URL</th>
<s:textfield name="classifier" label="Classifier" size="60" required="false"/>
<s:textfield name="type" label="Type (mandatory when using classifier)" size="60" required="false" />
<s:select name="repositoryId" list="managedRepos" label="Repository Id"/>
-
\ No newline at end of file
<s:textfield name="version" label="Version" size="50" required="true"/>
<s:textfield name="packaging" label="Packaging" size="50" required="true"/>
<s:textfield name="classifier" label="Classifier" size="50" required="false"/>
-<s:checkbox name="generatePom" value="generatePom"
- label="Generate Maven 2 POM"/>
+<s:checkbox name="generatePom" value="generatePom" label="Generate Maven 2 POM"/>
<s:file name="artifact" label="Artifact File" required="true"/>
<s:file name="pom" label="POM File"/>
<s:select name="repositoryId" list="managedRepoIdList" label="Repository Id"/>
-
-
\ No newline at end of file
var table = document.getElementById( "dynamicTable" );
var row = document.createElement( "TR" );
var label = document.createElement("TD");
- label.innerHTML = fieldText + ": ";
+ label.innerHTML = fieldText + ": ";
var textfield = document.createElement( "TD" );
var inp1 = document.createElement( "INPUT" );
</div>
</body>
-</html>
\ No newline at end of file
+</html>
<title>Audit Log Report</title>
<s:head theme="xhtml" />
-
+
<link rel="stylesheet" href="<c:url value='/css/no-theme/jquery.ui-1.8.14.theme.css'/>" type="text/css" />
<script type="text/javascript" src="<c:url value='/js/jquery-1.6.1.min.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/jquery-ui-1.8.14.custom.min.js'/>"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function()
{
- $('#startDate').datepicker()
- $('#endDate').datepicker()
+ $('#startDate').datepicker()
+ $('#endDate').datepicker()
});
</script>
</head>
<body>
<h1>Audit Log Report</h1>
-
+
<div id="contentArea">
-
+
<s:form action="viewAuditLogReport" namespace="/report" validate="false">
-
+
<s:hidden name="initial"/>
-
- <div id="auditLogReport">
- <table id="auditLogFieds">
- <tbody>
- <tr>
- <td>Repository: </td>
- <td><s:select name="repository" list="repositories" theme="simple"/></td>
- <tr>
- <tr>
- <td>Group ID: </td>
- <td><s:textfield id="groupId" name="groupId" theme="simple"/></td>
- <tr>
- <tr>
- <td>Artifact ID: </td>
- <td><s:textfield id="artifactId" name="artifactId" theme="simple"/></td>
- <tr>
- <tr>
- <td>Start Date: </td>
- <td><s:textfield id="startDate" name="startDate" theme="simple"/>
- <%--
- <script type="text/javascript">
- Calendar.setup({
- inputField : "startDate",
- ifFormat : "%Y-%m-%d",
- align : "Tl",
- singleClick : true
- });
- </script>
- --%>
- </td>
- <tr>
- <tr>
- <td>End Date: </td>
- <td><s:textfield id="endDate" name="endDate" theme="simple"/>
- <%--
- <script type="text/javascript">
- Calendar.setup({
- inputField : "endDate",
- ifFormat : "%Y-%m-%d",
- align : "Tl",
- singleClick : true
- });
- </script>
- --%>
- </td>
- <tr>
- <tr>
- <td>Row Count: </td>
- <td><s:textfield name="rowCount" theme="simple"/></td>
- <tr>
- <tr>
- <td/>
- <td style="text-align: right"><s:submit value="View Audit Log" theme="simple"/></td>
- </tr>
- </tbody>
- </table>
- </div>
-
+
+ <div id="auditLogReport">
+ <table id="auditLogFieds">
+ <tbody>
+ <tr>
+ <td>Repository: </td>
+ <td><s:select name="repository" list="repositories" theme="simple"/></td>
+ </tr>
+ <tr>
+ <td>Group ID: </td>
+ <td><s:textfield id="groupId" name="groupId" theme="simple"/></td>
+ </tr>
+ <tr>
+ <td>Artifact ID: </td>
+ <td><s:textfield id="artifactId" name="artifactId" theme="simple"/></td>
+ </tr>
+ <tr>
+ <td>Start Date: </td>
+ <td><s:textfield id="startDate" name="startDate" theme="simple"/></td>
+ </tr>
+ <tr>
+ <td>End Date: </td>
+ <td><s:textfield id="endDate" name="endDate" theme="simple"/></td>
+ </tr>
+ <tr>
+ <td>Row Count: </td>
+ <td><s:textfield name="rowCount" theme="simple"/></td>
+ </tr>
+ <tr>
+ <td/>
+ <td style="text-align: right"><s:submit value="View Audit Log" theme="simple"/></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
<p/>
-
+
<div class="auditLogReportResults">
-
- <h2>${headerName}</h2>
+
+ <h2>${headerName}</h2>
<p>
<s:actionerror/>
</p>
-
- <c:if test="${not empty (auditLogs)}">
- <table class="auditlogs" cellspacing="0">
- <tr>
- <th>Event</th>
- <th>Repository</th>
- <th>Resource</th>
- <th>Event Date</th>
- <th>Username</th>
- </tr>
-
- <c:forEach items="${auditLogs}" var="auditLog" varStatus="i">
- <tr>
- <td>${auditLog.action}</td>
- <td>${auditLog.repositoryId}</td>
- <td>${auditLog.resource}</td>
- <td>${auditLog.timestamp}</td>
- <td>${auditLog.userId}</td>
- </tr>
- </c:forEach>
- </table>
-
- <c:set var="prevPageUrl">
- <s:url action="viewAuditLogReport" namespace="/report">
- <s:param name="repository" value="%{#attr.repository}" />
- <s:param name="groupId" value="%{#attr.groupId}" />
- <s:param name="artifactId" value="%{#attr.artifactId}" />
- <s:param name="rowCount" value="%{#attr.rowCount}" />
- <s:param name="page" value="%{#attr.page - 1}"/>
- <s:param name="startDate" value="%{#attr.startDate}"/>
- <s:param name="endDate" value="%{#attr.endDate}" />
- </s:url>
- </c:set>
- <c:set var="nextPageUrl">
- <s:url action="viewAuditLogReport" namespace="/report">
- <s:param name="repository" value="%{#attr.repository }" />
- <s:param name="groupId" value="%{#attr.groupId}" />
- <s:param name="artifactId" value="%{#attr.artifactId }" />
- <s:param name="rowCount" value="%{#attr.rowCount}" />
- <s:param name="page" value="%{#attr.page + 1}"/>
- <s:param name="startDate" value="%{#attr.startDate}"/>
- <s:param name="endDate" value="%{#attr.endDate}" />
- </s:url>
- </c:set>
-
- <s:set name="page" value="page"/>
- <c:if test="${page gt 1}"><a href="${prevPageUrl}"><<</a></c:if>
- <strong>Page: </strong>${page}
- <s:set name="isLastPage" value="isLastPage"/>
- <c:if test="${!isLastPage}"><a href="${nextPageUrl}">>></a></c:if>
-
- </c:if>
- </div>
-
+
+ <c:if test="${not empty (auditLogs)}">
+ <table class="auditlogs" cellspacing="0">
+ <tr>
+ <th>Event</th>
+ <th>Repository</th>
+ <th>Resource</th>
+ <th>Event Date</th>
+ <th>Username</th>
+ </tr>
+
+ <c:forEach items="${auditLogs}" var="auditLog" varStatus="i">
+ <tr>
+ <td>${auditLog.action}</td>
+ <td>${auditLog.repositoryId}</td>
+ <td>${auditLog.resource}</td>
+ <td>${auditLog.timestamp}</td>
+ <td>${auditLog.userId}</td>
+ </tr>
+ </c:forEach>
+ </table>
+
+ <c:set var="prevPageUrl">
+ <s:url action="viewAuditLogReport" namespace="/report">
+ <s:param name="repository" value="%{#attr.repository}" />
+ <s:param name="groupId" value="%{#attr.groupId}" />
+ <s:param name="artifactId" value="%{#attr.artifactId}" />
+ <s:param name="rowCount" value="%{#attr.rowCount}" />
+ <s:param name="page" value="%{#attr.page - 1}"/>
+ <s:param name="startDate" value="%{#attr.startDate}"/>
+ <s:param name="endDate" value="%{#attr.endDate}" />
+ </s:url>
+ </c:set>
+ <c:set var="nextPageUrl">
+ <s:url action="viewAuditLogReport" namespace="/report">
+ <s:param name="repository" value="%{#attr.repository }" />
+ <s:param name="groupId" value="%{#attr.groupId}" />
+ <s:param name="artifactId" value="%{#attr.artifactId }" />
+ <s:param name="rowCount" value="%{#attr.rowCount}" />
+ <s:param name="page" value="%{#attr.page + 1}"/>
+ <s:param name="startDate" value="%{#attr.startDate}"/>
+ <s:param name="endDate" value="%{#attr.endDate}" />
+ </s:url>
+ </c:set>
+
+ <s:set name="page" value="page"/>
+ <c:if test="${page gt 1}"><a href="${prevPageUrl}"><<</a></c:if>
+ <strong>Page: </strong>${page}
+ <s:set name="isLastPage" value="isLastPage"/>
+ <c:if test="${!isLastPage}"><a href="${nextPageUrl}">>></a></c:if>
+
+ </c:if>
+ </div>
+
</s:form>
-
-
+
</div>
</body>
<div id="contentArea">
<c:forEach var="repository" items="${repositoriesMap}">
- <strong>Repository: ${repository.key}</strong>
- <c:forEach var="report" items='${repository.value}'>
-
- <p>
- <archiva:groupIdLink var="${report.namespace}" includeTop="true"/>
- <c:set var="url">
- <s:url action="browseArtifact" namespace="/">
- <s:param name="groupId" value="%{#attr.report.namespace}"/>
- <s:param name="artifactId" value="%{#attr.report.project}"/>
- </s:url>
- </c:set>
- <a href="${url}">${report.project}</a> /
- <strong>${report.version}</strong>
- </p>
+ <strong>Repository: ${repository.key}</strong>
+ <c:forEach var="report" items='${repository.value}'>
+ <p>
+ <archiva:groupIdLink var="${report.namespace}" includeTop="true"/>
+ <c:set var="url">
+ <s:url action="browseArtifact" namespace="/">
+ <s:param name="groupId" value="%{#attr.report.namespace}"/>
+ <s:param name="artifactId" value="%{#attr.report.project}"/>
+ </s:url>
+ </c:set>
+ <a href="${url}">${report.project}</a> /
+ <strong>${report.version}</strong>
+ </p>
- <blockquote><c:out value="${report.message}" /></blockquote>
- </c:forEach>
+ <blockquote><c:out value="${report.message}" /></blockquote>
+ </c:forEach>
</c:forEach>
<c:set var="prevPageUrl">
<script type="text/javascript" charset="utf-8">
$(document).ready(function()
{
- $('#startDate').datepicker();
- $('#endDate').datepicker();
+ $('#startDate').datepicker();
+ $('#endDate').datepicker();
});
</script>
</head>
addToRightOnclick="selectAllOptions(document.getElementById('generateStatisticsReport_availableRepositories'));selectAllOptions(document.getElementById('generateStatisticsReport_selectedRepositories'));"
addAllToLeftOnclick="selectAllOptions(document.getElementById('generateStatisticsReport_availableRepositories'));selectAllOptions(document.getElementById('generateStatisticsReport_selectedRepositories'));"
addToLeftOnclick="selectAllOptions(document.getElementById('generateStatisticsReport_availableRepositories'));selectAllOptions(document.getElementById('generateStatisticsReport_selectedRepositories'));"
- />
-
+ />
+
<s:textfield label="Row Count" name="rowCount" />
<s:textfield label="Start Date" id="startDate" name="startDate"/>
<c:url var="imgPrevPageDisabledUrl" value="/images/icon_prev_page_disabled.gif"/>
<c:url var="imgNextPageDisabledUrl" value="/images/icon_next_page_disabled.gif"/>
-<div id="contentArea">
+<div id="contentArea">
<%-- TODO: fix problem in date format! --%>
- <%-- Pagination - start --%>
+ <%-- Pagination - start --%>
<p>
-
+
<%-- Set Prev & Next icons --%>
<c:set var="prevPageUrl">
- <s:url action="generateStatisticsReport" namespace="/report">
+ <s:url action="generateStatisticsReport" namespace="/report">
<s:param name="selectedRepositories" value="%{#attr.selectedRepositories}"/>
<s:param name="rowCount" value="%{#attr.rowCount}"/>
- <s:param name="startDate" value="%{#attr.startDate}"/>
+ <s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
<s:param name="page" value="%{#attr.page - 1}"/>
</s:url>
</c:set>
<c:set var="nextPageUrl">
- <s:url action="generateStatisticsReport" namespace="/report">
+ <s:url action="generateStatisticsReport" namespace="/report">
<s:param name="selectedRepositories" value="%{#attr.selectedRepositories}"/>
<s:param name="rowCount" value="%{#attr.rowCount}"/>
- <s:param name="startDate" value="%{#attr.startDate}"/>
- <s:param name="endDate" value="%{#attr.endDate}"/>
+ <s:param name="startDate" value="%{#attr.startDate}"/>
+ <s:param name="endDate" value="%{#attr.endDate}"/>
<s:param name="page" value="%{#attr.page + 1}"/>
</s:url>
</c:set>
-
+
<c:choose>
- <c:when test="${page == 1}">
+ <c:when test="${page == 1}">
<img src="${imgPrevPageDisabledUrl}"/>
</c:when>
<c:otherwise>
</a>
</c:otherwise>
</c:choose>
-
+
<%-- Google-style pagination --%>
<c:choose>
<c:when test="${numPages > 11}">
<c:choose>
<c:when test="${(page - 5) < 0}">
<c:set var="beginVal">0</c:set>
- <c:set var="endVal">10</c:set>
- </c:when>
+ <c:set var="endVal">10</c:set>
+ </c:when>
<c:when test="${(page + 5) > (numPages - 1)}">
<c:set var="beginVal">${(numPages - 1) - 10}</c:set>
<c:set var="endVal">${numPages - 1}</c:set>
<c:set var="beginVal">${page - 5}</c:set>
<c:set var="endVal">${page + 5}</c:set>
</c:otherwise>
- </c:choose>
+ </c:choose>
</c:when>
<c:otherwise>
<c:set var="beginVal">0</c:set>
<c:set var="endVal">${numPages - 1}</c:set>
</c:otherwise>
</c:choose>
-
- <c:forEach var="i" begin="${beginVal}" end="${endVal}">
- <c:choose>
+
+ <c:forEach var="i" begin="${beginVal}" end="${endVal}">
+ <c:choose>
<c:when test="${i != (page - 1)}">
<c:set var="specificPageUrl">
<s:url action="generateStatisticsReport" namespace="/report">
<s:param name="selectedRepositories" value="%{#attr.selectedRepositories}"/>
<s:param name="rowCount" value="%{#attr.rowCount}"/>
- <s:param name="startDate" value="%{#attr.startDate}"/>
+ <s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
<s:param name="page" value="%{#attr.page + 1}"/>
</s:url>
</c:set>
<a href="${specificPageUrl}">${i + 1}</a>
</c:when>
- <c:otherwise>
- <b>${i + 1}</b>
- </c:otherwise>
- </c:choose>
+ <c:otherwise>
+ <b>${i + 1}</b>
+ </c:otherwise>
+ </c:choose>
</c:forEach>
-
+
<c:choose>
<c:when test="${page == numPages}">
<img src="${imgNextPageDisabledUrl}"/>
<a href="${nextPageUrl}">
<img src="${imgNextPageUrl}"/>
</a>
- </c:otherwise>
- </c:choose>
- </p>
+ </c:otherwise>
+ </c:choose>
+ </p>
<%-- Pagination - end --%>
-
+
<%-- Export to CSV link --%>
<s:url id="downloadStatsReportUrl" action="downloadStatsReport" namespace="/report">
<s:param name="selectedRepositories" value="%{#attr.selectedRepositories}"/>
- <s:param name="startDate" value="%{#attr.startDate}"/>
+ <s:param name="startDate" value="%{#attr.startDate}"/>
<s:param name="endDate" value="%{#attr.endDate}"/>
</s:url>
<s:a href="%{downloadStatsReportUrl}">Export to CSV</s:a>
-
+
<c:choose>
<c:when test="${repositoryId == null}">
-
- <h1>Latest Statistics Comparison Report</h1>
+
+ <h1>Latest Statistics Comparison Report</h1>
<table class="infoTable" border="1">
<tr>
<th>Repository</th>
<th>Exes</th>
<th>Dlls</th>
<th>Zips</th>
- </tr>
-
+ </tr>
+
<c:forEach var="stats" items="${repositoryStatistics}" varStatus="i">
<tr>
<td>${selectedRepositories[i.count-1]}</td>
<td align="right">${stats.totalCountForType['zip']}</td>
</tr>
</c:forEach>
- </table>
+ </table>
</c:when>
<c:otherwise>
-
+
<h1>Statistics for Repository '${repositoryId}'</h1>
<table class="infoTable" border="1">
<tr>
<th>Dlls</th>
<th>Zips</th>
</tr>
-
+
<c:forEach var="stats" items="${repositoryStatistics}">
<tr>
<td align="right">${stats.scanStartTime}</td>
</tr>
</c:forEach>
</table>
-
+
</c:otherwise>
</c:choose>
-
+
</div>
</body>
</html>
<head>
<title>Search Results</title>
<s:head/>
- <script type="text/javascript">
+ <script type="text/javascript">
function addSearchField(fieldText, field, divName)
- {
+ {
var element = document.getElementById( field );
if( element != null )
{
var table = document.getElementById( "dynamicTable" );
var row = document.createElement( "TR" );
var label = document.createElement("TD");
- label.innerHTML = fieldText + ": ";
-
+ label.innerHTML = fieldText + ": ";
+
var textfield = document.createElement( "TD" );
var inp1 = document.createElement( "INPUT" );
inp1.setAttribute( "type", "text" );
inp1.setAttribute( "name", field );
textfield.appendChild( inp1 );
- row.appendChild( label );
+ row.appendChild( label );
row.appendChild( textfield );
table.appendChild( row );
}
- </script>
+ </script>
</head>
<body>
</c:if>
<c:if test="${fromFilterSearch == false}">
<h1>Search</h1>
-</c:if>
+</c:if>
<c:url var="imgNextPageUrl" value="/images/icon_next_page.gif"/>
<c:url var="imgPrevPageUrl" value="/images/icon_prev_page.gif"/>
<tr>
<td>
<s:form id="filteredSearch" method="get" action="filteredSearch" validate="true">
- <s:hidden name="fromFilterSearch" value="%{#attr.fromFilterSearch}" theme="simple"/>
- <label><strong>Advanced Search Fields: </strong></label><s:select name="searchField" list="searchFields" theme="simple"/>
+ <s:hidden name="fromFilterSearch" value="%{#attr.fromFilterSearch}" theme="simple"/>
+ <label><strong>Advanced Search Fields: </strong></label><s:select name="searchField" list="searchFields" theme="simple"/>
<s:a href="#" title="Add Search Field" onclick="addSearchField( document.filteredSearch.searchField.options[document.filteredSearch.searchField.selectedIndex].text, document.filteredSearch.searchField.value, 'dynamicFields' )" theme="simple">
<img src="${iconCreateUrl}" />
</s:a>
<table id="dynamicTable">
<tr>
<td><label>Repository: </td>
- <td><s:select name="repositoryId" list="managedRepositoryList" theme="simple"/></td>
- </tr>
+ <td><s:select name="repositoryId" list="managedRepositoryList" theme="simple"/></td>
+ </tr>
<tr>
<td/>
- <td/>
+ <td/>
</tr>
- </table>
- <s:submit value="Search" theme="simple"/>
- </s:form>
+ </table>
+ <s:submit value="Search" theme="simple"/>
+ </s:form>
</td>
</tr>
</table>
<c:if test="${fromFilterSearch == false}">
<s:form method="get" action="quickSearch" validate="true">
<s:textfield label="Search for" size="50" name="q"/>
- <s:checkbox label="Search within results" name="searchResultsOnly"/>
- <s:hidden name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ <s:checkbox label="Search within results" name="searchResultsOnly"/>
+ <s:hidden name="completeQueryString" value="%{#attr.completeQueryString}"/>
<s:submit label="Go!"/>
- </s:form>
+ </s:form>
<script type="text/javascript">
document.getElementById("quickSearchValue").focus();
</script>
</c:when>
<c:otherwise>
<p>Hits: 1 to ${hitsNum} of ${results.totalHits}</p>
- </c:otherwise>
+ </c:otherwise>
</c:choose>
<c:choose>
<c:when test="${empty results.hits}">
<p>No results</p>
</c:when>
<c:otherwise>
-
- <%-- Pagination start --%>
- <p>
- <%-- Prev & Next icons --%>
- <c:if test="${fromFilterSearch == false}">
- <c:set var="prevPageUrl">
- <s:url action="quickSearch" namespace="/">
- <s:param name="q" value="%{#attr.q}"/>
- <s:param name="currentPage" value="%{#attr.currentPage - 1}"/>
- </s:url>
- </c:set>
- <c:set var="nextPageUrl">
- <s:url action="quickSearch" namespace="/">
- <s:param name="q" value="%{#attr.q}"/>
- <s:param name="currentPage" value="%{#attr.currentPage + 1}"/>
- </s:url>
- </c:set>
- </c:if>
- <c:if test="${fromFilterSearch == true}">
- <c:set var="prevPageUrl">
- <s:url action="filteredSearch" namespace="/">
- <s:param name="rowCount" value="%{#attr.rowCount}"/>
- <s:param name="groupId" value="%{#attr.groupId}"/>
- <s:param name="artifactId" value="%{#attr.artifactId}"/>
- <s:param name="version" value="%{#attr.version}"/>
- <s:param name="className" value="%{#attr.className}"/>
- <s:param name="repositoryId" value="%{#attr.repositoryId}"/>
- <s:param name="filterSearch" value="%{#attr.filterSearch}"/>
- <s:param name="fromResultsPage" value="true"/>
- <s:param name="currentPage" value="%{#attr.currentPage - 1}"/>
- <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
- <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
- </s:url>
- </c:set>
- <c:set var="nextPageUrl">
- <s:url action="filteredSearch" namespace="/">
- <s:param name="rowCount" value="%{#attr.rowCount}"/>
- <s:param name="groupId" value="%{#attr.groupId}"/>
- <s:param name="artifactId" value="%{#attr.artifactId}"/>
- <s:param name="version" value="%{#attr.version}"/>
- <s:param name="className" value="%{#attr.className}"/>
- <s:param name="repositoryId" value="%{#attr.repositoryId}"/>
- <s:param name="filterSearch" value="%{#attr.filterSearch}"/>
- <s:param name="fromResultsPage" value="true"/>
- <s:param name="currentPage" value="%{#attr.currentPage + 1}"/>
- <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
- <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
- </s:url>
- </c:set>
- </c:if>
-
- <c:choose>
- <c:when test="${currentPage == 0}">
- <img src="${imgPrevPageDisabledUrl}"/>
- </c:when>
- <c:otherwise>
- <a href="${prevPageUrl}">
- <img src="${imgPrevPageUrl}"/>
- </a>
- </c:otherwise>
- </c:choose>
-
- <%-- Google-style pagination --%>
- <c:choose>
- <c:when test="${totalPages > 11}">
- <c:choose>
- <c:when test="${(currentPage - 5) < 0}">
- <c:set var="beginVal">0</c:set>
- <c:set var="endVal">10</c:set>
- </c:when>
- <c:when test="${(currentPage + 5) > (totalPages - 1)}">
- <c:set var="beginVal">${(totalPages -1) - 10}</c:set>
- <c:set var="endVal">${totalPages - 1}</c:set>
- </c:when>
- <c:otherwise>
- <c:set var="beginVal">${currentPage - 5}</c:set>
- <c:set var="endVal">${currentPage + 5}</c:set>
- </c:otherwise>
- </c:choose>
- </c:when>
- <c:otherwise>
- <c:set var="beginVal">0</c:set>
- <c:set var="endVal">${totalPages - 1}</c:set>
- </c:otherwise>
- </c:choose>
-
- <c:forEach var="i" begin="${beginVal}" end="${endVal}">
+ <%-- Pagination start --%>
+ <p>
+ <%-- Prev & Next icons --%>
<c:if test="${fromFilterSearch == false}">
- <c:choose>
- <c:when test="${i != currentPage}">
- <c:set var="specificPageUrl">
- <s:url action="quickSearch" namespace="/">
- <s:param name="q" value="%{#attr.q}"/>
- <s:param name="currentPage" value="%{#attr.i}"/>
- <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
- <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
- </s:url>
- </c:set>
- <a href="${specificPageUrl}">${i + 1}</a>
- </c:when>
- <c:otherwise>
- <b>${i + 1}</b>
- </c:otherwise>
- </c:choose>
+ <c:set var="prevPageUrl">
+ <s:url action="quickSearch" namespace="/">
+ <s:param name="q" value="%{#attr.q}"/>
+ <s:param name="currentPage" value="%{#attr.currentPage - 1}"/>
+ </s:url>
+ </c:set>
+ <c:set var="nextPageUrl">
+ <s:url action="quickSearch" namespace="/">
+ <s:param name="q" value="%{#attr.q}"/>
+ <s:param name="currentPage" value="%{#attr.currentPage + 1}"/>
+ </s:url>
+ </c:set>
</c:if>
<c:if test="${fromFilterSearch == true}">
- <c:choose>
- <c:when test="${i != currentPage}">
- <c:set var="specificPageUrl">
- <s:url action="filteredSearch" namespace="/">
- <s:param name="rowCount" value="%{#attr.rowCount}"/>
- <s:param name="groupId" value="%{#attr.groupId}"/>
- <s:param name="artifactId" value="%{#attr.artifactId}"/>
- <s:param name="version" value="%{#attr.version}"/>
- <s:param name="className" value="%{#attr.className}"/>
- <s:param name="repositoryId" value="%{#attr.repositoryId}"/>
- <s:param name="filterSearch" value="%{#attr.filterSearch}"/>
- <s:param name="fromResultsPage" value="true"/>
- <s:param name="currentPage" value="%{#attr.i}"/>
- <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
- <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
- </s:url>
- </c:set>
- <a href="${specificPageUrl}">${i + 1}</a>
- </c:when>
- <c:otherwise>
- <b>${i + 1}</b>
- </c:otherwise>
- </c:choose>
+ <c:set var="prevPageUrl">
+ <s:url action="filteredSearch" namespace="/">
+ <s:param name="rowCount" value="%{#attr.rowCount}"/>
+ <s:param name="groupId" value="%{#attr.groupId}"/>
+ <s:param name="artifactId" value="%{#attr.artifactId}"/>
+ <s:param name="version" value="%{#attr.version}"/>
+ <s:param name="className" value="%{#attr.className}"/>
+ <s:param name="repositoryId" value="%{#attr.repositoryId}"/>
+ <s:param name="filterSearch" value="%{#attr.filterSearch}"/>
+ <s:param name="fromResultsPage" value="true"/>
+ <s:param name="currentPage" value="%{#attr.currentPage - 1}"/>
+ <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
+ <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ </s:url>
+ </c:set>
+ <c:set var="nextPageUrl">
+ <s:url action="filteredSearch" namespace="/">
+ <s:param name="rowCount" value="%{#attr.rowCount}"/>
+ <s:param name="groupId" value="%{#attr.groupId}"/>
+ <s:param name="artifactId" value="%{#attr.artifactId}"/>
+ <s:param name="version" value="%{#attr.version}"/>
+ <s:param name="className" value="%{#attr.className}"/>
+ <s:param name="repositoryId" value="%{#attr.repositoryId}"/>
+ <s:param name="filterSearch" value="%{#attr.filterSearch}"/>
+ <s:param name="fromResultsPage" value="true"/>
+ <s:param name="currentPage" value="%{#attr.currentPage + 1}"/>
+ <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
+ <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ </s:url>
+ </c:set>
</c:if>
- </c:forEach>
-
- <c:choose>
- <c:when test="${currentPage == (totalPages - 1)}">
- <img src="${imgNextPageDisabledUrl}"/>
- </c:when>
- <c:otherwise>
- <a href="${nextPageUrl}">
- <img src="${imgNextPageUrl}"/>
- </a>
- </c:otherwise>
- </c:choose>
- </p>
- <%-- Pagination end --%>
-
+
+ <c:choose>
+ <c:when test="${currentPage == 0}">
+ <img src="${imgPrevPageDisabledUrl}"/>
+ </c:when>
+ <c:otherwise>
+ <a href="${prevPageUrl}">
+ <img src="${imgPrevPageUrl}"/>
+ </a>
+ </c:otherwise>
+ </c:choose>
+
+ <%-- Google-style pagination --%>
+ <c:choose>
+ <c:when test="${totalPages > 11}">
+ <c:choose>
+ <c:when test="${(currentPage - 5) < 0}">
+ <c:set var="beginVal">0</c:set>
+ <c:set var="endVal">10</c:set>
+ </c:when>
+ <c:when test="${(currentPage + 5) > (totalPages - 1)}">
+ <c:set var="beginVal">${(totalPages -1) - 10}</c:set>
+ <c:set var="endVal">${totalPages - 1}</c:set>
+ </c:when>
+ <c:otherwise>
+ <c:set var="beginVal">${currentPage - 5}</c:set>
+ <c:set var="endVal">${currentPage + 5}</c:set>
+ </c:otherwise>
+ </c:choose>
+ </c:when>
+ <c:otherwise>
+ <c:set var="beginVal">0</c:set>
+ <c:set var="endVal">${totalPages - 1}</c:set>
+ </c:otherwise>
+ </c:choose>
+
+ <c:forEach var="i" begin="${beginVal}" end="${endVal}">
+ <c:if test="${fromFilterSearch == false}">
+ <c:choose>
+ <c:when test="${i != currentPage}">
+ <c:set var="specificPageUrl">
+ <s:url action="quickSearch" namespace="/">
+ <s:param name="q" value="%{#attr.q}"/>
+ <s:param name="currentPage" value="%{#attr.i}"/>
+ <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
+ <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ </s:url>
+ </c:set>
+ <a href="${specificPageUrl}">${i + 1}</a>
+ </c:when>
+ <c:otherwise>
+ <b>${i + 1}</b>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
+
+ <c:if test="${fromFilterSearch == true}">
+ <c:choose>
+ <c:when test="${i != currentPage}">
+ <c:set var="specificPageUrl">
+ <s:url action="filteredSearch" namespace="/">
+ <s:param name="rowCount" value="%{#attr.rowCount}"/>
+ <s:param name="groupId" value="%{#attr.groupId}"/>
+ <s:param name="artifactId" value="%{#attr.artifactId}"/>
+ <s:param name="version" value="%{#attr.version}"/>
+ <s:param name="className" value="%{#attr.className}"/>
+ <s:param name="repositoryId" value="%{#attr.repositoryId}"/>
+ <s:param name="filterSearch" value="%{#attr.filterSearch}"/>
+ <s:param name="fromResultsPage" value="true"/>
+ <s:param name="currentPage" value="%{#attr.i}"/>
+ <s:param name="searchResultsOnly" value="%{#attr.searchResultsOnly}"/>
+ <s:param name="completeQueryString" value="%{#attr.completeQueryString}"/>
+ </s:url>
+ </c:set>
+ <a href="${specificPageUrl}">${i + 1}</a>
+ </c:when>
+ <c:otherwise>
+ <b>${i + 1}</b>
+ </c:otherwise>
+ </c:choose>
+ </c:if>
+ </c:forEach>
+
+ <c:choose>
+ <c:when test="${currentPage == (totalPages - 1)}">
+ <img src="${imgNextPageDisabledUrl}"/>
+ </c:when>
+ <c:otherwise>
+ <a href="${nextPageUrl}">
+ <img src="${imgNextPageUrl}"/>
+ </a>
+ </c:otherwise>
+ </c:choose>
+ </p>
+ <%-- Pagination end --%>
+
<c:forEach items="${results.hits}" var="record" varStatus="i">
<c:choose>
<c:when test="${not empty (record.groupId)}">
</div>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
<script type="text/javascript" src="<c:url value='/js/jquery-1.6.1.min.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/jquery-ui-1.8.14.custom.min.js'/>"></script>
<script type="text/javascript">
- $(function() {
- $("#accordion").accordion({autoHeight:false});
- });
- </script>
+ $(function() {
+ $("#accordion").accordion({autoHeight:false});
+ });
+ </script>
<link rel="stylesheet" href="<c:url value='/css/no-theme/jquery.ui-1.8.14.theme.css'/>" type="text/css" media="all"/>
</head>
-->
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>Apache Archiva</display-name>
+ <display-name>Apache Archiva</display-name>
<filter>
<filter-name>webwork-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
- <filter>
- <filter-name>sitemesh</filter-name>
- <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
- </filter>
+ <filter>
+ <filter-name>sitemesh</filter-name>
+ <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
+ </filter>
<filter>
<filter-name>struts2</filter-name>
</init-param>
</filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <!-- this must be before the sitemesh filter -->
- <filter-mapping>
- <filter-name>webwork-cleanup</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>sitemesh</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
- <listener>
- <!-- TODO: some Spring technique for this? -->
- <listener-class>
+ <filter-mapping>
+ <filter-name>encodingFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <!-- this must be before the sitemesh filter -->
+ <filter-mapping>
+ <filter-name>webwork-cleanup</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter-mapping>
+ <filter-name>sitemesh</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter-mapping>
+ <filter-name>struts2</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <listener>
+ <listener-class>
+ org.springframework.web.context.ContextLoaderListener
+ </listener-class>
+ </listener>
+ <listener>
+ <!-- TODO: some Spring technique for this? -->
+ <listener-class>
org.apache.archiva.web.startup.ArchivaStartup
</listener-class>
- </listener>
+ </listener>
<listener>
<listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>
<listener-class>org.apache.archiva.webdav.util.TemporaryGroupIndexSessionCleaner</listener-class>
</listener>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>
- classpath*:META-INF/spring-context.xml
- /WEB-INF/applicationContext.xml
- </param-value>
- </context-param>
-
- <servlet>
- <servlet-name>RepositoryServlet</servlet-name>
- <servlet-class>
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>
+ classpath*:META-INF/spring-context.xml
+ /WEB-INF/applicationContext.xml
+ </param-value>
+ </context-param>
+
+ <servlet>
+ <servlet-name>RepositoryServlet</servlet-name>
+ <servlet-class>
org.apache.archiva.webdav.RepositoryServlet
</servlet-class>
- <!-- Loading this on startup so as to take advantage of configuration listeners -->
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>XmlRpcServlet</servlet-name>
- <servlet-class>
- com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet
- </servlet-class>
- <init-param>
- <param-name>serviceListBeanName</param-name>
- <param-value>xmlrpcServicesList</param-value>
- </init-param>
- <init-param>
- <param-name>authHandlerBeanName</param-name>
- <param-value>xmlRpcAuthenticator</param-value>
- </init-param>
- <init-param>
- <param-name>enabledForExtensions</param-name>
- <param-value>true</param-value>
- </init-param>
- <load-on-startup>2</load-on-startup>
- </servlet>
+ <!-- Loading this on startup so as to take advantage of configuration listeners -->
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet>
+ <servlet-name>XmlRpcServlet</servlet-name>
+ <servlet-class>
+ com.atlassian.xmlrpc.spring.BinderSpringXmlRpcServlet
+ </servlet-class>
+ <init-param>
+ <param-name>serviceListBeanName</param-name>
+ <param-value>xmlrpcServicesList</param-value>
+ </init-param>
+ <init-param>
+ <param-name>authHandlerBeanName</param-name>
+ <param-value>xmlRpcAuthenticator</param-value>
+ </init-param>
+ <init-param>
+ <param-name>enabledForExtensions</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <load-on-startup>2</load-on-startup>
+ </servlet>
<servlet>
<servlet-name>RedbackXmlRpcServlet</servlet-name>
</init-param>
</servlet>
- <servlet>
- <servlet-name>RssFeedServlet</servlet-name>
- <servlet-class>
+ <servlet>
+ <servlet-name>RssFeedServlet</servlet-name>
+ <servlet-class>
org.apache.archiva.web.rss.RssFeedServlet
</servlet-class>
- </servlet>
+ </servlet>
- <servlet-mapping>
- <servlet-name>RssFeedServlet</servlet-name>
- <url-pattern>/feeds/*</url-pattern>
- </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>RssFeedServlet</servlet-name>
+ <url-pattern>/feeds/*</url-pattern>
+ </servlet-mapping>
- <servlet-mapping>
- <servlet-name>RepositoryServlet</servlet-name>
- <url-pattern>/repository/*</url-pattern>
- </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>RepositoryServlet</servlet-name>
+ <url-pattern>/repository/*</url-pattern>
+ </servlet-mapping>
- <servlet-mapping>
- <servlet-name>XmlRpcServlet</servlet-name>
- <url-pattern>/xmlrpc</url-pattern>
- </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>XmlRpcServlet</servlet-name>
+ <url-pattern>/xmlrpc</url-pattern>
+ </servlet-mapping>
<servlet-mapping>
<servlet-name>RedbackXmlRpcServlet</servlet-name>
<url-pattern>/redback-xmlrpc</url-pattern>
</servlet-mapping>
- <resource-ref>
- <res-ref-name>jdbc/users</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Shareable</res-sharing-scope>
- </resource-ref>
- <resource-ref>
- <res-ref-name>mail/Session</res-ref-name>
- <res-type>javax.mail.Session</res-type>
- <res-auth>Container</res-auth>
- <res-sharing-scope>Shareable</res-sharing-scope>
- </resource-ref>
+ <resource-ref>
+ <res-ref-name>jdbc/users</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>mail/Session</res-ref-name>
+ <res-type>javax.mail.Session</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
<servlet>
<servlet-name>CXFServlet</servlet-name>
}
#leftColumn {
- width: 170px;
+ width: 170px;
float: left;
overflow: auto;
}
select {
padding-left: 3px;
- height: auto;
- width: auto;
+ height: auto;
+ width: auto;
}
input {
}
label .required {
- color: red;
- font-weight: bold;
+ color: red;
+ font-weight: bold;
}
th {
#footer {
border-top: 1px solid #CCCCCC;
padding: 14px 4px 12px 4px;
- color: #333333;
+ color: #333333;
margin-top: 2em;
}
}
.missing {
- background-color: red;
- color: white;
- font-weight: bold;
- padding: 4px;
- margin-left: 20px;
- margin-right: 20px;
-
+ background-color: red;
+ color: white;
+ font-weight: bold;
+ padding: 4px;
+ margin-left: 20px;
+ margin-right: 20px;
+
}
#searchBox {
- margin: 5%;
+ margin: 5%;
}
#searchHint {
- margin: 5%;
+ margin: 5%;
}
#topSearchBox {
}
#download a {
- text-decoration: none;
+ text-decoration: none;
}
#download td.type {
}
#contentArea {
- /* margin-right: 15em; */
- padding: 1em;
+ /* margin-right: 15em; */
+ padding: 1em;
}
#tabs b {
- border: 1px #DFDEDE solid;
- padding-left: 1em;
- padding-right: 1em;
+ border: 1px #DFDEDE solid;
+ padding-left: 1em;
+ padding-right: 1em;
}
#tabs a {
- border: 1px #DFDEDE solid;
- padding-left: 1em;
- padding-right: 1em;
- text-decoration: none;
+ border: 1px #DFDEDE solid;
+ padding-left: 1em;
+ padding-right: 1em;
+ text-decoration: none;
}
#tabArea {
- border-top: 1px solid #DFDEDE;
- padding: 1em;
+ border-top: 1px solid #DFDEDE;
+ padding: 1em;
}
#searchTypes {
- text-align: right;
- font-size: xx-small;
+ text-align: right;
+ font-size: xx-small;
}
.statusFailed {
- color: red;
- font-weight: bold;
+ color: red;
+ font-weight: bold;
}
/* WebWork validation failures */
.errorMessage {
- color: red;
- font-weight: bold;
+ color: red;
+ font-weight: bold;
}
.actionMessage {
- font-size: 1.0em;
- font-weight: bold;
- color: blue;
+ font-size: 1.0em;
+ font-weight: bold;
+ color: blue;
}
.errorBullet {
- list-style-image: url( "../images/icon_error_sml.gif" );
+ list-style-image: url( "../images/icon_error_sml.gif" );
}
.warningBullet {
- list-style-image: url( "../images/icon_warning_sml.gif" );
+ list-style-image: url( "../images/icon_warning_sml.gif" );
}
.infoBullet {
- list-style-image: url( "../images/icon_info_sml.gif" );
+ list-style-image: url( "../images/icon_info_sml.gif" );
}
.artifact-link {
- font-size: x-small;
- padding-left: 5em;
+ font-size: x-small;
+ padding-left: 5em;
}
.artifact-title {
-
+
}
ul.dependencyTree {
- margin-left: 50px;
+ margin-left: 50px;
}
ul.dependencyTree span.artifact-link {
- padding-left: 0px;
+ padding-left: 0px;
}
.eXtremeTable tr.filter {
- padding: 1px;
+ padding: 1px;
}
.eXtremeTable .tableRegion,.eXtremeTable .statusBar {
- width: 100%;
+ width: 100%;
}
.eXtremeTable .tableRegion .tableHeader {
- background-color: None;
- background-image: url(../images/breadcrumbs.jpg);
- color: gray;
+ background-color: None;
+ background-image: url(../images/breadcrumbs.jpg);
+ color: gray;
}
.eXtremeTable .tableRegion .tableHeaderSort {
- background-color: #FFBF5F;
+ background-color: #FFBF5F;
}
.eXtremeTable .compactToolbar td {
- white-space: nowrap;
+ white-space: nowrap;
}
.tools {
- border-color: gray !important;
+ border-color: gray !important;
}
table.tools th.toolHeading
{
- color: gray;
+ color: gray;
}
.tools .toolHeading {
- padding: 0px 3px 0px 3px;
- margin: 0px !important;
- font-size: 11px !important;
- background-color: red;
- background-image: url(../images/breadcrumbs.jpg);
+ padding: 0px 3px 0px 3px;
+ margin: 0px !important;
+ font-size: 11px !important;
+ background-color: red;
+ background-image: url(../images/breadcrumbs.jpg);
}
div.repository h3 {
- border-bottom: 0px !important;
- padding-left: 15px !important;
+ border-bottom: 0px !important;
+ padding-left: 15px !important;
}
div.repository {
- border-bottom: 1px solid #DFDEDE;
+ border-bottom: 1px solid #DFDEDE;
}
div.proxyConfig,
div.repoGroup {
- border: 1px dashed #DFDEDE;
- margin-bottom: 15px;
- padding: 5px;
+ border: 1px dashed #DFDEDE;
+ margin-bottom: 15px;
+ padding: 5px;
}
div.proxyConfig div.managedRepo,
div.proxyConfig div.remoteRepo,
div.repoGroup div.managedRepo {
border: 1px dotted gray;
- padding: 5px;
- background-color: white;
+ padding: 5px;
+ background-color: white;
}
div.proxyConfig div.remoteRepo {
- margin: 5px;
+ margin: 5px;
}
div.proxyConfig div.managedRepo img,
div.proxyConfig div.remoteRepo img,
div.repoGroup div.managedRepo img {
- float: left;
- border: 0px;
+ float: left;
+ border: 0px;
}
div.proxyConfig div.managedRepo p,
div.proxyConfig div.remoteRepo p {
- margin: 0px;
- margin-left: 40px;
- padding: 0px;
+ margin: 0px;
+ margin-left: 40px;
+ padding: 0px;
}
div.repoGroup div.managedRepo p {
margin: 8px;
- margin-left: 40px;
- padding: 0px;
+ margin-left: 40px;
+ padding: 0px;
}
div.proxyConfig div.managedRepo p.id,
div.proxyConfig div.remoteRepo p.id,
div.repoGroup div.managedRepo p.id {
- font-family: monospace;
+ font-family: monospace;
}
div.proxyConfig div.connector,
div.repoGroup div.connector {
- border: 1px solid #aaaaff;
- margin-top: 10px;
- margin-left: 40px !important;
+ border: 1px solid #aaaaff;
+ margin-top: 10px;
+ margin-left: 40px !important;
}
div.proxyConfig a.expand {
- font-size: 7pt;
- color: gray;
+ font-size: 7pt;
+ color: gray;
}
div.proxyConfig div.controls,
div.repoGroup div.controls {
- float: right;
+ float: right;
}
div.proxyConfig div.connector h4,
div.repoGroup div.connector h4 {
- padding: 3px;
- font-size: 8pt;
- margin: 0px;
+ padding: 3px;
+ font-size: 8pt;
+ margin: 0px;
}
div.proxyConfig div.connector table.settings {
- border: 0px;
- background-color: transparent;
- font-size: 8pt;
- margin-left: 10px;
+ border: 0px;
+ background-color: transparent;
+ font-size: 8pt;
+ margin-left: 10px;
}
div.proxyConfig div.connector table.settings th,
div.proxyConfig div.connector table.settings td {
- font-size: 8pt;
+ font-size: 8pt;
}
div.proxyConfig div.connector table.settings table.policies {
- border: 1px dotted gray;
+ border: 1px dotted gray;
}
div.proxyConfig div.connector table p {
- margin: 0px;
- padding: 0px;
+ margin: 0px;
+ padding: 0px;
}
div.repoGroup div.repos {
div.admin div.dark,
div.admin div.lite {
- border: 1px solid #aaaaaa;
- font-size: 11pt;
- margin-left: 15px;
- margin-right: 15px;
- margin-bottom: 5px;
- padding: 5px;
+ border: 1px solid #aaaaaa;
+ font-size: 11pt;
+ margin-left: 15px;
+ margin-right: 15px;
+ margin-bottom: 5px;
+ padding: 5px;
}
div.admin div.lite {
- background-color: white;
+ background-color: white;
}
div.admin div.dark {
- background-color: #eeeeee;
+ background-color: #eeeeee;
}
div.admin div.controls {
- float: right;
- font-size: 8pt !important;
+ float: right;
+ font-size: 8pt !important;
}
div.admin div.filetype table {
- margin-left: 25px;
- border: 1px solid gray;
+ margin-left: 25px;
+ border: 1px solid gray;
}
div.filetype table td.controls {
- width: 5%;
+ width: 5%;
}
div.filetype table td.odd,
div.admin table.consumers td.odd {
- background-color: #dddddd;
+ background-color: #dddddd;
}
div.filetype table td.even,
div.admin table.consumers td.even {
- background-color: white;
+ background-color: white;
}
div.admin table.consumers {
- margin-left: 15px;
- border: 1px solid gray;
+ margin-left: 15px;
+ border: 1px solid gray;
}
div.admin table.consumers th {
- font-size: 1.0em;
- background-color: #cccccc;
- text-align: left;
+ font-size: 1.0em;
+ background-color: #cccccc;
+ text-align: left;
}
div.admin table.consumers td strong {
- font-size: 0.8em;
+ font-size: 0.8em;
}
div.warningbox {
- margin: 20px 40px 20px 40px;
- border: 1px solid #CC0000;
- background-color: #FFCCCC;
- color: #000000;
- font-size: 15pt;
- padding: 20px;
+ margin: 20px 40px 20px 40px;
+ border: 1px solid #CC0000;
+ background-color: #FFCCCC;
+ color: #000000;
+ font-size: 15pt;
+ padding: 20px;
}
div.infobox {
- margin: 20px 40px 20px 40px;
- border: 1px solid #0000CC;
- background-color: #EEEEFF;
- font-size: 9pt;
- padding: 20px;
+ margin: 20px 40px 20px 40px;
+ border: 1px solid #0000CC;
+ background-color: #EEEEFF;
+ font-size: 9pt;
+ padding: 20px;
}
div.buttons {
- text-align: center;
+ text-align: center;
}
div.versions {
border: 1px dashed #DFDEDE;
- margin-bottom: 15px;
- padding: 5px;
+ margin-bottom: 15px;
+ padding: 5px;
}
div.versions a.expand {
font-size: 7pt;
- color: gray;
+ color: gray;
}
#messages {
}
table.auditlogs {
- text-align: center;
- font-family: Verdana, Geneva, Arial, Helvetica, sans-serif ;
- font-weight: normal;
- font-size: 11px;
- color: #fff;
- width: 100%;
- background-color: #666;
- border: 0px;
- border-collapse: collapse;
- border-spacing: 0px;
+ text-align: center;
+ font-family: Verdana, Geneva, Arial, Helvetica, sans-serif ;
+ font-weight: normal;
+ font-size: 11px;
+ color: #fff;
+ width: 100%;
+ background-color: #666;
+ border: 0px;
+ border-collapse: collapse;
+ border-spacing: 0px;
}
table.auditlogs th {
- background-color: #666;
- color: #fff;
- padding: 4px;
- text-align: center;
- border-bottom: 2px #fff solid;
- font-size: 12px;
- font-weight: bold;
+ background-color: #666;
+ color: #fff;
+ padding: 4px;
+ text-align: center;
+ border-bottom: 2px #fff solid;
+ font-size: 12px;
+ font-weight: bold;
}
table.auditlogs td {
- background-color: #CCC;
- color: #000;
- padding: 4px;
- text-align: center;
- border: 1px #fff solid;
+ background-color: #CCC;
+ color: #000;
+ padding: 4px;
+ text-align: center;
+ border: 1px #fff solid;
}
div.auditLogReportResults {
- border: 1px dashed #DFDEDE;
- margin-bottom: 15px;
- margin-left: 2px;
- padding: 5px;
+ border: 1px dashed #DFDEDE;
+ margin-bottom: 15px;
+ margin-left: 2px;
+ padding: 5px;
}
application/andrew-inset ez
application/atom+xml atom
-application/java-archive jar
+application/java-archive jar
application/mac-binhex40 hqx
application/mac-compactpro cpt
application/mathml+xml mathml
application/oda oda
application/ogg ogg
application/pdf pdf
-application/pgp-encrypted pgp
+application/pgp-encrypted pgp
application/postscript ai eps ps
application/rdf+xml rdf
application/smil smi smil
<listener-class>org.apache.archiva.webdav.util.MavenIndexerCleaner</listener-class>
</listener>
<context-param>
- <param-name>contextClass</param-name>
- <param-value>org.codehaus.redback.components.springutils.CachingWebApplicationContext</param-value>
+ <param-name>contextClass</param-name>
+ <param-value>org.codehaus.redback.components.springutils.CachingWebApplicationContext</param-value>
</context-param>
<context-param>
<listener-class>org.apache.archiva.webdav.util.MavenIndexerCleaner</listener-class>
</listener>
<context-param>
- <param-name>contextClass</param-name>
- <param-value>org.codehaus.redback.components.springutils.CachingWebApplicationContext</param-value>
+ <param-name>contextClass</param-name>
+ <param-value>org.codehaus.redback.components.springutils.CachingWebApplicationContext</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
application/oda oda
application/ogg ogg
application/pdf pdf
-application/pgp-encrypted pgp
+application/pgp-encrypted pgp
application/postscript ai eps ps
application/rdf+xml rdf
application/smil smi smil
~ 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">
-
+
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.archiva</groupId>
~ 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">
+<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.archiva</groupId>