mirror of https://github.com/apache/archiva.git
remove all tab characters and fix some formatting
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1215120 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f5183ff08b
commit
615cfd730e
|
@ -110,7 +110,7 @@
|
|||
</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>
|
||||
|
|
|
@ -31,133 +31,170 @@ Understanding Repository Configuration of Apache Archiva
|
|||
|
||||
~~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:
|
||||
|
||||
* <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.
|
||||
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.
|
||||
|
||||
* <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.
|
||||
|
||||
|
||||
* <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.
|
||||
* <Activate download remote index> - to activate downloading remote index to
|
||||
add available remote artifacts in search queries.
|
||||
|
||||
* <Remote index url, can be relative to url> - path of the remote index directory.
|
||||
* <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)
|
||||
* <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.
|
||||
* <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:
|
||||
|
@ -169,48 +206,61 @@ 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.
|
||||
|
||||
It should be noted that this feature is entirely separate from the repository purge by number of days older and by
|
||||
retention count.
|
||||
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.
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<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" />
|
||||
|
|
|
@ -67,8 +67,8 @@
|
|||
<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>
|
||||
|
@ -162,9 +162,9 @@
|
|||
<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>
|
||||
|
@ -271,7 +271,7 @@
|
|||
</Array>
|
||||
|
||||
<!-- ARCHIVA CONFIG -->
|
||||
|
||||
|
||||
<New id="validation_mail" class="org.eclipse.jetty.plus.jndi.Resource">
|
||||
<Arg>mail/Session</Arg>
|
||||
<Arg>
|
||||
|
|
|
@ -230,10 +230,10 @@
|
|||
}
|
||||
|
||||
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>>();
|
||||
|
||||
|
@ -701,23 +701,23 @@
|
|||
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()
|
||||
{
|
||||
|
|
|
@ -101,16 +101,16 @@ public class WagonDelegate
|
|||
{
|
||||
return delegate.supportsDirectoryCopy();
|
||||
}
|
||||
|
||||
|
||||
public void setTimeout(int val)
|
||||
{
|
||||
// ignore
|
||||
// ignore
|
||||
}
|
||||
|
||||
public int getTimeout()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public Repository getRepository()
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>org.apache.maven.test</groupId>
|
||||
<artifactId>get-default-metadata</artifactId>
|
||||
<version>1.0</version>
|
||||
</metadata>
|
||||
<groupId>org.apache.maven.test</groupId>
|
||||
<artifactId>get-default-metadata</artifactId>
|
||||
<version>1.0</version>
|
||||
</metadata>
|
||||
|
|
|
@ -345,13 +345,13 @@ public abstract class AbstractLegacyRepositoryContentTestCase
|
|||
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";
|
||||
|
@ -360,8 +360,8 @@ public abstract class AbstractLegacyRepositoryContentTestCase
|
|||
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
|
||||
|
|
|
@ -224,6 +224,6 @@ public class Banner
|
|||
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 );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,118 +44,117 @@
|
|||
</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-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>
|
||||
<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>
|
||||
<!-- to cleanup temporary group index created during a session -->
|
||||
<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-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>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>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>
|
||||
<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>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>
|
||||
<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>
|
||||
|
|
|
@ -78,65 +78,65 @@ public class LegacySupportTest
|
|||
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(-)." );
|
||||
}
|
||||
}
|
||||
addLegacyArtifactPath( "test" , "test" , "test" , "1.0-SNAPSHOT" , "<> \\/~+[ ]'\"" , "jar", false );
|
||||
assertTextPresent( "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,55 +61,55 @@ public class NetworkProxiesTest
|
|||
}
|
||||
|
||||
@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" } )
|
||||
|
@ -145,4 +145,4 @@ public class NetworkProxiesTest
|
|||
assertTextPresent( "testing123" );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -114,22 +114,22 @@ grant {
|
|||
permission java.util.PropertyPermission "java.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.vendor.url", "read";
|
||||
permission java.util.PropertyPermission "java.class.version", "read";
|
||||
permission java.util.PropertyPermission "java.specification.version", "read";
|
||||
permission java.util.PropertyPermission "java.specification.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.specification.name", "read";
|
||||
permission java.util.PropertyPermission "java.specification.version", "read";
|
||||
permission java.util.PropertyPermission "java.specification.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.specification.name", "read";
|
||||
|
||||
permission java.util.PropertyPermission "java.vm.specification.version", "read";
|
||||
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.vm.specification.name", "read";
|
||||
permission java.util.PropertyPermission "java.vm.version", "read";
|
||||
permission java.util.PropertyPermission "java.vm.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.vm.name", "read";
|
||||
permission java.util.PropertyPermission "java.vm.specification.version", "read";
|
||||
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.vm.specification.name", "read";
|
||||
permission java.util.PropertyPermission "java.vm.version", "read";
|
||||
permission java.util.PropertyPermission "java.vm.vendor", "read";
|
||||
permission java.util.PropertyPermission "java.vm.name", "read";
|
||||
|
||||
// Required for OpenJMX
|
||||
permission java.lang.RuntimePermission "getAttribute";
|
||||
|
||||
// Allow read of JAXP compliant XML parser debug
|
||||
permission java.util.PropertyPermission "jaxp.debug", "read";
|
||||
// Allow read of JAXP compliant XML parser debug
|
||||
permission java.util.PropertyPermission "jaxp.debug", "read";
|
||||
|
||||
// Precompiled JSPs need access to this package.
|
||||
permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
|
||||
|
|
|
@ -1,35 +1,35 @@
|
|||
<?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>
|
||||
<?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>
|
||||
|
|
|
@ -76,8 +76,8 @@ public class RepositoryActionMapper
|
|||
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 ))
|
||||
|
|
|
@ -19,7 +19,7 @@ application/octet-stream bin dms lha lzh exe class so dll dmg
|
|||
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
|
||||
|
|
|
@ -70,14 +70,14 @@
|
|||
<%--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>
|
||||
|
@ -109,7 +109,7 @@
|
|||
</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}"/>
|
||||
|
@ -127,12 +127,12 @@
|
|||
|
||||
<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>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<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" />
|
||||
|
@ -65,14 +65,14 @@
|
|||
<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"/>
|
||||
|
@ -85,4 +85,4 @@
|
|||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -62,19 +62,18 @@
|
|||
|
||||
<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>
|
||||
|
||||
|
@ -143,14 +142,14 @@
|
|||
<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">
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
</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>
|
||||
|
||||
|
@ -149,10 +149,10 @@
|
|||
<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>
|
||||
|
|
|
@ -27,4 +27,3 @@
|
|||
<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"/>
|
||||
|
|
@ -28,10 +28,7 @@
|
|||
<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"/>
|
||||
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
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" );
|
||||
|
@ -152,4 +152,4 @@
|
|||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -26,150 +26,127 @@
|
|||
|
||||
<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>
|
||||
<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: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>
|
||||
|
|
|
@ -34,23 +34,22 @@
|
|||
<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">
|
||||
|
|
|
@ -33,8 +33,8 @@
|
|||
<script type="text/javascript" charset="utf-8">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$('#startDate').datepicker();
|
||||
$('#endDate').datepicker();
|
||||
$('#startDate').datepicker();
|
||||
$('#endDate').datepicker();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
@ -54,8 +54,8 @@
|
|||
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"/>
|
||||
|
|
|
@ -36,35 +36,35 @@
|
|||
<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>
|
||||
|
@ -73,15 +73,15 @@
|
|||
</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>
|
||||
|
@ -90,34 +90,34 @@
|
|||
<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}"/>
|
||||
|
@ -126,23 +126,23 @@
|
|||
<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>
|
||||
|
@ -159,8 +159,8 @@
|
|||
<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>
|
||||
|
@ -179,10 +179,10 @@
|
|||
<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>
|
||||
|
@ -201,7 +201,7 @@
|
|||
<th>Dlls</th>
|
||||
<th>Zips</th>
|
||||
</tr>
|
||||
|
||||
|
||||
<c:forEach var="stats" items="${repositoryStatistics}">
|
||||
<tr>
|
||||
<td align="right">${stats.scanStartTime}</td>
|
||||
|
@ -221,10 +221,10 @@
|
|||
</tr>
|
||||
</c:forEach>
|
||||
</table>
|
||||
|
||||
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -27,9 +27,9 @@
|
|||
<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 )
|
||||
{
|
||||
|
@ -40,8 +40,8 @@
|
|||
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" );
|
||||
|
@ -50,11 +50,11 @@
|
|||
inp1.setAttribute( "name", field );
|
||||
textfield.appendChild( inp1 );
|
||||
|
||||
row.appendChild( label );
|
||||
row.appendChild( label );
|
||||
row.appendChild( textfield );
|
||||
table.appendChild( row );
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
@ -66,7 +66,7 @@
|
|||
</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"/>
|
||||
|
@ -86,23 +86,23 @@
|
|||
<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>
|
||||
|
@ -110,10 +110,10 @@
|
|||
<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>
|
||||
|
@ -145,160 +145,160 @@
|
|||
</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 --%>
|
||||
|
||||
<%-- 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: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}">
|
||||
<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="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: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: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)}">
|
||||
|
@ -363,4 +363,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -31,10 +31,10 @@
|
|||
<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>
|
||||
|
||||
|
|
|
@ -19,20 +19,20 @@
|
|||
-->
|
||||
|
||||
<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>
|
||||
|
@ -52,38 +52,38 @@
|
|||
</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>
|
||||
|
||||
<!-- this must be before the sitemesh filter -->
|
||||
<filter-mapping>
|
||||
<filter-name>webwork-cleanup</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>sitemesh</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>struts2</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>
|
||||
<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>
|
||||
|
@ -94,42 +94,42 @@
|
|||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<!-- 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>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>
|
||||
|
@ -148,45 +148,45 @@
|
|||
</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>
|
||||
|
|
|
@ -85,7 +85,7 @@ div.clear hr {
|
|||
}
|
||||
|
||||
#leftColumn {
|
||||
width: 170px;
|
||||
width: 170px;
|
||||
float: left;
|
||||
overflow: auto;
|
||||
}
|
||||
|
|
|
@ -33,8 +33,8 @@ select, input {
|
|||
|
||||
select {
|
||||
padding-left: 3px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
height: auto;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
input {
|
||||
|
@ -42,8 +42,8 @@ input {
|
|||
}
|
||||
|
||||
label .required {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
th {
|
||||
|
@ -305,7 +305,7 @@ pre.pom code {
|
|||
#footer {
|
||||
border-top: 1px solid #CCCCCC;
|
||||
padding: 14px 4px 12px 4px;
|
||||
color: #333333;
|
||||
color: #333333;
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
|
@ -327,21 +327,21 @@ blockquote {
|
|||
}
|
||||
|
||||
.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 {
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
}
|
||||
|
||||
#download a {
|
||||
text-decoration: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#download td.type {
|
||||
|
@ -35,215 +35,215 @@
|
|||
}
|
||||
|
||||
#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 {
|
||||
|
@ -253,91 +253,91 @@ 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 {
|
||||
|
@ -361,39 +361,39 @@ div.versions a.expand {
|
|||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
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
|
||||
|
@ -19,7 +19,7 @@ application/octet-stream bin dms lha lzh exe class so dll dmg
|
|||
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
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
<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>
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
<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>
|
||||
|
|
|
@ -19,7 +19,7 @@ application/octet-stream bin dms lha lzh exe class so dll dmg
|
|||
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
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
~ 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>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
~ 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>
|
||||
|
|
Loading…
Reference in New Issue