From: Olivier Lamy Date: Tue, 9 Oct 2012 07:14:38 +0000 (+0000) Subject: [MRM-1686] stop support of struts2 webapp. X-Git-Tag: archiva-1.4-M4~796 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=723b8ae954395837c0019b4cddd8e4b4c334962f;p=archiva.git [MRM-1686] stop support of struts2 webapp. git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1395875 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/archiva-modules/archiva-web/archiva-webapp/pom.xml b/archiva-modules/archiva-web/archiva-webapp/pom.xml deleted file mode 100644 index a3fdbe704..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/pom.xml +++ /dev/null @@ -1,1572 +0,0 @@ - - - - - 4.0.0 - - org.apache.archiva - archiva-web - 1.4-M4-SNAPSHOT - - archiva-webapp - war - Archiva Web :: Application - - - - - ${basedir}/src/test/tomcat/tomcat-context-archiva.xml - ${project.build.directory}/appserver-base - - - - - org.apache.archiva - generic-metadata-support - - - org.apache.archiva - npanday-support - - - org.apache.archiva - repository-statistics - - - org.apache.archiva - problem-reports - - - org.apache.archiva - audit - - - org.apache.archiva - archiva-scheduler-repository - - - org.apache.archiva - archiva-indexer - - - org.codehaus.plexus - plexus-utils - - - org.apache.ant - ant - - - org.apache.maven.indexer - indexer-core - - - org.codehaus.plexus - plexus-container-default - - - classworlds - classworlds - - - commons-logging - commons-logging - - - velocity - velocity-dep - - - org.apache.maven - maven-plugin-registry - - - org.apache.maven - maven-settings - - - com.google.code.atinject - atinject - - - - - org.apache.archiva - archiva-proxy - - - commons-logging - commons-logging-api - - - - - org.apache.archiva - archiva-repository-layer - - - org.apache.archiva - archiva-xml-tools - - - xerces - xercesImpl - - - - - org.apache.archiva - archiva-security - - - org.apache.archiva - archiva-core-consumers - - - org.apache.archiva - archiva-configuration - - - - org.apache.archiva - archiva-metadata-consumer - runtime - - - org.apache.archiva - archiva-lucene-consumers - - - org.apache.lucene - lucene-core - - - org.apache.lucene - lucene-queries - - - org.apache.lucene - lucene-memory - - - org.apache.lucene - lucene-highlighter - - - org.apache.archiva - stage-repository-merge - - - org.apache.archiva - archiva-signature-consumers - - - org.apache.archiva - archiva-applet - - provided - - - org.apache.archiva - archiva-rss - - - org.apache.archiva - archiva-rest-services - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-continuation - - - org.eclipse.jetty - jetty-http - - - org.eclipse.jetty - jetty-io - - - org.eclipse.jetty - jetty-util - - - org.eclipse.jetty - jetty-security - - - commons-logging - commons-logging - - - org.apache.geronimo.specs - geronimo-servlet_3.0_spec - - - org.apache.geronimo.specs - geronimo-javamail_1.4_spec - - - org.apache.geronimo.specs - geronimo-servlet_2.5_spec - - - - - org.apache.archiva - archiva-rest-api - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-continuation - - - org.eclipse.jetty - jetty-http - - - org.eclipse.jetty - jetty-io - - - org.eclipse.jetty - jetty-util - - - org.eclipse.jetty - jetty-security - - - commons-logging - commons-logging - - - org.apache.geronimo.specs - geronimo-servlet_3.0_spec - - - org.apache.geronimo.specs - geronimo-javamail_1.4_spec - - - org.apache.geronimo.specs - geronimo-servlet_2.5_spec - - - - - javax.servlet - servlet-api - provided - - - javax.servlet - jsp-api - provided - - - opensymphony - sitemesh - - - - taglibs - standard - - - - javax.servlet - jstl - - - org.codehaus.plexus - plexus-slf4j-logging - runtime - - - org.codehaus.plexus - plexus-component-api - - - - - org.slf4j - slf4j-ext - - - org.slf4j - jcl-over-slf4j - provided - - - org.apache.logging.log4j.adapters - log4j12-api - runtime - - - org.apache.logging.log4j - log4j-core - runtime - - - org.apache.logging.log4j.adapters - slf4j-impl - runtime - - - httpunit - httpunit - test - - - commons-lang - commons-lang - - - org.apache.commons - commons-compress - - - commons-configuration - commons-configuration - - - commons-beanutils - commons-beanutils-core - - - commons-logging - commons-logging - - - - - commons-digester - commons-digester - - - commons-logging - commons-logging - - - - - commons-beanutils - commons-beanutils - - - commons-logging - commons-logging - - - - - org.codehaus.jackson - jackson-jaxrs - - - org.codehaus.jackson - jackson-xc - - - org.codehaus.jackson - jackson-core-asl - - - org.apache.cxf - cxf-bundle-jaxrs - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-continuation - - - org.eclipse.jetty - jetty-http - - - org.eclipse.jetty - jetty-io - - - org.eclipse.jetty - jetty-util - - - org.eclipse.jetty - jetty-security - - - commons-logging - commons-logging - - - org.apache.geronimo.specs - geronimo-servlet_3.0_spec - - - org.apache.geronimo.specs - geronimo-javamail_1.4_spec - - - org.apache.geronimo.specs - geronimo-servlet_2.5_spec - - - org.codehaus.jettison - jettison - - - com.sun.xml.bind - jaxb-impl - - - javax.xml.bind - jaxb-api - - - - - ognl - ognl - 3.0.2 - - - org.apache.struts - struts2-core - - - org.apache.struts - struts2-sitemesh-plugin - ${struts.version} - - - org.apache.archiva.redback.components.registry - spring-registry-api - - - org.springframework - spring-test - - - - - org.apache.archiva.redback.components.registry - spring-registry-commons - - - org.springframework - spring-test - - - - - org.apache.archiva.redback.components.cache - spring-cache-api - - - org.apache.archiva.redback.components - spring-jdo2 - - - org.apache.archiva.redback.components.cache - spring-cache-ehcache - - - commons-logging - commons-logging - - - - - net.sf.ehcache - ehcache-core - - - commons-logging - commons-logging - - - - - - - org.apache.archiva.redback - redback-struts2-integration - - - org.slf4j - jcl-over-slf4j - - - - - org.apache.archiva.redback - redback-common-integrations - - - - org.apache.archiva.redback - redback-keys-memory - - - commons-logging - commons-logging - - - - - - org.apache.archiva.redback - redback-rest-services - - - org.eclipse.jetty - jetty-server - - - org.eclipse.jetty - jetty-continuation - - - org.eclipse.jetty - jetty-http - - - org.eclipse.jetty - jetty-io - - - org.eclipse.jetty - jetty-util - - - org.eclipse.jetty - jetty-security - - - commons-logging - commons-logging - - - org.apache.geronimo.specs - geronimo-servlet_3.0_spec - - - org.apache.geronimo.specs - geronimo-javamail_1.4_spec - - - org.apache.geronimo.specs - geronimo-servlet_2.5_spec - - - - - - org.apache.archiva.redback - redback-struts2-content - runtime - war - - - - - org.apache.archiva - archiva-webdav - - - org.slf4j - jcl-over-slf4j - - - - - org.apache.archiva - archiva-web-common - - - org.apache.struts - struts2-spring-plugin - runtime - - - commons-io - commons-io - - - org.springframework - spring-web - - - javax.mail - mail - provided - - - javax.activation - activation - provided - - - org.apache.archiva.redback.components - spring-taskqueue - - - org.apache.archiva.redback.components - spring-quartz - - - org.quartz-scheduler - quartz - - - c3p0 - c3p0 - - - javax.transaction - jta - - - - - commons-fileupload - commons-fileupload - - - commons-codec - commons-codec - - - stax - stax - - - stax - stax-api - - - - - org.apache.maven.wagon - wagon-http - runtime - - - org.apache.maven.wagon - wagon-http-lightweight - runtime - - - org.apache.maven.wagon - wagon-file - runtime - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-logging - commons-logging - - - - - org.apache.httpcomponents - httpcore - ${httpclient.core.version} - - - commons-logging - commons-logging - - - - - commons-logging - commons-logging - runtime - - - - org.apache.archiva - metadata-model - - - - org.apache.maven - maven-model - ${maven3x.version} - - - org.apache.maven - maven-model-builder - ${maven3x.version} - - - org.sonatype.sisu - sisu-inject-plexus - - - org.sonatype.sisu - sisu-guice - - - - - org.sonatype.sisu - sisu-guice - - - org.sonatype.sisu - sisu-guava - - - - - org.apache.archiva - archiva-plexus-bridge - - - - org.apache.archiva - archiva-repository-admin-api - - - - - org.apache.archiva - archiva-repository-admin-default - - - - org.apache.archiva - metadata-repository-api - - - org.apache.archiva - metadata-store-jcr - - - org.apache.jackrabbit - jackrabbit-jcr-commons - - - org.apache.jackrabbit - jackrabbit-core - - - commons-logging - commons-logging - - - org.slf4j - jcl-over-slf4j - - - commons-dbcp - commons-dbcp - - - - - org.apache.velocity - velocity - - - org.apache.velocity - velocity-tools - 1.3 - runtime - - - commons-logging - commons-logging - - - velocity - velocity-dep - - - velocity - velocity - - - struts - struts - - - - - org.apache.archiva - - maven2-repository - - - log4j - log4j - - - - - org.mockito - mockito-all - test - - - org.apache.struts - struts2-junit-plugin - test - ${struts.version} - - - org.springframework - spring-test - - - - - org.springframework - spring-test - test - - - cglib - cglib - - - jpox - jpox - - - javax.transaction - jta - - - log4j - log4j - - - - - jpox - jpox-ehcache - - - commons-logging - commons-logging - - - ehcache - ehcache - - - log4j - log4j - - - - - org.eclipse.jetty - jetty-server - ${jettyVersion} - test - - - org.eclipse.jetty - jetty-continuation - ${jettyVersion} - test - - - org.eclipse.jetty - jetty-http - ${jettyVersion} - test - - - org.eclipse.jetty - jetty-io - ${jettyVersion} - test - - - org.eclipse.jetty - jetty-util - ${jettyVersion} - test - - - org.eclipse.jetty - jetty-security - ${jettyVersion} - test - - - org.eclipse.jetty - jetty-plus - ${jettyVersion} - test - - - org.apache.archiva.redback - redback-rest-services - tests - test - - - - - org.apache.struts - struts-annotations - 1.0.5 - compile - true - - - - org.apache.archiva - archiva-web-common - tests - test - ${project.version} - - - - org.apache.archiva - archiva-test-utils - ${project.version} - test - - - org.slf4j - slf4j-simple - - - org.springframework - spring-test - - - - - - - - src/main/resources - - - src/main/filtered-resources - true - - - - - org.apache.maven.plugins - maven-surefire-plugin - - -XX:MaxPermSize=256m -client - alphabetical - - ${project.build.directory}/appserver-base - ${project.build.directory}/appserver-base - ${project.build.directory}/appserver-base - ${archiva.baseRestUrl} - ${rest.admin.pwd} - ${basedir}/target/archiva.xml - ${project.build.testOutputDirectory} - ${redbackTestJdbcUrl} - ${redbackTestJdbcDriver} - ${basedir} - ${project.build.directory} - ${project.build.directory} - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - copy-web-config-files - - run - - compile - - - - - - - - - - - generate-resources - - run - - - - - - - - - - - - - org.apache.maven.plugins - maven-war-plugin - 2.1.1 - - false - META-INF/**,WEB-INF/web.xml,WEB-INF/classes/xwork.xml,WEB-INF/lib/** - - - WEB-INF/lib/xalan-*.jar,WEB-INF/lib/velocity-dep-*.jar,WEB-INF/lib/xml-apis-*.jar,WEB-INF/lib/wstx-asl-*.jar,WEB-INF/lib/stax-utils-*.jar,WEB-INF/lib/xercesImpl-*.jar,WEB-INF/lib/commons-lang-*.jar,WEB-INF/lib/commons-configuration-*.jar,WEB-INF/lib/jetty-*.jar - - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - - - redback-contents - org.apache.archiva.redback - redback-struts2-content - - WEB-INF/lib/**.jar - WEB-INF/web.xml - META-INF/** - - - - - - - org.apache.felix - maven-bundle-plugin - - - bundle-manifest - process-classes - - manifest - - - - org.apache.archiva.webapp - ${project.version} - - org.apache.archiva.web.action*;version=${project.version}, - org.apache.archiva.web.interceptor*;version=${project.version}, - org.apache.archiva.web.mapper*;version=${project.version}, - org.apache.archiva.web.tags*;version=${project.version}, - org.apache.archiva.web.util*;version=${project.version}, - org.apache.archiva.web.validator*;version=${project.version} - - - com.opensymphony.xwork2, - com.opensymphony.xwork2.config, - com.opensymphony.xwork2.interceptor, - com.opensymphony.xwork2.util, - com.opensymphony.xwork2.validator, - com.opensymphony.xwork2.validator.validators, - com.sun.syndication.feed.synd, - com.sun.syndication.io, - javax.annotation, - javax.inject, - javax.servlet, - javax.servlet.http, - javax.servlet.jsp, - javax.servlet.jsp.tagext, - org.apache.archiva.admin.model;version=${project.version}, - org.apache.archiva.admin.model.admin;version=${project.version}, - org.apache.archiva.admin.model.beans;version=${project.version}, - org.apache.archiva.admin.model.group;version=${project.version}, - org.apache.archiva.admin.model.managed;version=${project.version}, - org.apache.archiva.admin.model.networkproxy;version=${project.version}, - org.apache.archiva.admin.model.proxyconnector;version=${project.version}, - org.apache.archiva.admin.model.remote;version=${project.version}, - org.apache.archiva.admin.repository;version=${project.version}, - org.apache.archiva.admin.repository.admin;version=${project.version}, - org.apache.archiva.admin.repository.utils;version=${project.version}, - org.apache.archiva.audit;version=${project.version}, - org.apache.archiva.checksum;version=${project.version}, - org.apache.archiva.common;version=${project.version}, - org.apache.archiva.common.utils;version=${project.version}, - org.apache.archiva.configuration;version=${project.version}, - org.apache.archiva.consumers;version=${project.version}, - org.apache.archiva.dependency.tree.maven2;version=${project.version}, - org.apache.archiva.indexer.search;version=${project.version}, - org.apache.archiva.metadata.generic;version=${project.version}, - org.apache.archiva.metadata.model;version=${project.version}, - org.apache.archiva.metadata.repository;version=${project.version}, - org.apache.archiva.metadata.repository.filter;version=${project.version}, - org.apache.archiva.metadata.repository.stats;version=${project.version}, - org.apache.archiva.metadata.repository.storage.maven2;version=${project.version}, - org.apache.archiva.model;version=${project.version}, - org.apache.archiva.policies;version=${project.version}, - org.apache.archiva.reports;version=${project.version}, - org.apache.archiva.repository;version=${project.version}, - org.apache.archiva.repository.metadata;version=${project.version}, - org.apache.archiva.repository.scanner;version=${project.version}, - org.apache.archiva.rest.api.model;version=${project.version}, - org.apache.archiva.rest.api.services;version=${project.version}, - org.apache.archiva.rss.processor;version=${project.version}, - org.apache.archiva.scheduler;version=${project.version}, - org.apache.archiva.scheduler.indexing;version=${project.version}, - org.apache.archiva.scheduler.repository;version=${project.version}, - org.apache.archiva.security;version=${project.version}, - org.apache.archiva.stagerepository.merge;version=${project.version}, - org.apache.commons.codec;version="[1.3,2)", - org.apache.commons.codec.binary;version="[1.3,2)", - org.apache.commons.collections;version="[3.2,4)", - org.apache.commons.io;version="[1.4,2)", - org.apache.commons.lang*;version="[2.4,3)", - org.apache.maven.artifact, - org.apache.maven.artifact.versioning, - org.apache.maven.model, - org.apache.maven.model.io.xpp3, - org.apache.maven.shared.dependency.tree, - org.apache.maven.shared.dependency.tree.traversal, - org.apache.struts2*;version="[2.2,3)", - org.apache.taglibs.standard.tag.common.core, - org.apache.taglibs.standard.tag.el.core, - org.codehaus.plexus.cache, - org.apache.archiva.redback.authentication, - org.apache.archiva.redback.authorization, - org.apache.archiva.redback.policy, - org.apache.archiva.redback.system, - org.apache.archiva.redback.users, - org.codehaus.plexus.registry, - org.apache.archiva.redback.components.taskqueue, - org.codehaus.plexus.util, - org.codehaus.redback.components.scheduler, - org.apache.archiva.redback.integration.filter.authentication, - org.codehaus.redback.integration.interceptor, - org.apache.archiva.redback.rest.services, - org.slf4j;resolution:=optional, - org.springframework*;version="[3,4)", - org.springframework.web*;version="[3,4)" - - - - - - - - jar - bundle - war - - - - - - org.mortbay.jetty - jetty-maven-plugin - ${jettyVersion} - - - / - - src/main/webapp,target/archiva,target/redback - - - - / - ${basedir}/src/main/webapp/WEB_INF/web.xml - ${basedir}/src/jetty-env.xml - - - 10 - - - - 9091 - 60000 - - - - - plexus.home - ${project.build.directory}/appserver-base - - - appserver.base - ${project.build.directory}/appserver-base - - - appserver.home - ${project.build.directory}/appserver-home - - - derby.system.home - ${project.build.directory}/appserver-base/logs - - - - - - org.apache.derby - derby - ${derbyVersion} - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - unpack-redback-war - - unpack - - compile - - - - org.apache.archiva.redback - redback-struts2-content - ${redback.version} - war - false - ${project.build.directory}/redback - **/struts-security.xml - - - - - - copy - process-resources - - copy - - - - - ${project.groupId} - archiva-applet - ${project.version} - src/main/webapp - archiva-applet.jar - - - - - - - - - - - org.apache.rat - apache-rat-plugin - - - appserver-base/** - overlays/** - src/appserver-base/conf/** - src/appserver-base/logs/** - src/main/webapp/WEB-INF/lib - src/main/webapp/js/jquery-1.6.1.min.js - src/main/webapp/js/jquery-ui-1.8.14.custom.min.js - src/main/webapp/js/md5.js - src/main/webapp/css/no-theme/** - src/main/webapp/css/redback/** - src/main/webapp/WEB-INF/jsp/redback/** - src/main/resources/archiva-mime-types.txt - src/test/resources/test-repo/** - src/test/resources/** - src/sql/** - src/test/repositories/test-repo/** - src/main/webapp/META-INF/MANIFEST.MF - src/main/webapp/WEB-INF/classes/struts-security.xml - - - - - - - - - mysql - - - mysql - mysql-connector-java - 5.0.4 - - - - - - org.mortbay.jetty - maven-jetty-plugin - - src/jetty-env-mysql.xml - - - - - - - postgres - - - postgresql - postgresql - 8.2-504.jdbc3 - - - - - - org.mortbay.jetty - maven-jetty-plugin - - src/jetty-env-postgres.xml - - - - - - - - dev - - - - org.apache.maven.plugins - maven-dependency-plugin - - - - copy - process-resources - - copy - - - true - - - ${project.groupId} - archiva-applet - ${project.version} - src/main/webapp - archiva-applet.jar - - - - - - - unpack-redback-war - - unpack - - compile - - - - org.apache.archiva.redback - redback-struts2-content - ${redback.version} - war - false - ${basedir}/src/main/webapp - **/web.xml,**/struts*.jar,**/sitemesh*.jar - - - - - - - - - - - - org.apache.archiva - metadata-store-jcr - compile - - - org.apache.jackrabbit - jackrabbit-core - compile - - - commons-logging - commons-logging - - - - - - - - tomcat - - - - org.apache.maven.plugins - maven-dependency-plugin - - - - copy - process-resources - - copy - - - true - - - ${project.groupId} - archiva-applet - ${project.version} - src/main/webapp - archiva-applet.jar - - - - - - - unpack-redback-war - - unpack - - compile - - - - org.apache.archiva.redback - redback-struts2-content - ${redback.version} - war - false - ${basedir}/src/main/webapp - **/web.xml,**/**.jar,**/struts-security.xml - - - - - - - - org.apache.tomcat.maven - tomcat6-maven-plugin - - 9091 - /archiva - ${tomcatContextXml} - - ${archivaAppServerBase} - ${archivaAppServerBase} - ${archivaAppServerBase} - ${archivaAppServerBase}/logs - ${basedir}/src/test/tomcat/auto-admin-creation.properties - ${project.build.directory} - - - ${basedir}/src/test/tomcat - - - - - org.apache.derby - derby - ${derbyVersion} - - - javax.mail - mail - ${javaxMailVersion} - - - - - org.apache.tomcat.maven - tomcat7-maven-plugin - - 9091 - /archiva - ${tomcatContextXml} - - ${archivaAppServerBase} - ${archivaAppServerBase} - ${archivaAppServerBase} - ${archivaAppServerBase}/logs - ${basedir}/src/test/tomcat/auto-admin-creation.properties - ${project.build.directory} - - - ${basedir}/src/test/tomcat - - - - - org.apache.derby - derby - ${derbyVersion} - - - javax.mail - mail - 1.4 - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/archiva.xml b/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/archiva.xml deleted file mode 100644 index 9afb83352..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/archiva.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml b/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml deleted file mode 100644 index 9afb83352..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/conf/shared.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/logs/.donotdelete b/archiva-modules/archiva-web/archiva-webapp/src/appserver-base/logs/.donotdelete deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml b/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml deleted file mode 100644 index 06d111b31..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-mysql.xml +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - mail/Session - - - - - - - localhost - 25 - - - - - - - - - - - jdbc/users - - - - localhost - redback - archiva - sa - - - - - - jdbc/usersShutdown - - - jdbc:mysql://localhost/redback - archiva - sa - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml b/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml deleted file mode 100644 index ca1862607..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/jetty-env-postgres.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - mail/Session - - - - - - - localhost - continuum@localhost - Continuum - true - - - - - - - - jdbc/users - - - localhost - users - postgres - sparky - - - - - jdbc/users_shutdown - - - localhost - users - postgres - sparky - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml b/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml deleted file mode 100644 index 8beae6efa..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/jetty-env.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - mail/Session - - - - - - - localhost - archiva@localhost - Archiva - true - - - - - - - - - - jdbc/users - - - ../databases/users - sa - create - - - - - - - jdbc/usersShutdown - - - ../databases/users - sa - shutdown - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractActionSupport.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractActionSupport.java deleted file mode 100644 index e092fe319..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractActionSupport.java +++ /dev/null @@ -1,389 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.ActionSupport; -import org.apache.archiva.admin.model.AuditInformation; -import org.apache.archiva.audit.AuditEvent; -import org.apache.archiva.audit.AuditListener; -import org.apache.archiva.audit.Auditable; -import org.apache.archiva.metadata.repository.RepositorySessionFactory; -import org.apache.archiva.redback.users.User; -import org.apache.archiva.security.ArchivaXworkUser; -import org.apache.archiva.web.runtime.ArchivaRuntimeInfo; -import org.apache.commons.lang.StringUtils; -import org.apache.struts2.ServletActionContext; -import org.apache.struts2.interceptor.SessionAware; -import org.apache.archiva.redback.rest.services.RedbackRequestInformation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.ApplicationContext; - -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import javax.inject.Named; -import javax.servlet.http.HttpServletRequest; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * LogEnabled and SessionAware ActionSupport - */ -public abstract class AbstractActionSupport - extends ActionSupport - implements SessionAware, Auditable -{ - protected Map session; - - protected Logger log = LoggerFactory.getLogger( getClass() ); - - @Inject - private List auditListeners = new ArrayList(); - - - @Inject - @Named( value = "repositorySessionFactory" ) - protected RepositorySessionFactory repositorySessionFactory; - - @Inject - protected ApplicationContext applicationContext; - - private String principal; - - @Inject - private ArchivaRuntimeInfo archivaRuntimeInfo; - - @PostConstruct - public void initialize() - { - // no op - } - - @SuppressWarnings( "unchecked" ) - public void setSession( Map map ) - { - this.session = map; - } - - public void addAuditListener( AuditListener listener ) - { - this.auditListeners.add( listener ); - } - - public void clearAuditListeners() - { - this.auditListeners.clear(); - } - - public void removeAuditListener( AuditListener listener ) - { - this.auditListeners.remove( listener ); - } - - protected void triggerAuditEvent( String repositoryId, String resource, String action ) - { - AuditEvent event = new AuditEvent( repositoryId, getPrincipal(), resource, action ); - event.setRemoteIP( getRemoteAddr() ); - - for ( AuditListener listener : auditListeners ) - { - listener.auditEvent( event ); - } - } - - protected void triggerAuditEvent( String resource, String action ) - { - AuditEvent event = new AuditEvent( null, getPrincipal(), resource, action ); - event.setRemoteIP( getRemoteAddr() ); - - for ( AuditListener listener : auditListeners ) - { - listener.auditEvent( event ); - } - } - - protected void triggerAuditEvent( String action ) - { - AuditEvent event = new AuditEvent( null, getPrincipal(), null, action ); - event.setRemoteIP( getRemoteAddr() ); - - for ( AuditListener listener : auditListeners ) - { - listener.auditEvent( event ); - } - } - - private String getRemoteAddr() - { - HttpServletRequest request = ServletActionContext.getRequest(); - return request != null ? request.getRemoteAddr() : null; - } - - @SuppressWarnings( "unchecked" ) - protected String getPrincipal() - { - if ( principal != null ) - { - return principal; - } - return ArchivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - } - - void setPrincipal( String principal ) - { - this.principal = principal; - } - - public void setAuditListeners( List auditListeners ) - { - this.auditListeners = auditListeners; - } - - public void setRepositorySessionFactory( RepositorySessionFactory repositorySessionFactory ) - { - this.repositorySessionFactory = repositorySessionFactory; - } - - protected Map getBeansOfType( Class clazz ) - { - //TODO do some caching here !!! - // olamy : with plexus we get only roleHint - // as per convention we named spring bean role#hint remove role# if exists - Map springBeans = applicationContext.getBeansOfType( clazz ); - - Map beans = new HashMap( springBeans.size() ); - - for ( Map.Entry entry : springBeans.entrySet() ) - { - String key = StringUtils.substringAfterLast( entry.getKey(), "#" ); - beans.put( key, entry.getValue() ); - } - return beans; - } - - - protected AuditInformation getAuditInformation() - { - AuditInformation auditInformation = new AuditInformation( new SimpleUser( getPrincipal() ), getRemoteAddr() ); - - return auditInformation; - } - - protected RedbackRequestInformation getRedbackRequestInformation() - { - return new RedbackRequestInformation( new SimpleUser( getPrincipal() ), getRemoteAddr() ); - } - - public String getArchivaVersion() - { - return archivaRuntimeInfo.getVersion(); - } - - public String getArchivaBuildNumber() - { - return archivaRuntimeInfo.getBuildNumber(); - } - - public String getArchivaBuildTimestamp() - { - return Long.toString( - archivaRuntimeInfo.getTimestamp() ); - } - - public String getArchivaBuildTimestampDateStr() - { - SimpleDateFormat sfd = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssz", getLocale() ); - return sfd.format( new Date( archivaRuntimeInfo.getTimestamp() ) ); - } - - /** - * dummy information for audit events - * - * @since 1.4-M1 - */ - private static class SimpleUser - implements User - { - - private String principal; - - protected SimpleUser( String principal ) - { - this.principal = principal; - } - - public Object getPrincipal() - { - return this.principal; - } - - public String getUsername() - { - return this.principal; - } - - public void setUsername( String name ) - { - - } - - public String getFullName() - { - return null; - } - - public void setFullName( String name ) - { - - } - - public String getEmail() - { - return null; - } - - public void setEmail( String address ) - { - - } - - public String getPassword() - { - return null; - } - - public void setPassword( String rawPassword ) - { - - } - - public String getEncodedPassword() - { - return null; - } - - public void setEncodedPassword( String encodedPassword ) - { - - } - - public Date getLastPasswordChange() - { - return null; - } - - public void setLastPasswordChange( Date passwordChangeDate ) - { - - } - - public List getPreviousEncodedPasswords() - { - return null; - } - - public void setPreviousEncodedPasswords( List encodedPasswordList ) - { - - } - - public void addPreviousEncodedPassword( String encodedPassword ) - { - - } - - public boolean isPermanent() - { - return false; - } - - public void setPermanent( boolean permanent ) - { - - } - - public boolean isLocked() - { - return false; - } - - public void setLocked( boolean locked ) - { - - } - - public boolean isPasswordChangeRequired() - { - return false; - } - - public void setPasswordChangeRequired( boolean changeRequired ) - { - - } - - public boolean isValidated() - { - return false; - } - - public void setValidated( boolean valid ) - { - - } - - public int getCountFailedLoginAttempts() - { - return 0; - } - - public void setCountFailedLoginAttempts( int count ) - { - - } - - public Date getAccountCreationDate() - { - return null; - } - - public void setAccountCreationDate( Date date ) - { - - } - - public Date getLastLoginDate() - { - return null; - } - - public void setLastLoginDate( Date date ) - { - - } - } - - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractRepositoryBasedAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractRepositoryBasedAction.java deleted file mode 100644 index 60a19b219..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/AbstractRepositoryBasedAction.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import org.apache.archiva.security.AccessDeniedException; -import org.apache.archiva.security.ArchivaSecurityException; -import org.apache.archiva.security.PrincipalNotFoundException; -import org.apache.archiva.security.UserRepositories; - -import javax.inject.Inject; -import java.util.Collections; -import java.util.List; - -public class AbstractRepositoryBasedAction - extends AbstractActionSupport -{ - - @Inject - private UserRepositories userRepositories; - - protected List getObservableRepos() - { - try - { - List ids = userRepositories.getObservableRepositoryIds( getPrincipal() ); - return ids == null ? Collections.emptyList() : ids; - } - catch ( PrincipalNotFoundException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - public void setUserRepositories( UserRepositories userRepositories ) - { - this.userRepositories = userRepositories; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/BrowseAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/BrowseAction.java deleted file mode 100644 index 5c040c729..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/BrowseAction.java +++ /dev/null @@ -1,393 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import org.apache.archiva.metadata.model.ProjectVersionMetadata; -import org.apache.archiva.metadata.repository.MetadataResolutionException; -import org.apache.archiva.metadata.repository.MetadataResolver; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -/** - * Browse the repository. - * - * @todo implement repository selectors (all or specific repository) - */ -@Controller( "browseAction" ) -@Scope( "prototype" ) -public class BrowseAction - extends AbstractRepositoryBasedAction -{ - private String groupId; - - private String artifactId; - - private String repositoryId; - - private ProjectVersionMetadata sharedModel; - - private Collection namespaces; - - private Collection projectIds; - - private Collection projectVersions; - - public String browse() - throws MetadataResolutionException - { - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - Set namespaces = new LinkedHashSet(); - - // TODO: this logic should be optional, particularly remembering we want to keep this code simple - // it is located here to avoid the content repository implementation needing to do too much for what - // is essentially presentation code - Set namespacesToCollapse; - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataResolver metadataResolver = repositorySession.getResolver(); - namespacesToCollapse = new LinkedHashSet(); - for ( String repoId : selectedRepos ) - { - namespacesToCollapse.addAll( metadataResolver.resolveRootNamespaces( repositorySession, repoId ) ); - } - - for ( String n : namespacesToCollapse ) - { - // TODO: check performance of this - namespaces.add( collapseNamespaces( repositorySession, metadataResolver, selectedRepos, n ) ); - } - } - finally - { - repositorySession.close(); - } - - this.namespaces = getSortedList( namespaces ); - return SUCCESS; - } - - private String collapseNamespaces( RepositorySession repositorySession, MetadataResolver metadataResolver, - Collection repoIds, String n ) - throws MetadataResolutionException - { - Set subNamespaces = new LinkedHashSet(); - for ( String repoId : repoIds ) - { - subNamespaces.addAll( metadataResolver.resolveNamespaces( repositorySession, repoId, n ) ); - } - if ( subNamespaces.size() != 1 ) - { - log.debug( "{} is not collapsible as it has sub-namespaces: {}", n, subNamespaces ); - return n; - } - else - { - for ( String repoId : repoIds ) - { - Collection projects = metadataResolver.resolveProjects( repositorySession, repoId, n ); - if ( projects != null && !projects.isEmpty() ) - { - log.debug( "{} is not collapsible as it has projects", n ); - return n; - } - } - return collapseNamespaces( repositorySession, metadataResolver, repoIds, - n + "." + subNamespaces.iterator().next() ); - } - } - - public String browseGroup() - throws MetadataResolutionException - { - if ( StringUtils.isEmpty( groupId ) ) - { - // TODO: i18n - addActionError( "You must specify a group ID to browse" ); - return ERROR; - } - - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - Set projects = new LinkedHashSet(); - - RepositorySession repositorySession = repositorySessionFactory.createSession(); - Set namespaces; - try - { - MetadataResolver metadataResolver = repositorySession.getResolver(); - - Set namespacesToCollapse = new LinkedHashSet(); - for ( String repoId : selectedRepos ) - { - namespacesToCollapse.addAll( metadataResolver.resolveNamespaces( repositorySession, repoId, groupId ) ); - - projects.addAll( metadataResolver.resolveProjects( repositorySession, repoId, groupId ) ); - } - - // TODO: this logic should be optional, particularly remembering we want to keep this code simple - // it is located here to avoid the content repository implementation needing to do too much for what - // is essentially presentation code - namespaces = new LinkedHashSet(); - for ( String n : namespacesToCollapse ) - { - // TODO: check performance of this - namespaces.add( - collapseNamespaces( repositorySession, metadataResolver, selectedRepos, groupId + "." + n ) ); - } - } - finally - { - repositorySession.close(); - } - - this.namespaces = getSortedList( namespaces ); - this.projectIds = getSortedList( projects ); - return SUCCESS; - } - - private List getSortedList( Set set ) - { - List list = new ArrayList( set ); - Collections.sort( list ); - return list; - } - - public String browseArtifact() - throws MetadataResolutionException - { - if ( StringUtils.isEmpty( groupId ) ) - { - // TODO: i18n - addActionError( "You must specify a group ID to browse" ); - return ERROR; - } - - if ( StringUtils.isEmpty( artifactId ) ) - { - // TODO: i18n - addActionError( "You must specify a artifact ID to browse" ); - return ERROR; - } - - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty( selectedRepos ) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataResolver metadataResolver = repositorySession.getResolver(); - - Set versions = new LinkedHashSet(); - for ( String repoId : selectedRepos ) - { - versions.addAll( - metadataResolver.resolveProjectVersions( repositorySession, repoId, groupId, artifactId ) ); - } - - // TODO: sort by known version ordering method - this.projectVersions = new ArrayList( versions ); - - populateSharedModel( repositorySession, metadataResolver, selectedRepos, versions ); - } - finally - { - repositorySession.close(); - } - - return SUCCESS; - } - - private void populateSharedModel( RepositorySession repositorySession, MetadataResolver metadataResolver, - Collection selectedRepos, Collection projectVersions ) - { - sharedModel = new ProjectVersionMetadata(); - - MavenProjectFacet mavenFacet = new MavenProjectFacet(); - mavenFacet.setGroupId( groupId ); - mavenFacet.setArtifactId( artifactId ); - sharedModel.addFacet( mavenFacet ); - - boolean isFirstVersion = true; - - for ( String version : projectVersions ) - { - ProjectVersionMetadata versionMetadata = null; - for ( String repoId : selectedRepos ) - { - if ( versionMetadata == null ) - { - try - { - versionMetadata = - metadataResolver.resolveProjectVersion( repositorySession, repoId, groupId, artifactId, - version ); - } - catch ( MetadataResolutionException e ) - { - log.error( - "Skipping invalid metadata while compiling shared model for " + groupId + ":" + artifactId - + " in repo " + repoId + ": " + e.getMessage() ); - } - } - } - - if ( versionMetadata == null ) - { - continue; - } - - if ( isFirstVersion ) - { - sharedModel = versionMetadata; - sharedModel.setId( null ); - } - else - { - MavenProjectFacet versionMetadataMavenFacet = - (MavenProjectFacet) versionMetadata.getFacet( MavenProjectFacet.FACET_ID ); - if ( versionMetadataMavenFacet != null ) - { - if ( mavenFacet.getPackaging() != null && !StringUtils.equalsIgnoreCase( mavenFacet.getPackaging(), - versionMetadataMavenFacet.getPackaging() ) ) - { - mavenFacet.setPackaging( null ); - } - } - - if ( sharedModel.getName() != null && !StringUtils.equalsIgnoreCase( sharedModel.getName(), - versionMetadata.getName() ) ) - { - sharedModel.setName( "" ); - } - - if ( sharedModel.getDescription() != null && !StringUtils.equalsIgnoreCase( - sharedModel.getDescription(), versionMetadata.getDescription() ) ) - { - sharedModel.setDescription( null ); - } - - if ( sharedModel.getIssueManagement() != null && versionMetadata.getIssueManagement() != null - && !StringUtils.equalsIgnoreCase( sharedModel.getIssueManagement().getUrl(), - versionMetadata.getIssueManagement().getUrl() ) ) - { - sharedModel.setIssueManagement( null ); - } - - if ( sharedModel.getCiManagement() != null && versionMetadata.getCiManagement() != null - && !StringUtils.equalsIgnoreCase( sharedModel.getCiManagement().getUrl(), - versionMetadata.getCiManagement().getUrl() ) ) - { - sharedModel.setCiManagement( null ); - } - - if ( sharedModel.getOrganization() != null && versionMetadata.getOrganization() != null - && !StringUtils.equalsIgnoreCase( sharedModel.getOrganization().getName(), - versionMetadata.getOrganization().getName() ) ) - { - sharedModel.setOrganization( null ); - } - - if ( sharedModel.getUrl() != null && !StringUtils.equalsIgnoreCase( sharedModel.getUrl(), - versionMetadata.getUrl() ) ) - { - sharedModel.setUrl( null ); - } - } - - isFirstVersion = false; - } - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public Collection getNamespaces() - { - return namespaces; - } - - public String getRepositoryId() - { - - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - - this.repositoryId = repositoryId; - } - - public ProjectVersionMetadata getSharedModel() - { - return sharedModel; - } - - public Collection getProjectIds() - { - return projectIds; - } - - public Collection getProjectVersions() - { - return projectVersions; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/DeleteArtifactAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/DeleteArtifactAction.java deleted file mode 100644 index cdf446c52..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/DeleteArtifactAction.java +++ /dev/null @@ -1,330 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.audit.Auditable; -import org.apache.archiva.checksum.ChecksumAlgorithm; -import org.apache.archiva.common.utils.VersionUtil; -import org.apache.archiva.maven2.model.Artifact; -import org.apache.archiva.rest.api.services.ArchivaRestServiceException; -import org.apache.archiva.rest.api.services.RepositoriesService; -import org.apache.archiva.security.AccessDeniedException; -import org.apache.archiva.security.ArchivaSecurityException; -import org.apache.archiva.security.PrincipalNotFoundException; -import org.apache.archiva.security.UserRepositories; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.redback.rest.services.RedbackAuthenticationThreadLocal; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import java.util.Collections; -import java.util.List; - -/** - * Delete an artifact. Metadata will be updated if one exists, otherwise it would be created. - */ -@Controller( "deleteArtifactAction" ) -@Scope( "prototype" ) -public class DeleteArtifactAction - extends AbstractActionSupport - implements Validateable, Preparable, Auditable -{ - /** - * The groupId of the artifact to be deleted. - */ - private String groupId; - - /** - * The artifactId of the artifact to be deleted. - */ - private String artifactId; - - /** - * The version of the artifact to be deleted. - */ - private String version; - - /** - * @since 1.4-M2 - * The classifier of the artifact to be deleted (optionnal) - */ - private String classifier; - - /** - * @since 1.4-M2 - * The type of the artifact to be deleted (optionnal) (default jar) - */ - private String type; - - /** - * The repository where the artifact is to be deleted. - */ - private String repositoryId; - - /** - * List of managed repositories to delete from. - */ - private List managedRepos; - - @Inject - private UserRepositories userRepositories; - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; - - @Inject - private RepositoriesService repositoriesService; - - private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 }; - - @PostConstruct - public void initialize() - { - super.initialize(); - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public List getManagedRepos() - { - return managedRepos; - } - - public void setManagedRepos( List managedRepos ) - { - this.managedRepos = managedRepos; - } - - public void prepare() - { - managedRepos = getManagableRepos(); - } - - public String getClassifier() - { - return classifier; - } - - public void setClassifier( String classifier ) - { - this.classifier = classifier; - } - - public String getType() - { - return type; - } - - public void setType( String type ) - { - this.type = type; - } - - public String input() - { - return INPUT; - } - - private void reset() - { - // reset the fields so the form is clear when - // the action returns to the jsp page - groupId = ""; - artifactId = ""; - version = ""; - repositoryId = ""; - classifier = ""; - type = ""; - } - - public String doDelete() - { - // services need a ThreadLocal variable to test karma - RedbackAuthenticationThreadLocal.set( getRedbackRequestInformation() ); - try - { - Artifact artifact = new Artifact(); - artifact.setGroupId( groupId ); - artifact.setArtifactId( artifactId ); - artifact.setVersion( version ); - artifact.setClassifier( classifier ); - artifact.setPackaging( type ); - artifact.setContext( repositoryId ); - - repositoriesService.deleteArtifact( artifact ); - } - catch ( ArchivaRestServiceException e ) - { - addActionError( "ArchivaRestServiceException exception: " + e.getMessage() ); - return ERROR; - } - finally - { - RedbackAuthenticationThreadLocal.set( null ); - } - - StringBuilder msg = new StringBuilder( "Artifact \'" ).append( groupId ).append( ":" ).append( artifactId ); - - if ( StringUtils.isNotEmpty( classifier ) ) - { - msg.append( ":" ).append( classifier ); - } - msg.append( ":" ).append( version ).append( "' was successfully deleted from repository '" ).append( - repositoryId ).append( "'" ); - addActionMessage( msg.toString() ); - reset(); - return SUCCESS; - } - - public void validate() - { - try - { - if ( !userRepositories.isAuthorizedToDeleteArtifacts( getPrincipal(), repositoryId ) ) - { - addActionError( "User is not authorized to delete artifacts in repository '" + repositoryId + "'." ); - } - - if ( ( version.length() > 0 ) && ( !VersionUtil.isVersion( version ) ) ) - { - addActionError( "Invalid version." ); - } - } - catch ( AccessDeniedException e ) - { - addActionError( e.getMessage() ); - } - catch ( ArchivaSecurityException e ) - { - addActionError( e.getMessage() ); - } - - // trims all request parameter values, since the trailing/leading white-spaces are ignored during validation. - trimAllRequestParameterValues(); - } - - private List getManagableRepos() - { - try - { - return userRepositories.getManagableRepositoryIds( getPrincipal() ); - } - catch ( PrincipalNotFoundException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - log.warn( e.getMessage(), e ); - // TODO: pass this onto the screen. - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - private void trimAllRequestParameterValues() - { - if ( StringUtils.isNotEmpty( groupId ) ) - { - groupId = groupId.trim(); - } - - if ( StringUtils.isNotEmpty( artifactId ) ) - { - artifactId = artifactId.trim(); - } - - if ( StringUtils.isNotEmpty( version ) ) - { - version = version.trim(); - } - - if ( StringUtils.isNotEmpty( repositoryId ) ) - { - repositoryId = repositoryId.trim(); - } - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } - - public RepositoriesService getRepositoriesService() - { - return repositoriesService; - } - - public void setRepositoriesService( RepositoriesService repositoriesService ) - { - this.repositoriesService = repositoriesService; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/GlobalResults.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/GlobalResults.java deleted file mode 100644 index ec52a4db2..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/GlobalResults.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -/** - * GlobalResults - constants for global result definitions. - * - * - */ -public class GlobalResults -{ - public static final String ACCESS_TO_NO_REPOS = "access_to_no_repos"; -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/MergeAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/MergeAction.java deleted file mode 100644 index af6f684c8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/MergeAction.java +++ /dev/null @@ -1,351 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.audit.AuditEvent; -import org.apache.archiva.audit.Auditable; -import org.apache.archiva.common.utils.VersionUtil; -import org.apache.archiva.metadata.model.ArtifactMetadata; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.filter.Filter; -import org.apache.archiva.metadata.repository.filter.IncludesFilter; -import org.apache.archiva.redback.components.taskqueue.TaskQueueException; -import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; -import org.apache.archiva.scheduler.repository.RepositoryTask; -import org.apache.archiva.stagerepository.merge.Maven2RepositoryMerger; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.inject.Named; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - * - */ -@Controller ("mergeAction") -@Scope ("prototype") -public class MergeAction - extends AbstractActionSupport - implements Validateable, Preparable, Auditable -{ - - @Inject - @Named (value = "repositoryMerger#maven2") - private Maven2RepositoryMerger repositoryMerger; - - @Inject - protected ManagedRepositoryAdmin managedRepositoryAdmin; - - @Inject - @Named (value = "archivaTaskScheduler#repository") - private RepositoryArchivaTaskScheduler repositoryTaskScheduler; - - private ManagedRepository repository; - - private String repoid; - - private String sourceRepoId; - - private final String action = "merge"; - - private final String hasConflicts = "CONFLICTS"; - - private List conflictSourceArtifacts; - - private List conflictSourceArtifactsToBeDisplayed; - - public String getConflicts() - { - try - { - sourceRepoId = repoid + "-stage"; - ManagedRepository targetRepoConfig = managedRepositoryAdmin.getManagedRepository( sourceRepoId ); - - if ( targetRepoConfig != null ) - { - return hasConflicts; - } - else - { - return ERROR; - } - } - catch ( RepositoryAdminException e ) - { - addActionError( "RepositoryAdminException " + e.getMessage() ); - return ERROR; - } - } - - public String doMerge() - { - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - List sourceArtifacts = metadataRepository.getArtifacts( sourceRepoId ); - - if ( repository.isReleases() && !repository.isSnapshots() ) - { - mergeWithOutSnapshots( metadataRepository, sourceArtifacts, sourceRepoId, repoid ); - } - else - { - repositoryMerger.merge( metadataRepository, sourceRepoId, repoid ); - - for ( ArtifactMetadata metadata : sourceArtifacts ) - { - triggerAuditEvent( repoid, metadata.getId(), AuditEvent.MERGING_REPOSITORIES ); - } - } - - scanRepository(); - - addActionMessage( "Repository '" + sourceRepoId + "' successfully merged to '" + repoid + "'." ); - - return SUCCESS; - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - addActionError( "Error occurred while merging the repositories: " + e.getMessage() ); - return ERROR; - } - finally - { - repositorySession.close(); - } - } - - public String mergeBySkippingConflicts() - { - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - List sourceArtifacts = metadataRepository.getArtifacts( sourceRepoId ); - sourceArtifacts.removeAll( conflictSourceArtifacts ); - - if ( repository.isReleases() && !repository.isSnapshots() ) - { - mergeWithOutSnapshots( metadataRepository, sourceArtifacts, sourceRepoId, repoid ); - } - else - { - - Filter artifactsWithOutConflicts = - new IncludesFilter( sourceArtifacts ); - repositoryMerger.merge( metadataRepository, sourceRepoId, repoid, artifactsWithOutConflicts ); - for ( ArtifactMetadata metadata : sourceArtifacts ) - { - triggerAuditEvent( repoid, metadata.getId(), AuditEvent.MERGING_REPOSITORIES ); - } - } - - scanRepository(); - - addActionMessage( "Repository '" + sourceRepoId + "' successfully merged to '" + repoid + "'." ); - - return SUCCESS; - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - addActionError( "Error occurred while merging the repositories: " + e.getMessage() ); - return ERROR; - } - finally - { - repositorySession.close(); - } - } - - private void mergeWithOutSnapshots( MetadataRepository metadataRepository, List sourceArtifacts, - String sourceRepoId, String repoid ) - throws Exception - { - List artifactsWithOutSnapshots = new ArrayList(); - for ( ArtifactMetadata metadata : sourceArtifacts ) - { - - if ( metadata.getProjectVersion().contains( VersionUtil.SNAPSHOT ) ) - { - artifactsWithOutSnapshots.add( metadata ); - } - else - { - triggerAuditEvent( repoid, metadata.getId(), AuditEvent.MERGING_REPOSITORIES ); - } - - } - sourceArtifacts.removeAll( artifactsWithOutSnapshots ); - - Filter artifactListWithOutSnapShots = new IncludesFilter( sourceArtifacts ); - repositoryMerger.merge( metadataRepository, sourceRepoId, repoid, artifactListWithOutSnapShots ); - } - - public String mergeWithOutConlficts() - { - sourceRepoId = repoid + "-stage"; - - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - conflictSourceArtifacts = - repositoryMerger.getConflictingArtifacts( repositorySession.getRepository(), sourceRepoId, repoid ); - } - catch ( Exception e ) - { - addActionError( "Error occurred while merging the repositories." ); - return ERROR; - } - finally - { - repositorySession.close(); - } - - addActionMessage( "Repository '" + sourceRepoId + "' successfully merged to '" + repoid + "'." ); - - return SUCCESS; - } - - public ManagedRepository getRepository() - { - return repository; - } - - public void setRepository( ManagedRepository repository ) - { - this.repository = repository; - } - - public void prepare() - throws Exception - { - sourceRepoId = repoid + "-stage"; - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - conflictSourceArtifacts = - repositoryMerger.getConflictingArtifacts( repositorySession.getRepository(), sourceRepoId, repoid ); - } - finally - { - repositorySession.close(); - } - - this.repository = managedRepositoryAdmin.getManagedRepository( repoid ); - setConflictSourceArtifactsToBeDisplayed( conflictSourceArtifacts ); - } - - public String getSourceRepoId() - { - return sourceRepoId; - } - - public void setSourceRepoId( String sourceRepoId ) - { - this.sourceRepoId = sourceRepoId; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } - - public List getConflictSourceArtifacts() - { - return conflictSourceArtifacts; - } - - public void setConflictSourceArtifacts( List conflictSourceArtifacts ) - { - this.conflictSourceArtifacts = conflictSourceArtifacts; - } - - public List getConflictSourceArtifactsToBeDisplayed() - { - return conflictSourceArtifactsToBeDisplayed; - } - - public void setConflictSourceArtifactsToBeDisplayed( List conflictSourceArtifacts ) - throws Exception - { - this.conflictSourceArtifactsToBeDisplayed = new ArrayList(); - HashMap map = new HashMap(); - for ( ArtifactMetadata metadata : conflictSourceArtifacts ) - { - String metadataId = - metadata.getNamespace() + metadata.getProject() + metadata.getProjectVersion() + metadata.getVersion(); - map.put( metadataId, metadata ); - } - conflictSourceArtifactsToBeDisplayed.addAll( map.values() ); - } - - - private void scanRepository() - { - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( repoid ); - task.setScanAll( true ); - - if ( repositoryTaskScheduler.isProcessingRepositoryTask( repoid ) ) - { - log.info( "Repository [{}] task was already queued.", repoid ); - } - else - { - try - { - log.info( "Your request to have repository [{}] be indexed has been queued.", repoid ); - repositoryTaskScheduler.queueTask( task ); - } - catch ( TaskQueueException e ) - { - log.warn( "Unable to queue your request to have repository [{}] be indexed: {}", repoid, - e.getMessage() ); - } - } - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } -} \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/SearchAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/SearchAction.java deleted file mode 100644 index 24bf76179..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/SearchAction.java +++ /dev/null @@ -1,727 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.indexer.search.RepositorySearch; -import org.apache.archiva.indexer.search.RepositorySearchException; -import org.apache.archiva.indexer.search.SearchFields; -import org.apache.archiva.indexer.search.SearchResultHit; -import org.apache.archiva.indexer.search.SearchResultLimits; -import org.apache.archiva.indexer.search.SearchResults; -import org.apache.archiva.metadata.model.ArtifactMetadata; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.struts2.ServletActionContext; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; - -import javax.inject.Inject; -import java.net.MalformedURLException; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * Search all indexed fields by the given criteria. - */ -@Controller( "searchAction" ) -@Scope( "prototype" ) -public class SearchAction - extends AbstractRepositoryBasedAction - implements Preparable -{ - - @Inject - protected ManagedRepositoryAdmin managedRepositoryAdmin; - - /** - * Query string. - */ - private String q; - - /** - * The Search Results. - */ - private SearchResults results; - - private static final String RESULTS = "results"; - - private static final String ARTIFACT = "artifact"; - - private List databaseResults; - - private int currentPage = 0; - - private int totalPages; - - private boolean searchResultsOnly; - - private String completeQueryString; - - private static final String COMPLETE_QUERY_STRING_SEPARATOR = ";"; - - private List managedRepositoryList = new ArrayList(); - - private String groupId; - - private String artifactId; - - private String version; - - private String className; - - /** - * contains osgi metadata Bundle-Version if available - * - * @since 1.4-M1 - */ - private String bundleVersion; - - /** - * contains osgi metadata Bundle-SymbolicName if available - * - * @since 1.4-M1 - */ - private String bundleSymbolicName; - - /** - * contains osgi metadata Export-Package if available - * - * @since 1.4-M1 - */ - private String bundleExportPackage; - - /** - * contains osgi metadata import package if available - * - * @since 1.4-M1 - */ - private String bundleImportPackage; - - /** - * contains osgi metadata name if available - * - * @since 1.4-M1 - */ - private String bundleName; - - /** - * contains osgi metadata Export-Service if available - * - * @since 1.4-M1 - */ - private String bundleExportService; - - private int rowCount = 30; - - private String repositoryId; - - private boolean fromFilterSearch; - - private boolean filterSearch = false; - - private boolean fromResultsPage; - - @Inject - private RepositorySearch nexusSearch; - - private Map searchFields; - - private String infoMessage; - - public boolean isFromResultsPage() - { - return fromResultsPage; - } - - public void setFromResultsPage(boolean fromResultsPage) - { - this.fromResultsPage = fromResultsPage; - } - - public boolean isFromFilterSearch() - { - return fromFilterSearch; - } - - public void setFromFilterSearch(boolean fromFilterSearch) - { - this.fromFilterSearch = fromFilterSearch; - } - - public void prepare() - { - managedRepositoryList = getObservableRepos(); - - if ( managedRepositoryList.size() > 0 ) - { - managedRepositoryList.add("all"); - } - - searchFields = new LinkedHashMap(); - searchFields.put("groupId", "Group ID"); - searchFields.put("artifactId", "Artifact ID"); - searchFields.put("version", "Version"); - searchFields.put("className", "Class/Package Name"); - searchFields.put("rowCount", "Row Count"); - searchFields.put("bundleVersion", "OSGI Bundle Version"); - searchFields.put("bundleSymbolicName", "OSGI Bundle-SymbolicName"); - searchFields.put("bundleExportPackage", "OSGI Export-Package"); - searchFields.put("bundleImportPackage", "OSGI import package"); - searchFields.put("bundleName", "OSGI name"); - searchFields.put("bundleExportService", "OSGI Export-Service"); - - super.clearErrorsAndMessages(); - clearSearchFields(); - } - - private void clearSearchFields() - { - repositoryId = ""; - artifactId = ""; - groupId = ""; - version = ""; - className = ""; - rowCount = 30; - currentPage = 0; - } - - // advanced search MRM-90 -- filtered search - public String filteredSearch() - throws MalformedURLException - { - if ( StringUtils.isBlank(groupId) && StringUtils.isBlank(artifactId) && StringUtils.isBlank(className) - && StringUtils.isBlank(version) && StringUtils.isBlank(bundleExportPackage) && StringUtils.isBlank( - bundleExportService) && StringUtils.isBlank(bundleImportPackage) && StringUtils.isBlank(bundleName) - && StringUtils.isBlank(bundleSymbolicName) && StringUtils.isBlank(bundleVersion) ) - { - addActionError("Advanced Search - At least one search criteria must be provided."); - return INPUT; - } - - fromFilterSearch = true; - - if ( CollectionUtils.isEmpty(managedRepositoryList) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - SearchResultLimits limits = new SearchResultLimits(currentPage); - limits.setPageSize(rowCount); - List selectedRepos = new ArrayList(); - - if ( repositoryId == null || StringUtils.isBlank(repositoryId) || "all".equals( - StringUtils.stripToEmpty(repositoryId)) ) - { - selectedRepos = getObservableRepos(); - } - else - { - selectedRepos.add(repositoryId); - } - - if ( CollectionUtils.isEmpty(selectedRepos) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - SearchFields searchFields = new SearchFields(groupId, artifactId, version, null, className, selectedRepos); - - if ( StringUtils.isNotBlank(this.bundleExportPackage) ) - { - searchFields.setBundleExportPackage(this.bundleExportPackage); - } - - if ( StringUtils.isNotBlank(this.bundleExportService) ) - { - searchFields.setBundleExportService(this.bundleExportService); - } - - if ( StringUtils.isNotBlank(this.bundleImportPackage) ) - { - searchFields.setBundleImportPackage(this.bundleImportPackage); - } - - if ( StringUtils.isNotBlank(this.bundleSymbolicName) ) - { - searchFields.setBundleSymbolicName(this.bundleSymbolicName); - } - - if ( StringUtils.isNotBlank(this.bundleName) ) - { - searchFields.setBundleName(this.bundleName); - } - - if ( StringUtils.isNotBlank(this.bundleVersion) ) - { - searchFields.setBundleVersion(this.bundleVersion); - } - - log.debug("filteredSearch with searchFields {}", searchFields); - - // TODO: add packaging in the list of fields for advanced search (UI)? - try - { - results = getNexusSearch().search(getPrincipal(), searchFields, limits); - } - catch ( RepositorySearchException e ) - { - addActionError(e.getMessage()); - return ERROR; - } - - if ( results.isEmpty() ) - { - addActionError("No results found"); - return INPUT; - } - - totalPages = results.getTotalHits() / limits.getPageSize(); - - if ( ( results.getTotalHits() % limits.getPageSize() ) != 0 ) - { - totalPages = totalPages + 1; - } - - for ( SearchResultHit hit : results.getHits() ) - { - // fix version ? - //hit.setVersion( VersionUtil.getBaseVersion( version ) ); - - } - - return SUCCESS; - } - - @SuppressWarnings( "unchecked" ) - public String quickSearch() - throws MalformedURLException - { - /* TODO: give action message if indexing is in progress. - * This should be based off a count of 'unprocessed' artifacts. - * This (yet to be written) routine could tell the user that X (unprocessed) artifacts are not yet - * present in the full text search. - */ - - assert q != null && q.length() != 0; - - fromFilterSearch = false; - - SearchResultLimits limits = new SearchResultLimits(currentPage); - - List selectedRepos = getObservableRepos(); - if ( CollectionUtils.isEmpty(selectedRepos) ) - { - return GlobalResults.ACCESS_TO_NO_REPOS; - } - - log.debug("quickSearch with selectedRepos {} query {}", selectedRepos, q); - - try - { - if ( searchResultsOnly && !completeQueryString.equals("") ) - { - results = getNexusSearch().search(getPrincipal(), selectedRepos, q, limits, parseCompleteQueryString()); - } - else - { - completeQueryString = ""; - results = getNexusSearch().search(getPrincipal(), selectedRepos, q, limits, null); - } - } - catch ( RepositorySearchException e ) - { - addActionError(e.getMessage()); - return ERROR; - } - - if ( results.isEmpty() ) - { - addActionError("No results found"); - return INPUT; - } - - totalPages = results.getTotalHitsMapSize() / limits.getPageSize(); - - if ( ( results.getTotalHitsMapSize() % limits.getPageSize() ) != 0 ) - { - totalPages = totalPages + 1; - } - - if ( !isEqualToPreviousSearchTerm(q) ) - { - buildCompleteQueryString(q); - } - - return SUCCESS; - } - - public String findArtifact() - throws Exception - { - // TODO: give action message if indexing is in progress - - if ( StringUtils.isBlank(q) ) - { - addActionError("Unable to search for a blank checksum"); - return INPUT; - } - - databaseResults = new ArrayList(); - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - for ( String repoId : getObservableRepos() ) - { - databaseResults.addAll(metadataRepository.getArtifactsByChecksum(repoId, q)); - } - } - finally - { - repositorySession.close(); - } - - if ( databaseResults.isEmpty() ) - { - addActionError("No results found"); - return INPUT; - } - - if ( databaseResults.size() == 1 ) - { - // 1 hit? return it's information directly! - return ARTIFACT; - } - - return RESULTS; - } - - public String doInput() - { - return INPUT; - } - - private void buildCompleteQueryString(String searchTerm) - { - if ( searchTerm.indexOf(COMPLETE_QUERY_STRING_SEPARATOR) != -1 ) - { - searchTerm = StringUtils.remove(searchTerm, COMPLETE_QUERY_STRING_SEPARATOR); - } - - if ( completeQueryString == null || "".equals(completeQueryString) ) - { - completeQueryString = searchTerm; - } - else - { - completeQueryString = completeQueryString + COMPLETE_QUERY_STRING_SEPARATOR + searchTerm; - } - } - - private List parseCompleteQueryString() - { - List parsedCompleteQueryString = new ArrayList(); - String[] parsed = StringUtils.split(completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR); - CollectionUtils.addAll(parsedCompleteQueryString, parsed); - - return parsedCompleteQueryString; - } - - private boolean isEqualToPreviousSearchTerm(String searchTerm) - { - if ( !"".equals(completeQueryString) ) - { - String[] parsed = StringUtils.split(completeQueryString, COMPLETE_QUERY_STRING_SEPARATOR); - if ( StringUtils.equalsIgnoreCase(searchTerm, parsed[parsed.length - 1]) ) - { - return true; - } - } - - return false; - } - - public String getQ() - { - return q; - } - - public void setQ(String q) - { - this.q = q; - } - - public SearchResults getResults() - { - return results; - } - - public List getDatabaseResults() - { - return databaseResults; - } - - public void setCurrentPage(int page) - { - this.currentPage = page; - } - - public int getCurrentPage() - { - return currentPage; - } - - public int getTotalPages() - { - return totalPages; - } - - public void setTotalPages(int totalPages) - { - this.totalPages = totalPages; - } - - public boolean isSearchResultsOnly() - { - return searchResultsOnly; - } - - public void setSearchResultsOnly(boolean searchResultsOnly) - { - this.searchResultsOnly = searchResultsOnly; - } - - public String getCompleteQueryString() - { - return completeQueryString; - } - - public void setCompleteQueryString(String completeQueryString) - { - this.completeQueryString = completeQueryString; - } - - public Map getManagedRepositories() - throws RepositoryAdminException - { - return managedRepositoryAdmin.getManagedRepositoriesAsMap(); - } - - // wtf : does nothing ?? - public void setManagedRepositories(Map managedRepositories) - { - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId(String groupId) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId(String artifactId) - { - this.artifactId = artifactId; - } - - public String getVersion() - { - return version; - } - - public void setVersion(String version) - { - this.version = version; - } - - public int getRowCount() - { - return rowCount; - } - - public void setRowCount(int rowCount) - { - this.rowCount = rowCount; - } - - public boolean isFilterSearch() - { - return filterSearch; - } - - public void setFilterSearch(boolean filterSearch) - { - this.filterSearch = filterSearch; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId(String repositoryId) - { - this.repositoryId = repositoryId; - } - - public List getManagedRepositoryList() - { - return managedRepositoryList; - } - - public void setManagedRepositoryList(List managedRepositoryList) - { - this.managedRepositoryList = managedRepositoryList; - } - - public String getClassName() - { - return className; - } - - public void setClassName(String className) - { - this.className = className; - } - - public RepositorySearch getNexusSearch() - { - if ( nexusSearch == null ) - { - WebApplicationContext wac = - WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext()); - nexusSearch = wac.getBean("nexusSearch", RepositorySearch.class); - } - return nexusSearch; - } - - public void setNexusSearch(RepositorySearch nexusSearch) - { - this.nexusSearch = nexusSearch; - } - - public Map getSearchFields() - { - return searchFields; - } - - public void setSearchFields(Map searchFields) - { - this.searchFields = searchFields; - } - - public String getInfoMessage() - { - return infoMessage; - } - - public void setInfoMessage(String infoMessage) - { - this.infoMessage = infoMessage; - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin(ManagedRepositoryAdmin managedRepositoryAdmin) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } - - public String getBundleVersion() - { - return bundleVersion; - } - - public void setBundleVersion(String bundleVersion) - { - this.bundleVersion = bundleVersion; - } - - public String getBundleSymbolicName() - { - return bundleSymbolicName; - } - - public void setBundleSymbolicName(String bundleSymbolicName) - { - this.bundleSymbolicName = bundleSymbolicName; - } - - public String getBundleExportPackage() - { - return bundleExportPackage; - } - - public void setBundleExportPackage(String bundleExportPackage) - { - this.bundleExportPackage = bundleExportPackage; - } - - public String getBundleImportPackage() - { - return bundleImportPackage; - } - - public void setBundleImportPackage(String bundleImportPackage) - { - this.bundleImportPackage = bundleImportPackage; - } - - public String getBundleName() - { - return bundleName; - } - - public void setBundleName(String bundleName) - { - this.bundleName = bundleName; - } - - public String getBundleExportService() - { - return bundleExportService; - } - - public void setBundleExportService(String bundleExportService) - { - this.bundleExportService = bundleExportService; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/ShowArtifactAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/ShowArtifactAction.java deleted file mode 100644 index d6cb7b8a0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/ShowArtifactAction.java +++ /dev/null @@ -1,628 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.metadata.generic.GenericMetadataFacet; -import org.apache.archiva.metadata.model.ArtifactMetadata; -import org.apache.archiva.metadata.model.Dependency; -import org.apache.archiva.metadata.model.MailingList; -import org.apache.archiva.metadata.model.MetadataFacet; -import org.apache.archiva.metadata.model.ProjectVersionMetadata; -import org.apache.archiva.metadata.model.ProjectVersionReference; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.MetadataRepositoryException; -import org.apache.archiva.metadata.repository.MetadataResolutionException; -import org.apache.archiva.metadata.repository.MetadataResolver; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.storage.maven2.ArtifactMetadataVersionComparator; -import org.apache.archiva.reports.RepositoryProblemFacet; -import org.apache.archiva.repository.RepositoryContentFactory; -import org.apache.archiva.repository.RepositoryException; -import org.apache.archiva.repository.RepositoryNotFoundException; -import org.apache.archiva.maven2.model.Artifact; -import org.apache.archiva.rest.services.utils.ArtifactBuilder; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * Browse the repository. - *

- * TODO change name to ShowVersionedAction to conform to terminology. - */ -@SuppressWarnings( "serial" ) -@Controller( "showArtifactAction" ) -@Scope( "prototype" ) -public class ShowArtifactAction - extends AbstractRepositoryBasedAction - implements Validateable -{ - /* .\ Not Exposed \._____________________________________________ */ - - @Inject - private RepositoryContentFactory repositoryFactory; - - /* .\ Exposed Output Objects \.__________________________________ */ - - private String groupId; - - private String artifactId; - - private String version; - - private String repositoryId; - - /** - * The model of this versioned project. - */ - private ProjectVersionMetadata model; - - /** - * The list of artifacts that depend on this versioned project. - */ - private List dependees; - - private List mailingLists; - - private List dependencies; - - private Map> artifacts; - - private boolean dependencyTree = false; - - private String deleteItem; - - private Map genericMetadata; - - private String propertyName; - - private String propertyValue; - - /** - * Show the versioned project information tab. TODO: Change name to 'project' - we are showing project versions - * here, not specific artifact information (though that is rendered in the download box). - */ - public String artifact() - { - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - return handleArtifact( repositorySession ); - } - catch ( Exception e ) - { - log.warn( "Unable to getProjectVersionMetadata: " + e.getMessage(), e ); - addActionError( "Unable to getProjectVersionMetadata - consult application logs." ); - return ERROR; - } - finally - - { - repositorySession.close(); - } - - } - - private String handleArtifact( RepositorySession session ) - throws RepositoryNotFoundException, RepositoryException - { - // In the future, this should be replaced by the repository grouping mechanism, so that we are only making - // simple resource requests here and letting the resolver take care of it - ProjectVersionMetadata versionMetadata = getProjectVersionMetadata( session ); - - if ( versionMetadata == null ) - { - addActionError( "Artifact not found" ); - return ERROR; - } - - if ( versionMetadata.isIncomplete() ) - { - addIncompleteModelWarning( "Artifact metadata is incomplete." ); - } - - model = versionMetadata; - - return SUCCESS; - } - - private ProjectVersionMetadata getProjectVersionMetadata( RepositorySession session ) - throws RepositoryNotFoundException, RepositoryException - { - ProjectVersionMetadata versionMetadata = null; - artifacts = new LinkedHashMap>(); - - List repos = getObservableRepos(); - - MetadataResolver metadataResolver = session.getResolver(); - for ( String repoId : repos ) - { - if ( versionMetadata == null ) - { - // we don't want the implementation being that intelligent - so another resolver to do the - // "just-in-time" nature of picking up the metadata (if appropriate for the repository type) is used - try - { - versionMetadata = - metadataResolver.resolveProjectVersion( session, repoId, groupId, artifactId, version ); - if ( versionMetadata != null ) - { - MetadataFacet repoProbFacet; - if ( ( repoProbFacet = versionMetadata.getFacet( RepositoryProblemFacet.FACET_ID ) ) != null ) - { - addIncompleteModelWarning( "Artifact metadata is incomplete: " - + ( (RepositoryProblemFacet) repoProbFacet ).getProblem() ); - //set metadata to complete so that no additional 'Artifact metadata is incomplete' warning is logged - versionMetadata.setIncomplete( false ); - } - } - - } - catch ( MetadataResolutionException e ) - { - addIncompleteModelWarning( "Error resolving artifact metadata: " + e.getMessage() ); - - // TODO: need a consistent way to construct this - same in ArchivaMetadataCreationConsumer - versionMetadata = new ProjectVersionMetadata(); - versionMetadata.setId( version ); - } - if ( versionMetadata != null ) - { - repositoryId = repoId; - - List artifacts; - try - { - artifacts = new ArrayList( - metadataResolver.resolveArtifacts( session, repoId, groupId, artifactId, version ) ); - } - catch ( MetadataResolutionException e ) - { - addIncompleteModelWarning( "Error resolving artifact metadata: " + e.getMessage() ); - artifacts = Collections.emptyList(); - } - Collections.sort( artifacts, ArtifactMetadataVersionComparator.INSTANCE ); - - for ( ArtifactMetadata artifact : artifacts ) - { - List l = this.artifacts.get( artifact.getVersion() ); - if ( l == null ) - { - l = new ArrayList(); - this.artifacts.put( artifact.getVersion(), l ); - } - - ArtifactBuilder builder = new ArtifactBuilder().forArtifactMetadata( - artifact ).withManagedRepositoryContent( - repositoryFactory.getManagedRepositoryContent( repositoryId ) ); - l.add( builder.build() ); - } - } - } - } - - return versionMetadata; - } - - private void addIncompleteModelWarning( String warningMessage ) - { - addActionError( warningMessage ); - //"The model may be incomplete due to a previous error in resolving information. Refer to the repository problem reports for more information." ); - } - - /** - * Show the artifact information tab. - */ - public String dependencies() - { - String result = artifact(); - - this.dependencies = model.getDependencies(); - - return result; - } - - /** - * Show the mailing lists information tab. - */ - public String mailingLists() - { - String result = artifact(); - - this.mailingLists = model.getMailingLists(); - - return result; - } - - /** - * Show the reports tab. - */ - public String reports() - { - // TODO: hook up reports on project - - return SUCCESS; - } - - /** - * Show the dependees (other artifacts that depend on this project) tab. - */ - public String dependees() - throws MetadataResolutionException - { - List references = new ArrayList(); - // TODO: what if we get duplicates across repositories? - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataResolver metadataResolver = repositorySession.getResolver(); - for ( String repoId : getObservableRepos() ) - { - // TODO: what about if we want to see this irrespective of version? - references.addAll( - metadataResolver.resolveProjectReferences( repositorySession, repoId, groupId, artifactId, - version ) ); - } - } - finally - { - repositorySession.close(); - } - - this.dependees = references; - - // TODO: may need to note on the page that references will be incomplete if the other artifacts are not yet - // stored in the content repository - // (especially in the case of pre-population import) - - return artifact(); - } - - /** - * Show the dependencies of this versioned project tab. - */ - public String dependencyTree() - { - // temporarily use this as we only need the model for the tag to perform, but we should be resolving the - // graph here instead - - // TODO: may need to note on the page that tree will be incomplete if the other artifacts are not yet stored in - // the content repository - // (especially in the case of pre-population import) - - // TODO: a bit ugly, should really be mapping all these results differently now - this.dependencyTree = true; - - return artifact(); - } - - public String projectMetadata() - { - String result = artifact(); - - if ( model.getFacet( GenericMetadataFacet.FACET_ID ) != null ) - { - genericMetadata = model.getFacet( GenericMetadataFacet.FACET_ID ).toProperties(); - } - - if ( genericMetadata == null ) - { - genericMetadata = new HashMap(); - } - - return result; - } - - public String addMetadataProperty() - { - RepositorySession repositorySession = repositorySessionFactory.createSession(); - ProjectVersionMetadata projectMetadata; - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - projectMetadata = getProjectVersionMetadata( repositorySession ); - if ( projectMetadata == null ) - { - addActionError( "Artifact not found" ); - return ERROR; - } - - if ( projectMetadata.getFacet( GenericMetadataFacet.FACET_ID ) == null ) - { - genericMetadata = new HashMap(); - } - else - { - genericMetadata = projectMetadata.getFacet( GenericMetadataFacet.FACET_ID ).toProperties(); - } - - if ( propertyName == null || "".equals( propertyName.trim() ) || propertyValue == null || "".equals( - propertyValue.trim() ) ) - { - model = projectMetadata; - addActionError( "Property Name and Property Value are required." ); - return INPUT; - } - - genericMetadata.put( propertyName, propertyValue ); - - try - { - updateProjectMetadata( projectMetadata, metadataRepository ); - repositorySession.save(); - } - catch ( MetadataRepositoryException e ) - { - log.warn( "Unable to persist modified project metadata after adding entry: " + e.getMessage(), e ); - addActionError( - "Unable to add metadata item to underlying content storage - consult application logs." ); - return ERROR; - } - - // TODO: why re-retrieve? - projectMetadata = getProjectVersionMetadata( repositorySession ); - } - catch ( Exception e ) - { - log.warn( "Unable to getProjectVersionMetadata: " + e.getMessage(), e ); - addActionError( "Unable to getProjectVersionMetadata - consult application logs." ); - return ERROR; - } - finally - { - repositorySession.close(); - } - - genericMetadata = projectMetadata.getFacet( GenericMetadataFacet.FACET_ID ).toProperties(); - - model = projectMetadata; - - propertyName = ""; - propertyValue = ""; - - return SUCCESS; - } - - public String deleteMetadataEntry() - { - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - ProjectVersionMetadata projectMetadata = getProjectVersionMetadata( repositorySession ); - - if ( projectMetadata == null ) - { - addActionError( "Artifact not found" ); - return ERROR; - } - - if ( projectMetadata.getFacet( GenericMetadataFacet.FACET_ID ) != null ) - { - genericMetadata = projectMetadata.getFacet( GenericMetadataFacet.FACET_ID ).toProperties(); - - if ( !StringUtils.isEmpty( deleteItem ) ) - { - genericMetadata.remove( deleteItem ); - - try - { - updateProjectMetadata( projectMetadata, metadataRepository ); - repositorySession.save(); - } - catch ( MetadataRepositoryException e ) - { - log.warn( "Unable to persist modified project metadata after removing entry: " + e.getMessage(), - e ); - addActionError( - "Unable to remove metadata item to underlying content storage - consult application logs." ); - return ERROR; - } - - // TODO: why re-retrieve? - projectMetadata = getProjectVersionMetadata( repositorySession ); - - genericMetadata = projectMetadata.getFacet( GenericMetadataFacet.FACET_ID ).toProperties(); - - model = projectMetadata; - - addActionMessage( "Property successfully deleted." ); - } - - deleteItem = ""; - } - else - { - addActionError( "No generic metadata facet for this artifact." ); - return ERROR; - } - } - catch ( Exception e ) - { - log.warn( "Unable to getProjectVersionMetadata: " + e.getMessage(), e ); - addActionError( "Unable to getProjectVersionMetadata - consult application logs." ); - return ERROR; - - } - finally - { - repositorySession.close(); - } - - return SUCCESS; - } - - private void updateProjectMetadata( ProjectVersionMetadata projectMetadata, MetadataRepository metadataRepository ) - throws MetadataRepositoryException - { - GenericMetadataFacet genericMetadataFacet = new GenericMetadataFacet(); - genericMetadataFacet.fromProperties( genericMetadata ); - - projectMetadata.addFacet( genericMetadataFacet ); - - metadataRepository.updateProjectVersion( repositoryId, groupId, artifactId, projectMetadata ); - } - - @Override - public void validate() - { - if ( StringUtils.isBlank( groupId ) ) - { - addActionError( "You must specify a group ID to browse" ); - } - - if ( StringUtils.isBlank( artifactId ) ) - { - addActionError( "You must specify a artifact ID to browse" ); - } - - if ( StringUtils.isBlank( version ) ) - { - addActionError( "You must specify a version to browse" ); - } - } - - public ProjectVersionMetadata getModel() - { - return model; - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public List getMailingLists() - { - return mailingLists; - } - - public List getDependencies() - { - return dependencies; - } - - public List getDependees() - { - return dependees; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public Map> getArtifacts() - { - return artifacts; - } - - public Collection getSnapshotVersions() - { - return artifacts.keySet(); - } - - public boolean isDependencyTree() - { - return dependencyTree; - } - - public void setDeleteItem( String deleteItem ) - { - this.deleteItem = deleteItem; - } - - public Map getGenericMetadata() - { - return genericMetadata; - } - - public void setGenericMetadata( Map genericMetadata ) - { - this.genericMetadata = genericMetadata; - } - - public String getPropertyName() - { - return propertyName; - } - - public void setPropertyName( String propertyName ) - { - this.propertyName = propertyName; - } - - public String getPropertyValue() - { - return propertyValue; - } - - public void setPropertyValue( String propertyValue ) - { - this.propertyValue = propertyValue; - } - - public void setRepositoryFactory( RepositoryContentFactory repositoryFactory ) - { - this.repositoryFactory = repositoryFactory; - } - - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/UploadAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/UploadAction.java deleted file mode 100644 index 421f8ba1a..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/UploadAction.java +++ /dev/null @@ -1,722 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.audit.AuditEvent; -import org.apache.archiva.audit.Auditable; -import org.apache.archiva.checksum.ChecksumAlgorithm; -import org.apache.archiva.checksum.ChecksummedFile; -import org.apache.archiva.common.utils.VersionComparator; -import org.apache.archiva.common.utils.VersionUtil; -import org.apache.archiva.maven2.metadata.MavenMetadataReader; -import org.apache.archiva.model.ArchivaRepositoryMetadata; -import org.apache.archiva.model.ArtifactReference; -import org.apache.archiva.model.SnapshotVersion; -import org.apache.archiva.redback.components.taskqueue.TaskQueueException; -import org.apache.archiva.repository.ManagedRepositoryContent; -import org.apache.archiva.repository.RepositoryContentFactory; -import org.apache.archiva.repository.RepositoryException; -import org.apache.archiva.repository.RepositoryNotFoundException; -import org.apache.archiva.repository.metadata.MetadataTools; -import org.apache.archiva.repository.metadata.RepositoryMetadataException; -import org.apache.archiva.repository.metadata.RepositoryMetadataWriter; -import org.apache.archiva.scheduler.ArchivaTaskScheduler; -import org.apache.archiva.scheduler.repository.RepositoryTask; -import org.apache.archiva.security.AccessDeniedException; -import org.apache.archiva.security.ArchivaSecurityException; -import org.apache.archiva.security.PrincipalNotFoundException; -import org.apache.archiva.security.UserRepositories; -import org.apache.archiva.xml.XMLException; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.maven.model.Model; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.inject.Named; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.TimeZone; - -/** - * Upload an artifact using Jakarta file upload in webwork. If set by the user a pom will also be generated. Metadata - * will also be updated if one exists, otherwise it would be created. - */ -@SuppressWarnings( "serial" ) -@Controller( "uploadAction" ) -@Scope( "prototype" ) -public class UploadAction - extends AbstractActionSupport - implements Validateable, Preparable, Auditable -{ - /** - * The groupId of the artifact to be deployed. - */ - private String groupId; - - /** - * The artifactId of the artifact to be deployed. - */ - private String artifactId; - - /** - * The version of the artifact to be deployed. - */ - private String version; - - /** - * The packaging of the artifact to be deployed. - */ - private String packaging; - - /** - * The classifier of the artifact to be deployed. - */ - private String classifier; - - /** - * The temporary file representing the artifact to be deployed. - */ - private File artifactFile; - - /** - * The temporary file representing the pom to be deployed alongside the artifact. - */ - private File pomFile; - - /** - * The repository where the artifact is to be deployed. - */ - private String repositoryId; - - /** - * Flag whether to generate a pom for the artifact or not. - */ - private boolean generatePom; - - /** - * List of managed repositories to deploy to. - */ - private List managedRepoIdList; - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; - - @Inject - private UserRepositories userRepositories; - - @Inject - private ArchivaAdministration archivaAdministration; - - @Inject - private RepositoryContentFactory repositoryFactory; - - @Inject - @Named( value = "archivaTaskScheduler#repository" ) - private ArchivaTaskScheduler scheduler; - - private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 }; - - public void setArtifact( File file ) - { - this.artifactFile = file; - } - - public void setArtifactContentType( String contentType ) - { - StringUtils.trim( contentType ); - } - - public void setArtifactFileName( String filename ) - { - StringUtils.trim( filename ); - } - - public void setPom( File file ) - { - this.pomFile = file; - } - - public void setPomContentType( String contentType ) - { - StringUtils.trim( contentType ); - } - - public void setPomFileName( String filename ) - { - StringUtils.trim( filename ); - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = StringUtils.trim( groupId ); - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = StringUtils.trim( artifactId ); - } - - public String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = StringUtils.trim( version ); - } - - public String getPackaging() - { - return packaging; - } - - public void setPackaging( String packaging ) - { - this.packaging = StringUtils.trim( packaging ); - } - - public String getClassifier() - { - return classifier; - } - - public void setClassifier( String classifier ) - { - this.classifier = StringUtils.trim( classifier ); - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public boolean isGeneratePom() - { - return generatePom; - } - - public void setGeneratePom( boolean generatePom ) - { - this.generatePom = generatePom; - } - - public List getManagedRepoIdList() - { - return managedRepoIdList; - } - - public void setManagedRepoIdList( List managedRepoIdList ) - { - this.managedRepoIdList = managedRepoIdList; - } - - public void prepare() - { - managedRepoIdList = getManagableRepos(); - } - - public String input() - { - return INPUT; - } - - private void reset() - { - // reset the fields so the form is clear when - // the action returns to the jsp page - groupId = ""; - artifactId = ""; - version = ""; - packaging = ""; - classifier = ""; - artifactFile = null; - pomFile = null; - repositoryId = ""; - generatePom = false; - } - - public String doUpload() - { - try - { - ManagedRepository repoConfig = managedRepositoryAdmin.getManagedRepository( repositoryId ); - - ArtifactReference artifactReference = new ArtifactReference(); - artifactReference.setArtifactId( artifactId ); - artifactReference.setGroupId( groupId ); - artifactReference.setVersion( version ); - artifactReference.setClassifier( classifier ); - artifactReference.setType( packaging ); - - ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); - - String artifactPath = repository.toPath( artifactReference ); - - int lastIndex = artifactPath.lastIndexOf( '/' ); - - String path = artifactPath.substring( 0, lastIndex ); - File targetPath = new File( repoConfig.getLocation(), path ); - - log.debug( "artifactPath: {} found targetPath: {}", artifactPath, targetPath ); - - Date lastUpdatedTimestamp = Calendar.getInstance().getTime(); - int newBuildNumber = -1; - String timestamp = null; - - File versionMetadataFile = new File( targetPath, MetadataTools.MAVEN_METADATA ); - ArchivaRepositoryMetadata versionMetadata = getMetadata( versionMetadataFile ); - - if ( VersionUtil.isSnapshot( version ) ) - { - TimeZone timezone = TimeZone.getTimeZone( "UTC" ); - DateFormat fmt = new SimpleDateFormat( "yyyyMMdd.HHmmss" ); - fmt.setTimeZone( timezone ); - timestamp = fmt.format( lastUpdatedTimestamp ); - if ( versionMetadata.getSnapshotVersion() != null ) - { - newBuildNumber = versionMetadata.getSnapshotVersion().getBuildNumber() + 1; - } - else - { - newBuildNumber = 1; - } - } - - if ( !targetPath.exists() ) - { - targetPath.mkdirs(); - } - - String filename = artifactPath.substring( lastIndex + 1 ); - if ( VersionUtil.isSnapshot( version ) ) - { - filename = filename.replaceAll( VersionUtil.SNAPSHOT, timestamp + "-" + newBuildNumber ); - } - - boolean fixChecksums = - !( archivaAdministration.getKnownContentConsumers().contains( "create-missing-checksums" ) ); - - try - { - File targetFile = new File( targetPath, filename ); - if ( targetFile.exists() && !VersionUtil.isSnapshot( version ) && repoConfig.isBlockRedeployments() ) - { - addActionError( - "Overwriting released artifacts in repository '" + repoConfig.getId() + "' is not allowed." ); - return ERROR; - } - else - { - copyFile( artifactFile, targetPath, filename, fixChecksums ); - triggerAuditEvent( repository.getId(), path + "/" + filename, AuditEvent.UPLOAD_FILE ); - queueRepositoryTask( repository.getId(), targetFile ); - } - } - catch ( IOException ie ) - { - addActionError( "Error encountered while uploading file: " + ie.getMessage() ); - return ERROR; - } - - String pomFilename = filename; - if ( classifier != null && !"".equals( classifier ) ) - { - pomFilename = StringUtils.remove( pomFilename, "-" + classifier ); - } - pomFilename = FilenameUtils.removeExtension( pomFilename ) + ".pom"; - - if ( generatePom ) - { - try - { - File generatedPomFile = createPom( targetPath, pomFilename ); - triggerAuditEvent( repoConfig.getId(), path + "/" + pomFilename, AuditEvent.UPLOAD_FILE ); - if ( fixChecksums ) - { - fixChecksums( generatedPomFile ); - } - queueRepositoryTask( repoConfig.getId(), generatedPomFile ); - } - catch ( IOException ie ) - { - addActionError( "Error encountered while writing pom file: " + ie.getMessage() ); - return ERROR; - } - } - - if ( pomFile != null && pomFile.length() > 0 ) - { - try - { - copyFile( pomFile, targetPath, pomFilename, fixChecksums ); - triggerAuditEvent( repoConfig.getId(), path + "/" + pomFilename, AuditEvent.UPLOAD_FILE ); - queueRepositoryTask( repoConfig.getId(), new File( targetPath, pomFilename ) ); - } - catch ( IOException ie ) - { - addActionError( "Error encountered while uploading pom file: " + ie.getMessage() ); - return ERROR; - } - - } - - // explicitly update only if metadata-updater consumer is not enabled! - if ( !archivaAdministration.getKnownContentConsumers().contains( "metadata-updater" ) ) - { - updateProjectMetadata( targetPath.getAbsolutePath(), lastUpdatedTimestamp, timestamp, newBuildNumber, - fixChecksums ); - - if ( VersionUtil.isSnapshot( version ) ) - { - updateVersionMetadata( versionMetadata, versionMetadataFile, lastUpdatedTimestamp, timestamp, - newBuildNumber, fixChecksums ); - } - } - - String msg = "Artifact \'" + groupId + ":" + artifactId + ":" + version - + "\' was successfully deployed to repository \'" + repositoryId + "\'"; - - addActionMessage( msg ); - - reset(); - return SUCCESS; - } - catch ( RepositoryNotFoundException re ) - { - addActionError( "Target repository cannot be found: " + re.getMessage() ); - return ERROR; - } - catch ( RepositoryException rep ) - { - addActionError( "Repository exception: " + rep.getMessage() ); - return ERROR; - } - catch ( RepositoryAdminException e ) - { - addActionError( "RepositoryAdmin exception: " + e.getMessage() ); - return ERROR; - } - } - - private void fixChecksums( File file ) - { - ChecksummedFile checksum = new ChecksummedFile( file ); - checksum.fixChecksums( algorithms ); - } - - private void copyFile( File sourceFile, File targetPath, String targetFilename, boolean fixChecksums ) - throws IOException - { - FileOutputStream out = new FileOutputStream( new File( targetPath, targetFilename ) ); - FileInputStream input = new FileInputStream( sourceFile ); - - try - { - IOUtils.copy( input, out ); - } - finally - { - IOUtils.closeQuietly( out ); - IOUtils.closeQuietly( input ); - } - - if ( fixChecksums ) - { - fixChecksums( new File( targetPath, targetFilename ) ); - } - } - - private File createPom( File targetPath, String filename ) - throws IOException - { - Model projectModel = new Model(); - projectModel.setModelVersion( "4.0.0" ); - projectModel.setGroupId( groupId ); - projectModel.setArtifactId( artifactId ); - projectModel.setVersion( version ); - projectModel.setPackaging( packaging ); - - File pomFile = new File( targetPath, filename ); - MavenXpp3Writer writer = new MavenXpp3Writer(); - FileWriter w = new FileWriter( pomFile ); - try - { - writer.write( w, projectModel ); - } - finally - { - IOUtils.closeQuietly( w ); - } - - return pomFile; - } - - private ArchivaRepositoryMetadata getMetadata( File metadataFile ) - throws RepositoryMetadataException - { - ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - if ( metadataFile.exists() ) - { - try - { - metadata = MavenMetadataReader.read( metadataFile ); - } - catch ( XMLException e ) - { - throw new RepositoryMetadataException( e.getMessage(), e ); - } - } - return metadata; - } - - - /** - * Update version level metadata for snapshot artifacts. If it does not exist, create the metadata and fix checksums - * if necessary. - */ - private void updateVersionMetadata( ArchivaRepositoryMetadata metadata, File metadataFile, - Date lastUpdatedTimestamp, String timestamp, int buildNumber, - boolean fixChecksums ) - throws RepositoryMetadataException - { - if ( !metadataFile.exists() ) - { - metadata.setGroupId( groupId ); - metadata.setArtifactId( artifactId ); - metadata.setVersion( version ); - } - - if ( metadata.getSnapshotVersion() == null ) - { - metadata.setSnapshotVersion( new SnapshotVersion() ); - } - - metadata.getSnapshotVersion().setBuildNumber( buildNumber ); - metadata.getSnapshotVersion().setTimestamp( timestamp ); - metadata.setLastUpdatedTimestamp( lastUpdatedTimestamp ); - - RepositoryMetadataWriter.write( metadata, metadataFile ); - - if ( fixChecksums ) - { - fixChecksums( metadataFile ); - } - } - - /** - * Update artifact level metadata. If it does not exist, create the metadata and fix checksums if necessary. - */ - private void updateProjectMetadata( String targetPath, Date lastUpdatedTimestamp, String timestamp, int buildNumber, - boolean fixChecksums ) - throws RepositoryMetadataException - { - List availableVersions = new ArrayList(); - String latestVersion = version; - - File projectDir = new File( targetPath ).getParentFile(); - File projectMetadataFile = new File( projectDir, MetadataTools.MAVEN_METADATA ); - - ArchivaRepositoryMetadata projectMetadata = getMetadata( projectMetadataFile ); - - if ( projectMetadataFile.exists() ) - { - availableVersions = projectMetadata.getAvailableVersions(); - - Collections.sort( availableVersions, VersionComparator.getInstance() ); - - if ( !availableVersions.contains( version ) ) - { - availableVersions.add( version ); - } - - latestVersion = availableVersions.get( availableVersions.size() - 1 ); - } - else - { - availableVersions.add( version ); - - projectMetadata.setGroupId( groupId ); - projectMetadata.setArtifactId( artifactId ); - } - - if ( projectMetadata.getGroupId() == null ) - { - projectMetadata.setGroupId( groupId ); - } - - if ( projectMetadata.getArtifactId() == null ) - { - projectMetadata.setArtifactId( artifactId ); - } - - projectMetadata.setLatestVersion( latestVersion ); - projectMetadata.setLastUpdatedTimestamp( lastUpdatedTimestamp ); - projectMetadata.setAvailableVersions( availableVersions ); - - if ( !VersionUtil.isSnapshot( version ) ) - { - projectMetadata.setReleasedVersion( latestVersion ); - } - - RepositoryMetadataWriter.write( projectMetadata, projectMetadataFile ); - - if ( fixChecksums ) - { - fixChecksums( projectMetadataFile ); - } - } - - public void validate() - { - try - { - // is this enough check for the repository permission? - if ( !userRepositories.isAuthorizedToUploadArtifacts( getPrincipal(), repositoryId ) ) - { - addActionError( "User is not authorized to upload in repository " + repositoryId ); - } - - if ( artifactFile == null || artifactFile.length() == 0 ) - { - addActionError( "Please add a file to upload." ); - } - - if ( version == null || !VersionUtil.isVersion( version ) ) - { - addActionError( "Invalid version." ); - } - } - catch ( PrincipalNotFoundException pe ) - { - addActionError( pe.getMessage() ); - } - catch ( ArchivaSecurityException ae ) - { - addActionError( ae.getMessage() ); - } - } - - private List getManagableRepos() - { - try - { - return userRepositories.getManagableRepositoryIds( getPrincipal() ); - } - catch ( PrincipalNotFoundException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - log.warn( e.getMessage(), e ); - // TODO: pass this onto the screen. - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - private void queueRepositoryTask( String repositoryId, File localFile ) - { - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( repositoryId ); - task.setResourceFile( localFile ); - task.setUpdateRelatedArtifacts( true ); - task.setScanAll( false ); - - try - { - scheduler.queueTask( task ); - } - catch ( TaskQueueException e ) - { - log.error( "Unable to queue repository task to execute consumers on resource file ['" + localFile.getName() - + "']." ); - } - } - - public void setScheduler( ArchivaTaskScheduler scheduler ) - { - this.scheduler = scheduler; - } - - public void setRepositoryFactory( RepositoryContentFactory repositoryFactory ) - { - this.repositoryFactory = repositoryFactory; - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } - - public ArchivaAdministration getArchivaAdministration() - { - return archivaAdministration; - } - - public void setArchivaAdministration( ArchivaAdministration archivaAdministration ) - { - this.archivaAdministration = archivaAdministration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/SchedulerAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/SchedulerAction.java deleted file mode 100644 index a4639995d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/SchedulerAction.java +++ /dev/null @@ -1,134 +0,0 @@ -package org.apache.archiva.web.action.admin; - -/* - * 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. - */ - -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; -import org.apache.archiva.scheduler.repository.RepositoryTask; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.components.taskqueue.TaskQueueException; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.inject.Named; - -/** - * Configures the application. - */ -@Controller( "schedulerAction" ) -@Scope( "prototype" ) -public class SchedulerAction - extends AbstractActionSupport - implements SecureAction -{ - - @Inject - @Named( value = "archivaTaskScheduler#repository" ) - private RepositoryArchivaTaskScheduler repositoryTaskScheduler; - - private String repoid; - - private boolean scanAll; - - public String scanRepository() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Cannot run indexer on blank repository id." ); - return SUCCESS; - } - - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( repoid ); - task.setScanAll( scanAll ); - - if ( repositoryTaskScheduler.isProcessingRepositoryTask( repoid ) ) - { - addActionError( "Repository [" + repoid + "] task was already queued." ); - } - else - { - try - { - addActionMessage( "Your request to have repository [" + repoid + "] be indexed has been queued." ); - repositoryTaskScheduler.queueTask( task ); - } - catch ( TaskQueueException e ) - { - addActionError( - "Unable to queue your request to have repository [" + repoid + "] be indexed: " + e.getMessage() ); - } - } - - // Return to the repositories screen. - return SUCCESS; - } - - @Override - public void addActionMessage( String aMessage ) - { - super.addActionMessage( aMessage ); - log.info( "[ActionMessage] " + aMessage ); - } - - @Override - public void addActionError( String anErrorMessage ) - { - super.addActionError( anErrorMessage ); - log.warn( "[ActionError] " + anErrorMessage ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_RUN_INDEXER, Resource.GLOBAL ); - - return bundle; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } - - public boolean getScanAll() - { - return scanAll; - } - - public void setScanAll( boolean scanAll ) - { - this.scanAll = scanAll; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/SystemStatusAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/SystemStatusAction.java deleted file mode 100644 index bbe5b5fe8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/SystemStatusAction.java +++ /dev/null @@ -1,138 +0,0 @@ -package org.apache.archiva.web.action.admin; - -/* - * 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. - */ - -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.repository.scanner.RepositoryScanner; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.components.cache.Cache; -import org.apache.archiva.redback.components.taskqueue.TaskQueue; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import java.util.Map; - -/** - * Shows system status information for the administrator. - * - * - */ -@Controller( "systemStatus" ) -@Scope( "prototype" ) -public class SystemStatusAction - extends AbstractActionSupport - implements SecureAction -{ - - private Map queues; - - private Map caches; - - @Inject - private RepositoryScanner scanner; - - private String memoryStatus; - - private String cacheKey; - - @PostConstruct - public void initialize() - { - super.initialize(); - queues = getBeansOfType( TaskQueue.class ); - caches = getBeansOfType( Cache.class ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public String execute() - { - Runtime runtime = Runtime.getRuntime(); - runtime.gc(); - long total = runtime.totalMemory(); - long used = total - runtime.freeMemory(); - long max = runtime.maxMemory(); - memoryStatus = formatMemory( used ) + "/" + formatMemory( total ) + " (Max: " + formatMemory( max ) + ")"; - - return SUCCESS; - } - - public String flush() - { - if( !StringUtils.isEmpty( cacheKey ) ) - { - Cache cache = caches.get( cacheKey ); - cache.clear(); - } - - return SUCCESS; - } - - private static String formatMemory( long l ) - { - return l / ( 1024 * 1024 ) + "M"; - } - - public String getMemoryStatus() - { - return memoryStatus; - } - - public RepositoryScanner getScanner() - { - return scanner; - } - - public Map getCaches() - { - return caches; - } - - public Map getQueues() - { - return queues; - } - - public String getCacheKey() - { - return cacheKey; - } - - public void setCacheKey( String cacheKey ) - { - this.cacheKey = cacheKey; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/AbstractAppearanceAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/AbstractAppearanceAction.java deleted file mode 100644 index 3fab37576..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/AbstractAppearanceAction.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.apache.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.OrganisationInformation; -import org.apache.archiva.web.action.AbstractActionSupport; - -import javax.inject.Inject; - -/** - * AbstractAppearanceAction - * - * - */ -public abstract class AbstractAppearanceAction - extends AbstractActionSupport - implements Preparable -{ - - @Inject - protected ArchivaAdministration archivaAdministration; - - private String organisationLogo; - - private String organisationUrl; - - private String organisationName; - - public String getOrganisationLogo() - { - return organisationLogo; - } - - public String getOrganisationName() - { - return organisationName; - } - - public String getOrganisationUrl() - { - return organisationUrl; - } - - public void setOrganisationLogo( String organisationLogo ) - { - this.organisationLogo = organisationLogo; - } - - public void setOrganisationName( String organisationName ) - { - this.organisationName = organisationName; - } - - public void setOrganisationUrl( String organisationUrl ) - { - this.organisationUrl = organisationUrl; - } - - public void prepare() - throws Exception - { - - OrganisationInformation orgInfo = archivaAdministration.getOrganisationInformation(); - if ( orgInfo != null ) - { - setOrganisationLogo( orgInfo.getLogoLocation() ); - setOrganisationName( orgInfo.getName() ); - setOrganisationUrl( orgInfo.getUrl() ); - } - - } - - public ArchivaAdministration getArchivaAdministration() - { - return archivaAdministration; - } - - public void setArchivaAdministration( ArchivaAdministration archivaAdministration ) - { - this.archivaAdministration = archivaAdministration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java deleted file mode 100644 index df514acd4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/EditOrganisationInfoAction.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.OrganisationInformation; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * - */ -@Controller( "editOrganisationInfo" ) -@Scope( "prototype" ) -public class EditOrganisationInfoAction - extends AbstractAppearanceAction - implements SecureAction, Validateable -{ - @Override - public String execute() - throws RepositoryAdminException - { - - OrganisationInformation orgInfo = archivaAdministration.getOrganisationInformation(); - - orgInfo.setLogoLocation( getOrganisationLogo() ); - orgInfo.setName( getOrganisationName() ); - orgInfo.setUrl( getOrganisationUrl() ); - - archivaAdministration.setOrganisationInformation( orgInfo ); - return SUCCESS; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - return bundle; - } - - public void validate() - { - // trim all unecessary trailing/leading white-spaces; always put this statement before the closing braces(after all validation). - trimAllRequestParameterValues(); - } - - private void trimAllRequestParameterValues() - { - if ( StringUtils.isNotEmpty( super.getOrganisationName() ) ) - { - super.setOrganisationName( super.getOrganisationName().trim() ); - } - - if ( StringUtils.isNotEmpty( super.getOrganisationUrl() ) ) - { - super.setOrganisationUrl( super.getOrganisationUrl().trim() ); - } - - if ( StringUtils.isNotEmpty( super.getOrganisationLogo() ) ) - { - super.setOrganisationLogo( super.getOrganisationLogo().trim() ); - } - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/OrganisationInfoAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/OrganisationInfoAction.java deleted file mode 100644 index b8ed832e6..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/appearance/OrganisationInfoAction.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.apache.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * Stores the organisation information for displaying on the page. - */ -@Controller( "organisationInfo" ) -@Scope( "prototype" ) -public class OrganisationInfoAction - extends AbstractAppearanceAction -{ - // no op -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java deleted file mode 100644 index 4754fd9ce..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorAction.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.admin.model.proxyconnector.ProxyConnectorAdmin; -import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; - -import javax.inject.Inject; -import java.util.List; -import java.util.Map; - -/** - * AbstractProxyConnectorAction - * - * - */ -public abstract class AbstractProxyConnectorAction - extends AbstractActionSupport - implements SecureAction -{ - public static final String DIRECT_CONNECTION = "(direct connection)"; - - @Inject - private ProxyConnectorAdmin proxyConnectorAdmin; - - @Inject - private RemoteRepositoryAdmin remoteRepositoryAdmin; - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - - protected void addProxyConnector( ProxyConnector proxyConnector ) - throws RepositoryAdminException - { - getProxyConnectorAdmin().addProxyConnector( proxyConnector, getAuditInformation() ); - } - - protected ProxyConnector findProxyConnector( String sourceId, String targetId ) - throws RepositoryAdminException - { - if ( StringUtils.isBlank( sourceId ) ) - { - return null; - } - - if ( StringUtils.isBlank( targetId ) ) - { - return null; - } - - return getProxyConnectorAdmin().getProxyConnector( sourceId, targetId ); - } - - protected Map> createProxyConnectorMap() - throws RepositoryAdminException - { - return getProxyConnectorAdmin().getProxyConnectorAsMap(); - } - - protected void removeConnector( String sourceId, String targetId ) - throws RepositoryAdminException - { - ProxyConnector proxyConnector = findProxyConnector( sourceId, targetId ); - if ( proxyConnector != null ) - { - getProxyConnectorAdmin().deleteProxyConnector( proxyConnector, getAuditInformation() ); - } - } - - protected void removeProxyConnector( ProxyConnector connector ) - throws RepositoryAdminException - { - getProxyConnectorAdmin().deleteProxyConnector( connector, getAuditInformation() ); - } - - - public ProxyConnectorAdmin getProxyConnectorAdmin() - { - return proxyConnectorAdmin; - } - - public void setProxyConnectorAdmin( ProxyConnectorAdmin proxyConnectorAdmin ) - { - this.proxyConnectorAdmin = proxyConnectorAdmin; - } - - public RemoteRepositoryAdmin getRemoteRepositoryAdmin() - { - return remoteRepositoryAdmin; - } - - public void setRemoteRepositoryAdmin( RemoteRepositoryAdmin remoteRepositoryAdmin ) - { - this.remoteRepositoryAdmin = remoteRepositoryAdmin; - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java deleted file mode 100644 index 34abe41d3..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AbstractProxyConnectorFormAction.java +++ /dev/null @@ -1,488 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.NetworkProxy; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin; -import org.apache.archiva.policies.DownloadErrorPolicy; -import org.apache.archiva.policies.Policy; -import org.apache.archiva.policies.PostDownloadPolicy; -import org.apache.archiva.policies.PreDownloadPolicy; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; - -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * AbstractProxyConnectorFormAction - generic fields and methods for either add or edit actions related with the - * Proxy Connector. - * - * - */ -public abstract class AbstractProxyConnectorFormAction - extends AbstractProxyConnectorAction - implements Preparable -{ - - - private Map preDownloadPolicyMap; - - private Map postDownloadPolicyMap; - - private Map downloadErrorPolicyMap; - - private List proxyIdOptions; - - private List managedRepoIdList; - - private List remoteRepoIdList; - - /** - * The map of policies that are available to be set. - */ - private Map policyMap; - - /** - * The property key to add or remove. - */ - private String propertyKey; - - /** - * The property value to add. - */ - private String propertyValue; - - /** - * The blacklist pattern to add. - */ - private String blackListPattern; - - /** - * The whitelist pattern to add. - */ - private String whiteListPattern; - - /** - * The pattern to add or remove (black or white). - */ - private String pattern; - - /** - * The model for this action. - */ - protected ProxyConnector connector; - - @Inject - private NetworkProxyAdmin networkProxyAdmin; - - @PostConstruct - public void initialize( ) - { - super.initialize( ); - this.preDownloadPolicyMap = getBeansOfType( PreDownloadPolicy.class ); - this.postDownloadPolicyMap = getBeansOfType( PostDownloadPolicy.class ); - this.downloadErrorPolicyMap = getBeansOfType( DownloadErrorPolicy.class ); - } - - public String addBlackListPattern( ) - { - String pattern = getBlackListPattern( ); - - //pattern = StringEscapeUtils.unescapeJavaScript( pattern ); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot add a blank black list pattern." ); - } - - if ( !hasActionErrors( ) ) - { - getConnector( ).getBlackListPatterns( ).add( pattern ); - setBlackListPattern( null ); - } - - return INPUT; - } - - @SuppressWarnings( "unchecked" ) - public String addProperty( ) - { - String key = getPropertyKey( ); - String value = getPropertyValue( ); - - if ( StringUtils.isBlank( key ) ) - { - addActionError( "Unable to add property with blank key." ); - } - - if ( StringUtils.isBlank( value ) ) - { - addActionError( "Unable to add property with blank value." ); - } - - if ( !hasActionErrors( ) ) - { - getConnector( ).getProperties( ).put( key, value ); - setPropertyKey( null ); - setPropertyValue( null ); - } - - return INPUT; - } - - public String addWhiteListPattern( ) - { - String pattern = getWhiteListPattern( ); - //pattern = StringEscapeUtils.unescapeJavaScript( pattern ); - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot add a blank white list pattern." ); - } - - if ( !hasActionErrors( ) ) - { - getConnector( ).getWhiteListPatterns( ).add( pattern ); - setWhiteListPattern( null ); - } - - return INPUT; - } - - public String getBlackListPattern( ) - { - return blackListPattern; - } - - public ProxyConnector getConnector( ) - { - return connector; - } - - public List getManagedRepoIdList( ) - { - return managedRepoIdList; - } - - public String getPattern( ) - { - return pattern; - } - - public Map getPolicyMap( ) - { - return policyMap; - } - - public String getPropertyKey( ) - { - return propertyKey; - } - - public String getPropertyValue( ) - { - return propertyValue; - } - - public List getProxyIdOptions( ) - { - return proxyIdOptions; - } - - public List getRemoteRepoIdList( ) - { - return remoteRepoIdList; - } - - public String getWhiteListPattern( ) - { - return whiteListPattern; - } - - public void prepare( ) - throws RepositoryAdminException - { - proxyIdOptions = createNetworkProxyOptions( ); - managedRepoIdList = createManagedRepoOptions( ); - remoteRepoIdList = createRemoteRepoOptions( ); - policyMap = createPolicyMap( ); - } - - public String removeBlackListPattern( ) - { - String pattern = getPattern( ); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot remove a blank black list pattern." ); - } - - if ( !getConnector( ).getBlackListPatterns( ).contains( pattern ) - && !getConnector( ).getBlackListPatterns( ).contains( pattern )) - { - addActionError( "Non-existant black list pattern [" + pattern + "], no black list pattern removed." ); - } - - if ( !hasActionErrors( ) ) - { - getConnector( ).getBlackListPatterns( ).remove( pattern ); - } - - setBlackListPattern( null ); - setPattern( null ); - - return INPUT; - } - - public String removeProperty( ) - { - String key = getPropertyKey( ); - - if ( StringUtils.isBlank( key ) ) - { - addActionError( "Unable to remove property with blank key." ); - } - - if ( !getConnector( ).getProperties( ).containsKey( key ) ) - { - addActionError( "Non-existant property key [" + pattern + "], no property was removed." ); - } - - if ( !hasActionErrors( ) ) - { - getConnector( ).getProperties( ).remove( key ); - } - - setPropertyKey( null ); - setPropertyValue( null ); - - return INPUT; - } - - public String removeWhiteListPattern( ) - { - String pattern = getPattern( ); - - if ( StringUtils.isBlank( pattern ) ) - { - addActionError( "Cannot remove a blank white list pattern." ); - } - - if ( !getConnector( ).getWhiteListPatterns( ).contains( pattern ) - && !getConnector( ).getWhiteListPatterns( ).contains( pattern )) - { - addActionError( "Non-existant white list pattern [" + pattern + "], no white list pattern removed." ); - } - - if ( !hasActionErrors( ) ) - { - getConnector( ).getWhiteListPatterns( ).remove( pattern ); - } - - setWhiteListPattern( null ); - setPattern( null ); - - return INPUT; - } - - public void setBlackListPattern( String blackListPattern ) - { - this.blackListPattern = blackListPattern; - } - - public void setConnector( ProxyConnector connector ) - { - this.connector = connector; - } - - public void setManagedRepoIdList( List managedRepoIdList ) - { - this.managedRepoIdList = managedRepoIdList; - } - - public void setPattern( String pattern ) - { - this.pattern = pattern; - } - - public void setPolicyMap( Map policyMap ) - { - this.policyMap = policyMap; - } - - public void setPropertyKey( String propertyKey ) - { - this.propertyKey = propertyKey; - } - - public void setPropertyValue( String propertyValue ) - { - this.propertyValue = propertyValue; - } - - public void setProxyIdOptions( List proxyIdOptions ) - { - this.proxyIdOptions = proxyIdOptions; - } - - public void setRemoteRepoIdList( List remoteRepoIdList ) - { - this.remoteRepoIdList = remoteRepoIdList; - } - - public void setWhiteListPattern( String whiteListPattern ) - { - this.whiteListPattern = whiteListPattern; - } - - protected List createManagedRepoOptions( ) - throws RepositoryAdminException - { - return new ArrayList( getManagedRepositoryAdmin( ).getManagedRepositoriesAsMap( ).keySet( ) ); - } - - protected List createNetworkProxyOptions( ) - throws RepositoryAdminException - { - List options = new ArrayList( ); - - options.add( DIRECT_CONNECTION ); - options.addAll( getNetworkProxiesKeys( ) ); - - return options; - } - - private Collection getNetworkProxiesKeys( ) - throws RepositoryAdminException - { - List networkProxies = networkProxyAdmin.getNetworkProxies( ); - if ( networkProxies == null || networkProxies.isEmpty( ) ) - { - return Collections.emptyList( ); - } - List keys = new ArrayList( networkProxies.size( ) ); - for ( NetworkProxy networkProxy : networkProxies ) - { - keys.add( networkProxy.getId( ) ); - } - return keys; - - } - - protected Map createPolicyMap( ) - { - Map policyMap = new HashMap( ); - - policyMap.putAll( preDownloadPolicyMap ); - policyMap.putAll( postDownloadPolicyMap ); - policyMap.putAll( downloadErrorPolicyMap ); - - return policyMap; - } - - protected List createRemoteRepoOptions( ) - throws RepositoryAdminException - { - return new ArrayList( getRemoteRepositoryAdmin( ).getRemoteRepositoriesAsMap( ).keySet( ) ); - } - - @SuppressWarnings( "unchecked" ) - protected void validateConnector( ) - { - if ( connector.getPolicies( ) == null ) - { - addActionError( "Policies must be set." ); - } - else - { - // Validate / Fix policy settings arriving from browser. - for ( Map.Entry entry : getPolicyMap( ).entrySet( ) ) - { - String policyId = entry.getKey( ); - Policy policy = entry.getValue( ); - List options = policy.getOptions( ); - - if ( !connector.getPolicies( ).containsKey( policyId ) ) - { - addActionError( "Policy [" + policyId + "] must be set (missing id)." ); - continue; - } - - Map properties = connector.getProperties( ); - for ( Map.Entry entry2 : properties.entrySet( ) ) - { - Object value = entry2.getValue( ); - if ( value.getClass( ).isArray( ) ) - { - String[] arr = (String[]) value; - properties.put( entry2.getKey( ), arr[0] ); - } - } - - // Ugly hack to compensate for ugly browsers. - Object o = connector.getPolicies( ).get( policyId ); - String value; - if ( o.getClass( ).isArray( ) ) - { - String arr[] = (String[]) o; - value = arr[0]; - } - else - { - value = (String) o; - } - - connector.getPolicies( ).put( policyId, value ); - - if ( StringUtils.isBlank( value ) ) - { - addActionError( "Policy [" + policyId + "] must be set (missing value)." ); - continue; - } - - if ( !options.contains( value ) ) - { - addActionError( - "Value of [" + value + "] is invalid for policy [" + policyId + "], valid values: " + options ); - continue; - } - } - } - } - - public NetworkProxyAdmin getNetworkProxyAdmin( ) - { - return networkProxyAdmin; - } - - public void setNetworkProxyAdmin( NetworkProxyAdmin networkProxyAdmin ) - { - this.networkProxyAdmin = networkProxyAdmin; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java deleted file mode 100644 index da877988c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/AddProxyConnectorAction.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * AddProxyConnectorAction - * - * - */ -@Controller( "addProxyConnectorAction" ) -@Scope( "prototype" ) -public class AddProxyConnectorAction - extends AbstractProxyConnectorFormAction -{ - @Override - public void prepare() - throws RepositoryAdminException - { - super.prepare(); - connector = new ProxyConnector(); - } - - @Override - public String input() - { - return INPUT; - } - - public String commit() - throws RepositoryAdminException - { - /* Too complex for webwork's ${Action}-validation.xml techniques. - * Not appropriate for use with webwork's implements Validatable, as that validates regardless of - * the request method, such as .addProperty() or .addWhiteList(). - * - * This validation is ultimately only useful on this one request method. - */ - String sourceId = connector.getSourceRepoId(); - String targetId = connector.getTargetRepoId(); - - ProxyConnector otherConnector = findProxyConnector( sourceId, targetId ); - if ( otherConnector != null ) - { - addActionError( - "Unable to add proxy connector, as one already exists with source repository id [" + sourceId - + "] and target repository id [" + targetId + "]." ); - } - - validateConnector(); - - if ( hasActionErrors() ) - { - return INPUT; - } - - if ( StringUtils.equals( DIRECT_CONNECTION, connector.getProxyId() ) ) - { - connector.setProxyId( null ); - } - - addProxyConnector( connector ); - return SUCCESS; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java deleted file mode 100644 index 7e2e1ceb0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorAction.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * DeleteProxyConnectorAction - * - * - */ -@Controller( "deleteProxyConnectorAction" ) -@Scope( "prototype" ) -public class DeleteProxyConnectorAction - extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - private ProxyConnector proxyConfig; - - public String confirmDelete() - throws RepositoryAdminException - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( - "Unable to delete proxy configuration, configuration with source [" + source + "], and target [" - + target + "] does not exist." ); - return ERROR; - } - - return INPUT; - } - - public String delete() - throws RepositoryAdminException - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( - "Unable to delete proxy configuration, configuration with source [" + source + "], and target [" - + target + "] does not exist." ); - return ERROR; - } - - if ( hasActionErrors() ) - { - return ERROR; - } - - getProxyConnectorAdmin().deleteProxyConnector( proxyConfig, getAuditInformation() ); - addActionMessage( "Successfully removed proxy connector [" + source + " , " + target + " ]" ); - - setSource( null ); - setTarget( null ); - - return SUCCESS; - } - - public String getSource() - { - return source; - } - - public void setSource( String id ) - { - this.source = id; - } - - public String getTarget() - { - return target; - } - - public void setTarget( String id ) - { - this.target = id; - } - - public ProxyConnector getProxyConfig() - { - return proxyConfig; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java deleted file mode 100644 index 8ef74b173..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/* - * 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. - */ - -/** - * DisableProxyConnectorAction - */ -@Controller( "disableProxyConnectorAction" ) -@Scope( "prototype" ) -public class DisableProxyConnectorAction - extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - private ProxyConnector proxyConfig; - - public String confirmDisable() - throws RepositoryAdminException - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( - "Unable to disable proxy configuration, configuration with source [" + source + "], and target [" - + target + "] does not exist." ); - return ERROR; - } - - return INPUT; - } - - public String disable() - throws RepositoryAdminException - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( - "Unable to disable proxy configuration, configuration with source [" + source + "], and target [" - + target + "] does not exist." ); - return ERROR; - } - - if ( hasActionErrors() ) - { - return ERROR; - } - - proxyConfig.setDisabled( true ); - - addActionMessage( "Successfully disabled proxy connector [" + source + " , " + target + " ]" ); - - setSource( null ); - setTarget( null ); - - getProxyConnectorAdmin().updateProxyConnector( proxyConfig, getAuditInformation() ); - return SUCCESS; - } - - public String getSource() - { - return source; - } - - public void setSource( String source ) - { - this.source = source; - } - - public String getTarget() - { - return target; - } - - public void setTarget( String target ) - { - this.target = target; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java deleted file mode 100644 index a6e5b3ded..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/EditProxyConnectorAction.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * EditProxyConnectorAction - * - * - */ -@Controller( "editProxyConnectorAction" ) -@Scope( "prototype" ) -public class EditProxyConnectorAction - extends AbstractProxyConnectorFormAction -{ - /** - * The proxy connector source id to edit. (used with {@link #target}) - */ - private String source; - - /** - * The proxy connector target id to edit. (used with {@link #source}) - */ - private String target; - - @Override - public void prepare() - throws RepositoryAdminException - { - super.prepare(); - - connector = findProxyConnector( source, target ); - } - - public String input() - { - if ( connector == null ) - { - addActionError( - "Unable to edit non existant proxy connector with source [" + source + "] and target [" + target - + "]" ); - return ERROR; - } - return INPUT; - } - - public String commit() - throws RepositoryAdminException - { - validateConnector(); - - if ( hasActionErrors() ) - { - return INPUT; - } - - String sourceId = connector.getSourceRepoId(); - String targetId = connector.getTargetRepoId(); - - ProxyConnector otherConnector = findProxyConnector( sourceId, targetId ); - if ( otherConnector != null ) - { - // Remove the previous connector. - removeProxyConnector( otherConnector ); - } - - if ( hasActionErrors() ) - { - return INPUT; - } - - addProxyConnector( connector ); - return SUCCESS; - } - - public String getSource() - { - return source; - } - - public void setSource( String source ) - { - this.source = source; - } - - public String getTarget() - { - return target; - } - - public void setTarget( String target ) - { - this.target = target; - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java deleted file mode 100644 index 5a000a3a5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/* - * 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. - */ - -/** - * EnableProxyConnectorAction - */ -@Controller( "enableProxyConnectorAction" ) -@Scope( "prototype" ) -public class EnableProxyConnectorAction - extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - private ProxyConnector proxyConfig; - - public String confirmEnable() - throws RepositoryAdminException - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( - "Unable to enable proxy configuration, configuration with source [" + source + "], and target [" - + target + "] does not exist." ); - return ERROR; - } - - return INPUT; - } - - public String enable() throws RepositoryAdminException - { - this.proxyConfig = findProxyConnector( source, target ); - - // Not set? Then there is nothing to delete. - if ( this.proxyConfig == null ) - { - addActionError( - "Unable to enabled proxy configuration, configuration with source [" + source + "], and target [" - + target + "] does not exist." ); - return ERROR; - } - - if ( hasActionErrors() ) - { - return ERROR; - } - - proxyConfig.setDisabled( false ); - - getProxyConnectorAdmin().updateProxyConnector( proxyConfig, getAuditInformation() ); - - addActionMessage( "Successfully enabled proxy connector [" + source + " , " + target + " ]" ); - - setSource( null ); - setTarget( null ); - - return SUCCESS; - } - - public String getSource() - { - return source; - } - - public void setSource( String source ) - { - this.source = source; - } - - public String getTarget() - { - return target; - } - - public void setTarget( String target ) - { - this.target = target; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java deleted file mode 100644 index 9f5461298..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/ProxyConnectorsAction.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.beans.AbstractRepository; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * ProxyConnectorsAction - * - * - */ -@Controller( "proxyConnectorsAction" ) -@Scope( "prototype" ) -public class ProxyConnectorsAction - extends AbstractProxyConnectorAction - implements Preparable -{ - private Map repoMap; - - /** - * boolean to indicate that remote repo is present. Used for Add Link - */ - private boolean remoteRepoExists = false; - - /** - * Map of Proxy Connectors. - */ - private Map> proxyConnectorMap; - - public void prepare() - throws RepositoryAdminException - { - repoMap = new HashMap(); - repoMap.putAll( getRemoteRepositoryAdmin().getRemoteRepositoriesAsMap() ); - // FIXME olamy : are we sure we want Managed too ??? - repoMap.putAll( getManagedRepositoryAdmin().getManagedRepositoriesAsMap() ); - - proxyConnectorMap = createProxyConnectorMap(); - - remoteRepoExists = getRemoteRepositoryAdmin().getRemoteRepositories().size() > 0; - } - - public Map getRepoMap() - { - return repoMap; - } - - public Map> getProxyConnectorMap() - { - return proxyConnectorMap; - } - - // FIXME olamy should be is ! - public boolean getRemoteRepoExists() - { - return remoteRepoExists; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java deleted file mode 100644 index 80c17105d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsAction.java +++ /dev/null @@ -1,148 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import java.util.List; - -/** - * SortProxyConnectorsAction - - * - * - */ -@Controller( "sortProxyConnectorsAction" ) -@Scope( "prototype" ) -public class SortProxyConnectorsAction - extends AbstractProxyConnectorAction -{ - private String source; - - private String target; - - public String getSource() - { - return source; - } - - public String getTarget() - { - return target; - } - - public void setSource( String id ) - { - this.source = id; - } - - public void setTarget( String id ) - { - this.target = id; - } - - public String sortDown() - throws RepositoryAdminException - { - List connectors = createProxyConnectorMap().get( source ); - - int idx = findTargetConnector( connectors, target ); - - if ( idx >= 0 ) - { - incrementConnectorOrder( connectors, idx ); - decrementConnectorOrder( connectors, idx + 1 ); - } - - for ( ProxyConnector proxyConnector : connectors ) - { - getProxyConnectorAdmin().updateProxyConnector( proxyConnector, getAuditInformation() ); - } - return SUCCESS; - } - - public String sortUp() - throws RepositoryAdminException - { - List connectors = createProxyConnectorMap().get( source ); - - int idx = findTargetConnector( connectors, target ); - - if ( idx >= 0 ) - { - decrementConnectorOrder( connectors, idx ); - incrementConnectorOrder( connectors, idx - 1 ); - } - - for ( ProxyConnector proxyConnector : connectors ) - { - getProxyConnectorAdmin().updateProxyConnector( proxyConnector, getAuditInformation() ); - } - return SUCCESS; - } - - private void decrementConnectorOrder( List connectors, int idx ) - { - if ( !validIndex( connectors, idx ) ) - { - // Do nothing. - return; - } - - int order = connectors.get( idx ).getOrder(); - connectors.get( idx ).setOrder( Math.max( 1, order - 1 ) ); - } - - private int findTargetConnector( List connectors, String targetRepoId ) - { - int idx = ( -1 ); - - for ( int i = 0; i < connectors.size(); i++ ) - { - if ( StringUtils.equals( targetRepoId, connectors.get( i ).getTargetRepoId() ) ) - { - idx = i; - break; - } - } - - return idx; - } - - private void incrementConnectorOrder( List connectors, int idx ) - { - if ( !validIndex( connectors, idx ) ) - { - // Do nothing. - return; - } - - int order = connectors.get( idx ).getOrder(); - connectors.get( idx ).setOrder( order + 1 ); - } - - private boolean validIndex( List connectors, int idx ) - { - return ( idx >= 0 ) && ( idx < connectors.size() ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java deleted file mode 100644 index 073924ae7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction.java +++ /dev/null @@ -1,222 +0,0 @@ -package org.apache.archiva.web.action.admin.legacy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.LegacyArtifactPath; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.model.ArtifactReference; -import org.apache.archiva.repository.ManagedRepositoryContent; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.inject.Named; - -/** - * Add a LegacyArtifactPath to archiva configuration - * - * @since 1.1 - */ -@Controller( "addLegacyArtifactPathAction" ) -@Scope( "prototype" ) -public class AddLegacyArtifactPathAction - extends AbstractActionSupport - implements Preparable, Validateable -{ - - @Inject - private ArchivaAdministration archivaAdministration; - - @Inject - @Named( value = "managedRepositoryContent#legacy" ) - private ManagedRepositoryContent repositoryContent; - - - private LegacyArtifactPath legacyArtifactPath; - - private String groupId; - - private String artifactId; - - private String version; - - private String classifier; - - private String type; - - - public void prepare() - { - this.legacyArtifactPath = new LegacyArtifactPath(); - } - - public String input() - { - return INPUT; - } - - public String commit() - { - this.legacyArtifactPath.setArtifact( - this.groupId + ":" + this.artifactId + ":" + this.version + ":" + this.classifier + ":" + this.type ); - - // Check the proposed Artifact macthes the path - ArtifactReference artifact = new ArtifactReference(); - - artifact.setGroupId( this.groupId ); - artifact.setArtifactId( this.artifactId ); - artifact.setClassifier( this.classifier ); - artifact.setVersion( this.version ); - artifact.setType( this.type ); - - String path = repositoryContent.toPath( artifact ); - if ( !path.equals( this.legacyArtifactPath.getPath() ) ) - { - addActionError( "artifact reference does not match the initial path : " + path ); - return ERROR; - } - - try - { - getArchivaAdministration().addLegacyArtifactPath( legacyArtifactPath, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - log.error( e.getMessage(), e ); - addActionError( "Error occured " + e.getMessage() ); - return INPUT; - } - return SUCCESS; - } - - public LegacyArtifactPath getLegacyArtifactPath() - { - return legacyArtifactPath; - } - - public void setLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath ) - { - this.legacyArtifactPath = legacyArtifactPath; - } - - public void validate() - { - // trim all unecessary trailing/leading white-spaces; always put this statement before the closing braces(after all validation). - trimAllRequestParameterValues(); - } - - private void trimAllRequestParameterValues() - { - if ( StringUtils.isNotEmpty( legacyArtifactPath.getPath() ) ) - { - legacyArtifactPath.setPath( legacyArtifactPath.getPath().trim() ); - } - - if ( StringUtils.isNotEmpty( groupId ) ) - { - groupId = groupId.trim(); - } - - if ( StringUtils.isNotEmpty( artifactId ) ) - { - artifactId = artifactId.trim(); - } - - if ( StringUtils.isNotEmpty( version ) ) - { - version = version.trim(); - } - - if ( StringUtils.isNotEmpty( classifier ) ) - { - classifier = classifier.trim(); - } - - if ( StringUtils.isNotEmpty( type ) ) - { - type = type.trim(); - } - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public String getClassifier() - { - return classifier; - } - - public void setClassifier( String classifier ) - { - this.classifier = classifier; - } - - public String getType() - { - return type; - } - - public void setType( String type ) - { - this.type = type; - } - - public ArchivaAdministration getArchivaAdministration() - { - return archivaAdministration; - } - - public void setArchivaAdministration( ArchivaAdministration archivaAdministration ) - { - this.archivaAdministration = archivaAdministration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java deleted file mode 100644 index 944ac1d3e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/DeleteLegacyArtifactPathAction.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.apache.archiva.web.action.admin.legacy; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; - -/** - * Delete a LegacyArtifactPath to archiva configuration - * - * @since 1.1 - */ -@Controller( "deleteLegacyArtifactPathAction" ) -@Scope( "prototype" ) -public class DeleteLegacyArtifactPathAction - extends AbstractActionSupport -{ - - @Inject - private ArchivaAdministration archivaAdministration; - - private String path; - - public String delete() - { - log.info( "remove [" + path + "] from legacy artifact path resolution" ); - try - { - getArchivaAdministration().deleteLegacyArtifactPath( path, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - log.error( e.getMessage(), e ); - addActionError( "Exception during delete " + e.getMessage() ); - } - return SUCCESS; - } - - public String getPath() - { - return path; - } - - public void setPath( String path ) - { - this.path = path; - } - - public ArchivaAdministration getArchivaAdministration() - { - return archivaAdministration; - } - - public void setArchivaAdministration( ArchivaAdministration archivaAdministration ) - { - this.archivaAdministration = archivaAdministration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java deleted file mode 100644 index cfb095a1d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/legacy/LegacyArtifactPathAction.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.apache.archiva.web.action.admin.legacy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.LegacyArtifactPath; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.util.ContextUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.struts2.interceptor.ServletRequestAware; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.List; - -/** - * Shows the LegacyArtifactPath Tab for the administrator. - * - * @since 1.1 - */ -@Controller( "legacyArtifactPathAction" ) -@Scope( "prototype" ) -public class LegacyArtifactPathAction - extends AbstractActionSupport - implements SecureAction, ServletRequestAware, Preparable -{ - - @Inject - private ArchivaAdministration archivaAdministration; - - private List legacyArtifactPaths; - - /** - * Used to construct the repository WebDAV URL in the repository action. - */ - private String baseUrl; - - public void setServletRequest( HttpServletRequest request ) - { - // TODO: is there a better way to do this? - this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public void prepare() - throws RepositoryAdminException - { - legacyArtifactPaths = new ArrayList( getArchivaAdministration().getLegacyArtifactPaths() ); - } - - public List getLegacyArtifactPaths() - { - return legacyArtifactPaths; - } - - public String getBaseUrl() - { - return baseUrl; - } - - public ArchivaAdministration getArchivaAdministration() - { - return archivaAdministration; - } - - public void setArchivaAdministration( ArchivaAdministration archivaAdministration ) - { - this.archivaAdministration = archivaAdministration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/network/NetworkConfigurationAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/network/NetworkConfigurationAction.java deleted file mode 100644 index 1c484aa55..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/network/NetworkConfigurationAction.java +++ /dev/null @@ -1,98 +0,0 @@ -package org.apache.archiva.web.action.admin.network; -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.NetworkConfiguration; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; - -/** - * @author Olivier Lamy - * @since 1.4-M1 - */ -@Controller( "networkConfigurationAction" ) -@Scope( "prototype" ) -public class NetworkConfigurationAction - extends AbstractActionSupport - implements Preparable, SecureAction -{ - - @Inject - private ArchivaAdministration archivaAdministration; - - private NetworkConfiguration networkConfiguration; - - public void prepare( ) - throws Exception - { - networkConfiguration = archivaAdministration.getNetworkConfiguration( ); - } - - public SecureActionBundle getSecureActionBundle( ) - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle( ); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public String edit( ) - { - return INPUT; - } - - public String save( ) - { - try - { - archivaAdministration.setNetworkConfiguration( this.networkConfiguration ); - } - catch ( RepositoryAdminException e ) - { - addActionError( "Error during networkConfiguration upate:" + e.getMessage( ) ); - return ERROR; - } - addActionMessage( "Network Configuration Updated" ); - return SUCCESS; - } - - public NetworkConfiguration getNetworkConfiguration( ) - { - return networkConfiguration; - } - - public void setNetworkConfiguration( NetworkConfiguration networkConfiguration ) - { - this.networkConfiguration = networkConfiguration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java deleted file mode 100644 index 087945a78..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction.java +++ /dev/null @@ -1,232 +0,0 @@ -package org.apache.archiva.web.action.admin.networkproxies; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.NetworkProxy; -import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; - -/** - * ConfigureNetworkProxyAction - * - * - */ -@Controller( "configureNetworkProxyAction" ) -@Scope( "prototype" ) -public class ConfigureNetworkProxyAction - extends AbstractActionSupport - implements SecureAction, Preparable, Validateable -{ - - @Inject - private NetworkProxyAdmin networkProxyAdmin; - - private String mode; - - private String proxyid; - - private NetworkProxy proxy; - - public String add() - { - this.mode = "add"; - return INPUT; - } - - public String confirm() - { - return INPUT; - } - - public String delete() - throws RepositoryAdminException - { - - String id = getProxyid(); - if ( StringUtils.isBlank( id ) ) - { - addActionError( "Unable to delete network proxy with blank id." ); - return SUCCESS; - } - - NetworkProxy networkProxy = getNetworkProxyAdmin().getNetworkProxy( id ); - if ( networkProxy == null ) - { - addActionError( "Unable to remove network proxy, proxy with id [" + id + "] not found." ); - return SUCCESS; - } - - getNetworkProxyAdmin().deleteNetworkProxy( id, getAuditInformation() ); - addActionMessage( "Successfully removed network proxy [" + id + "]" ); - return SUCCESS; - } - - public String edit() - { - this.mode = "edit"; - return INPUT; - } - - public String getMode() - { - return mode; - } - - public NetworkProxy getProxy() - { - return proxy; - } - - public String getProxyid() - { - return proxyid; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public String input() - { - return INPUT; - } - - public void prepare() - throws Exception - { - String id = getProxyid(); - - if ( StringUtils.isNotBlank( id ) ) - { - proxy = findNetworkProxy( id ); - } - - if ( proxy == null ) - { - proxy = new NetworkProxy(); - } - } - - public String save() - throws RepositoryAdminException - { - String mode = getMode(); - - String id = getProxy().getId(); - - if ( StringUtils.equalsIgnoreCase( "edit", mode ) ) - { - getNetworkProxyAdmin().updateNetworkProxy( proxy, getAuditInformation() ); - } - else - { - getNetworkProxyAdmin().addNetworkProxy( proxy, getAuditInformation() ); - } - - return SUCCESS; - } - - public void validate() - { - // trim all unecessary trailing/leading white-spaces; always put this statement before the closing braces(after all validation). - trimAllRequestParameterValues(); - } - - public void setMode( String mode ) - { - this.mode = mode; - } - - public void setProxy( NetworkProxy proxy ) - { - this.proxy = proxy; - } - - public void setProxyid( String proxyid ) - { - this.proxyid = proxyid; - } - - - private NetworkProxy findNetworkProxy( String id ) - throws RepositoryAdminException - { - return getNetworkProxyAdmin().getNetworkProxy( id ); - } - - private void trimAllRequestParameterValues() - { - if ( StringUtils.isNotEmpty( proxy.getId() ) ) - { - proxy.setId( proxy.getId().trim() ); - } - - if ( StringUtils.isNotEmpty( proxy.getHost() ) ) - { - proxy.setHost( proxy.getHost().trim() ); - } - - if ( StringUtils.isNotEmpty( proxy.getPassword() ) ) - { - proxy.setPassword( proxy.getPassword().trim() ); - } - - if ( StringUtils.isNotEmpty( proxy.getProtocol() ) ) - { - proxy.setProtocol( proxy.getProtocol().trim() ); - } - - if ( StringUtils.isNotEmpty( proxy.getUsername() ) ) - { - proxy.setUsername( proxy.getUsername().trim() ); - } - } - - public NetworkProxyAdmin getNetworkProxyAdmin() - { - return networkProxyAdmin; - } - - public void setNetworkProxyAdmin( NetworkProxyAdmin networkProxyAdmin ) - { - this.networkProxyAdmin = networkProxyAdmin; - } -} - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java deleted file mode 100644 index f43083296..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/networkproxies/NetworkProxiesAction.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.apache.archiva.web.action.admin.networkproxies; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.beans.NetworkProxy; -import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import java.util.List; - -/** - * NetworkProxiesAction - * - * - */ -@Controller( "networkProxiesAction" ) -@Scope( "prototype" ) -public class NetworkProxiesAction - extends AbstractActionSupport - implements Preparable, SecureAction -{ - - @Inject - private NetworkProxyAdmin networkProxyAdmin; - - private List networkProxies; - - public void prepare() - throws Exception - { - networkProxies = getNetworkProxyAdmin().getNetworkProxies(); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public List getNetworkProxies() - { - return networkProxies; - } - - public void setNetworkProxies( List networkProxies ) - { - this.networkProxies = networkProxies; - } - - public NetworkProxyAdmin getNetworkProxyAdmin() - { - return networkProxyAdmin; - } - - public void setNetworkProxyAdmin( NetworkProxyAdmin networkProxyAdmin ) - { - this.networkProxyAdmin = networkProxyAdmin; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java deleted file mode 100644 index 3ae0a1436..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractManagedRepositoriesAction.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -/** - * Abstract ManagedRepositories Action. - *

- * Place for all generic methods used in Managed Repository Administration. - * - * - */ -public abstract class AbstractManagedRepositoriesAction - extends AbstractRepositoriesAdminAction -{ - public static final String CONFIRM = "confirm"; -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java deleted file mode 100644 index b00461600..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractRemoteRepositoriesAction.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -import org.apache.archiva.admin.model.beans.NetworkProxy; -import org.apache.archiva.admin.model.networkproxy.NetworkProxyAdmin; -import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin; - -import javax.inject.Inject; -import java.util.Collections; -import java.util.List; - -/* - * 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. - */ - -/** - * AbstractRemoteRepositoriesAction - * - * - */ -public class AbstractRemoteRepositoriesAction - extends AbstractRepositoriesAdminAction -{ - @Inject - private RemoteRepositoryAdmin remoteRepositoryAdmin; - - @Inject - private NetworkProxyAdmin networkProxyAdmin; - - private List networkProxies; - - public RemoteRepositoryAdmin getRemoteRepositoryAdmin() - { - return remoteRepositoryAdmin; - } - - public void setRemoteRepositoryAdmin( RemoteRepositoryAdmin remoteRepositoryAdmin ) - { - this.remoteRepositoryAdmin = remoteRepositoryAdmin; - } - - public NetworkProxyAdmin getNetworkProxyAdmin() - { - return networkProxyAdmin; - } - - public void setNetworkProxyAdmin( NetworkProxyAdmin networkProxyAdmin ) - { - this.networkProxyAdmin = networkProxyAdmin; - } - - public List getNetworkProxies() - { - return networkProxies == null ? Collections.emptyList() : networkProxies; - } - - public void setNetworkProxies( List networkProxies ) - { - this.networkProxies = networkProxies; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java deleted file mode 100644 index 2a75d8d85..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.RepositoryCommonValidator; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.audit.Auditable; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; - -import javax.inject.Inject; - -/** - * Abstract AdminRepositories Action base. - *

- * Base class for all repository administrative functions. - * This should be neutral to the type of action (add/edit/delete) and type of repo (managed/remote) - * - * - */ -public abstract class AbstractRepositoriesAdminAction - extends AbstractActionSupport - implements SecureAction, Auditable -{ - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; - - @Inject - private RepositoryCommonValidator repositoryCommonValidator; - - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } - - public RepositoryCommonValidator getRepositoryCommonValidator() - { - return repositoryCommonValidator; - } - - public void setRepositoryCommonValidator( RepositoryCommonValidator repositoryCommonValidator ) - { - this.repositoryCommonValidator = repositoryCommonValidator; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java deleted file mode 100644 index dff8eafea..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java +++ /dev/null @@ -1,160 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.redback.components.scheduler.CronExpressionValidator; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import java.io.File; - -/** - * AddManagedRepositoryAction - * - * - */ -@Controller( "addManagedRepositoryAction" ) -@Scope( "prototype" ) -public class AddManagedRepositoryAction - extends AbstractManagedRepositoriesAction - implements Preparable, Validateable -{ - - private ManagedRepository repository; - - private boolean stageNeeded; - - private String action = "addRepository"; - - public void prepare() - { - this.repository = new ManagedRepository(); - this.repository.setReleases( false ); - this.repository.setScanned( false ); - this.repository.setBlockRedeployments( false ); - } - - public String input() - { - this.repository.setReleases( true ); - this.repository.setScanned( true ); - this.repository.setBlockRedeployments( true ); - - return INPUT; - } - - public String confirmAdd() - { - return save(); - } - - public String commit() - { - repository.setLocation( getRepositoryCommonValidator().removeExpressions( repository.getLocation() ) ); - - File location = new File( repository.getLocation() ); - if ( location.exists() ) - { - return CONFIRM; - } - - return save(); - } - - private String save() - { - String result = SUCCESS; - try - { - getManagedRepositoryAdmin().addManagedRepository( repository, stageNeeded, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - log.error( e.getMessage(), e ); - addActionError( "Check your server logs, Repository Administration Exception: " + e.getMessage() ); - result = INPUT; - } - - return result; - } - - @Override - public void validate() - { - CronExpressionValidator validator = new CronExpressionValidator(); - - if ( !validator.validate( repository.getCronExpression() ) ) - { - addFieldError( "repository.cronExpression", "Invalid cron expression." ); - } - - // trim all unecessary trailing/leading white-spaces; always put this statement before the closing braces(after all validation). - trimAllRequestParameterValues(); - } - - private void trimAllRequestParameterValues() - { - if ( StringUtils.isNotEmpty( repository.getId() ) ) - { - repository.setId( repository.getId().trim() ); - } - - if ( StringUtils.isNotEmpty( repository.getName() ) ) - { - repository.setName( repository.getName().trim() ); - } - - if ( StringUtils.isNotEmpty( repository.getLocation() ) ) - { - repository.setLocation( repository.getLocation().trim() ); - } - - if ( StringUtils.isNotEmpty( repository.getIndexDirectory() ) ) - { - repository.setIndexDirectory( repository.getIndexDirectory().trim() ); - } - } - - public ManagedRepository getRepository() - { - return repository; - } - - public void setRepository( ManagedRepository repository ) - { - this.repository = repository; - } - - - public void setStageNeeded( boolean stageNeeded ) - { - this.stageNeeded = stageNeeded; - } - - public String getAction() - { - return action; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java deleted file mode 100644 index c6a4e4ea0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryAction.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * AddRemoteRepositoryAction - * - * - */ -@Controller( "addRemoteRepositoryAction" ) -@Scope( "prototype" ) -public class AddRemoteRepositoryAction - extends AbstractRemoteRepositoriesAction - implements Preparable, Validateable -{ - /** - * The model for this action. - */ - private RemoteRepository repository; - - public void prepare() - throws RepositoryAdminException - { - this.repository = new RemoteRepository(); - setNetworkProxies( getNetworkProxyAdmin().getNetworkProxies() ); - } - - public String input() - { - return INPUT; - } - - public String commit() - { - - String result = SUCCESS; - try - { - getRemoteRepositoryAdmin().addRemoteRepository( repository, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( "RepositoryAdminException: " + e.getMessage() ); - result = INPUT; - } - - return result; - } - - - public RemoteRepository getRepository() - { - return repository; - } - - public void setRepository( RemoteRepository repository ) - { - this.repository = repository; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java deleted file mode 100644 index 23f5d7602..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java +++ /dev/null @@ -1,124 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * DeleteManagedRepositoryAction - * - * - */ -@Controller( "deleteManagedRepositoryAction" ) -@Scope( "prototype" ) -public class DeleteManagedRepositoryAction - extends AbstractManagedRepositoriesAction - implements Preparable -{ - - - private ManagedRepository repository; - - private ManagedRepository stagingRepository; - - private String repoid; - - public void prepare() - throws RepositoryAdminException - { - if ( StringUtils.isNotBlank( repoid ) ) - { - this.repository = getManagedRepositoryAdmin().getManagedRepository( repoid ); - this.stagingRepository = getManagedRepositoryAdmin().getManagedRepository( repoid + "-stage" ); - } - } - - public String confirmDelete() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Unable to delete managed repository: repository id was blank." ); - return ERROR; - } - - return INPUT; - } - - public String deleteEntry() - { - return deleteRepository( false ); - } - - public String deleteContents() - { - return deleteRepository( true ); - } - - private String deleteRepository( boolean deleteContents ) - { - ManagedRepository existingRepository = repository; - if ( existingRepository == null ) - { - addActionError( "A repository with that id does not exist" ); - return ERROR; - } - - String result = SUCCESS; - - try - { - getManagedRepositoryAdmin().deleteManagedRepository( existingRepository.getId(), getAuditInformation(), - deleteContents ); - } - catch ( RepositoryAdminException e ) - { - addActionError( - "Unable to delete repository, content may already be partially removed: " + e.getMessage() ); - log.error( e.getMessage(), e ); - result = ERROR; - } - return result; - } - - public ManagedRepository getRepository() - { - return repository; - } - - public void setRepository( ManagedRepository repository ) - { - this.repository = repository; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java deleted file mode 100644 index cca80a1a9..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteRemoteRepositoryAction.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -/** - * DeleteRemoteRepositoryAction - * - * - */ -@Controller( "deleteRemoteRepositoryAction" ) -@Scope( "prototype" ) -public class DeleteRemoteRepositoryAction - extends AbstractRemoteRepositoriesAction - implements Preparable -{ - private RemoteRepository repository; - - private String repoid; - - public void prepare() - throws RepositoryAdminException - { - if ( StringUtils.isNotBlank( repoid ) ) - { - this.repository = getRemoteRepositoryAdmin().getRemoteRepository( repoid ); - } - } - - public String confirmDelete() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Unable to delete remote repository: repository id was blank." ); - return ERROR; - } - - return INPUT; - } - - public String delete() - { - String result = SUCCESS; - RemoteRepository existingRepository = repository; - if ( existingRepository == null ) - { - addActionError( "A repository with that id does not exist" ); - return ERROR; - } - - try - { - getRemoteRepositoryAdmin().deleteRemoteRepository( existingRepository.getId(), getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( "RepositoryAdminException: " + e.getMessage() ); - result = ERROR; - } - return result; - } - - - public RemoteRepository getRepository() - { - return repository; - } - - public void setRepository( RemoteRepository repository ) - { - this.repository = repository; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java deleted file mode 100644 index 0ce76aba5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/DeleteRepositoryGroupAction.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RepositoryGroup; -import org.apache.archiva.admin.model.group.RepositoryGroupAdmin; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; - -/** - * DeleteRepositoryGroupAction - */ -@Controller( "deleteRepositoryGroupAction" ) -@Scope( "prototype" ) -public class DeleteRepositoryGroupAction - extends AbstractRepositoriesAdminAction - implements Preparable -{ - private RepositoryGroup repositoryGroup; - - @Inject - private RepositoryGroupAdmin repositoryGroupAdmin; - - private String repoGroupId; - - public void prepare() - throws RepositoryAdminException - { - - if ( StringUtils.isNotBlank( repoGroupId ) ) - { - this.repositoryGroup = repositoryGroupAdmin.getRepositoryGroup( repoGroupId ); - } - } - - public String confirmDelete() - { - if ( StringUtils.isBlank( repoGroupId ) ) - { - addActionError( "Unable to delete repository group: repository id was blank." ); - return ERROR; - } - - return INPUT; - } - - public String delete() - { - - try - { - RepositoryGroup group = repositoryGroupAdmin.getRepositoryGroup( repoGroupId ); - if ( group == null ) - { - addActionError( "A repository group with that id does not exist." ); - return ERROR; - } - - repositoryGroupAdmin.deleteRepositoryGroup( repoGroupId, getAuditInformation() ); - return SUCCESS; - } - catch ( RepositoryAdminException e ) - { - addActionError( "error occured " + e.getMessage() ); - return ERROR; - } - } - - public RepositoryGroup getRepositoryGroup() - { - return repositoryGroup; - } - - public void setRepositoryGroup( RepositoryGroup repositoryGroup ) - { - this.repositoryGroup = repositoryGroup; - } - - public String getRepoGroupId() - { - return repoGroupId; - } - - public void setRepoGroupId( String repoGroupId ) - { - this.repoGroupId = repoGroupId; - } - - public RepositoryGroupAdmin getRepositoryGroupAdmin() - { - return repositoryGroupAdmin; - } - - public void setRepositoryGroupAdmin( RepositoryGroupAdmin repositoryGroupAdmin ) - { - this.repositoryGroupAdmin = repositoryGroupAdmin; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java deleted file mode 100644 index 47962ba43..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java +++ /dev/null @@ -1,213 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.redback.components.scheduler.CronExpressionValidator; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import java.io.File; - -/** - * AddManagedRepositoryAction - * - * - */ -@Controller( "editManagedRepositoryAction" ) -@Scope( "prototype" ) -public class EditManagedRepositoryAction - extends AbstractManagedRepositoriesAction - implements Preparable, Validateable -{ - - private ManagedRepository repository; - - private ManagedRepository stagingRepository; - - private String repoid; - - private final String action = "editRepository"; - - private boolean stageNeeded; - - - // FIXME better error message - public void prepare() - throws RepositoryAdminException - { - if ( StringUtils.isNotBlank( repoid ) ) - { - repository = getManagedRepositoryAdmin().getManagedRepository( repoid ); - stagingRepository = getManagedRepositoryAdmin().getManagedRepository( repoid + "-stage" ); - } - else if ( repository != null ) - { - repository.setReleases( false ); - repository.setScanned( false ); - } - } - - public String input() - { - if ( repository == null ) - { - addActionError( "Edit failure, unable to edit a repository with a blank repository id." ); - return ERROR; - } - - return INPUT; - } - - public String confirmUpdate() - { - // location was changed - return save( true ); - } - - public String commit() - throws RepositoryAdminException - { - ManagedRepository existingConfig = getManagedRepositoryAdmin().getManagedRepository( repository.getId() ); - boolean resetStats = false; - - // check if the location was changed - repository.setLocation( getRepositoryCommonValidator().removeExpressions( repository.getLocation() ) ); - - if ( !StringUtils.equalsIgnoreCase( existingConfig.getLocation().trim(), repository.getLocation().trim() ) ) - { - resetStats = true; - - File dir = new File( repository.getLocation() ); - if ( dir.exists() ) - { - return CONFIRM; - } - } - - return save( resetStats ); - } - - private String save( boolean resetStats ) - { - - String result = SUCCESS; - try - { - getManagedRepositoryAdmin().updateManagedRepository( repository, stageNeeded, getAuditInformation(), - resetStats ); - } - catch ( RepositoryAdminException e ) - { - addActionError( "Repository Administration Exception: " + e.getMessage() ); - result = ERROR; - } - - return result; - } - - - @Override - public void validate() - { - CronExpressionValidator validator = new CronExpressionValidator(); - - if ( !validator.validate( repository.getCronExpression() ) ) - { - addFieldError( "repository.cronExpression", "Invalid cron expression." ); - } - - trimAllRequestParameterValues(); - } - - private void trimAllRequestParameterValues() - { - if ( StringUtils.isNotEmpty( repository.getId() ) ) - { - repository.setId( repository.getId().trim() ); - } - - if ( StringUtils.isNotEmpty( repository.getName() ) ) - { - repository.setName( repository.getName().trim() ); - } - - if ( StringUtils.isNotEmpty( repository.getLocation() ) ) - { - repository.setLocation( repository.getLocation().trim() ); - } - - if ( StringUtils.isNotEmpty( repository.getIndexDirectory() ) ) - { - repository.setIndexDirectory( repository.getIndexDirectory().trim() ); - } - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } - - - public boolean isStageNeeded() - { - return stageNeeded; - } - - public void setStageNeeded( boolean stageNeeded ) - { - - this.stageNeeded = stageNeeded; - } - - public String getAction() - { - return action; - } - - public ManagedRepository getRepository() - { - return repository; - } - - public void setRepository( ManagedRepository repository ) - { - this.repository = repository; - } - - public ManagedRepository getStagingRepository() - { - return stagingRepository; - } - - public void setStagingRepository( ManagedRepository stagingRepository ) - { - this.stagingRepository = stagingRepository; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java deleted file mode 100644 index 21cfb2743..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryAction.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexException; -import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexScheduler; -import org.apache.commons.lang.StringUtils; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; - -/** - * EditRemoteRepositoryAction - * - * - */ -@Controller( "editRemoteRepositoryAction" ) -@Scope( "prototype" ) -public class EditRemoteRepositoryAction - extends AbstractRemoteRepositoriesAction - implements Preparable -{ - /** - * The model for this action. - */ - private RemoteRepository repository; - - /** - * The repository id to edit. - */ - private String repoid; - - private boolean now, fullDownload; - - @Inject - private DownloadRemoteIndexScheduler downloadRemoteIndexScheduler; - - public void prepare() - throws RepositoryAdminException - { - if ( StringUtils.isNotBlank( repoid ) ) - { - this.repository = getRemoteRepositoryAdmin().getRemoteRepository( repoid ); - } - setNetworkProxies( getNetworkProxyAdmin().getNetworkProxies() ); - } - - public String input() - { - if ( StringUtils.isBlank( repoid ) ) - { - addActionError( "Edit failure, unable to edit a repository with a blank repository id." ); - return ERROR; - } - - return INPUT; - } - - public String commit() - { - String result = SUCCESS; - try - { - getRemoteRepositoryAdmin().updateRemoteRepository( getRepository(), getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( "RepositoryAdminException: " + e.getMessage() ); - result = INPUT; - } - - return result; - } - - public String downloadRemoteIndex() - { - try - { - downloadRemoteIndexScheduler.scheduleDownloadRemote( repoid, now, fullDownload ); - } - catch ( DownloadRemoteIndexException e ) - { - addActionError( "DownloadRemoteIndexException: " + e.getMessage() ); - return INPUT; - } - return SUCCESS; - } - - public RemoteRepository getRepository() - { - return repository; - } - - public void setRepository( RemoteRepository repository ) - { - this.repository = repository; - } - - public String getRepoid() - { - return repoid; - } - - public void setRepoid( String repoid ) - { - this.repoid = repoid; - } - - public boolean isNow() - { - return now; - } - - public void setNow( boolean now ) - { - this.now = now; - } - - public boolean isFullDownload() - { - return fullDownload; - } - - public void setFullDownload( boolean fullDownload ) - { - this.fullDownload = fullDownload; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/RepositoriesAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/RepositoriesAction.java deleted file mode 100644 index a839e9102..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/RepositoriesAction.java +++ /dev/null @@ -1,222 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.apache.archiva.admin.model.group.RepositoryGroupAdmin; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin; -import org.apache.archiva.admin.repository.utils.RepositoryComparator; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.MetadataRepositoryException; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.stats.RepositoryStatistics; -import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.util.ContextUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.struts2.interceptor.ServletRequestAware; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Shows the Repositories Tab for the administrator. - * - * - */ -@Controller( "repositoriesAction" ) -@Scope( "prototype" ) -public class RepositoriesAction - extends AbstractActionSupport - implements SecureAction, ServletRequestAware, Preparable -{ - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; - - @Inject - private RemoteRepositoryAdmin remoteRepositoryAdmin; - - @Inject - private RepositoryGroupAdmin repositoryGroupAdmin; - - private List managedRepositories; - - private List remoteRepositories; - - private Map repositoryStatistics; - - private Map> repositoryToGroupMap; - - /** - * Used to construct the repository WebDAV URL in the repository action. - */ - private String baseUrl; - - - @Inject - private RepositoryStatisticsManager repositoryStatisticsManager; - - public void setServletRequest( HttpServletRequest request ) - { - // TODO: is there a better way to do this? - this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - @SuppressWarnings( "unchecked" ) - public void prepare() - throws RepositoryAdminException - { - remoteRepositories = new ArrayList( getRemoteRepositoryAdmin().getRemoteRepositories() ); - managedRepositories = new ArrayList( getManagedRepositoryAdmin().getManagedRepositories() ); - repositoryToGroupMap = getRepositoryGroupAdmin().getRepositoryToGroupMap(); - - Collections.sort( managedRepositories, new RepositoryComparator() ); - Collections.sort( remoteRepositories, new RepositoryComparator() ); - - repositoryStatistics = new HashMap(); - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - for ( ManagedRepository repo : managedRepositories ) - { - RepositoryStatistics stats = null; - try - { - stats = repositoryStatisticsManager.getLastStatistics( metadataRepository, repo.getId() ); - } - catch ( MetadataRepositoryException e ) - { - addActionError( - "Error retrieving statistics for repository " + repo.getId() + " - consult application logs" ); - log.warn( "Error retrieving repository statistics: " + e.getMessage(), e ); - } - if ( stats != null ) - { - repositoryStatistics.put( repo.getId(), stats ); - } - } - } - finally - { - repositorySession.close(); - } - } - - public List getManagedRepositories() - { - List managedRepositoriesList = new ArrayList(); - for ( ManagedRepository repoConfig : managedRepositories ) - { - if ( !repoConfig.getId().endsWith( "-stage" ) ) - { - managedRepositoriesList.add( repoConfig ); - } - } - return managedRepositoriesList; - } - - public List getRemoteRepositories() - { - return remoteRepositories; - } - - public Map getRepositoryStatistics() - { - return repositoryStatistics; - } - - public String getBaseUrl() - { - return baseUrl; - } - - public Map> getRepositoryToGroupMap() - { - return repositoryToGroupMap; - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } - - public RemoteRepositoryAdmin getRemoteRepositoryAdmin() - { - return remoteRepositoryAdmin; - } - - public void setRemoteRepositoryAdmin( RemoteRepositoryAdmin remoteRepositoryAdmin ) - { - this.remoteRepositoryAdmin = remoteRepositoryAdmin; - } - - public RepositoryGroupAdmin getRepositoryGroupAdmin() - { - return repositoryGroupAdmin; - } - - public void setRepositoryGroupAdmin( RepositoryGroupAdmin repositoryGroupAdmin ) - { - this.repositoryGroupAdmin = repositoryGroupAdmin; - } - - public RepositoryStatisticsManager getRepositoryStatisticsManager() - { - return repositoryStatisticsManager; - } - - public void setRepositoryStatisticsManager( RepositoryStatisticsManager repositoryStatisticsManager ) - { - this.repositoryStatisticsManager = repositoryStatisticsManager; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsAction.java deleted file mode 100644 index 5d12e100b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsAction.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.beans.RepositoryGroup; -import org.apache.archiva.admin.model.group.RepositoryGroupAdmin; -import org.apache.archiva.web.util.ContextUtils; -import org.apache.struts2.interceptor.ServletRequestAware; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; - -/** - * RepositoryGroupsAction - */ -@Controller( "repositoryGroupsAction" ) -@Scope( "prototype" ) -public class RepositoryGroupsAction - extends AbstractRepositoriesAdminAction - implements ServletRequestAware, Preparable -{ - - @Inject - private RepositoryGroupAdmin repositoryGroupAdmin; - - private RepositoryGroup repositoryGroup; - - private Map repositoryGroups; - - private Map managedRepositories; - - private Map> groupToRepositoryMap; - - private String repoGroupId; - - private String repoId; - - /** - * Used to construct the repository WebDAV URL in the repository action. - */ - private String baseUrl; - - public void setServletRequest( HttpServletRequest request ) - { - this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); - } - - public void prepare() - throws RepositoryAdminException - { - - repositoryGroup = new RepositoryGroup(); - repositoryGroups = getRepositoryGroupAdmin().getRepositoryGroupsAsMap(); - managedRepositories = getManagedRepositoryAdmin().getManagedRepositoriesAsMap(); - groupToRepositoryMap = getRepositoryGroupAdmin().getGroupToRepositoryMap(); - } - - public String addRepositoryGroup() - { - try - { - getRepositoryGroupAdmin().addRepositoryGroup( repositoryGroup, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( e.getMessage() ); - return ERROR; - } - - return SUCCESS; - } - - public String addRepositoryToGroup() - { - try - { - getRepositoryGroupAdmin().addRepositoryToGroup( repoGroupId, repoId, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( e.getMessage() ); - return ERROR; - } - return SUCCESS; - } - - public String removeRepositoryFromGroup() - { - try - { - getRepositoryGroupAdmin().deleteRepositoryFromGroup( repoGroupId, repoId, getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( e.getMessage() ); - return ERROR; - } - return SUCCESS; - } - - - public RepositoryGroup getRepositoryGroup() - { - return repositoryGroup; - } - - public void setRepositoryGroup( RepositoryGroup repositoryGroup ) - { - this.repositoryGroup = repositoryGroup; - } - - public Map getRepositoryGroups() - { - return repositoryGroups; - } - - public void setRepositoryGroups( Map repositoryGroups ) - { - this.repositoryGroups = repositoryGroups; - } - - public Map getManagedRepositories() - { - return managedRepositories; - } - - public Map> getGroupToRepositoryMap() - { - return this.groupToRepositoryMap; - } - - public String getRepoGroupId() - { - return repoGroupId; - } - - public void setRepoGroupId( String repoGroupId ) - { - this.repoGroupId = repoGroupId; - } - - public String getRepoId() - { - return repoId; - } - - public void setRepoId( String repoId ) - { - this.repoId = repoId; - } - - public String getBaseUrl() - { - return baseUrl; - } - - public RepositoryGroupAdmin getRepositoryGroupAdmin() - { - return repositoryGroupAdmin; - } - - public void setRepositoryGroupAdmin( RepositoryGroupAdmin repositoryGroupAdmin ) - { - this.repositoryGroupAdmin = repositoryGroupAdmin; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/SortRepositoriesAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/SortRepositoriesAction.java deleted file mode 100644 index 087814b83..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/repositories/SortRepositoriesAction.java +++ /dev/null @@ -1,170 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.RepositoryGroupConfiguration; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import java.util.List; - -/** - * SortRepositoriesAction - * FIXME remove access to archivaconfiguration - */ -@Controller( "sortRepositoriesAction" ) -@Scope( "prototype" ) -public class SortRepositoriesAction - extends AbstractRepositoriesAdminAction -{ - - private String repoGroupId; - - private String targetRepo; - - @Inject - protected ArchivaConfiguration archivaConfiguration; - - public String sortDown() - { - Configuration config = archivaConfiguration.getConfiguration(); - - List repositories = getRepositoriesFromGroup(); - - int idx = findTargetRepository( repositories, targetRepo ); - - if ( idx >= 0 && validIndex( repositories, idx + 1 ) ) - { - repositories.remove( idx ); - repositories.add( idx + 1, targetRepo ); - } - - return saveConfiguration( config ); - } - - public String sortUp() - { - Configuration config = archivaConfiguration.getConfiguration(); - - List repositories = getRepositoriesFromGroup(); - - int idx = findTargetRepository( repositories, targetRepo ); - - if ( idx >= 0 && validIndex( repositories, idx - 1 ) ) - { - repositories.remove( idx ); - repositories.add( idx - 1, targetRepo ); - } - - return saveConfiguration( config ); - } - -/** - * Save the configuration. - * - * @param configuration the configuration to save. - * @return the webwork result code to issue. - * @throws java.io.IOException thrown if unable to save file to disk. - * @throws org.apache.archiva.configuration.InvalidConfigurationException thrown if configuration is invalid. - * @throws org.apache.archiva.redback.components.registry.RegistryException thrown if configuration subsystem has a problem saving the configuration to disk. - */ - protected String saveConfiguration( Configuration configuration ) - { - try - { - archivaConfiguration.save( configuration ); - addActionMessage( "Successfully saved configuration" ); - } - catch ( IndeterminateConfigurationException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - catch ( org.apache.archiva.redback.components.registry.RegistryException e ) - { - addActionError( "Configuration Registry Exception: " + e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - public String getRepoGroupId() - { - return repoGroupId; - } - - public void setRepoGroupId( String repoGroupId ) - { - this.repoGroupId = repoGroupId; - } - - public String getTargetRepo() - { - return targetRepo; - } - - public void setTargetRepo( String targetRepo ) - { - this.targetRepo = targetRepo; - } - - private int findTargetRepository( List repositories, String targetRepository ) - { - int idx = ( -1 ); - - for ( int i = 0; i < repositories.size(); i++ ) - { - if ( StringUtils.equals( targetRepository, repositories.get( i ) ) ) - { - idx = i; - break; - } - } - return idx; - } - - private List getRepositoriesFromGroup() - { - Configuration config = archivaConfiguration.getConfiguration(); - RepositoryGroupConfiguration repoGroup = config.findRepositoryGroupById( repoGroupId ); - return repoGroup.getRepositories(); - } - - private boolean validIndex( List repositories, int idx ) - { - return ( idx >= 0 ) && ( idx < repositories.size() ); - } - - public ArchivaConfiguration getArchivaConfiguration() - { - return archivaConfiguration; - } - - public void setArchivaConfiguration( ArchivaConfiguration archivaConfiguration ) - { - this.archivaConfiguration = archivaConfiguration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/scanning/RepositoryScanningAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/scanning/RepositoryScanningAction.java deleted file mode 100644 index 059c1ca68..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/admin/scanning/RepositoryScanningAction.java +++ /dev/null @@ -1,354 +0,0 @@ -package org.apache.archiva.web.action.admin.scanning; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import com.opensymphony.xwork2.Validateable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.FileType; -import org.apache.archiva.admin.repository.admin.FiletypeToMapClosure; -import org.apache.archiva.audit.Auditable; -import org.apache.archiva.repository.scanner.RepositoryContentConsumers; -import org.apache.archiva.rest.api.model.AdminRepositoryConsumer; -import org.apache.archiva.rest.services.utils.AddAdminRepoConsumerClosure; -import org.apache.archiva.rest.services.utils.AdminRepositoryConsumerComparator; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -/** - * RepositoryScanningAction - * - * - */ -@Controller( "repositoryScanningAction" ) -@Scope( "prototype" ) -public class RepositoryScanningAction - extends AbstractActionSupport - implements Preparable, Validateable, SecureAction, Auditable -{ - - @Inject - private RepositoryContentConsumers repoconsumerUtil; - - @Inject - private ArchivaAdministration archivaAdministration; - - private Map fileTypeMap; - - private List fileTypeIds; - - /** - * List of {@link org.apache.archiva.rest.api.model.AdminRepositoryConsumer} objects for consumers of known content. - */ - private List knownContentConsumers; - - /** - * List of enabled {@link AdminRepositoryConsumer} objects for consumers of known content. - */ - private List enabledKnownContentConsumers; - - /** - * List of {@link AdminRepositoryConsumer} objects for consumers of invalid/unknown content. - */ - private List invalidContentConsumers; - - /** - * List of enabled {@link AdminRepositoryConsumer} objects for consumers of invalid/unknown content. - */ - private List enabledInvalidContentConsumers; - - private String pattern; - - private String fileTypeId; - - public void addActionError( String anErrorMessage ) - { - super.addActionError( anErrorMessage ); - log.warn( "[ActionError] {}", anErrorMessage ); - } - - public void addActionMessage( String aMessage ) - { - super.addActionMessage( aMessage ); - log.info( "[ActionMessage] {}", aMessage ); - } - - public void prepare() - throws Exception - { - FiletypeToMapClosure filetypeToMapClosure = new FiletypeToMapClosure(); - - CollectionUtils.forAllDo( archivaAdministration.getFileTypes(), filetypeToMapClosure ); - fileTypeMap = filetypeToMapClosure.getMap(); - - AddAdminRepoConsumerClosure addAdminRepoConsumer = - new AddAdminRepoConsumerClosure( archivaAdministration.getKnownContentConsumers() ); - CollectionUtils.forAllDo( repoconsumerUtil.getAvailableKnownConsumers(), addAdminRepoConsumer ); - this.knownContentConsumers = addAdminRepoConsumer.getList(); - Collections.sort( knownContentConsumers, AdminRepositoryConsumerComparator.getInstance() ); - - addAdminRepoConsumer = new AddAdminRepoConsumerClosure( archivaAdministration.getInvalidContentConsumers() ); - CollectionUtils.forAllDo( repoconsumerUtil.getAvailableInvalidConsumers(), addAdminRepoConsumer ); - this.invalidContentConsumers = addAdminRepoConsumer.getList(); - Collections.sort( invalidContentConsumers, AdminRepositoryConsumerComparator.getInstance() ); - - fileTypeIds = new ArrayList(); - fileTypeIds.addAll( fileTypeMap.keySet() ); - Collections.sort( fileTypeIds ); - } - - public String addFiletypePattern() - { - log.info( "Add New File Type Pattern [{}:{}]", getFileTypeId(), getPattern() ); - - if ( !isValidFiletypeCommand() ) - { - return INPUT; - } - - try - { - getArchivaAdministration().addFileTypePattern( getFileTypeId(), getPattern(), getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( e.getMessage() ); - return INPUT; - } - return SUCCESS; - } - - public String removeFiletypePattern() - throws RepositoryAdminException - { - log.info( "Remove File Type Pattern [{}:{}]", getFileTypeId(), getPattern() ); - - if ( !isValidFiletypeCommand() ) - { - return INPUT; - } - - try - { - getArchivaAdministration().removeFileTypePattern( getFileTypeId(), getPattern(), getAuditInformation() ); - } - catch ( RepositoryAdminException e ) - { - addActionError( "error adding file type pattern " + e.getMessage() ); - return INPUT; - } - - return SUCCESS; - } - - public String getFileTypeId() - { - return fileTypeId; - } - - public List getFileTypeIds() - { - return fileTypeIds; - } - - public Map getFileTypeMap() - { - return fileTypeMap; - } - - public List getInvalidContentConsumers() - { - return invalidContentConsumers; - } - - public List getKnownContentConsumers() - { - return knownContentConsumers; - } - - public String getPattern() - { - return pattern; - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL ); - - return bundle; - } - - public void setFileTypeId( String fileTypeId ) - { - this.fileTypeId = fileTypeId; - } - - public void setPattern( String pattern ) - { - this.pattern = pattern; - } - - public String updateInvalidConsumers() - { - - try - { - List oldConsumers = getArchivaAdministration().getInvalidContentConsumers(); - - if ( enabledInvalidContentConsumers != null ) - { - for ( String oldConsumer : oldConsumers ) - { - if ( !enabledInvalidContentConsumers.contains( oldConsumer ) ) - { - getArchivaAdministration().removeInvalidContentConsumer( oldConsumer, getAuditInformation() ); - } - } - for ( String enabledKnowContentConsumer : enabledInvalidContentConsumers ) - { - getArchivaAdministration().addInvalidContentConsumer( enabledKnowContentConsumer, - getAuditInformation() ); - } - } - else - { - for ( String oldConsumer : oldConsumers ) - { - getArchivaAdministration().removeInvalidContentConsumer( oldConsumer, getAuditInformation() ); - } - } - } - catch ( RepositoryAdminException e ) - { - log.error( e.getMessage(), e ); - addActionError( "Error update invalidContentConsumers " + e.getMessage() ); - return INPUT; - } - addActionMessage( "Update Invalid Consumers" ); - - return SUCCESS; - } - - public String updateKnownConsumers() - { - - try - { - List oldConsumers = getArchivaAdministration().getKnownContentConsumers(); - - if ( enabledKnownContentConsumers != null ) - { - for ( String oldConsumer : oldConsumers ) - { - if ( !enabledKnownContentConsumers.contains( oldConsumer ) ) - { - getArchivaAdministration().removeKnownContentConsumer( oldConsumer, getAuditInformation() ); - } - } - for ( String enabledKnowContentConsumer : enabledKnownContentConsumers ) - { - getArchivaAdministration().addKnownContentConsumer( enabledKnowContentConsumer, - getAuditInformation() ); - } - } - else - { - for ( String oldConsumer : oldConsumers ) - { - getArchivaAdministration().removeKnownContentConsumer( oldConsumer, getAuditInformation() ); - } - } - } - catch ( RepositoryAdminException e ) - { - log.error( e.getMessage(), e ); - addActionError( "Error update knowContentConsumers " + e.getMessage() ); - return INPUT; - } - addActionMessage( "Update Known Consumers" ); - - return SUCCESS; - } - - private boolean isValidFiletypeCommand() - { - if ( StringUtils.isBlank( getFileTypeId() ) ) - { - addActionError( "Unable to process blank filetype id." ); - } - - if ( StringUtils.isBlank( getPattern() ) ) - { - addActionError( "Unable to process blank pattern." ); - } - - return !hasActionErrors(); - } - - - public List getEnabledInvalidContentConsumers() - { - return enabledInvalidContentConsumers; - } - - public void setEnabledInvalidContentConsumers( List enabledInvalidContentConsumers ) - { - this.enabledInvalidContentConsumers = enabledInvalidContentConsumers; - } - - public List getEnabledKnownContentConsumers() - { - return enabledKnownContentConsumers; - } - - public void setEnabledKnownContentConsumers( List enabledKnownContentConsumers ) - { - this.enabledKnownContentConsumers = enabledKnownContentConsumers; - } - - public ArchivaAdministration getArchivaAdministration() - { - return archivaAdministration; - } - - public void setArchivaAdministration( ArchivaAdministration archivaAdministration ) - { - this.archivaAdministration = archivaAdministration; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/reports/GenerateReportAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/reports/GenerateReportAction.java deleted file mode 100644 index 07600cd6e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/reports/GenerateReportAction.java +++ /dev/null @@ -1,774 +0,0 @@ -package org.apache.archiva.web.action.reports; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.MetadataRepositoryException; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.stats.RepositoryStatistics; -import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; -import org.apache.archiva.reports.RepositoryProblemFacet; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.DateUtils; -import org.apache.archiva.web.action.AbstractRepositoryBasedAction; -import org.apache.archiva.redback.rbac.Resource; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.StringReader; -import java.text.ParseException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -/** - * - */ -@Controller( "generateReport" ) -@Scope( "prototype" ) -public class GenerateReportAction - extends AbstractRepositoryBasedAction - implements SecureAction, Preparable -{ - public static final String ALL_REPOSITORIES = "All Repositories"; - - public static final String BLANK = "blank"; - - private static final String[] datePatterns = - new String[]{ "MM/dd/yy", "MM/dd/yyyy", "MMMMM/dd/yyyy", "MMMMM/dd/yy", "dd MMMMM yyyy", "dd/MM/yy", - "dd/MM/yyyy", "yyyy/MM/dd", "yyyy-MM-dd", "yyyy-dd-MM", "MM-dd-yyyy", "MM-dd-yy" }; - - public static final String SEND_FILE = "send-file"; - - private Logger log = LoggerFactory.getLogger( GenerateReportAction.class ); - - @Inject - private ManagedRepositoryAdmin managedRepositoryAdmin; - - @Inject - private RepositoryStatisticsManager repositoryStatisticsManager; - - private String groupId; - - private String repositoryId; - - private int page = 1; - - private int rowCount = 100; - - private List selectedRepositories = new ArrayList(); - - private String startDate; - - private String endDate; - - private int numPages; - - private List repositoryIds; - - private Map> repositoriesMap = - new TreeMap>(); - - private List availableRepositories; - - private List repositoryStatistics = new ArrayList(); - - private InputStream inputStream; - - private boolean lastPage; - - @SuppressWarnings( "unchecked" ) - public void prepare() - throws RepositoryAdminException - { - repositoryIds = new ArrayList(); - repositoryIds.add( ALL_REPOSITORIES ); // comes first to be first in the list - repositoryIds.addAll( getObservableRepos() ); - - availableRepositories = new ArrayList(); - - // remove selected repositories in the option for the statistics report - availableRepositories.addAll( managedRepositoryAdmin.getManagedRepositoriesAsMap().keySet() ); - for ( String repo : selectedRepositories ) - { - if ( availableRepositories.contains( repo ) ) - { - availableRepositories.remove( repo ); - } - } - } - - /** - * Generate the statistics report. - *

- * check whether single repo report or comparison report - * 1. if it is a single repository, get all the statistics for the repository on the specified date - * - if no date is specified, get only the latest - * (total page = 1 --> no pagination since only the most recent stats will be displayed) - * - otherwise, get everything within the date range (total pages = repo stats / rows per page) - * - required params: repository, startDate, endDate - *

- * 2. if multiple repositories, get the latest statistics on each repository on the specified date - * - if no date is specified, use the current date endDate - * - required params: repositories, endDate - * - total pages = repositories / rows per page - * - * @return action result - */ - public String generateStatistics() - { - if ( rowCount < 10 ) - { - // TODO: move to validation framework - addFieldError( "rowCount", "Row count must be larger than 10." ); - return INPUT; - } - Date startDateInDF; - Date endDateInDF; - - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - if ( selectedRepositories.size() > 1 ) - { - numPages = 1; - - try - { - startDateInDF = getStartDateInDateFormat(); - endDateInDF = getEndDateInDateFormat(); - } - catch ( ParseException e ) - { - addActionError( "Error parsing date(s)." ); - return ERROR; - } - - if ( startDateInDF != null && endDateInDF != null && startDateInDF.after( endDateInDF ) ) - { - addFieldError( "startDate", "Start Date must be earlier than the End Date" ); - return INPUT; - } - - // multiple repos - for ( String repo : selectedRepositories ) - { - List stats = null; - try - { - stats = - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, repo, startDateInDF, - endDateInDF ); - } - catch ( MetadataRepositoryException e ) - { - log.warn( "Unable to retrieve stats, assuming is empty: " + e.getMessage(), e ); - } - if ( stats == null || stats.isEmpty() ) - { - log.info( "No statistics available for repository '" + repo + "'." ); - // TODO set repo's stats to 0 - continue; - } - - repositoryStatistics.add( stats.get( 0 ) ); - } - } - else if ( selectedRepositories.size() == 1 ) - { - repositoryId = selectedRepositories.get( 0 ); - try - { - startDateInDF = getStartDateInDateFormat(); - endDateInDF = getEndDateInDateFormat(); - - if ( startDateInDF != null && endDateInDF != null && startDateInDF.after( endDateInDF ) ) - { - addFieldError( "startDate", "Start Date must be earlier than the End Date" ); - return INPUT; - } - - List stats = null; - try - { - stats = repositoryStatisticsManager.getStatisticsInRange( metadataRepository, repositoryId, - startDateInDF, endDateInDF ); - } - catch ( MetadataRepositoryException e ) - { - log.warn( "Unable to retrieve stats, assuming is empty: " + e.getMessage(), e ); - } - if ( stats == null || stats.isEmpty() ) - { - addActionError( - "No statistics available for repository. Repository might not have been scanned." ); - return ERROR; - } - - int rowCount = getRowCount(); - int extraPage = ( stats.size() % rowCount ) != 0 ? 1 : 0; - int totalPages = ( stats.size() / rowCount ) + extraPage; - numPages = totalPages; - - int currentPage = getPage(); - if ( currentPage > totalPages ) - { - addActionError( - "Error encountered while generating report :: The requested page exceeds the total number of pages." ); - return ERROR; - } - - int start = rowCount * ( currentPage - 1 ); - int end = ( start + rowCount ) - 1; - - if ( end >= stats.size() ) - { - end = stats.size() - 1; - } - - repositoryStatistics = stats.subList( start, end + 1 ); - } - catch ( ParseException pe ) - { - addActionError( pe.getMessage() ); - return ERROR; - } - } - else - { - addFieldError( "availableRepositories", "Please select a repository (or repositories) from the list." ); - return INPUT; - } - } - finally - { - repositorySession.close(); - } - - if ( repositoryStatistics.isEmpty() ) - { - return BLANK; - } - - return SUCCESS; - } - - /** - * Export report to CSV. - * - * @return action result - */ - public String downloadStatisticsReport() - { - Date startDateInDF; - Date endDateInDF; - - selectedRepositories = parseSelectedRepositories(); - List repositoryStatistics = new ArrayList(); - - StringBuilder input; - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - if ( selectedRepositories.size() > 1 ) - { - try - { - startDateInDF = getStartDateInDateFormat(); - endDateInDF = getEndDateInDateFormat(); - } - catch ( ParseException e ) - { - addActionError( "Error parsing date(s)." ); - return ERROR; - } - - if ( startDateInDF != null && endDateInDF != null && startDateInDF.after( endDateInDF ) ) - { - addFieldError( "startDate", "Start Date must be earlier than the End Date" ); - return INPUT; - } - - input = new StringBuilder( - "Repository,Total File Count,Total Size,Artifact Count,Group Count,Project Count,Plugins,Archetypes," - + "Jars,Wars\n" ); - - // multiple repos - for ( String repo : selectedRepositories ) - { - List stats = null; - try - { - stats = - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, repo, startDateInDF, - endDateInDF ); - } - catch ( MetadataRepositoryException e ) - { - log.warn( "Unable to retrieve stats, assuming is empty: " + e.getMessage(), e ); - } - if ( stats == null || stats.isEmpty() ) - { - log.info( "No statistics available for repository '" + repo + "'." ); - // TODO set repo's stats to 0 - continue; - } - - // only the first one - RepositoryStatistics repositoryStats = stats.get( 0 ); - repositoryStatistics.add( repositoryStats ); - - input.append( repo ).append( "," ); - input.append( repositoryStats.getTotalFileCount() ).append( "," ); - input.append( repositoryStats.getTotalArtifactFileSize() ).append( "," ); - input.append( repositoryStats.getTotalArtifactCount() ).append( "," ); - input.append( repositoryStats.getTotalGroupCount() ).append( "," ); - input.append( repositoryStats.getTotalProjectCount() ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "maven-plugin" ) ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "maven-archetype" ) ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "jar" ) ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "war" ) ); - input.append( "\n" ); - } - } - else if ( selectedRepositories.size() == 1 ) - { - repositoryId = selectedRepositories.get( 0 ); - try - { - startDateInDF = getStartDateInDateFormat(); - endDateInDF = getEndDateInDateFormat(); - - if ( startDateInDF != null && endDateInDF != null && startDateInDF.after( endDateInDF ) ) - { - addFieldError( "startDate", "Start Date must be earlier than the End Date" ); - return INPUT; - } - - List stats = null; - try - { - stats = repositoryStatisticsManager.getStatisticsInRange( metadataRepository, repositoryId, - startDateInDF, endDateInDF ); - } - catch ( MetadataRepositoryException e ) - { - log.warn( "Unable to retrieve stats, assuming is empty: " + e.getMessage(), e ); - } - if ( stats == null || stats.isEmpty() ) - { - addActionError( - "No statistics available for repository. Repository might not have been scanned." ); - return ERROR; - } - - input = new StringBuilder( - "Date of Scan,Total File Count,Total Size,Artifact Count,Group Count,Project Count,Plugins," - + "Archetypes,Jars,Wars\n" ); - - for ( RepositoryStatistics repositoryStats : stats ) - { - input.append( repositoryStats.getScanStartTime() ).append( "," ); - input.append( repositoryStats.getTotalFileCount() ).append( "," ); - input.append( repositoryStats.getTotalArtifactFileSize() ).append( "," ); - input.append( repositoryStats.getTotalArtifactCount() ).append( "," ); - input.append( repositoryStats.getTotalGroupCount() ).append( "," ); - input.append( repositoryStats.getTotalProjectCount() ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "maven-plugin" ) ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "maven-archetype" ) ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "jar" ) ).append( "," ); - input.append( repositoryStats.getTotalCountForType( "war" ) ); - input.append( "\n" ); - } - - repositoryStatistics = stats; - } - catch ( ParseException pe ) - { - addActionError( pe.getMessage() ); - return ERROR; - } - } - else - { - addFieldError( "availableRepositories", "Please select a repository (or repositories) from the list." ); - return INPUT; - } - } - finally - { - repositorySession.close(); - } - - if ( repositoryStatistics.isEmpty() ) - { - return BLANK; - } - - // write output stream depending on single or comparison report - StringReader reader = new StringReader( input.toString() ); - - try - { - inputStream = new ByteArrayInputStream( IOUtils.toByteArray( reader ) ); - } - catch ( IOException i ) - { - addActionError( "Error occurred while generating CSV file." ); - return ERROR; - } - - return SEND_FILE; - } - - // hack for parsing the struts list passed as param in - - private List parseSelectedRepositories() - { - List parsedSelectedRepos = new ArrayList(); - - for ( String repo : selectedRepositories ) - { - String[] tokens = StringUtils.split( repo, ',' ); - if ( tokens.length > 1 ) - { - for ( String token : tokens ) - { - parsedSelectedRepos.add( StringUtils.remove( StringUtils.remove( token, '[' ), ']' ).trim() ); - } - } - else - { - parsedSelectedRepos.add( StringUtils.remove( StringUtils.remove( repo, '[' ), ']' ).trim() ); - } - } - return parsedSelectedRepos; - } - - private Date getStartDateInDateFormat() - throws ParseException - { - Date startDateInDF; - if ( startDate == null || "".equals( startDate ) ) - { - startDateInDF = null; - } - else - { - startDateInDF = DateUtils.parseDate( startDate, datePatterns ); - } - return startDateInDF; - } - - private Date getEndDateInDateFormat() - throws ParseException - { - Date endDateInDF; - if ( endDate == null || "".equals( endDate ) ) - { - endDateInDF = null; - } - else - { - endDateInDF = DateUtils.parseDate( endDate, datePatterns ); - - // add a day, since we don't inclue time and want the date to be inclusive - Calendar cal = Calendar.getInstance(); - cal.setTime( endDateInDF ); - cal.add( Calendar.DAY_OF_MONTH, 1 ); - endDateInDF = cal.getTime(); - } - - return endDateInDF; - } - - public String execute() - throws Exception - { - if ( repositoryId == null ) - { - addFieldError( "repositoryId", "You must provide a repository id." ); - return INPUT; - } - - if ( rowCount < 10 ) - { - addFieldError( "rowCount", "Row count must be larger than 10." ); - return INPUT; - } - - List observableRepos = getObservableRepos(); - Collection repoIds; - if ( StringUtils.isEmpty( repositoryId ) || ALL_REPOSITORIES.equals( repositoryId ) ) - { - repoIds = observableRepos; - } - else if ( observableRepos.contains( repositoryId ) ) - { - repoIds = Collections.singletonList( repositoryId ); - } - else - { - repoIds = Collections.emptyList(); - } - - List problemArtifacts = new ArrayList(); - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - MetadataRepository metadataRepository = repositorySession.getRepository(); - for ( String repoId : repoIds ) - { - // TODO: improve performance by navigating into a group subtree. Currently group is property, not part of name of item - for ( String name : metadataRepository.getMetadataFacets( repoId, RepositoryProblemFacet.FACET_ID ) ) - { - RepositoryProblemFacet metadataFacet = - (RepositoryProblemFacet) metadataRepository.getMetadataFacet( repoId, - RepositoryProblemFacet.FACET_ID, - name ); - - if ( StringUtils.isEmpty( groupId ) || groupId.equals( metadataFacet.getNamespace() ) ) - { - problemArtifacts.add( metadataFacet ); - } - } - } - } - finally - { - repositorySession.close(); - } - - // TODO: getting range only after reading is not efficient for a large number of artifacts - int lowerBound = ( page - 1 ) * rowCount; - int upperBound = ( page * rowCount ) + 1; // Add 1 to check if it's the last page or not. - if ( upperBound <= problemArtifacts.size() ) - { - problemArtifacts = problemArtifacts.subList( lowerBound, upperBound ); - } - else - { - problemArtifacts = problemArtifacts.subList( lowerBound, problemArtifacts.size() ); - } - - for ( RepositoryProblemFacet problem : problemArtifacts ) - { - List problemsList; - if ( repositoriesMap.containsKey( problem.getRepositoryId() ) ) - { - problemsList = repositoriesMap.get( problem.getRepositoryId() ); - } - else - { - problemsList = new ArrayList(); - repositoriesMap.put( problem.getRepositoryId(), problemsList ); - } - - problemsList.add( problem ); - } - - // TODO: handling should be improved - if ( problemArtifacts.size() <= rowCount ) - { - lastPage = true; - } - - if ( problemArtifacts.isEmpty() && page == 1 ) - { - return BLANK; - } - else - { - return SUCCESS; - } - } - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - bundle.setRequiresAuthentication( true ); - bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_ACCESS_REPORT, Resource.GLOBAL ); - - return bundle; - } - - public List getRepositoryIds() - { - return repositoryIds; - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getRepositoryId() - { - return repositoryId; - } - - public void setRepositoryId( String repositoryId ) - { - this.repositoryId = repositoryId; - } - - public int getPage() - { - return page; - } - - public void setPage( int page ) - { - this.page = page; - } - - public int getRowCount() - { - return rowCount; - } - - public void setRowCount( int rowCount ) - { - this.rowCount = rowCount; - } - - public void setRepositoriesMap( Map> repositoriesMap ) - { - this.repositoriesMap = repositoriesMap; - } - - public Map> getRepositoriesMap() - { - return repositoriesMap; - } - - public List getSelectedRepositories() - { - return selectedRepositories; - } - - public void setSelectedRepositories( List selectedRepositories ) - { - this.selectedRepositories = selectedRepositories; - } - - public List getAvailableRepositories() - { - return availableRepositories; - } - - public void setAvailableRepositories( List availableRepositories ) - { - this.availableRepositories = availableRepositories; - } - - public String getStartDate() - { - return startDate; - } - - public void setStartDate( String startDate ) - { - this.startDate = startDate; - } - - public String getEndDate() - { - return endDate; - } - - public void setEndDate( String endDate ) - { - this.endDate = endDate; - } - - public List getRepositoryStatistics() - { - return repositoryStatistics; - } - - public void setRepositoryStatistics( List repositoryStatistics ) - { - this.repositoryStatistics = repositoryStatistics; - } - - public boolean isLastPage() - { - return lastPage; - } - - public void setLastPage( boolean lastPage ) - { - this.lastPage = lastPage; - } - - public InputStream getInputStream() - { - return inputStream; - } - - public int getNumPages() - { - return numPages; - } - - public void setRepositoryStatisticsManager( RepositoryStatisticsManager repositoryStatisticsManager ) - { - this.repositoryStatisticsManager = repositoryStatisticsManager; - } - - public ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return managedRepositoryAdmin; - } - - public void setManagedRepositoryAdmin( ManagedRepositoryAdmin managedRepositoryAdmin ) - { - this.managedRepositoryAdmin = managedRepositoryAdmin; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/reports/ViewAuditLogReportAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/reports/ViewAuditLogReportAction.java deleted file mode 100644 index fdf4e9f7f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/action/reports/ViewAuditLogReportAction.java +++ /dev/null @@ -1,408 +0,0 @@ -package org.apache.archiva.web.action.reports; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Preparable; -import org.apache.archiva.audit.AuditEvent; -import org.apache.archiva.audit.AuditManager; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.lang.time.DateUtils; -import org.apache.archiva.security.AccessDeniedException; -import org.apache.archiva.security.ArchivaSecurityException; -import org.apache.archiva.security.PrincipalNotFoundException; -import org.apache.archiva.security.UserRepositories; -import org.apache.archiva.web.action.AbstractActionSupport; -import org.apache.struts2.interceptor.ServletRequestAware; -import org.apache.archiva.redback.integration.interceptor.SecureAction; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; - -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.List; - -/** - * - */ -@Controller( "viewAuditLogReport" ) -@Scope( "prototype" ) -public class ViewAuditLogReportAction - extends AbstractActionSupport - implements SecureAction, ServletRequestAware, Preparable -{ - protected HttpServletRequest request; - - @Inject - private UserRepositories userRepositories; - - @Inject - private AuditManager auditManager; - - private String repository; - - private List repositories; - - private String groupId; - - private String artifactId; - - private String startDate; - - private String endDate; - - private int rowCount = 30; - - private int page = 1; - - protected boolean isLastPage = true; - - private List auditLogs; - - private static final String ALL_REPOSITORIES = "all"; - - private String initial = "true"; - - private String headerName; - - private static final String HEADER_LATEST_EVENTS = "Latest Events"; - - private static final String HEADER_RESULTS = "Results"; - - private String[] datePatterns = - new String[]{ "MM/dd/yy", "MM/dd/yyyy", "MMMMM/dd/yyyy", "MMMMM/dd/yy", "dd MMMMM yyyy", "dd/MM/yy", - "dd/MM/yyyy", "yyyy/MM/dd", "yyyy-MM-dd", "yyyy-dd-MM", "MM-dd-yyyy", "MM-dd-yy" }; - - - - public SecureActionBundle getSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = new SecureActionBundle(); - - // TODO: should require this, but for now we trust in the list of repositories -// bundle.setRequiresAuthentication( true ); -// bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_VIEW_AUDIT_LOG ); - - return bundle; - } - - public void setServletRequest( HttpServletRequest request ) - { - this.request = request; - } - - @SuppressWarnings( "unchecked" ) - public void prepare() - throws Exception - { - repositories = new ArrayList(); - repositories.add( ALL_REPOSITORIES ); - List repos = getManagableRepositories(); - repositories.addAll( repos ); - - auditLogs = null; - groupId = ""; - artifactId = ""; - repository = ""; - - if ( Boolean.parseBoolean( initial ) ) - { - headerName = HEADER_LATEST_EVENTS; - } - else - { - headerName = HEADER_RESULTS; - } - - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - auditLogs = auditManager.getMostRecentAuditEvents( repositorySession.getRepository(), repos ); - } - finally - { - repositorySession.close(); - } - } - - public String execute() - throws Exception - { - Date startDateInDF = null; - Date endDateInDF = null; - if ( !StringUtils.isEmpty( startDate ) ) - { - startDateInDF = DateUtils.parseDate( startDate, datePatterns ); - } - - if ( !StringUtils.isEmpty( endDate ) ) - { - endDateInDF = DateUtils.parseDate( endDate, datePatterns ); - Calendar cal = Calendar.getInstance(); - cal.setTime( endDateInDF ); - cal.set( Calendar.HOUR, 23 ); - cal.set( Calendar.MINUTE, 59 ); - cal.set( Calendar.SECOND, 59 ); - - endDateInDF = cal.getTime(); - } - - Collection repos = getManagableRepositories(); - if ( !repository.equals( ALL_REPOSITORIES ) ) - { - if ( repos.contains( repository ) ) - { - repos = Collections.singletonList( repository ); - } - else - { - repos = Collections.emptyList(); - } - } - - if ( StringUtils.isEmpty( groupId ) && !StringUtils.isEmpty( artifactId ) ) - { - // Until we store the full artifact metadata in the audit event, we can't query by these individually - addActionError( "If you specify an artifact ID, you must specify a group ID" ); - auditLogs = null; - return INPUT; - } - - String resource = null; - if ( !StringUtils.isEmpty( groupId ) ) - { - String groupIdAsPath = groupId.replace( '.', '/' ); - if ( StringUtils.isEmpty( artifactId ) ) - { - resource = groupIdAsPath; - } - else - { - resource = groupIdAsPath + "/" + artifactId; - } - } - - RepositorySession repositorySession = repositorySessionFactory.createSession(); - try - { - auditLogs = - auditManager.getAuditEventsInRange( repositorySession.getRepository(), repos, resource, startDateInDF, - endDateInDF ); - } - finally - { - repositorySession.close(); - } - - headerName = HEADER_RESULTS; - - if ( auditLogs.isEmpty() ) - { - addActionError( "No audit logs found." ); - initial = "true"; - return SUCCESS; - } - else - { - initial = "false"; - return paginate(); - } - } - - private String paginate() - { - int rowCount = getRowCount(); - int extraPage = ( auditLogs.size() % rowCount ) != 0 ? 1 : 0; - int totalPages = ( auditLogs.size() / rowCount ) + extraPage; - - int currentPage = getPage(); - if ( currentPage > totalPages ) - { - addActionError( - "Error encountered while generating report :: The requested page exceeds the total number of pages." ); - return ERROR; - } - - if ( currentPage == totalPages ) - { - isLastPage = true; - } - else - { - isLastPage = false; - } - - int start = rowCount * ( currentPage - 1 ); - int end = ( start + rowCount ) - 1; - - if ( end >= auditLogs.size() ) - { - end = auditLogs.size() - 1; - } - - auditLogs = auditLogs.subList( start, end + 1 ); - - return SUCCESS; - } - - private List getManagableRepositories() - { - try - { - return userRepositories.getManagableRepositoryIds( getPrincipal() ); - } - catch ( PrincipalNotFoundException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( AccessDeniedException e ) - { - log.warn( e.getMessage(), e ); - } - catch ( ArchivaSecurityException e ) - { - log.warn( e.getMessage(), e ); - } - return Collections.emptyList(); - } - - public String getRepository() - { - return repository; - } - - public void setRepository( String repository ) - { - this.repository = repository; - } - - public List getRepositories() - { - return repositories; - } - - public void setRepositories( List repositories ) - { - this.repositories = repositories; - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public List getAuditLogs() - { - return auditLogs; - } - - public int getRowCount() - { - return rowCount; - } - - public void setRowCount( int rowCount ) - { - this.rowCount = rowCount; - } - - public String getStartDate() - { - return startDate; - } - - public void setStartDate( String startDate ) - { - this.startDate = startDate; - } - - public String getEndDate() - { - return endDate; - } - - public void setEndDate( String endDate ) - { - this.endDate = endDate; - } - - public int getPage() - { - return page; - } - - public void setPage( int page ) - { - this.page = page; - } - - public boolean getIsLastPage() - { - return isLastPage; - } - - public void setIsLastPage( boolean isLastPage ) - { - this.isLastPage = isLastPage; - } - - public String getInitial() - { - return initial; - } - - public void setInitial( String initial ) - { - this.initial = initial; - } - - public String getHeaderName() - { - return headerName; - } - - public void setHeaderName( String headerName ) - { - this.headerName = headerName; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/interceptor/ConfigurationInterceptor.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/interceptor/ConfigurationInterceptor.java deleted file mode 100644 index 4d0c08cdc..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/interceptor/ConfigurationInterceptor.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.apache.archiva.web.interceptor; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionInvocation; -import com.opensymphony.xwork2.interceptor.Interceptor; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.struts2.ServletActionContext; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Service; - -import javax.inject.Inject; -import javax.servlet.ServletContext; - -/** - * An interceptor that makes the configuration bits available, both to the application and the webapp. - */ -@Service( "configurationInterceptor" ) -@Scope( "prototype" ) -public class ConfigurationInterceptor - implements Interceptor -{ - - @Inject - private ArchivaConfiguration configuration; - - public String intercept( ActionInvocation actionInvocation ) - throws Exception - { - // populate webapp configuration bits into the session - ServletContext applicationScope = ServletActionContext.getServletContext(); - applicationScope.setAttribute( "uiOptions", configuration.getConfiguration().getWebapp().getUi() ); - - return actionInvocation.invoke(); - } - - public void destroy() - { - // This space left intentionally blank - } - - public void init() - { - // This space left intentionally blank - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/mapper/RepositoryActionMapper.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/mapper/RepositoryActionMapper.java deleted file mode 100644 index faff746c8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/mapper/RepositoryActionMapper.java +++ /dev/null @@ -1,232 +0,0 @@ -package org.apache.archiva.web.mapper; - -/* - * 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. - */ - -import com.opensymphony.xwork2.config.ConfigurationManager; -import org.apache.struts2.dispatcher.mapper.ActionMapping; -import org.apache.struts2.dispatcher.mapper.DefaultActionMapper; - -import org.apache.commons.lang.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -/** - * Map alternate URLs to specific actions. Used for the repository browser and the proxy. - * - */ -public class RepositoryActionMapper - extends DefaultActionMapper -{ - private static final String ACTION_BROWSE = "browse"; - - private static final String ACTION_BROWSE_ARTIFACT = "browseArtifact"; - - private static final String ACTION_BROWSE_GROUP = "browseGroup"; - - private static final String ACTION_SHOW_ARTIFACT = "showArtifact"; - - private static final String ACTION_SHOW_ARTIFACT_DEPENDEES = "showArtifactDependees"; - - private static final String ACTION_SHOW_ARTIFACT_DEPENDENCIES = "showArtifactDependencies"; - - private static final String ACTION_SHOW_ARTIFACT_DEPENDENCY_TREE = "showArtifactDependencyTree"; - - private static final String ACTION_SHOW_ARTIFACT_MAILING_LISTS = "showArtifactMailingLists"; - - private static final String BROWSE_PREFIX = "/browse"; - - private static final String METHOD_DEPENDENCIES = "dependencies"; - - private static final String METHOD_DEPENDENCY_TREE = "dependencyTree"; - - private static final String METHOD_MAILING_LISTS = "mailingLists"; - - private static final String METHOD_USEDBY = "usedby"; - - private static final String PARAM_ARTIFACT_ID = "artifactId"; - - private static final String PARAM_GROUP_ID = "groupId"; - - private static final String PARAM_VERSION = "version"; - - private static final String ACTION_EXTENSION = "action"; - - public ActionMapping getMapping( HttpServletRequest httpServletRequest, ConfigurationManager manager ) - { - 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 (StringUtils.isEmpty( path )) - { - // try RequestURI in last at least for StrutsTestCase - path = httpServletRequest.getRequestURI(); - } - - if ( path.startsWith( BROWSE_PREFIX ) ) - { - path = path.substring( BROWSE_PREFIX.length() ); - if ( StringUtils.isBlank( path ) || - StringUtils.equals( path, "/" ) || - StringUtils.equals( path, ".action" ) ) - { - // Return "root" browse. - return createActionMapping( ACTION_BROWSE, "/", "", null ); - } - else - { - Map params = new HashMap(); - - if ( path.charAt( 0 ) == '/' ) - { - path = path.substring( 1 ); - } - - String[] parts = path.split( "/" ); - switch ( parts.length ) - { - case 1: - params.put( PARAM_GROUP_ID, parts[0] ); - return createActionMapping( ACTION_BROWSE_GROUP, "/", "", params ); - - case 2: - params.put( PARAM_GROUP_ID, parts[0] ); - params.put( PARAM_ARTIFACT_ID, parts[1] ); - return createActionMapping( ACTION_BROWSE_ARTIFACT, "/", "", params ); - - case 3: - params.put( PARAM_GROUP_ID, parts[0] ); - params.put( PARAM_ARTIFACT_ID, parts[1] ); - params.put( PARAM_VERSION, parts[2] ); - return createActionMapping( ACTION_SHOW_ARTIFACT, "/", "", params ); - - case 4: - params.put( PARAM_GROUP_ID, parts[0] ); - params.put( PARAM_ARTIFACT_ID, parts[1] ); - params.put( PARAM_VERSION, parts[2] ); - - if ( METHOD_DEPENDENCIES.equals( parts[3] ) ) - { - return createActionMapping( ACTION_SHOW_ARTIFACT_DEPENDENCIES, "/", "", params ); - } - else if ( METHOD_MAILING_LISTS.equals( parts[3] ) ) - { - return createActionMapping( ACTION_SHOW_ARTIFACT_MAILING_LISTS, "/", "", params ); - } - else if ( METHOD_USEDBY.equals( parts[3] ) ) - { - return createActionMapping( ACTION_SHOW_ARTIFACT_DEPENDEES, "/", "", params ); - } - else if ( METHOD_DEPENDENCY_TREE.equals( parts[3] ) ) - { - return createActionMapping( ACTION_SHOW_ARTIFACT_DEPENDENCY_TREE, "/", "", params ); - } - break; - } - } - } - - return super.getMapping( httpServletRequest, manager ); - } - - @SuppressWarnings("unchecked") - @Override - public String getUriFromActionMapping( ActionMapping actionMapping ) - { - Map params = actionMapping.getParams(); - if ( ACTION_BROWSE.equals( actionMapping.getName() ) ) - { - return BROWSE_PREFIX; - } - else if ( ACTION_BROWSE_GROUP.equals( actionMapping.getName() ) ) - { - return toUri( params, false, false, null ); - } - else if ( ACTION_BROWSE_ARTIFACT.equals( actionMapping.getName() ) ) - { - return toUri( params, true, false, null ); - } - else if ( ACTION_SHOW_ARTIFACT.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, null ); - } - else if ( ACTION_SHOW_ARTIFACT_DEPENDENCIES.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_DEPENDENCIES ); - } - else if ( ACTION_SHOW_ARTIFACT_MAILING_LISTS.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_MAILING_LISTS ); - } - else if ( ACTION_SHOW_ARTIFACT_DEPENDEES.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_USEDBY ); - } - else if ( ACTION_SHOW_ARTIFACT_DEPENDENCY_TREE.equals( actionMapping.getName() ) ) - { - return toUri( params, true, true, METHOD_DEPENDENCY_TREE ); - } - - return super.getUriFromActionMapping( actionMapping ); - } - - private String toUri( Map params, boolean artifactId, boolean version, String method ) - { - StringBuilder buf = new StringBuilder(); - - buf.append( BROWSE_PREFIX ); - buf.append( '/' ); - buf.append( params.remove( PARAM_GROUP_ID ) ); - - if ( artifactId ) - { - buf.append( '/' ); - buf.append( params.remove( PARAM_ARTIFACT_ID ) ); - - if ( version ) - { - buf.append( '/' ); - buf.append( params.remove( PARAM_VERSION ) ); - - if ( StringUtils.isNotBlank( method ) ) - { - buf.append( '/' ); - buf.append( method ); - } - } - } - - return buf.toString(); - } - - private ActionMapping createActionMapping( String name, String namespace, String method, Map params ) - { - ActionMapping mapping = new ActionMapping( name, namespace, method, params ); - mapping.setExtension( ACTION_EXTENSION ); - - return mapping; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/CopyPasteSnippetTag.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/CopyPasteSnippetTag.java deleted file mode 100644 index 2f3a12137..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/CopyPasteSnippetTag.java +++ /dev/null @@ -1,207 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.web.util.ContextUtils; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.struts2.views.annotations.StrutsTag; -import org.apache.struts2.views.annotations.StrutsTagAttribute; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.JspWriter; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.TagSupport; -import java.io.IOException; - -/** - * CopyPasteSnippetTag - * - * - */ -@StrutsTag(name = "copy-paste-snippet", tldBodyContent = "empty", tldTagClass = "org.apache.archiva.web.tags.CopyPasteSnippetTag", description = "Render a copy paste snippet for the provided object") -public class CopyPasteSnippetTag - extends TagSupport -{ - private Logger log = LoggerFactory.getLogger( CopyPasteSnippetTag.class ); - - private Object object; - - private String wrapper = PRE; - - public static final String PRE = "pre"; - - public static final String TOGGLE = "toggle"; - - @Override - public void release() - { - object = null; - super.release(); - } - - @Override - public int doEndTag() - throws JspException - { - StringBuilder prefix = new StringBuilder(); - StringBuilder buf = new StringBuilder(); - StringBuilder suffix = new StringBuilder(); - - if ( object == null ) - { - buf.append( "Error generating snippet." ); - log.error( "Unable to generate snippet for null object." ); - } - else if ( object instanceof ManagedRepository ) - { - ManagedRepository repo = (ManagedRepository) object; - - if ( TOGGLE.equals( wrapper ) ) - { - prefix.append( "Show POM Snippet
" ); - prefix.append( "

" );
-        
-                suffix.append( "
" ); - } - else if ( PRE.equals( wrapper ) ) - { - prefix.append( "
" );
-                suffix.append( "
" ); - } - - createSnippet( buf, repo, pageContext ); - } - else - { - buf.append( "Unable to generate snippet for object " ).append( object.getClass().getName() ); - } - - try - { - JspWriter out = pageContext.getOut(); - - out.write( prefix.toString() ); - out.write( StringEscapeUtils.escapeXml( buf.toString() ) ); - out.write( suffix.toString() ); - - out.flush(); - } - catch ( IOException e ) - { - throw new JspException( "Unable to write snippet to output: " + e.getMessage(), e ); - } - - return super.doEndTag(); - } - - @StrutsTagAttribute(description = "The Object to Render", type = "String", defaultValue = "", required = true, rtexprvalue = true) - public void setObject( Object object ) - { - this.object = object; - } - - @StrutsTagAttribute(description = "The wrapper type to use, can be 'pre' or 'toggle'", type = "String", defaultValue = "", required = false, rtexprvalue = true) - public void setWrapper( String wrapper ) - { - this.wrapper = wrapper; - } - - private void createSnippet( StringBuilder snippet, ManagedRepository repo, PageContext pageContext ) - { - snippet.append( "\n" ); - snippet.append( " ...\n" ); - snippet.append( " \n" ); - - String distRepoName = "repository"; - if ( repo.isSnapshots() ) - { - distRepoName = "snapshotRepository"; - } - - snippet.append( " <" ).append( distRepoName ).append( ">\n" ); - snippet.append( " " ).append( repo.getId() ).append( "\n" ); - snippet.append( " " ).append( ContextUtils.getBaseURL( pageContext, "repository" ) ); - snippet.append( "/" ).append( repo.getId() ).append( "/" ).append( "\n" ); - - if ( !"default".equals( repo.getLayout() ) ) - { - snippet.append( " " ).append( repo.getLayout() ).append( "" ); - } - - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( "\n" ); - - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " " ).append( repo.getId() ).append( "\n" ); - snippet.append( " " ).append( repo.getName() ).append( "\n" ); - - snippet.append( " " ); - snippet.append( ContextUtils.getBaseURL( pageContext, "repository" ) ); - snippet.append( "/" ).append( repo.getId() ).append( "/" ); - - snippet.append( "\n" ); - - if ( !"default".equals( repo.getLayout() ) ) - { - snippet.append( " " ).append( repo.getLayout() ).append( "\n" ); - } - - snippet.append( " \n" ); - snippet.append( " " ).append( Boolean.valueOf( repo.isReleases() ) ).append( "\n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " " ).append( Boolean.valueOf( repo.isSnapshots() ) ).append( "\n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " " ).append( repo.getId() ).append( "\n" ); - snippet.append( " " ).append( repo.getName() ).append( "\n" ); - - snippet.append( " " ); - snippet.append( ContextUtils.getBaseURL( pageContext, "repository" ) ); - snippet.append( "/" ).append( repo.getId() ).append( "/" ); - - snippet.append( "\n" ); - - if ( !"default".equals( repo.getLayout() ) ) - { - snippet.append( " " ).append( repo.getLayout() ).append( "\n" ); - } - - snippet.append( " \n" ); - snippet.append( " " ).append( Boolean.valueOf( repo.isReleases() ) ).append( "\n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " " ).append( Boolean.valueOf( repo.isSnapshots() ) ).append( "\n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - snippet.append( " \n" ); - - snippet.append( " ...\n" ); - snippet.append( "\n" ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/DependencyTree.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/DependencyTree.java deleted file mode 100644 index 7ec3cf3b5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/DependencyTree.java +++ /dev/null @@ -1,209 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionContext; -import org.apache.archiva.common.ArchivaException; -import org.apache.archiva.dependency.tree.maven2.DependencyTreeBuilder; -import org.apache.archiva.model.Keys; -import org.apache.archiva.security.ArchivaXworkUser; -import org.apache.archiva.security.UserRepositories; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.sonatype.aether.artifact.Artifact; -import org.sonatype.aether.graph.DependencyNode; -import org.sonatype.aether.graph.DependencyVisitor; -import org.springframework.stereotype.Service; - -import javax.inject.Inject; -import java.util.ArrayList; -import java.util.List; - -/** - * DependencyTree - */ -@Service( "dependencyTree" ) -public class DependencyTree -{ - private Logger log = LoggerFactory.getLogger( DependencyTree.class ); - - - @Inject - private DependencyTreeBuilder dependencyTreeBuilder; - - @Inject - private UserRepositories userRepositories; - - public static class TreeEntry - { - private String pre = ""; - - private String post = ""; - - private Artifact artifact; - - public void setArtifact( Artifact artifact ) - { - this.artifact = artifact; - } - - public Artifact getArtifact() - { - return artifact; - } - - public String getPost() - { - return post; - } - - public String getPre() - { - return pre; - } - - public void appendPre( String string ) - { - this.pre += string; - } - - public void appendPost( String string ) - { - this.post += string; - } - } - - public List gatherTreeList( String groupId, String artifactId, String modelVersion ) - throws ArchivaException - { - if ( StringUtils.isBlank( groupId ) ) - { - String emsg = "Error generating dependency tree [" + Keys.toKey( groupId, artifactId, modelVersion ) - + "]: groupId is blank."; - log.error( emsg ); - throw new ArchivaException( emsg ); - } - - if ( StringUtils.isBlank( artifactId ) ) - { - String emsg = "Error generating dependency tree [" + Keys.toKey( groupId, artifactId, modelVersion ) - + "]: artifactId is blank."; - log.error( emsg ); - throw new ArchivaException( emsg ); - } - - if ( StringUtils.isBlank( modelVersion ) ) - { - String emsg = "Error generating dependency tree [" + Keys.toKey( groupId, artifactId, modelVersion ) - + "]: version is blank."; - log.error( emsg ); - throw new ArchivaException( emsg ); - } - - // TODO Cache the results to disk, in XML format, in the same place as the artifact is located. - - TreeListVisitor visitor = new TreeListVisitor(); - try - { - dependencyTreeBuilder.buildDependencyTree( userRepositories.getObservableRepositoryIds( getPrincipal() ), - groupId, artifactId, modelVersion, visitor ); - } - catch ( Exception e ) - { - throw new ArchivaException( "Unable to build dependency tree: " + e.getMessage(), e ); - } - - return visitor.getList(); - } - - private String getPrincipal() - { - return ArchivaXworkUser.getActivePrincipal( ActionContext.getContext().getSession() ); - } - - private static class TreeListVisitor - implements DependencyVisitor - { - private List list; - - private TreeEntry currentEntry; - - boolean firstChild = true; - - private DependencyNode firstNode; - - public TreeListVisitor() - { - this.list = new ArrayList(); - } - - public List getList() - { - return this.list; - } - - public boolean visitEnter( DependencyNode node ) - { - if ( firstNode == null ) - { - firstNode = node; - } - - currentEntry = new TreeEntry(); - - if ( firstChild ) - { - currentEntry.appendPre( "
    " ); - } - - currentEntry.appendPre( "
  • " ); - currentEntry.setArtifact( node.getDependency().getArtifact() ); - currentEntry.appendPost( "
  • " ); - this.list.add( currentEntry ); - - if ( !node.getChildren().isEmpty() ) - { - firstChild = true; - } - - return true; - } - - public boolean visitLeave( org.sonatype.aether.graph.DependencyNode node ) - { - firstChild = false; - - if ( !node.getChildren().isEmpty() ) - { - currentEntry.appendPost( "
" ); - } - - if ( node == firstNode ) - { - currentEntry.appendPost( "" ); - } - - return true; - } - - - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/DependencyTreeTag.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/DependencyTreeTag.java deleted file mode 100644 index f97204fe8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/DependencyTreeTag.java +++ /dev/null @@ -1,239 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.IteratorUtils; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.common.ArchivaException; -import org.apache.archiva.web.tags.DependencyTree.TreeEntry; -import org.apache.struts2.views.annotations.StrutsTag; -import org.apache.struts2.views.annotations.StrutsTagAttribute; -import org.springframework.beans.BeansException; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; - -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Iterator; -import java.util.List; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.IterationTag; -import javax.servlet.jsp.tagext.TagSupport; -import javax.servlet.jsp.tagext.TryCatchFinally; - -/** - * DependencyTreeTag - just here to output the dependency tree to the browser. - * It was easier to do it this way, vs accessing the dependency graph via a JSP. - * - *
- *   
- *     ${node.groupId}:${node.artifactId}:${node.version} (${node.scope})
- *   
- * 
- * - * - */ -@StrutsTag(name = "dependency-tree", tldBodyContent = "JSP", tldTagClass = "org.apache.archiva.web.tags.DependencyTreeTag", description = "Render a dependency tree for the provided project.") -public class DependencyTreeTag - extends TagSupport - implements IterationTag, TryCatchFinally -{ - private String groupId; - - private String artifactId; - - @SuppressWarnings("unused") - private String version; - - private String nodevar; - - private Iterator treeIterator; - - private List tree; - - private TreeEntry currentTreeEntry; - - private String modelVersion; - - public int doAfterBody() - throws JspException - { - if ( currentTreeEntry != null ) - { - out( currentTreeEntry.getPost() ); - } - - if ( treeIterator.hasNext() ) - { - currentTreeEntry = treeIterator.next(); - out( currentTreeEntry.getPre() ); - exposeVariables(); - return EVAL_BODY_AGAIN; - } - - out( "\n" ); - - return SKIP_BODY; - } - - public void doCatch( Throwable t ) - throws Throwable - { - throw t; - } - - public void doFinally() - { - unExposeVariables(); - } - - @SuppressWarnings("unchecked") - public int doStartTag() - throws JspException - { - DependencyTree deptree; - try - { - WebApplicationContext webApplicationContext = - WebApplicationContextUtils.getRequiredWebApplicationContext( pageContext.getServletContext() ); - - deptree = webApplicationContext.getBean( "dependencyTree", DependencyTree.class ); - } - catch ( BeansException e ) - { - throw new JspException( "Unable to lookup DependencyTree: " + e.getMessage(), e ); - } - - if ( deptree == null ) - { - throw new JspException( "Unable to process dependency tree. Component not found." ); - } - - if ( StringUtils.isBlank( nodevar ) ) - { - nodevar = "node"; - } - - out( "
" ); - try - { - this.tree = deptree.gatherTreeList( groupId, artifactId, modelVersion ); - - if ( CollectionUtils.isEmpty( this.tree ) ) - { - return SKIP_BODY; - } - - treeIterator = tree.iterator(); - - currentTreeEntry = treeIterator.next(); - out( currentTreeEntry.getPre() ); - exposeVariables(); - } - catch ( ArchivaException e ) - { - treeIterator = IteratorUtils.EMPTY_LIST_ITERATOR; - - out("
");
-            e.printStackTrace( new PrintWriter( pageContext.getOut() ) );
-            out("
"); - } - - return EVAL_BODY_INCLUDE; - } - - public void release() - { - groupId = ""; - artifactId = ""; - version = ""; - nodevar = ""; - tree = null; - treeIterator = null; - super.release(); - } - - @StrutsTagAttribute(description = "The artifactId", type = "String", defaultValue = "", required = true, rtexprvalue = true) - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - @StrutsTagAttribute(description = "The groupId", type = "String", defaultValue = "", required = true, rtexprvalue = true) - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - @StrutsTagAttribute(description = "The variable name for the node.", type = "String", defaultValue = "", required = false, rtexprvalue = true) - public void setNodevar( String nodevar ) - { - this.nodevar = nodevar; - } - - @StrutsTagAttribute(description = "The version", type = "String", defaultValue = "", required = true, rtexprvalue = true) - public void setVersion( String version ) - { - this.version = version; - } - - @StrutsTagAttribute(description = "The version of the project model. Used to verify the dependency graph for generic snapshots not yet in the repo.", type = "String", defaultValue = "", required = false, rtexprvalue = true) - public void setModelVersion( String modelVersion ) - { - this.modelVersion = modelVersion; - } - - private void exposeVariables() - throws JspException - { - if ( currentTreeEntry == null ) - { - pageContext.removeAttribute( nodevar, PageContext.PAGE_SCOPE ); - } - else - { - pageContext.setAttribute( nodevar, currentTreeEntry.getArtifact() ); - } - } - - private void out( String msg ) - throws JspException - { - try - { - pageContext.getOut().print( msg ); - } - catch ( IOException e ) - { - throw new JspException( "Unable to output to jsp page context." ); - } - } - - private void unExposeVariables() - { - pageContext.removeAttribute( nodevar, PageContext.PAGE_SCOPE ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/ExpressionTool.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/ExpressionTool.java deleted file mode 100644 index cc083222f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/ExpressionTool.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import org.apache.taglibs.standard.tag.common.core.NullAttributeException; -import org.apache.taglibs.standard.tag.el.core.ExpressionUtil; - -import javax.servlet.jsp.JspException; -import javax.servlet.jsp.PageContext; -import javax.servlet.jsp.tagext.Tag; - -/** - * ExpressionTool - * - * - */ -public class ExpressionTool -{ - private PageContext pageContext; - - private Tag tag; - - private String tagName; - - public ExpressionTool( PageContext pageContext, Tag tag, String tagName ) - { - this.pageContext = pageContext; - this.tag = tag; - this.tagName = tagName; - } - - public boolean optionalBoolean( String propertyName, String expression, boolean defaultValue ) - throws JspException - { - try - { - Boolean ret = (Boolean) ExpressionUtil.evalNotNull( this.tagName, propertyName, expression, Boolean.class, - this.tag, this.pageContext ); - - if ( ret == null ) - { - return defaultValue; - } - - return ret.booleanValue(); - } - catch ( NullAttributeException e ) - { - return defaultValue; - } - } - - public String optionalString( String propertyName, String expression, String defaultValue ) - throws JspException - { - try - { - String ret = (String) ExpressionUtil.evalNotNull( this.tagName, propertyName, expression, String.class, - this.tag, this.pageContext ); - - if ( ret == null ) - { - return defaultValue; - } - - return ret; - } - catch ( NullAttributeException e ) - { - return defaultValue; - } - } - - public String requiredString( String propertyName, String expression ) - throws JspException - { - try - { - String ret = (String) ExpressionUtil.evalNotNull( this.tagName, propertyName, expression, String.class, - this.tag, this.pageContext ); - return ret; - } - catch ( NullAttributeException e ) - { - String emsg = "Required " + this.tagName + " property [" + propertyName + "] is null!"; - - log( emsg, e ); - throw new JspException( emsg ); - } - } - - private void log( String msg, Throwable t ) - { - pageContext.getServletContext().log( msg, t ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/GroupIdLink.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/GroupIdLink.java deleted file mode 100644 index e1661eeae..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/GroupIdLink.java +++ /dev/null @@ -1,147 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import org.apache.struts2.StrutsException; -import org.apache.struts2.components.Component; - -import com.opensymphony.xwork2.util.ValueStack; -import java.io.IOException; -import java.io.Writer; -import java.util.StringTokenizer; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * GroupIdLink - * - * - */ -public class GroupIdLink - extends Component -{ - private static final String ACTION = "browseGroup"; - - private static final String NAMESPACE = "/"; - - private static final boolean includeContext = true; - - private static final boolean encode = true; - - private static final String method = null; - - private HttpServletRequest req; - - private HttpServletResponse res; - - private String groupId; - - private boolean includeTop = false; - - public GroupIdLink( ValueStack stack, HttpServletRequest req, HttpServletResponse res ) - { - super( stack ); - this.req = req; - this.res = res; - } - - @Override - public boolean end( Writer writer, String body ) - { - StringBuilder sb = new StringBuilder(); - - sb.append( "" ); - - if ( includeTop ) - { - sb.append( "[top] / " ); // TODO: i18n - } - - StringTokenizer tok = new StringTokenizer( groupId, "." ); - String cumulativeGroup = null; - - while ( tok.hasMoreTokens() ) - { - String token = tok.nextToken(); - - if ( cumulativeGroup == null ) - { - cumulativeGroup = token; - } - else - { - cumulativeGroup += "." + token; - } - sb.append( "" ).append( token ).append( " / " ); - } - - sb.append( "" ); - - try - { - writer.write( sb.toString() ); - } - catch ( IOException e ) - { - throw new StrutsException( "IOError: " + e.getMessage(), e ); - } - - return super.end( writer, body ); - } - - private String determineBrowseActionUrl() - { - return determineActionURL( "browse", NAMESPACE, method, req, res, parameters, req.getScheme(), includeContext, encode, false, false ); - } - - @SuppressWarnings("unchecked") - private String determineBrowseGroupActionUrl( String gid ) - { - parameters.put( "groupId", gid ); - - return determineActionURL( ACTION, NAMESPACE, method, req, res, parameters, req.getScheme(), includeContext, encode, false, false ); - } - - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public boolean isIncludeTop() - { - return includeTop; - } - - public void setIncludeTop( boolean includeTop ) - { - this.includeTop = includeTop; - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/GroupIdLinkTag.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/GroupIdLinkTag.java deleted file mode 100644 index 25791c992..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/tags/GroupIdLinkTag.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import com.opensymphony.xwork2.util.ValueStack; -import org.apache.struts2.components.Component; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.jsp.JspException; - -import org.apache.struts2.views.annotations.StrutsTag; -import org.apache.struts2.views.annotations.StrutsTagAttribute; -import org.apache.struts2.views.jsp.ComponentTagSupport; - -/** - * GroupIdLink - * - * - */ -@StrutsTag(name = "groupIdLink", tldBodyContent = "empty", tldTagClass = "org.apache.archiva.web.tags.GroupIdLinkTag", description = "Render a groupId as a set of Links") -public class GroupIdLinkTag - extends ComponentTagSupport -{ - private String var_; // stores EL-based property - - private String var; // stores the evaluated object. - - private boolean includeTop = false; - - @Override - public Component getBean(ValueStack valueStack, HttpServletRequest request, HttpServletResponse response) { - return new GroupIdLink( valueStack, request, response ); - } - - @Override - public void release() - { - var_ = null; - var = null; - includeTop = false; - - super.release(); - } - - @Override - public int doEndTag() - throws JspException - { - evaluateExpressions(); - - GroupIdLink groupIdLink = (GroupIdLink)component; - - groupIdLink.setGroupId( var ); - groupIdLink.setIncludeTop( includeTop ); - - return super.doEndTag(); - } - - private void evaluateExpressions() - throws JspException - { - ExpressionTool exprTool = new ExpressionTool( pageContext, this, "groupIdLink" ); - - var = exprTool.optionalString( "var", var_, "" ); - } - - @StrutsTagAttribute(description = "The GroupID String", type = "String", defaultValue = "", required = true, rtexprvalue = true) - public void setVar( String value ) - { - this.var_ = value; - } - - @StrutsTagAttribute(description = "Boolean indicating if 'top' link should be created or not.", type = "String", defaultValue = "", required = false, rtexprvalue = true) - public void setIncludeTop( boolean includeTop ) - { - this.includeTop = includeTop; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/util/ContextUtils.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/util/ContextUtils.java deleted file mode 100644 index 914f440f3..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/util/ContextUtils.java +++ /dev/null @@ -1,122 +0,0 @@ -package org.apache.archiva.web.util; - -/* - * 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. - */ - -import org.apache.commons.lang.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.jsp.PageContext; - -/** - * ContextUtils - * - * - */ -public class ContextUtils -{ - private static final Map defaultSchemePortMap; - - static - { - defaultSchemePortMap = new HashMap(); - defaultSchemePortMap.put( "http", Integer.valueOf( 80 ) ); - defaultSchemePortMap.put( "https", Integer.valueOf( 443 ) ); - } - - /** - * Using the page context, get the base url. - * - * @param pageContext the page context to use - * @return the base url with module name. - */ - public static String getBaseURL( PageContext pageContext ) - { - return getBaseURL( pageContext, null ); - } - - /** - * Using the page context, get the base url and append an optional resource name to the end of the provided url. - * - * @param pageContext the page context to use - * @param resource the resource name (or null if no resource name specified) - * @return the base url with resource name. - */ - public static String getBaseURL( PageContext pageContext, String resource ) - { - HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - return getBaseURL( request, resource ); - } - - /** - * Using the http servlet request, get the base url and append an optional resource name to the end of the url. - * - * @param request the request to use - * @param resource the resource name (or null if not resource name should be appended) - * @return the base url with resource name. - */ - public static String getBaseURL( HttpServletRequest request, String resource ) - { - StringBuilder baseUrl = new StringBuilder(); - - baseUrl.append( request.getScheme() ).append( "://" ); - baseUrl.append( getServerName( request ) ); - baseUrl.append( request.getContextPath() ); - - if ( StringUtils.isNotBlank( resource ) ) - { - if ( !baseUrl.toString().endsWith( "/" ) ) - { - baseUrl.append( "/" ); - } - - baseUrl.append( resource ); - } - - return baseUrl.toString(); - } - - private static String getServerName( HttpServletRequest request ) - { - String name = request.getHeader( "X-Forwarded-Host" ); - if ( name == null ) - { - name = request.getServerName(); - int portnum = request.getServerPort(); - - // Only add port if non-standard. - Integer defaultPortnum = (Integer) defaultSchemePortMap.get( request.getScheme() ); - if ( ( defaultPortnum == null ) || ( defaultPortnum.intValue() != portnum ) ) - { - name = name + ":" + String.valueOf( portnum ); - } - return name; - } - else - { - // respect chains of proxies, return first one (as it's the outermost visible one) - String[] hosts = name.split( "," ); - name = hosts[0].trim(); - } - return name; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/CronExpressionValidator.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/CronExpressionValidator.java deleted file mode 100644 index 1fc75d60e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/CronExpressionValidator.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.apache.archiva.web.validator; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ValidationException; -import com.opensymphony.xwork2.validator.ValidatorContext; -import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport; - -/** - * Reused from Continuum crontab validator - */ -public class CronExpressionValidator - extends FieldValidatorSupport -{ - public void validate( Object obj ) - throws ValidationException - { - String cron = (String) getFieldValue( "cron", obj ); - - org.apache.archiva.redback.components.scheduler.CronExpressionValidator cronExpressionValidator = - new org.apache.archiva.redback.components.scheduler.CronExpressionValidator(); - - ValidatorContext ctxt = getValidatorContext(); - if ( !cronExpressionValidator.validate( String.valueOf( cron ) ) ) - { - ctxt.addActionError( "Invalid cron expression value(s)" ); - return; - } - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/IntervalValidator.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/IntervalValidator.java deleted file mode 100644 index 5f58b66ad..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/IntervalValidator.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.archiva.web.validator; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ValidationException; -import com.opensymphony.xwork2.validator.ValidatorContext; -import com.opensymphony.xwork2.validator.validators.ValidatorSupport; - -/** - */ -public class IntervalValidator - extends ValidatorSupport -{ - - public void validate( Object obj ) - throws ValidationException - { - String snapshotsPolicy = (String) getFieldValue( "snapshotsPolicy", obj ); - String releasesPolicy = (String) getFieldValue( "releasesPolicy", obj ); - Integer snapshotsInterval = (Integer) getFieldValue( "snapshotsInterval", obj ); - Integer releasesInterval = (Integer) getFieldValue( "releasesInterval", obj ); - - ValidatorContext ctxt = getValidatorContext(); - - if ( !snapshotsPolicy.equals( "interval" ) ) - { - if ( snapshotsInterval.intValue() != 0 ) - { - ctxt.addActionError( "Snapshots Interval must be set to zero." ); - } - } - - if ( !releasesPolicy.equals( "interval" ) ) - { - if ( releasesInterval.intValue() != 0 ) - { - ctxt.addActionError( "Releases Interval must be set to zero." ); - } - } - - if ( ctxt.hasActionErrors() ) - { - return; - } - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/SyncedRepositoryValidator.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/SyncedRepositoryValidator.java deleted file mode 100644 index 5efff802b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/archiva/web/validator/SyncedRepositoryValidator.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.apache.archiva.web.validator; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ValidationException; -import com.opensymphony.xwork2.validator.ValidatorContext; -import com.opensymphony.xwork2.validator.validators.ValidatorSupport; - -/** - * Validator for synced repository form. The values to be validated depends on the - * selected sync method to be used. - * - */ -public class SyncedRepositoryValidator - extends ValidatorSupport -{ - - public void validate( Object obj ) - throws ValidationException - { - - String method = (String) getFieldValue( "method", obj ); - ValidatorContext ctxt = getValidatorContext(); - - if ( method.equals( "rsync" ) ) - { - String rsyncHost = (String) getFieldValue( "rsyncHost", obj ); - if ( rsyncHost == null || rsyncHost.equals( "" ) ) - { - ctxt.addActionError( "Rsync host is required." ); - } - - String rsyncDirectory = (String) getFieldValue( "rsyncDirectory", obj ); - if ( rsyncDirectory == null || rsyncDirectory.equals( "" ) ) - { - ctxt.addActionError( "Rsync directory is required." ); - } - - String rsyncMethod = (String) getFieldValue( "rsyncMethod", obj ); - if ( rsyncMethod == null || rsyncMethod.equals( "" ) ) - { - ctxt.addActionError( "Rsync method is required." ); - } - else - { - if ( !rsyncMethod.equals( "anonymous" ) && !rsyncMethod.equals( "ssh" ) ) - { - ctxt.addActionError( "Invalid rsync method" ); - } - } - - String username = (String) getFieldValue( "username", obj ); - if ( username == null || username.equals( "" ) ) - { - ctxt.addActionError( "Username is required." ); - } - - } - else if ( method.equals( "svn" ) ) - { - String svnUrl = (String) getFieldValue( "svnUrl", obj ); - if ( svnUrl == null || svnUrl.equals( "" ) ) - { - ctxt.addActionError( "SVN url is required." ); - } - - String username = (String) getFieldValue( "username", obj ); - if ( username == null || username.equals( "" ) ) - { - ctxt.addActionError( "Username is required." ); - } - } - else if ( method.equals( "cvs" ) ) - { - String cvsRoot = (String) getFieldValue( "cvsRoot", obj ); - if ( cvsRoot == null || cvsRoot.equals( "" ) ) - { - ctxt.addActionError( "CVS root is required." ); - } - } - else if ( method.equals( "file" ) ) - { - String directory = (String) getFieldValue( "directory", obj ); - if ( directory == null || directory.equals( "" ) ) - { - ctxt.addActionError( "Directory is required." ); - } - } - - if ( ctxt.hasActionErrors() ) - { - return; - } - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/spring-context.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/spring-context.xml deleted file mode 100755 index d79ebcb5e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/META-INF/spring-context.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/ehcache.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/ehcache.xml deleted file mode 100644 index 997fbe86c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/ehcache.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties deleted file mode 100644 index e2c1805e7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/freemarker.properties +++ /dev/null @@ -1,20 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -# 1 hour -template_update_delay=3600000 \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j2.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j2.xml deleted file mode 100644 index 45083aa90..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j2.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - ${sys:appserver.base}/logs - - - - - - - %d [%t] %-5p %c %x - %m%n - - - - - - - - - %d{yyyy-MM-dd HH:mm:ss} %m%n - - - - - - - - - %d{yyyy-MM-dd HH:mm:ss} - %X{redback.currentUser} - %m%n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/redback/custom.properties b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/redback/custom.properties deleted file mode 100644 index 01a599137..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/redback/custom.properties +++ /dev/null @@ -1,23 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -# text resources within redback can be customized by overriding them here - -#password.reset.success=An email has been sent. -#password.reset.failure=No email was not sent, perhaps the user did not exist as entered. diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/DeleteArtifactAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/DeleteArtifactAction-validation.xml deleted file mode 100644 index bfe08fa1f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/DeleteArtifactAction-validation.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - You must enter a groupId. - - - true - ^[a-zA-Z0-9._-]+$ - Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - You must enter an artifactId. - - - true - ^[a-zA-Z0-9._-]+$ - Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - - You must enter a version. - - - - - - true - ^[a-zA-Z0-9._-]*$ - Repository id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-checksumSearch-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-checksumSearch-validation.xml deleted file mode 100644 index 712e2910a..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-checksumSearch-validation.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - You must select a file, or enter the checksum. If the file was given and you receive this message, - there may have been an error generating the checksum. - - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-filteredSearch-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-filteredSearch-validation.xml deleted file mode 100644 index 5f9c89750..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-filteredSearch-validation.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - Invalid entry - - - 1 - Row count must be larger than ${min}. - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-quickSearch-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-quickSearch-validation.xml deleted file mode 100644 index 705f0be19..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/SearchAction-quickSearch-validation.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - You must enter some search terms. - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/UploadAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/UploadAction-validation.xml deleted file mode 100644 index b56cf3757..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/UploadAction-validation.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - You must enter a groupId. - - - - - You must enter an artifactId. - - - - - You must enter a version. - - - - - You must enter a packaging. - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml deleted file mode 100644 index bc3d556a3..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/appearance/EditOrganisationInfoAction-validation.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - You must enter a name - - - true - ^([-a-zA-Z0-9._/~:?!&=\\]|\s)+$ - Organisation name must only contain alphanumeric characters, white-spaces(' '), equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-). - - - - - You must enter a URL. - - - - - You must enter a URL for your logo. - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml deleted file mode 100644 index bbf09dd9d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathAction-validation.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - You must enter a legacy path. - - - true - ^[-a-zA-Z0-9._/\\]+$ - Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\), underscores(_), dots(.), and dashes(-). - - - - - You must enter a groupId. - - - true - ^[a-zA-Z0-9._-]+$ - Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - You must enter an artifactId. - - - true - ^[a-zA-Z0-9._-]+$ - Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - You must enter a version. - - - true - ^[a-zA-Z0-9._-]+$ - Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - - true - ^[a-zA-Z0-9._-]*$ - Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - You must enter a type. - - - true - ^[a-zA-Z0-9._-]+$ - Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/network/NetworkConfigurationAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/network/NetworkConfigurationAction-validation.xml deleted file mode 100644 index de8ae0993..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/network/NetworkConfigurationAction-validation.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - 1 - maxTotal must be at least superior to ${min}. - - - - - - - 1 - maxTotalPerHost must be at least superior to ${min}. - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml deleted file mode 100644 index 669b3b102..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyAction-saveNetworkProxy-validation.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - true - You must enter an identifier. - - - 4 - 45 - true - You must enter an identifier of 4 or more than 4 characters. - - - true - ^[a-zA-Z0-9._-]+$ - Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - true - You must enter a protocol. - - - true - ^[-a-zA-Z0-9./:\\]+$ - Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\), dots(.), colons(:), and dashes(-). - - - - - true - You must enter a host. - - - true - ^[-a-zA-Z0-9._/~:?!&=\\]+$ - Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-). - - - - - You must enter an port. - - - 1 - - Port needs to be larger than ${min} - - - true - ^[0-9]+$ - Port must only contain numeric characters. - - - - - - true - ^[-a-zA-Z0-9.@/_\\]*$ - Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\), underscores(_), dots(.), and dashes(-). - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml deleted file mode 100644 index 68ffb6cf7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryAction-validation.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - true - ^[a-zA-Z0-9._-]+$ - Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - You must enter a directory. - - - true - ^[-a-zA-Z0-9._/~:?!&=\\]+$ - Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-). - - - - - - true - ^[-a-zA-Z0-9._/~:?!&=\\]*$ - Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-). - - - - - You must enter a repository name. - - - true - ^([a-zA-Z0-9.)/_(-]|\s)+$ - Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-). - - - - - 1 - 100 - Repository Purge By Retention Count needs to be between ${min} and ${max}. - - - - - 0 - Repository Purge By Days Older Than needs to be larger than ${min}. - - - - - Cron expression is required. - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml deleted file mode 100644 index 7902bc532..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryAction-validation.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - - - You must enter a url. - - - - - You must enter a repository name. - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml deleted file mode 100644 index 9f82c37bd..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryAction-validation.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - true - ^[a-zA-Z0-9._-]+$ - Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - - - You must enter a directory. - - - true - ^[-a-zA-Z0-9._/~:?!&=\\]+$ - Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-). - - - - - - true - ^[-a-zA-Z0-9._/~:?!&=\\]*$ - Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-). - - - - - You must enter a repository name. - - - true - ^([a-zA-Z0-9.)/_(-]|\s)+$ - Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-). - - - - - 1 - 100 - Repository Purge By Retention Count needs to be between ${min} and ${max}. - - - - - 0 - Repository Purge By Days Older Than needs to be larger than ${min}. - - - - - Cron expression is required. - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml deleted file mode 100644 index 7902bc532..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryAction-validation.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - You must enter a repository identifier. - - - - - You must enter a url. - - - - - You must enter a repository name. - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsAction-addRepositoryGroup-validation.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsAction-addRepositoryGroup-validation.xml deleted file mode 100644 index ba5c4a94e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsAction-addRepositoryGroup-validation.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - Identifier field is required. - - - true - ^[a-zA-Z0-9._-]+$ - Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-). - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties deleted file mode 100644 index 0569303ea..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.properties +++ /dev/null @@ -1,46 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -#struts.ui.theme=jqboot - -# define our own action mapper here -struts.mapper.class = org.apache.archiva.web.mapper.RepositoryActionMapper - -## TODO olamy check fix for https://issues.apache.org/jira/browse/WW-3460 -## upgrade of struts version or use our own hacked ObjectFactory -struts.objectFactory = org.apache.struts2.spring.StrutsSpringObjectFactory -struts.objectFactory.spring.autoWire = type - -struts.url.includeParams = none - -## freemarker configuration -struts.freemarker.templatesCache=true -struts.freemarker.mru.max.strong.size=1000 -struts.freemarker.templatesCache.updateDelay=3600000 - -#struts.devMode = true -struts.configuration.xml.reload=true -struts.multipart.parser=jakarta -# 50M default -struts.multipart.maxSize=50485760 - -# TODO: package up a theme and share with Continuum. Should contain everything from xhtml, and set templateDir to WEB-INF/themes - -# Localization -struts.custom.i18n.resources=org.apache.archiva.redback.i18n.default,org.apache.archiva.redback.custom diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml deleted file mode 100644 index ef83869b0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml +++ /dev/null @@ -1,638 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dojo\..*,^struts\..* - [a-zA-Z0-9\-\.\]\[\(\)_'\s]+ - - - - input,back,cancel,browse - - - input,back,cancel,browse - - - - - - - - - externalResult - - - false - - - - * - - - - input,back,cancel,browse - - - input,back,cancel,browse - - - - - - - - - - false - - - * - - - input,back,cancel,browse - - - input,back,cancel,browse - - - - - - - - - - - - - - - - - index - index - - index - Account Locked - - index - - login - /security - - - login - /security - - - login - /security - - - login - /security - - index - - login - /security - - - login - /security - - - addadmin - /security - - - password - /security - - - - /WEB-INF/jsp/generalError.jsp - /WEB-INF/jsp/accessToNoRepos.jsp - /WEB-INF/jsp/redback/invalidToken.jsp - - - - - - - - - - browse - - - - /WEB-INF/jsp/quickSearch.jsp - - - - /WEB-INF/jsp/quickSearch.jsp - /WEB-INF/jsp/results.jsp - /WEB-INF/jsp/quickSearch.jsp - - - - /WEB-INF/jsp/quickSearch.jsp - /WEB-INF/jsp/results.jsp - /WEB-INF/jsp/quickSearch.jsp - - - - /WEB-INF/jsp/findArtifact.jsp - - - - /WEB-INF/jsp/upload.jsp - /WEB-INF/jsp/upload.jsp - /WEB-INF/jsp/upload.jsp - - - - - - /WEB-INF/jsp/deleteArtifact.jsp - /WEB-INF/jsp/deleteArtifact.jsp - /WEB-INF/jsp/deleteArtifact.jsp - - doDelete - - - - - /WEB-INF/jsp/findArtifact.jsp - /WEB-INF/jsp/results.jsp - /WEB-INF/jsp/findArtifact.jsp - - /browse/${databaseResults.get(0).getNamespace()}/${databaseResults.get(0).getProject()}/${databaseResults.get(0).getVersion()} - - - - - /WEB-INF/jsp/browse.jsp - - - - /WEB-INF/jsp/browse.jsp - - - - /WEB-INF/jsp/browse.jsp - - - - /WEB-INF/jsp/generalError.jsp - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - /WEB-INF/jsp/showArtifact.jsp - - - - /WEB-INF/jsp/showArtifact.jsp - /WEB-INF/jsp/showArtifact.jsp - - - - - - - - /WEB-INF/jsp/components/companyLogo.jsp - - - - - - - - /WEB-INF/jsp/admin/repositories.jsp - - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - * - - - - - /WEB-INF/jsp/admin/deleteRepositoryGroup.jsp - - * - - - - - /WEB-INF/jsp/admin/deleteRepositoryGroup.jsp - /WEB-INF/jsp/admin/deleteRepositoryGroup.jsp - repositoryGroups - - * - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - /WEB-INF/jsp/admin/repositoryGroups.jsp - /WEB-INF/jsp/admin/repositoryGroups.jsp - repositoryGroups - - - - - - - /WEB-INF/jsp/admin/repositories.jsp - deleteRepository - - - - repositories - - - - /WEB-INF/jsp/admin/addRepository.jsp - /WEB-INF/jsp/admin/addRepository.jsp - /WEB-INF/jsp/admin/confirmAddRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/editRepository.jsp - /WEB-INF/jsp/admin/editRepository.jsp - repositories - /WEB-INF/jsp/admin/confirmAddRepository.jsp - - - - - /WEB-INF/jsp/admin/deleteRepository.jsp - - * - - - - - /WEB-INF/jsp/admin/deleteRepository.jsp - /WEB-INF/jsp/admin/deleteRepository.jsp - repositories - - * - - - - - /WEB-INF/jsp/admin/addRemoteRepository.jsp - /WEB-INF/jsp/admin/addRemoteRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/editRemoteRepository.jsp - /WEB-INF/jsp/admin/editRemoteRepository.jsp - repositories - - - - - /WEB-INF/jsp/admin/deleteRemoteRepository.jsp - - - - - - /WEB-INF/jsp/admin/mergeExcludeConflicts.jsp - /WEB-INF/jsp/admin/mergeResults.jsp - - - - - /WEB-INF/jsp/admin/deleteRemoteRepository.jsp - /WEB-INF/jsp/admin/deleteRemoteRepository.jsp - repositories - - - - - - - /WEB-INF/jsp/admin/proxyConnectors.jsp - - - - /WEB-INF/jsp/admin/addProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/editProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/editProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/editProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/deleteProxyConnector.jsp - proxyConnectors - - * - - - - - /WEB-INF/jsp/admin/enableProxyConnector.jsp - proxyConnectors - - - - - /WEB-INF/jsp/admin/disableProxyConnector.jsp - proxyConnectors - - * - - - - - - - - /WEB-INF/jsp/admin/networkProxies.jsp - - - - /WEB-INF/jsp/admin/editNetworkProxy.jsp - networkProxies - - - - - /WEB-INF/jsp/admin/editNetworkProxy.jsp - networkProxies - - - - - /WEB-INF/jsp/admin/editNetworkProxy.jsp - networkProxies - - * - - - - - /WEB-INF/jsp/admin/deleteNetworkProxy.jsp - networkProxies - - * - - - - - - - /WEB-INF/jsp/admin/repositoryScanning.jsp - - repositoryScanning - - - removeFiletypePattern,addFiletypePattern,updateKnownConsumers,updateInvalidConsumers - - - - - - - /WEB-INF/jsp/admin/appearance.jsp - - - - /WEB-INF/jsp/admin/editAppearance.jsp - - - - /WEB-INF/jsp/admin/editAppearance.jsp - - configureAppearance - /admin - - - - - /WEB-INF/jsp/admin/systemStatus.jsp - - - - /WEB-INF/jsp/admin/systemStatus.jsp - - - - - - /WEB-INF/jsp/admin/legacyArtifactPath.jsp - - legacyArtifactPath - - - - - /WEB-INF/jsp/admin/addLegacyArtifactPath.jsp - /WEB-INF/jsp/admin/addLegacyArtifactPath.jsp - legacyArtifactPath - - - - - /WEB-INF/jsp/admin/legacyArtifactPath.jsp - /WEB-INF/jsp/admin/legacyArtifactPath.jsp - legacyArtifactPath - - * - - - - - - /WEB-INF/jsp/admin/networkConfiguration.jsp - /WEB-INF/jsp/admin/networkConfiguration.jsp - - - - - /WEB-INF/jsp/admin/networkConfiguration.jsp - /WEB-INF/jsp/admin/networkConfiguration.jsp - editNetworkConfiguration - - * - - - - - - - - /WEB-INF/jsp/reports/pickReport.jsp - - - - /WEB-INF/jsp/reports/pickReport.jsp - /WEB-INF/jsp/reports/blankReport.jsp - /WEB-INF/jsp/reports/basicReport.jsp - - - - /WEB-INF/jsp/reports/pickReport.jsp - /WEB-INF/jsp/reports/blankReport.jsp - /WEB-INF/jsp/reports/statisticsReport.jsp - - - - - /WEB-INF/jsp/reports/pickReport.jsp - /WEB-INF/jsp/reports/blankReport.jsp - - ${contentType} - attachment; filename="archiva_statistics_report.csv" - - - - - - /WEB-INF/jsp/reports/auditLogReport.jsp - - - - /WEB-INF/jsp/reports/auditLogReport.jsp - /WEB-INF/jsp/reports/auditLogReport.jsp - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/template/xhtml/form-close-validate.ftl b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/template/xhtml/form-close-validate.ftl deleted file mode 100644 index 97898cc88..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/template/xhtml/form-close-validate.ftl +++ /dev/null @@ -1,129 +0,0 @@ -<#-- -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ ---> -<#-- -START SNIPPET: supported-validators -Only the following validators are supported: -* required validator -* requiredstring validator -* stringlength validator -* regex validator -* email validator -* url validator -* int validator -* double validator -END SNIPPET: supported-validators ---> -<#if ((parameters.validate?default(false) == true) && (parameters.performValidation?default(false) == true))> - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml deleted file mode 100644 index b24bc71f5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/resources/validators.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml deleted file mode 100644 index dac40913c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - - - - - - true - false - false - false - None - READ_COMMITTED - READ_COMMITTED - JDK_DEFAULT_TIMEZONE - - 255 - - - - - true - ehcacheclassbased - defaultJpox - /ehcache.xml - - - - - - - - - scheduler1 - org.quartz.simpl.SimpleThreadPool - 2 - 4 - org.quartz.simpl.RAMJobStore - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml deleted file mode 100644 index 0148875d6..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/decorators.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - /repository/* - /components/* - /restServices/* - - - - /* - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp deleted file mode 100644 index 645662614..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/accessToNoRepos.jsp +++ /dev/null @@ -1,47 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - You do not have access to any repository - - - - - -
- -
- You do not have access to any repositories. - Please contact your system administrator to request access. -
- -
- -
-
-
- - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp deleted file mode 100644 index e22a517a3..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addLegacyArtifactPath.jsp +++ /dev/null @@ -1,115 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Add Legacy Artifact Path - - - - - -

Admin: Add Legacy Artifact Path

- -
- -

- Enter the legacy path to map to a particular artifact reference, then adjust the fields as necessary. -

- - - - <%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- -
    - -
  • -
    -
-
- - - - - - - - - - - - - -
- - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp deleted file mode 100644 index ee84a88d0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp +++ /dev/null @@ -1,46 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Add Proxy Connector - - - - - -

Admin: Add Proxy Connector

- -
- - - - - - <%@ include file="/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf" %> - - - -
- - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp deleted file mode 100644 index e893893a4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRemoteRepository.jsp +++ /dev/null @@ -1,49 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Add Remote Repository - - - - - -

Admin: Add Remote Repository

- -
- - - - - <%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %> - - - - - -
- - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp deleted file mode 100644 index 406426de5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp +++ /dev/null @@ -1,63 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Add Managed Repository - - - - - -

Admin: Add Managed Repository

- -
- <%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- -
    - -
  • -
    -
-
- - - <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %> - - - - - - -
- - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp deleted file mode 100644 index cd5438c10..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/appearance.jsp +++ /dev/null @@ -1,71 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Configure Appearance - - - - -

Appearance

- -
- Edit -
-

Organization Details

- -

- The logo in the top right of the screen is controlled by the following settings. - Change your appearance -

- -<%-- used c:out in displaying EL's so that they are escaped --%> -

Organization Information

- - - - - - - - - - - - - - - - - - - -
Name
URL - -
Logo URL - -
 
- - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp deleted file mode 100644 index df1c66fc1..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/confirmAddRepository.jsp +++ /dev/null @@ -1,142 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin: Add Managed Repository - - - - - -

Admin: Add Managed Repository

- -
-

- WARNING: Repository location already exists. -

-
- -

- Are you sure you want to - - add - update - - the following managed repository? -

- - <%-- used c:out in displaying EL's so that they are escaped --%> -
- - - - - - - - - - - - - - - - - - - - <%--td>${repository.layout} - - - - - - - - - - - - - - - - - - - - - - - - - - -
ID:
Name:
Directory:
Index Directory:
Type: - - - Maven 2.x Repository - - - Maven 1.x Repository - - -
Cron:
Repository Purge By Days Older Than:
Repository Purge By Retention Count:
Releases Included: -
Snapshots Included: -
Scannable: -
Delete Released Snapshots: -
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - -
-
- - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp deleted file mode 100644 index 49f1d8458..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteNetworkProxy.jsp +++ /dev/null @@ -1,63 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin: Delete Network Proxy - - - - - -

Admin: Delete Network Proxy

- - <%-- changed the structure of displaying errorMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- -
- -

Delete Network Proxy

- -
- WARNING: This operation can not be undone. -
- <%-- used c:out in displaying EL's for them to be escaped. --%> -

- Are you sure you want to delete network proxy ? -

- - - - - - -
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp deleted file mode 100644 index fb56d264e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteProxyConnector.jsp +++ /dev/null @@ -1,56 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Delete Proxy Connector - - - - - -

Admin: Delete Proxy Connector

- - - -
- -

Delete Proxy Connector

- -
- WARNING: This operation can not be undone. -
- -

- Are you sure you want to delete proxy connector [ ${source} , ${target} ] ? -

- - - - - - - -
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp deleted file mode 100644 index 9d77aa5d7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRemoteRepository.jsp +++ /dev/null @@ -1,74 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Delete Remote Repository - - - - - -

Admin: Delete Remote Repository

- - - -
- -
-

- WARNING: This operation can not be undone. -

-
- -

- Are you sure you want to delete the following remote repository? -

- -
- - - - - - - - - - - - - -
ID:${repository.id}
Name:${repository.name}
URL:${repository.url}
-
- - - -
- - -
-
-
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp deleted file mode 100644 index def8b68f6..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp +++ /dev/null @@ -1,85 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - - - - Admin: Delete Managed Repository - - - - - -

Admin: Delete Managed Repository

- -<%-- changed the structure of displaying errorMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- -
- -
-

- WARNING: This operation can not be undone. -

-
- -

- Are you sure you want to delete the following managed repository? -

- - <%-- used c:out in displaying EL's so that they are escaped --%> -
- - - - - - - - - - - - - -
ID:
Name:
Directory:
-
- - - - -
- - - -
-
-
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp deleted file mode 100644 index 69bbd0db4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepositoryGroup.jsp +++ /dev/null @@ -1,67 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Delete Repository Group - - - - - -

Admin: Delete Repository Group

- - - -
- -
-

- WARNING: This operation can not be undone. -

-
- -

- Are you sure you want to delete the following repository group? -

- -
- - - - - -
ID:${repositoryGroup.id}
-
- - - -
- - - -
-
-
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp deleted file mode 100644 index 52c69ba8c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp +++ /dev/null @@ -1,52 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Disable Proxy Connector - - - - - -

Admin: Disable Proxy Connector

- - - -
- -

Disable Proxy Connector

- -

- Are you sure you want to disable proxy connector [ ${source} , ${target} ] ? -

- - - - - - - -
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp deleted file mode 100644 index 8df7a210d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editAppearance.jsp +++ /dev/null @@ -1,54 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - Configure Appearance - - - - -

Appearance

- -

Organization Details

- -

- Enter the details of your organization below. -

- - -<%-- changed the structure of displaying actionMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp deleted file mode 100644 index b970d0616..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editNetworkProxy.jsp +++ /dev/null @@ -1,88 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - - - - - Admin: ${addedit} Network Proxy - - - - - -

Admin: ${addedit} Network Proxy

- -
- -

${addedit} network proxy:

- - <%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- -
    - -
  • -
    -
-
- - - - - - - - - - - - - - - <%@ include file="/WEB-INF/jsp/admin/include/networkProxyForm.jspf" %> - - - - - -
- - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp deleted file mode 100644 index 91b42dd34..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp +++ /dev/null @@ -1,47 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin : Edit Proxy Connector - - - - - -

Admin : Edit Proxy Connector

- -
- - - - - - <%@ include file="/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf" %> - - - -
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp deleted file mode 100644 index 0dad94ed4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRemoteRepository.jsp +++ /dev/null @@ -1,75 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> - - - - Admin: Edit Remote Repository - - - - - - -

Admin: Edit Remote Repository

- - - -
- - - - - <%@ include file="/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf" %> - - - -
- - Now:
- Full download:
- - -
-
- - -
- - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp deleted file mode 100644 index 8a2bfed8c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp +++ /dev/null @@ -1,74 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Edit Managed Repository - - - - - -

Admin: Edit Managed Repository

- -<%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
    - -
  • -
    -
-
- -
- - -
    - -
  • -
    -
-
- - - - <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %> - - - - - - - - - - - - - - -
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp deleted file mode 100644 index 1516a3a8e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp +++ /dev/null @@ -1,51 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Admin: Enable Proxy Connector - - - - - -

Admin: Enable Proxy Connector

- - - -
- -

Enable Proxy Connector

- -

- Are you sure you want to enable proxy connector [ ${source} , ${target} ] ? -

- - - - - - -
- - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp deleted file mode 100644 index 8c09b517e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/errorMessages.jsp +++ /dev/null @@ -1,32 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> - - -

- - Errors: - -

  • - -
  • - - -

    \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf deleted file mode 100644 index 725eebbc7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/networkProxyForm.jspf +++ /dev/null @@ -1,28 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf deleted file mode 100644 index 979815805..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf +++ /dev/null @@ -1,260 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - -<%-- This hidden 'pattern' field is used by remove (white|black)list scripts --%> - - - - - - - - - - - - - - - - - - - -
    - ${policy.value.name}: - - - - - - -
    - - - - - - - - - - : - - - - - - - - - - - - No properties have been set. - - - - - - - - - - -
    - ${property.key} - - - - - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - No black list patterns have been set. - - - - - - - - - -
    - "/> - "${currentPattern}" - - ', 'removeBlackListPattern')"> - -
    -
    -
    - - - - - - - - - - - - - - - - - - - No white list patterns have been set. - - - - - - - - - -
    - "/> - "${currentPattern}" - - ', 'removeWhiteListPattern')" - theme="simple"> - -
    -
    -
    - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf deleted file mode 100644 index 000578650..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/remoteRepositoryForm.jspf +++ /dev/null @@ -1,40 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf deleted file mode 100644 index 73b9b980f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf +++ /dev/null @@ -1,36 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp deleted file mode 100644 index d6e17980b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/legacyArtifactPath.jsp +++ /dev/null @@ -1,131 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - - Administration - Legacy Support - - - - - -

    Administration - Legacy Artifact Path Resolution

    - -
    - -<%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
      - -
    • -
      -
    -
    - -
      - -
    • -
      -
    -
    - -
    -
    - - - - " alt="" width="16" height="16"/> - Add - - -
    -

    Path Mappings

    - - - - <%-- No paths. --%> -

    There are no legacy artifact paths configured yet.

    -
    - - <%-- Display the paths. --%> - - - - - - - - - - - -
    - -
    - <%-- TODO: make some icons --%> - - - - - struts.token - - - - " alt="" width="16" height="16"/> - Delete - - -
    - -<%-- used c:out in displaying EL's so that they would be escaped --%> - - - - - - - - - -
    Path - -
    Artifact - -
    - -
    -
    - -
    -
    - - - -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/mergeExcludeConflicts.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/mergeExcludeConflicts.jsp deleted file mode 100644 index 8ccbfda68..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/mergeExcludeConflicts.jsp +++ /dev/null @@ -1,114 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin: Merge Staging Repository - - - - - -

    Admin: Merge Staging Repository

    - -

    - Are you sure you want to merge the repository? -

    - -
    - - - - -

    No conflicting artifacts

    - - -
    -

    - WARNING: Repository "${repoid}" does not allow to merge snapshots -

    -
    -
    - - - -
    - -
    -
    -
    - -
    - -

    - WARNING: Repository "${repoid}" does not allow to merge snapshots -

    -
    -

    - WARNING: The following are the artifacts in conflict. -

    -
    - -
    - - <%----%> - - - - - - - - -
    Artifact Id :${artifact.id} ${artifact.namespace} ${" "} ${artifact.project} ${" "} ${artifact.version}
    - - -
    - - - - - -
    - - - - -
    - -
    -
    - - - - -
    - -
    -
    -
    -
    -
    -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/mergeResults.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/mergeResults.jsp deleted file mode 100644 index a6adf6ef8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/mergeResults.jsp +++ /dev/null @@ -1,42 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Admin: Merge Staging Repository - - - - -

    Admin: Merge Staging Repository

    - -
    - - - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkConfiguration.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkConfiguration.jsp deleted file mode 100644 index 6cb780414..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkConfiguration.jsp +++ /dev/null @@ -1,51 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Configure NetworkConfiguration - - - - - -

    Admin: Configure NetworkConfiguration

    - -
    - - - - - - - - - - - - -
    - - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp deleted file mode 100644 index e17719cfa..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/networkProxies.jsp +++ /dev/null @@ -1,151 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - -Administration - Network Proxies - - - - - -

    Administration - Network Proxies

    - -
    - - <%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
      - -
    • -
      -
    -
    - -
      - -
    • -
      -
    -
    - -
    -
    - - - - " /> - Add Network Proxy -
    -

    Network Proxies

    - - - - <%-- No Local Repositories. --%> - There are no network proxies configured yet. - - - <%-- Display the repositories. --%> - - - - - - - - - - - -
    - -
    - - - - - - - - struts.token - - - - " /> - Edit Network Proxy - - " /> - Delete Network Proxy -
    - - <%-- used c:out in displaying EL's for them to be escaped. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Identifier
    Protocol
    Host
    Port
    Username
    Password••••••••
    Use NTLM
    - -
    -
    - -
    -
    -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp deleted file mode 100644 index 0d215d735..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp +++ /dev/null @@ -1,267 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - - Administration - Proxy Connectors - - - - - - - - -

    Administration - Proxy Connectors

    - - - - - - - - - -
    - - - - -
    - - - - - - "/> Add - - - - - "/> - Add (Disabled. No remote repositories) - - -
    - -

    Repository Proxy Connectors

    - - - - No Repository Proxy Connectors Defined. - - - -
    - - - -
    -
    - "/> -

    ${repository.key}

    -

    ${repoMap[repository.key].name}

    -
    - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - struts.token - - - - - - - - - - struts.token - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    Proxy Connector

    - -
    - "/> -

    ${connector.targetRepoId}

    -

    ${repoMap[connector.targetRepoId].name}

    -

    ${repoMap[connector.targetRepoId].url}

    -
    - - Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Network Proxy: - - - (Direct Connection) - - - - - - - ${connector.proxyId} - - - - -
    Policies: - - - - - - - -
    ${policies.key}${policies.value}
    -
    White List: - -

    "${pattern}"

    -
    -
    Black List: - -

    "${pattern}"

    -
    -
    Properties: - - - - - - - -
    ${prop.key}${prop.value}
    -
    -
    <%-- connector --%> - -
    -
    <%-- proxyConfig --%> -
    -
    <%-- admin --%> -
    -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp deleted file mode 100644 index ae38f9637..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp +++ /dev/null @@ -1,422 +0,0 @@ -<%@ page import="java.io.File" %> -<%-- -~ 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. ---%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - - Administration - Repositories - - - - - - - -

    Administration - Repositories

    - -
    - - <%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
      - -
    • -
      -
    -
    - - -
      - -
    • -
      -
    -
    - -
    -
    - - - - " alt="" width="16" height="16"/> - Add - - -
    -

    Managed Repositories

    - - - - <%-- No Managed Repositories. --%> - There are no managed repositories configured yet. - - -<%-- Display the repositories. --%> - - - - - - - - - - - -
    - -
    - <%-- TODO: make some icons --%> - - - - - - - - struts.token - - - - " alt="" width="16" height="16"/> - Edit - - - " alt="" width="16" height="16"/> - Delete - - - - - - -
    - -<%-- used c:out in displaying EL's for them to be escaped. --%> -
    - " alt="" width="32" height="32"/> -
    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- TODO: fix this hard coding - make stage repository configuration more transparent than the actual ManagedRepositoryConfiguration --%> - - - - - - - - - - - - - - - - - -
    Identifier - -
    Name - -
    Directory
    Index Directory
    WebDAV URL//
    Type - - - Maven 2.x Repository - - - Maven 1.x Repository - - -
    Groups - - , - -
    Releases Included
    Snapshots Included
    Delete Released Snapshots
    Repository Purge By Days Older Than
    Repository Purge By Retention Count
    Scanned
    Scanning Cron
    - Actions - - - - - - - - - - - -
    Process All Artifacts
    -
    -
    -
    Stats - - - - No Statistics Available. - - - - - - - - - - - - - - - - - -
    Last Scanned
    Duration ms
    Total File Count -
    New Files Found -
    -
    -
    -
    POM Snippet - -
    - stage repository location - - ${repository.location}${'-stage'} -
    Merge Actions - - - <%----%> - - - - -
    -
    -
    - -
    -
    - -
    -
    - -
    - - - - " alt="" width="16" height="16"/> - Add - - -
    -

    Remote Repositories

    - - - - <%-- No Remote Repositories. --%> - There are no remote repositories configured yet. - - - <%-- Display the repositories. --%> - - - - - - - - - - -
    - -
    - - - - - - " alt="" width="16" height="16"/> - Edit - - - - - struts.token - - - - " alt="" width="16" height="16"/> - Delete - - -
    - -
    - " alt="" width="32" height="32"/> -
    - -

    - - - - - - - - - - - - - - - - - <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%> - - -
    Identifier - -
    Name - -
    URL
    Type - - - Maven 2.x Repository - - - Maven 1.x Repository - - -
    - -
    -
    -
    -
    - -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp deleted file mode 100644 index 71a763b68..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryGroups.jsp +++ /dev/null @@ -1,165 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - - Administration - Repository Groups - - - - - -

    Administration - Repository Groups

    - - - - - - - -
    - - - - -
    - - - - - - - -
    - -

    Repository Groups

    - - - - No Repository Groups Defined. - - - -
    - - - -
    -
    - -
    - - - - struts.token - - - - - -
    - - "/> -

    ${repositoryGroup.key}

    -

    ${baseUrl}/${repositoryGroup.key}/

    -
    - - -
    - - - - - -
    -
    - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -

    Repository

    - -
    - "/> -

    ${repository}

    -

    ${managedRepositories[repository].name}

    -

    ${baseUrl}/${managedRepositories[repository].id}

    -
    -
    <%-- repository --%> -
    - -
    <%-- repository group --%> -
    -
    <%-- admin --%> - -
    -
    -
    <%-- content area --%> - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp deleted file mode 100644 index f4ed3a4c0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositoryScanning.jsp +++ /dev/null @@ -1,261 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - -Administration - Repository Scanning - - - - - -

    Administration - Repository Scanning

    - -
    - - - - - - - - - - - -
    -

    Repository Scanning - File Types

    - - - - <%-- No File Types. Eeek! --%> - There are no file types configured. - - - <%-- Display the filetypes. --%> - - - - - - - - - -
    - -
    <%-- Does this even make sense for file types? --%>
    - -

    ${filetypeId}

    - - - - - - - - - - - - - - - - - - - - - - - -
    - ${escapedPattern} - - - - -
    - - - - - -
    - -
    -
    - -
    -
    - -

    Repository Scanning - Consumers of Known Content

    - - - - <%-- No Good Consumers. Eeek! --%> - There are no consumers of known content available. - - - <%-- Display the consumers. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Enabled?IDDescription
    - checked /> - - - enabled - - - ${consumer.id} - ${consumer.description}
    - -
    -
    - -
    -
    - - -

    Repository Scanning - Consumers of Invalid Content

    - - - - <%-- No Consumers. Eeek! --%> - There are no consumers of invalid content available. - - - <%-- Display the consumers. --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Enabled?IDDescription
    - checked /> - - - enabled - - - ${consumer.id} - ${consumer.description}
    - -
    -
    - -
    -
    -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp deleted file mode 100644 index 703af95ac..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp +++ /dev/null @@ -1,146 +0,0 @@ -<%@ page import="java.util.Date" %> -<%-- - ~ 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. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> - - - - Administration - System Status - - - - - -

    Administration - System Status

    - -
    - - - - -

    Queues

    - - - - - - - - - - - - - -
    QueueSize
    ${queueEntry.key}${fn:length(queue)}
    - -

    Repository Scans Currently in Progress

    - - - - - - - - - - - - - - - - - - - -
    RepositoryFiles processedNew files
    ${scan.repository.name} (${scan.repository.id})${scan.stats.totalFileCount}${scan.stats.newFileCount}
    - - - - - - - - - - - - - - - - -
    NameTotalAverageInvocations
    ${entry.key}${entry.value}msms${total}
    -
    -
    - -

    No scans in progress.

    -
    -
    - -

    Caches

    - - - - - - - - - - - - - - ${cacheEntry.key} - - - - - - - - - - - -
    CacheSizeHitsMissesHit Ratio 
    ${cacheEntry.key}${cacheEntry.value.statistics.size}${cacheEntry.value.statistics.cacheHits}${cacheEntry.value.statistics.cacheMiss}Flush
    - -

    Memory Usage

    - -

    ${memoryStatus}

    - -

    Current Time

    - -

    <%= new Date() %>

    - -

    Version Information

    - - Build number: - Build Timestamp: - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp deleted file mode 100644 index 52b9abd57..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/alert.jsp +++ /dev/null @@ -1,46 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Security Alert Page - - - - - -
    - -
    - -
    -
    -
    - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp deleted file mode 100644 index 8d3bf67a0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/browse.jsp +++ /dev/null @@ -1,192 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> - - - - Browse Repository - - - - - - - - - -

    Browse Repository

    - -
    - -

    - - - ${artifactId} - -

    -
    - - -
    -

    Groups

    - -
    -
    - - -
    -

    Artifacts

    - -
    -
    - - - <%-- show shared project information (MRM-1041) TODO - share JSP code with artifactInfo.jspf --%> - - -

    Versions

    -
    - Artifact Info - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Group ID${mavenFacet.groupId}
    Artifact ID${mavenFacet.artifactId}
    Packaging${mavenFacet.packaging}
    Name${sharedModel.name}
    Organisation - - - ${sharedModel.organization.name} - - - ${sharedModel.organization.name} - - -
    Issue Tracker - - - ${sharedModel.issueManagement.system} - - - ${sharedModel.issueManagement.system} - - -
    Continuous Integration - - - ${sharedModel.ciManagement.system} - - - ${sharedModel.ciManagement.system} - - -
    -
    - - -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp deleted file mode 100644 index ec1b77e3c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/components/companyLogo.jsp +++ /dev/null @@ -1,52 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib uri="/struts-tags" prefix="s" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp deleted file mode 100644 index 057c4cb60..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp +++ /dev/null @@ -1,213 +0,0 @@ - - -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %> -<%@ taglib uri="/struts-tags" prefix="s" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> -<%@ page import="java.util.Calendar" %> - - - - Apache Archiva \ - <decorator:title default="Apache Archiva"/> - - - " type="text/css" media="all"/> - " type="text/css" media="all"/> - " type="text/css" media="all"/> - " type="text/css" media="all"/> - " type="text/css" media="print"/> - "/> - - - - -<% - int inceptionYear = 2005; - Calendar cal = Calendar.getInstance(); - int currentYear = cal.get( Calendar.YEAR ); - String copyrightRange = String.valueOf( inceptionYear ); - if ( inceptionYear != currentYear ) - { - copyrightRange = copyrightRange + "-" + String.valueOf( currentYear ); - } - - if ( cal.get( Calendar.MONTH ) == Calendar.SEPTEMBER && cal.get( Calendar.DAY_OF_MONTH ) == 19 ) - { - request.setAttribute( "is19Sep", "true" ); - } -%> - - - - - -" class="composite" - - style="background: url('') no-repeat bottom right" - -> - - - -
    - - - -
    - -
    - -
    - -
    -
    - -
    -
    - -
    -
    -
    - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/deleteArtifact.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/deleteArtifact.jsp deleted file mode 100644 index a742928f5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/deleteArtifact.jsp +++ /dev/null @@ -1,58 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Delete Artifact - - - - -

    Delete Artifact

    - - <%-- changed the structure of displaying errorMessages & actionMessages in order for them to be escaped. --%> - -
      - -
    • -
      -
    -
    - -
      - -
    • -
      -
    -
    - -
    - - <%@ include file="/WEB-INF/jsp/include/deleteArtifactForm.jspf" %> - - - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp deleted file mode 100644 index 7c5d4993f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/findArtifact.jsp +++ /dev/null @@ -1,118 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Find Artifact - - - - - -

    Find Artifact

    - -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp deleted file mode 100644 index 1ee60eabb..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/generalError.jsp +++ /dev/null @@ -1,37 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Error Occurred - - - - - -

    Error Occurred

    - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf deleted file mode 100644 index afa9a4e74..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactDependencies.jspf +++ /dev/null @@ -1,41 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - -<%-- TODO: paginate [MRM-491] --%> - -

    - - -

    - -

    - -

    -
    - - No results - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf deleted file mode 100644 index 1cfd8e825..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactInfo.jspf +++ /dev/null @@ -1,235 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - -

    - - - - - - - - - ${artifactId} / - ${version} - - <%-- TODO: new versions? - (Newer version available: - 2.0.3) - --%> -

    - - -
    ${model.description}
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- TODO: deployment timestamp - - - - - --%> - <%-- TODO: origin - - - - - --%> -
    Repository${repositoryId}
    Group ID${mavenFacet.groupId}
    Artifact ID${mavenFacet.artifactId}
    Version${model.version}
    Packaging${mavenFacet.packaging}
    Parent - ${mavenFacet.parent.groupId} ${mavenFacet.parent.artifactId} ${mavenFacet.parent.version} - - - - - - - - (View) -
    Deployment Date - 15 Jan 2006, 20:38:00 +1000 -
    Origin - Apache Repository -
    - - -

    POM Snippet

    - - -
    -    <plugin>
    -      <groupId>${mavenFacet.groupId}</groupId>
    -      <artifactId>${mavenFacet.artifactId}</artifactId>
    -      <version>${version}</version>
    -    </plugin>
    -
    -
    - -
    -    <dependency>
    -      <groupId>${mavenFacet.groupId}</groupId>
    -      <artifactId>${mavenFacet.artifactId}</artifactId>
    -      <version>${version}</version>
    -      <type>${mavenFacet.packaging}</type>
    -    </dependency>
    -
    -
    -
    -
    - - - -

    Other Details

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    URL - ${model.url} -
    Organisation - - - ${model.organization.name} - - - ${model.organization.name} - - -
    License - - - ${license.name} - - - ${license.name} - - -
    Issue Tracker - - - ${model.issueManagement.system} - - - ${model.issueManagement.system} - - -
    Continuous Integration - - - ${model.ciManagement.system} - - - ${model.ciManagement.system} - - -
    -
    - - -

    SCM

    - - - - - - - - - - - - - - - - - - - -
    Connection - ${model.scm.connection} -
    Dev. Connection - ${model.scm.developerConnection} -
    Viewer - ${model.scm.url} -
    -
    - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf deleted file mode 100644 index 6cce9aea6..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/artifactReports.jspf +++ /dev/null @@ -1,39 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - - -

    - ${report.groupId} : ${report.artifactId} : ${report.version} : ${report.classifier} : ${report.type} -

    -
      - -
    • - ${result.reason} -
    • -
      -
    -
    - - No reports for this artifact. - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/deleteArtifactForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/deleteArtifactForm.jspf deleted file mode 100644 index 8633bc7b4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/deleteArtifactForm.jspf +++ /dev/null @@ -1,29 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf deleted file mode 100644 index f7cde9d46..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/dependencyTree.jspf +++ /dev/null @@ -1,28 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf deleted file mode 100644 index 027cfe849..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mailingLists.jspf +++ /dev/null @@ -1,102 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - - - - - - - -
    -
    - - -

    - ${mailingList.name} -

    - <%-- TODO: description -

    - Description blah blah blah -

    - --%> - -
    -
    - - - No mailing lists - - -
    diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mergeActionForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mergeActionForm.jspf deleted file mode 100644 index d173f911a..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/mergeActionForm.jspf +++ /dev/null @@ -1,42 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf deleted file mode 100644 index e973042ba..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectDependees.jspf +++ /dev/null @@ -1,40 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> - -<%-- TODO: paginate [MRM-491] --%> - -

    - - -

    - -

    - -

    -
    - - No results - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectMetadata.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectMetadata.jspf deleted file mode 100644 index 67b42a687..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/projectMetadata.jspf +++ /dev/null @@ -1,86 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - -
    - - -
    -

    Add Property

    - - - - - - - - - - - - - - - - -
    Property NameProperty Value -
    - - - - - -
    -
    -
    -
    - -
    - -

    - No metadata content. -

    -
    - - - - -
    - -
    diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf deleted file mode 100644 index d99dd8055..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/include/uploadForm.jspf +++ /dev/null @@ -1,34 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp deleted file mode 100644 index 8f298aa12..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/quickSearch.jsp +++ /dev/null @@ -1,155 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> - - - - Quick Search - - - - - - - <%-- advanced search --%> - - - - -

    ${infoMessage}

    -
    - - - -

    Search

    - -
    - - -
    - Enter your search terms. A variety of data will be searched for your keywords. " /> - - - - - -
    - * To perform a boolean NOT search, use the keyword NOT after your search - term, followed by the term you want to exclude. For example, to exclude artifacts with - a dependency on the artifact you are searching for from showing up in the search results: - myQueryTerm NOT dependency -
    -
    - -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp deleted file mode 100644 index e51402fc2..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/auditLogReport.jsp +++ /dev/null @@ -1,153 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %> - - - - - Audit Log Report - - - - - - - - - -

    Audit Log Report

    - -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Repository:
    Group ID:
    Artifact ID:
    Start Date:
    End Date:
    Row Count:
    -
    -
    - -

    - -

    - -

    ${headerName}

    -

    - -

    - - - - - - - - - - - - - - - - - - - - -
    EventRepositoryResourceEvent DateUsername
    ${auditLog.action}${auditLog.repositoryId}${auditLog.resource}${auditLog.timestamp}${auditLog.userId}
    - - - - - - - - - - - - - - - - - - - - - - - - - - << - Page: ${page} - - >> - -
    -
    - -
    - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp deleted file mode 100644 index 8a21877f9..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/basicReport.jsp +++ /dev/null @@ -1,79 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - - - - Reports - - - - -

    Reports

    - -
    - - - Repository: ${repository.key} - -

    - - - - - - - - ${report.project} / - ${report.version} -

    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - << - Page: ${page} - - >> - -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp deleted file mode 100644 index b4d11f96a..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/blankReport.jsp +++ /dev/null @@ -1,38 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Reports - - - - -

    Reports

    - -
    - - - -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp deleted file mode 100644 index d197a1979..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/pickReport.jsp +++ /dev/null @@ -1,80 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - - Reports - - - - - - - - - -

    Reports

    - -
    - -

    Repository Statistics

    - - - - - - - - - - - - - -

    Repository Health

    - - - - - - - - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp deleted file mode 100644 index 7a7d2c85f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/statisticsReport.jsp +++ /dev/null @@ -1,230 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> -<%@ taglib prefix="s" uri="/struts-tags" %> - - - - Reports - - - - -

    Statistics Report

    - - - - - - -
    - - <%-- TODO: fix problem in date format! --%> - - <%-- Pagination - start --%> -

    - - <%-- Set Prev & Next icons --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- Google-style pagination --%> - - - - - 0 - 10 - - - ${(numPages - 1) - 10} - ${numPages - 1} - - - ${page - 5} - ${page + 5} - - - - - 0 - ${numPages - 1} - - - - - - - - - - - - - - - - ${i + 1} - - - ${i + 1} - - - - - - - - - - - - - - -

    - <%-- Pagination - end --%> - - <%-- Export to CSV link --%> - - - - - - Export to CSV - - - - -

    Latest Statistics Comparison Report

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    RepositoryTotal File CountTotal SizeArtifact CountGroup CountProject CountPluginsArchetypesJarsWarsEarsExesDllsZips
    ${selectedRepositories[i.count-1]}${stats.totalFileCount}${stats.totalArtifactFileSize}${stats.totalArtifactCount}${stats.totalGroupCount}${stats.totalProjectCount}${stats.totalCountForType['maven-plugin']}${stats.totalCountForType['maven-archetype']}${stats.totalCountForType['jar']}${stats.totalCountForType['war']}${stats.totalCountForType['ear']}${stats.totalCountForType['exe']}${stats.totalCountForType['dll']}${stats.totalCountForType['zip']}
    -
    - - -

    Statistics for Repository '${repositoryId}'

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Date of ScanTotal File CountTotal SizeArtifact CountGroup CountProject CountPluginsArchetypesJarsWarsEarsExesDllsZips
    ${stats.scanStartTime}${stats.totalFileCount}${stats.totalArtifactFileSize}${stats.totalArtifactCount}${stats.totalGroupCount}${stats.totalProjectCount}${stats.totalCountForType['maven-plugin']}${stats.totalCountForType['maven-archetype']}${stats.totalCountForType['jar']}${stats.totalCountForType['war']}${stats.totalCountForType['ear']}${stats.totalCountForType['exe']}${stats.totalCountForType['dll']}${stats.totalCountForType['zip']}
    - -
    -
    - -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp deleted file mode 100644 index 9b0ce4bec..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/results.jsp +++ /dev/null @@ -1,366 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib uri="/struts-tags" prefix="s" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> -<%@ taglib prefix="archiva" tagdir="/WEB-INF/tags" %> - - - - Search Results - - - - - - - - - -

    Advanced Search

    -
    - -

    Search

    -
    - - - - - - -
    -
    - - - - - - - - - -
    - * To do a filtered or advanced search, select the criteria from the list below and click the icon. Specify the term you want to be matched in the created text field. -
    - - - - - - - - - - - - - -
    - -
    - -
    -
    -
    - - - - - - - - - - -

    - -

    -
    - -

    Results

    - -
    - - - <%-- search was made from the indices --%> - - ${fn:length(results.hits) + (currentPage * results.limits.pageSize)} - - - - -

    Hits: ${(rowCount * currentPage) + 1} to ${hitsNum} of ${results.totalHitsMapSize}

    -
    - -

    Hits: ${(hitsNum - results.limits.pageSize) + 1} to ${hitsNum} of ${results.totalHitsMapSize}

    -
    -
    -
    - -

    Hits: 1 to ${hitsNum} of ${results.totalHits}

    -
    -
    - - -

    No results

    -
    - - - <%-- Pagination start --%> -

    - <%-- Prev & Next icons --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- Google-style pagination --%> - - - - - 0 - 10 - - - ${(totalPages -1) - 10} - ${totalPages - 1} - - - ${currentPage - 5} - ${currentPage + 5} - - - - - 0 - ${totalPages - 1} - - - - - - - - - - - - - - - - ${i + 1} - - - ${i + 1} - - - - - - - - - - - - - - - - - - - - - - - ${i + 1} - - - ${i + 1} - - - - - - - - - - - - - - - -

    - <%-- Pagination end --%> - - - - -

    - -

    -

    - -

    -
    - -

    - - ${record.urlFilename} -

    -
    -
    -
    -
    -
    -
    - - <%-- search was made from the database (find artifact)--%> - -

    Hits: ${fn:length(databaseResults)}

    - - - -

    No results

    -
    - - - - -

    - - -

    -

    - - -

    -
    - -

    - - ${artifactModel.repositoryId} -

    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp deleted file mode 100644 index d75477921..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/showArtifact.jsp +++ /dev/null @@ -1,267 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> -<%@ taglib prefix="redback" uri="/redback/taglib-1.0" %> - - - - Browse Repository - - - - - - - - - - - - - - - - Maven Plugin - - - - POM - - <%-- These types aren't usually set in the POM yet, so we fudge them for the well known ones --%> - - - Maven Archetype - - - - Maven Skin - - <%-- Must be last so that the above get picked up if possible --%> - - - JAR - - - - - - -${packageName} - -

    - - - ${mavenFacet.artifactId} - - - ${model.name} - - -

    - -
    -
    - - - - - - - - - Info - - - - - - - - Dependencies - - - - - - - - Dependency Tree - - - - - - - - Used By - - - - - - - - Mailing Lists - - - - - - - - Metadata - <%-- TODO - - - - - - - - - Reports - - --%> - - -
    - -
    -

    Download

    - -
    - -

    ${v}

    -
    - - - - - - - Maven Plugin - - - - POM - - <%-- These types aren't usually set in the POM yet, so we fudge them for the well known ones --%> - - - Maven Archetype - - - - Maven Skin - - - - Java Sources - - - - JavaDoc Archive - - - - .NET Library - - <%-- TODO: other NPanday types, and move this code into the plugin somehow --%> - <%-- Must be last so that the above get picked up if possible --%> - - - - JAR - - - - JAR - - - - - ${a.type} - - - - - - - - - - -
    - - ${packageName}${a.size}
    -
    -
    -
    -
    - - <%-- TODO: perhaps using ajax? --%> - <%-- TODO: panels? this is ugly as is --%> -
    - - - <%@ include file="/WEB-INF/jsp/include/projectMetadata.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/artifactDependencies.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/dependencyTree.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/projectDependees.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/mailingLists.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/artifactReports.jspf" %> - - - <%@ include file="/WEB-INF/jsp/include/artifactInfo.jspf" %> - - - - - -
    - -
    -
    - -
    - -
    -
    -
    -
    - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp deleted file mode 100644 index 2299f9521..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/upload.jsp +++ /dev/null @@ -1,47 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%-- http://www.opensymphony.com/webwork/wikidocs/File%20Upload%20Interceptor.html --%> - -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> - - - - Upload Artifact - - - - -

    Upload Artifact

    - -
    - - - - - - <%@ include file="/WEB-INF/jsp/include/uploadForm.jspf" %> - - -
    - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag deleted file mode 100644 index d8cb7edd0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/currentWWUrl.tag +++ /dev/null @@ -1,60 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ taglib uri="/struts-tags" prefix="s" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ attribute name="action" %> -<%@ attribute name="namespace" %> -<%@ attribute name="linkId" required="false" %> -<%@ attribute name="url" %> -<%@ attribute name="useParams" required="false" %> - - - - - - - - - - - - - - - - - - - - - - - - ${text} - - - - - ${text} - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag deleted file mode 100644 index 702d74d76..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/displayUpdatePolicy.tag +++ /dev/null @@ -1,41 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%-- TODO: this could perhaps just be a i18n call --%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ attribute name="policy" required="true" %> -<%@ attribute name="interval" %> - - - - Disabled - - - Updated every request - - - Updated hourly - - - Updated daily - - - Updated every ${interval} minutes - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag deleted file mode 100644 index 45398f696..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactLink.tag +++ /dev/null @@ -1,77 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ taglib prefix="archiva" uri="/WEB-INF/tld/web-tags.tld" %> - -<%@ attribute name="groupId" required="true" %> -<%@ attribute name="artifactId" %> -<%@ attribute name="version" %> -<%@ attribute name="classifier" %> -<%@ attribute name="scope" %> -<%@ attribute name="versions" type="java.util.List" %> -<%@ attribute name="repositoryId" %> - - - - - - - - - - - ${artifactId} - - | Version(s): - - - - - - - - - - - - ${version} - - - - - - - - - - - ${v} - , - - - - - | Scope: ${scope} - - - | Classifier: ${classifier} - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag deleted file mode 100644 index bfcb5e4d0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tags/showArtifactTitle.tag +++ /dev/null @@ -1,46 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ attribute name="groupId" required="true" %> -<%@ attribute name="artifactId" %> -<%@ attribute name="version" %> - - - - - - - - - - - - - - - - - - - - <%-- TODO: showing the name and description would be nice, but that would require loading the POMs --%> - ${artifactId} - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tld/web-tags.tld b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tld/web-tags.tld deleted file mode 100644 index 335c6325a..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/tld/web-tags.tld +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - Archiva Taglib - 2.2.3 - archiva - /archiva-web-tag - - - copy-paste-snippet - org.apache.archiva.web.tags.CopyPasteSnippetTag - empty - - - object - true - true - - - - wrapper - false - true - - false - - - - dependency-tree - org.apache.archiva.web.tags.DependencyTreeTag - JSP - - - artifactId - true - true - - - - groupId - true - true - - - - modelVersion - false - true - - - - nodevar - false - true - - - - version - true - true - - false - - - - groupIdLink - org.apache.archiva.web.tags.GroupIdLinkTag - empty - - - includeTop - false - true - - - - var - true - true - - false - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 6e7157ea2..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - Apache Archiva - - - webwork-cleanup - org.apache.struts2.dispatcher.ActionContextCleanUp - - - - sitemesh - com.opensymphony.sitemesh.webapp.SiteMeshFilter - - - - struts2 - org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - - encodingFilter - /* - - - - - webwork-cleanup - /* - - - - sitemesh - /* - - - - struts2 - /* - - - - - org.springframework.web.context.ContextLoaderListener - - - - - - org.apache.archiva.web.startup.ArchivaStartup - - - - - net.sf.ehcache.constructs.web.ShutdownListener - - - - - org.apache.archiva.webdav.util.TemporaryGroupIndexSessionCleaner - - - - contextConfigLocation - - classpath*:META-INF/spring-context.xml - /WEB-INF/applicationContext.xml - - - - - RepositoryServlet - - org.apache.archiva.webdav.RepositoryServlet - - - 1 - - - - - RssFeedServlet - - org.apache.archiva.web.rss.RssFeedServlet - - - - - RssFeedServlet - /feeds/* - - - - RepositoryServlet - /repository/* - - - - - - jdbc/users - javax.sql.DataSource - Container - Shareable - - - mail/Session - javax.mail.Session - Container - Shareable - - - - CXFServlet - org.apache.cxf.transport.servlet.CXFServlet - 1 - - - - CXFServlet - /restServices/* - - - - index.jsp - - - - - 30 - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css deleted file mode 100644 index c380a626c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -body { - margin: 0px; - padding: 0px; -} - -img { - border: none; -} - -table { - padding: 0px; - width: 100%; - margin-left: -2px; - margin-right: -2px; -} - -acronym { - cursor: help; - border-bottom: 1px dotted #feb; -} - -table.bodyTable th, table.bodyTable td { - padding: 2px 4px 2px 4px; - vertical-align: top; -} - -div.clear { - clear: both; - visibility: hidden; -} - -div.clear hr { - display: none; -} - -#bannerLeft, #bannerRight { - font-size: xx-large; - font-weight: bold; -} - -#bannerLeft img, #bannerRight img { - margin: 0px; -} - -.xleft, #bannerLeft img { - float: left; -} - -.xright, #bannerRight img { - float: right; -} - -.composite { -} - -#banner { - padding: 0px; -} - -#banner img { - border: none; -} - -#breadcrumbs { - padding: 3px 10px 3px 10px; -} - -#leftColumn { - width: 170px; - float: left; - overflow: auto; -} - -#bodyColumn { - margin-right: 1.5em; - margin-left: 197px; - min-height: 575px -} - -#legend { - padding: 8px 0 8px 0; -} - -#navcolumn { - padding: 8px 4px 0 8px; -} - -#navcolumn h5 { - margin: 0; - padding: 0; - font-size: small; -} - -#navcolumn ul { - margin: 0; - padding: 0; - font-size: small; -} - -#navcolumn li { - list-style-type: none; - background-image: none; - background-repeat: no-repeat; - background-position: 0 0.4em; - padding-left: 16px; - list-style-position: outside; - line-height: 1.2em; - font-size: smaller; -} - -#navcolumn li.expanded { - background-image: url( ../images/expanded.gif ); -} - -#navcolumn li.collapsed { - background-image: url( ../images/collapsed.gif ); -} - -#poweredBy { - text-align: center; -} - -#navcolumn img { - margin-top: 10px; - margin-bottom: 3px; -} - -#poweredBy img { - display: block; - margin: 20px 0 20px 17px; - border: 1px solid black; - width: 90px; - height: 30px; -} - -#search img { - margin: 0px; - display: block; -} - -#search #q, #search #btnG { - border: 1px solid #999; - margin-bottom: 10px; -} - -#search form { - margin: 0px; -} - -#lastPublished { - font-size: x-small; -} - -.navSection { - margin-bottom: 2px; - padding: 8px; -} - -.navSectionHead { - font-weight: bold; - font-size: x-small; -} - -.section { - padding: 4px; -} - -#footer { - padding: 3px 10px 3px 10px; - font-size: x-small; -} - -#breadcrumbs { - font-size: x-small; - margin: 0pt; -} - -.source { - padding: 12px; - margin: 1em 7px 1em 7px; -} - -.source pre { - margin: 0px; - padding: 0px; -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css deleted file mode 100644 index ea4e414f5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/maven-theme.css +++ /dev/null @@ -1,350 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -body { - padding: 0 0 10px 0; -} - -body, td, th, select, input, li { - font-family: Verdana, Helvetica, Arial, sans-serif; - font-size: 9pt; -} - -select, input { - font-size: 0.9em; - border: 1px solid #AAAAAA; -} - -select { - padding-left: 3px; - height: auto; - width: auto; -} - -input { - padding: 2px; -} - -label .required { - color: red; - font-weight: bold; -} - -th { - text-align: right; - padding-right: 1em; - font-size: x-small; - vertical-align: top; -} - -.infoTable th { - width: 15em; -} - -#contentBox h1 { - background-image: url( ../images/arrow.gif ); - background-repeat: no-repeat; - background-position: left bottom; - border-bottom: 1px solid #DFDEDE; - padding: 0 0 1px 23px; - margin-bottom: 0.5em; - color: #333; - voice-family: inherit; - font-size: medium !important; -} - -#contentBox h2 { - border-bottom: 1px solid #DFDEDE; - padding: 0 0 1px 0; - margin-bottom: 0.5em; - color: #333; - voice-family: inherit; - font-size: small !important; -} - -#contentBox h3 { - border-bottom: 1px solid #DFDEDE; - padding: 0 0 1px 0; - margin-bottom: 0.5em; - color: #333; - voice-family: inherit; - font-size: small !important; - margin-left: 2em; -} - -table { - width: auto; -} - -code { - font-family: Courier, monospace; - font-size: 13px; -} - -#legend li.externalLink { - background: url( ../images/external.png ) left top no-repeat; - padding-left: 18px; -} - -a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { - background: url( ../images/external.png ) right center no-repeat; - padding-right: 18px; -} - -#legend li.newWindow { - background: url( ../images/newwindow.png ) left top no-repeat; - padding-left: 18px; -} - -a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover { - background: url( ../images/newwindow.png ) right center no-repeat; - padding-right: 18px; -} - -p { - line-height: 1.3em; - font-size: small; -} - -#breadcrumbs { - background-image: url(../images/breadcrumbs.jpg); - padding: 2px 8px; -} - -#navcolumn h5 { - color: gray; - font-weight: bold; - font-size: 11px; - padding: 10px 0 1px 19px; -} - -.source { - border: 1px solid #999; -} - -#companyLogo { - display: block; - margin-left: auto; - margin-right: auto; - text-align: center; -} - -dl { - padding: 4px 4px 4px 6px; - border: 1px solid #aaa; - background-color: #ffc; -} - -dt { - color: #900; -} - -#organizationLogo img, #projectLogo img, #projectLogo span { - margin: 8px; -} - -#banner { - border-bottom: 1px solid #fff; - padding: 8px; -} - -#breadcrumbs a:link { - text-decoration: none; -} - -#breadcrumbs a:visited { - text-decoration: none; - color: #333 -} - -#breadcrumbs a:hover { - text-decoration: none; - color: white -} - -.errormark, .warningmark, .donemark, .infomark { - background: url( ../images/icon_error_sml.gif ) no-repeat; -} - -.warningmark { - background-image: url( ../images/icon_warning_sml.gif ); -} - -.donemark { - background-image: url( ../images/icon_success_sml.gif ); -} - -.infomark { - background-image: url( ../images/icon_info_sml.gif ); -} - -.booleanIcon { - padding-left: 20px; - height: 20px; -} - -pre.pom { - font-size: 0.9em; - border: 1px solid #ddddff; - background-color: #f8f8ff; - padding: 5px; -} - -pre.pom code { - font-size: 0.9em; -} - -#leftColumn { - padding: 4px 4px 4px 4px; - overflow: hidden; -} - -#navcolumn { - padding: 6px 0 0 2px; -} - -#navcolumn li { - font-size: 9px; - text-indent: 19px; - line-height: 24px; - height: 25px; - width: 161px; - background-image: url( ../images/super.gif ); - background-position: 0 0; - background-repeat: no-repeat; - display: block; - padding-left: 0; -} - -#navcolumn li li { - padding-left: 16px; - background: none; - display: block; -} - -#navcolumn li li a:hover { - color: black !important; - background: none; - display: block; -} - -#navcolumn li li a:active { - color: red !important; - background: none; - display: block; -} - -#navcolumn li.collapsed { - background-image: url( ../images/super.gif ); -} - -#navcolumn li.expanded { - background-image: url( ../images/super.gif ); - height: inherit; -} - -#navcolumn li a:link { - color: #666; - display: block; -} - -#navcolumn li a:hover { - color: #fff !important; - background: url( ../images/super_hl.gif ) 0 -25px no-repeat; - display: block; -} - -#navcolumn li a:active { - color: #fff !important; - background: url( ../images/super_hl.gif ) 0 -50px no-repeat; - display: block; -} - -#navcolumn li a:visited { - color: #666; - display: block; -} - -#navcolumn li ul li { - color: #333 !important; - text-indent: 30px !important; - line-height: 20px !important; - height: 20px !important; - background-image: url( ../images/supersub.gif ) !important; - font-size: 9px; - width: 161px; - background-repeat: no-repeat; - display: block; - padding-left: 0; -} - -#navcolumn li ul li a:hover { - color: #fff !important; - background: url( ../images/super_hl_sub.gif ) 0 -20px no-repeat; - background-position: right; - width: 161px; - display: block; -} - -#footer { - border-top: 1px solid #CCCCCC; - padding: 14px 4px 12px 4px; - color: #333333; - margin-top: 2em; -} - -a:link, a:visited { - color: #333; -} - -#navcolumn a { - text-decoration: none; -} - -a:active, a:hover { - color: #f30; -} - -blockquote { - border-left: 1px solid #DFDEDE; - padding-left: 1em; -} - -.missing { - background-color: red; - color: white; - font-weight: bold; - padding: 4px; - margin-left: 20px; - margin-right: 20px; - -} - -#searchBox { - margin: 5%; -} - -#searchHint { - margin: 5%; -} - -#topSearchBox { - float: right; - padding: 2px 8px; -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_flat_0_aaaaaa_40x100.png deleted file mode 100644 index 5b5dab2ab..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_flat_0_aaaaaa_40x100.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_flat_75_ffffff_40x100.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index ac8b229af..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_flat_75_ffffff_40x100.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100644 index ad3d6346e..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_65_ffffff_1x400.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100755 index 42ccba269..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_75_dadada_1x400.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 5a46b47cb..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_75_dadada_1x400.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index 86c2baa65..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 4443fdc1a..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100644 index 7c9fa6c6e..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_222222_256x240.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_222222_256x240.png deleted file mode 100755 index ee039dc09..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_2e83ff_256x240.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 45e8928e5..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_2e83ff_256x240.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_454545_256x240.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_454545_256x240.png deleted file mode 100644 index 7ec70d11b..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_454545_256x240.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_888888_256x240.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_888888_256x240.png deleted file mode 100644 index 5ba708c39..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_888888_256x240.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_cd0a0a_256x240.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index 7930a5580..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/images/ui-icons_cd0a0a_256x240.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/jquery.ui-1.8.14.theme.css b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/jquery.ui-1.8.14.theme.css deleted file mode 100644 index c029f4495..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/no-theme/jquery.ui-1.8.14.theme.css +++ /dev/null @@ -1,247 +0,0 @@ -/* - * jQuery UI CSS Framework 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Theming/API - * - * To view and modify this theme, visit http://jqueryui.com/themeroller/ - */ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } -.ui-widget .ui-widget { font-size: 1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } -.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } -.ui-widget-content a { color: #222222/*{fcContent}*/; } -.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } -.ui-widget-header a { color: #222222/*{fcHeader}*/; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } -.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; } -.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } -.ui-widget :active { outline: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } -.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } -.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; } -.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; } - -/* Overlays */ -.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } -.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css deleted file mode 100644 index 7f9db33dc..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/print.css +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn { - display: none !important; -} - -#bodyColumn, body.docs div.docs { - margin: 0 !important; - border: none !important -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css deleted file mode 100644 index faac56bd5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/css/site.css +++ /dev/null @@ -1,399 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#download { - float: right; -} - -#download a { - text-decoration: none; -} - -#download td.type { - padding-right: 1em; - white-space: nowrap; -} - -#download td.size { - text-align: right; -} - -#contentArea { - /* margin-right: 15em; */ - padding: 1em; -} - -#tabs b { - 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; -} - -#tabArea { - border-top: 1px solid #DFDEDE; - padding: 1em; -} - -#searchTypes { - text-align: right; - font-size: xx-small; -} - -.statusFailed { - color: red; - font-weight: bold; -} - -/* WebWork validation failures */ -.errorMessage { - color: red; - font-weight: bold; -} - -.actionMessage { - font-size: 1.0em; - font-weight: bold; - color: blue; -} - -.errorBullet { - list-style-image: url( "../images/icon_error_sml.gif" ); -} - -.warningBullet { - list-style-image: url( "../images/icon_warning_sml.gif" ); -} - -.infoBullet { - list-style-image: url( "../images/icon_info_sml.gif" ); -} - -.artifact-link { - font-size: x-small; - padding-left: 5em; -} - -.artifact-title { - -} - -ul.dependencyTree { - margin-left: 50px; -} - -ul.dependencyTree span.artifact-link { - padding-left: 0px; -} - -.eXtremeTable tr.filter { - padding: 1px; -} - -.eXtremeTable .tableRegion,.eXtremeTable .statusBar { - width: 100%; -} - -.eXtremeTable .tableRegion .tableHeader { - background-color: None; - background-image: url(../images/breadcrumbs.jpg); - color: gray; -} - -.eXtremeTable .tableRegion .tableHeaderSort { - background-color: #FFBF5F; -} - -.eXtremeTable .compactToolbar td { - white-space: nowrap; -} - -.tools { - border-color: gray !important; -} - -table.tools th.toolHeading -{ - 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); -} - -div.repository h3 { - border-bottom: 0px !important; - padding-left: 15px !important; -} - -div.repository { - border-bottom: 1px solid #DFDEDE; -} - -div.proxyConfig, -div.repoGroup { - 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; -} - -div.proxyConfig div.remoteRepo { - margin: 5px; -} - -div.proxyConfig div.managedRepo img, -div.proxyConfig div.remoteRepo img, -div.repoGroup div.managedRepo img { - float: left; - border: 0px; -} - -div.proxyConfig div.managedRepo p, -div.proxyConfig div.remoteRepo p { - margin: 0px; - margin-left: 40px; - padding: 0px; -} - -div.repoGroup div.managedRepo p { - margin: 8px; - 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; -} - -div.proxyConfig div.connector, -div.repoGroup div.connector { - border: 1px solid #aaaaff; - margin-top: 10px; - margin-left: 40px !important; -} - -div.proxyConfig a.expand { - font-size: 7pt; - color: gray; -} - -div.proxyConfig div.controls, -div.repoGroup div.controls { - float: right; -} - -div.proxyConfig div.connector h4, -div.repoGroup div.connector h4 { - padding: 3px; - font-size: 8pt; - margin: 0px; -} - -div.proxyConfig div.connector table.settings { - 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; -} - -div.proxyConfig div.connector table.settings table.policies { - border: 1px dotted gray; -} - -div.proxyConfig div.connector table p { - margin: 0px; - padding: 0px; -} - -div.repoGroup div.repos { - text-align: right; - padding: 4px 0px 0px 0px; -} - -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; -} - -div.admin div.lite { - background-color: white; -} - -div.admin div.dark { - background-color: #eeeeee; -} - -div.admin div.controls { - float: right; - font-size: 8pt !important; -} - -div.admin div.filetype table { - margin-left: 25px; - border: 1px solid gray; -} - -div.filetype table td.controls { - width: 5%; -} - -div.filetype table td.odd, -div.admin table.consumers td.odd { - background-color: #dddddd; -} - -div.filetype table td.even, -div.admin table.consumers td.even { - background-color: white; -} - -div.admin table.consumers { - margin-left: 15px; - border: 1px solid gray; -} - -div.admin table.consumers th { - font-size: 1.0em; - background-color: #cccccc; - text-align: left; -} - -div.admin table.consumers td strong { - 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; -} - -div.infobox { - margin: 20px 40px 20px 40px; - border: 1px solid #0000CC; - background-color: #EEEEFF; - font-size: 9pt; - padding: 20px; -} - -div.buttons { - text-align: center; -} - -div.versions { - border: 1px dashed #DFDEDE; - margin-bottom: 15px; - padding: 5px; -} - -div.versions a.expand { - font-size: 7pt; - color: gray; -} - -#messages { - background-color: yellow; - border: 1px solid orange; - margin-top: 2em; -} - -#messages ul { - list-style-image: url(../images/icon_warning_sml.gif) -} - -#messagesinfo { - background-color: yellow; - border: 1px solid orange; - margin-top: 2em; -} - -#messagesinfo ul { - list-style-image: url(../images/icon_success_sml.gif) -} - -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; -} - -table.auditlogs th { - 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; -} - -div.auditLogReportResults { - border: 1px dashed #DFDEDE; - margin-bottom: 15px; - margin-left: 2px; - padding: 5px; -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/favicon.ico b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/favicon.ico deleted file mode 100644 index 06714d34a..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/favicon.ico and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/19Sep-logo.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/19Sep-logo.png deleted file mode 100644 index cbaf680a5..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/19Sep-logo.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/19Sep.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/19Sep.png deleted file mode 100644 index e311868be..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/19Sep.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archetype.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archetype.gif deleted file mode 100755 index fc84feff5..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archetype.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif deleted file mode 100644 index 97dff07d2..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png deleted file mode 100644 index 8afb6cc93..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva.png deleted file mode 100644 index 729803c7b..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/archiva.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.gif deleted file mode 100755 index ce00e3d0c..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.left.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.left.png deleted file mode 100644 index 93085aaaa..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.left.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.right.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.right.png deleted file mode 100644 index 79abee507..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/arrow.right.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/breadcrumbs.jpg b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/breadcrumbs.jpg deleted file mode 100644 index 1385fa0bd..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/breadcrumbs.jpg and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/collapsed.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/collapsed.gif deleted file mode 100644 index 6e7108406..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/collapsed.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/dl.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/dl.gif deleted file mode 100755 index 710e7b848..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/dl.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-archetype.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-archetype.png deleted file mode 100644 index c0a19dac7..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-archetype.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-jar.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-jar.png deleted file mode 100644 index 6eb48831d..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-jar.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-maven-plugin.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-maven-plugin.png deleted file mode 100644 index 3f27ddb6d..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-maven-plugin.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-other.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-other.png deleted file mode 100644 index cb268e025..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-other.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-pom.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-pom.png deleted file mode 100644 index 7ed1db583..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-pom.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-skin.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-skin.png deleted file mode 100644 index 0671e0956..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download-type-skin.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.bl.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.bl.gif deleted file mode 100644 index c59ba0062..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.bl.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.br.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.br.gif deleted file mode 100644 index d80f62ee8..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.br.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.ml.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.ml.gif deleted file mode 100644 index 8fcfa4220..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.ml.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.mr.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.mr.gif deleted file mode 100644 index ded125be9..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.mr.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tl.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tl.gif deleted file mode 100644 index b4a8e97d3..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tl.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tr.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tr.gif deleted file mode 100644 index 07aeccee5..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/download.tr.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/expanded.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/expanded.gif deleted file mode 100644 index 0fef3d89e..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/expanded.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/external.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/external.png deleted file mode 100644 index 3f999fc88..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/external.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/folder.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/folder.png deleted file mode 100644 index 65bd0bbdc..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/folder.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/footerborder.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/footerborder.gif deleted file mode 100644 index 958ce7ae3..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/footerborder.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_error_sml.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_error_sml.gif deleted file mode 100644 index 61132ef2b..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_error_sml.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_info_sml.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_info_sml.gif deleted file mode 100644 index c6cb9ad7c..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_info_sml.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page.gif deleted file mode 100644 index 7c5b30758..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page_disabled.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page_disabled.gif deleted file mode 100644 index 99c292f62..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_next_page_disabled.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page.gif deleted file mode 100644 index a051fa1f3..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page_disabled.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page_disabled.gif deleted file mode 100644 index 79c241b37..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_prev_page_disabled.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_success_sml.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_success_sml.gif deleted file mode 100644 index 52e85a430..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_success_sml.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_warning_sml.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_warning_sml.gif deleted file mode 100644 index 873bbb52c..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icon_warning_sml.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png deleted file mode 100644 index 7ced90cd2..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png deleted file mode 100644 index 9e37b4128..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png deleted file mode 100644 index 00a443dbe..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png deleted file mode 100644 index 310c61728..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png deleted file mode 100644 index 4d62e48ec..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png deleted file mode 100644 index 24a84bb49..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif deleted file mode 100644 index b6922ac11..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/down.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/down.gif deleted file mode 100644 index 9561bbe2a..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/down.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png deleted file mode 100644 index 5ea781e6d..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/off-symbol.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/off-symbol.png deleted file mode 100644 index 6326912c1..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/off-symbol.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/on-symbol.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/on-symbol.png deleted file mode 100644 index 4bcccd5a0..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/on-symbol.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/rss-feed.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/rss-feed.png deleted file mode 100644 index 6652d3e57..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/rss-feed.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png deleted file mode 100644 index e66758a83..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png deleted file mode 100644 index be4d4da03..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/up.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/up.gif deleted file mode 100644 index 61942d6d1..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/up.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png deleted file mode 100644 index 7f4c6d739..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/jar.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/jar.gif deleted file mode 100755 index 63dcb611a..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/jar.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/mavenplugin.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/mavenplugin.gif deleted file mode 100755 index 4e335e3f2..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/mavenplugin.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/newwindow.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/newwindow.png deleted file mode 100644 index 6287f72bd..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/newwindow.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/other.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/other.gif deleted file mode 100755 index 9b01e3e2c..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/other.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/package-x-generic.png b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/package-x-generic.png deleted file mode 100644 index 901542615..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/package-x-generic.png and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/pom.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/pom.gif deleted file mode 100755 index b6efdc34c..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/pom.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/skin.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/skin.gif deleted file mode 100755 index 64ff878eb..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/skin.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super.gif deleted file mode 100644 index c8ee24344..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl.gif deleted file mode 100644 index d90b8f0f8..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl_sub.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl_sub.gif deleted file mode 100755 index 0b35f7a26..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/super_hl_sub.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/supersub.gif b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/supersub.gif deleted file mode 100755 index 3f28dbce5..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/images/supersub.gif and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp deleted file mode 100644 index 77a2bd6a9..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/index.jsp +++ /dev/null @@ -1,20 +0,0 @@ -<%-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you under the Apache License, Version 2.0 (the - ~ "License"); you may not use this file except in compliance - ~ with the License. You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, - ~ software distributed under the License is distributed on an - ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - ~ KIND, either express or implied. See the License for the - ~ specific language governing permissions and limitations - ~ under the License. - --%> - -<%response.sendRedirect( request.getContextPath() + "/index.action" );%> \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-1.6.1.min.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-1.6.1.min.js deleted file mode 100644 index b2ac1747f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-1.6.1.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu May 12 15:04:36 2011 -0400 - */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
    a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem -)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
    ";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.8.14.custom.min.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.8.14.custom.min.js deleted file mode 100644 index f9e4f1e84..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/jquery-ui-1.8.14.custom.min.js +++ /dev/null @@ -1,789 +0,0 @@ -/*! - * jQuery UI 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.14", -keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus(); -b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this, -"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection", -function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth, -outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,"tabindex"),d=isNaN(b); -return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e= -0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= -false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); -;/* - * jQuery UI Position 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Position - */ -(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, -left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= -k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= -m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= -d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= -a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), -g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); -;/* - * jQuery UI Draggable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Draggables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== -"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= -this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;d(b.iframeFix===true?"iframe":b.iframeFix).each(function(){d('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")});return true},_mouseStart:function(a){var b=this.options;this.helper= -this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); -this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);d.ui.ddmanager&&d.ui.ddmanager.dragStart(this,a);return true}, -_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b= -false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, -10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},_mouseUp:function(a){this.options.iframeFix===true&&d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});d.ui.ddmanager&&d.ui.ddmanager.dragStop(this,a);return d.ui.mouse.prototype._mouseUp.call(this,a)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle|| -!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone().removeAttr("id"):this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&& -a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= -this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"), -10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), -10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[a.containment=="document"?0:d(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a.containment=="document"?0:d(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, -(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){a=d(a.containment);var b=a[0];if(b){a.offset();var c=d(b).css("overflow")!= -"hidden";this.containment=[(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"), -10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=a}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+ -this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&& -!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,h=a.pageY;if(this.originalPosition){var g;if(this.containment){if(this.relative_container){g=this.relative_container.offset();g=[this.containment[0]+g.left,this.containment[1]+g.top,this.containment[2]+g.left,this.containment[3]+g.top]}else g=this.containment;if(a.pageX-this.offset.click.leftg[2])e=g[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>g[3])h=g[3]+this.offset.click.top}if(b.grid){h=b.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/b.grid[1])*b.grid[1]:this.originalPageY;h=g?!(h-this.offset.click.topg[3])?h:!(h-this.offset.click.topg[2])?e:!(e-this.offset.click.left=0;i--){var j=c.snapElements[i].left,l=j+c.snapElements[i].width,k=c.snapElements[i].top,m=k+c.snapElements[i].height;if(j-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= -i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), -top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= -this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", -nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== -String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,l);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); -this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){if(!a.disabled){e(this).removeClass("ui-resizable-autohide");b._handles.show()}},function(){if(!a.disabled)if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); -var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a= -false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"}); -this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff= -{width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis]; -if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false}, -_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f, -{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(b){var a=this.options,c,d,f;a={minWidth:k(a.minWidth)?a.minWidth:0,maxWidth:k(a.maxWidth)?a.maxWidth:Infinity,minHeight:k(a.minHeight)?a.minHeight:0,maxHeight:k(a.maxHeight)?a.maxHeight: -Infinity};if(this._aspectRatio||b){b=a.minHeight*this.aspectRatio;d=a.minWidth/this.aspectRatio;c=a.maxHeight*this.aspectRatio;f=a.maxWidth/this.aspectRatio;if(b>a.minWidth)a.minWidth=b;if(d>a.minHeight)a.minHeight=d;if(cb.width,h=k(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,l=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&l)b.left=i-a.minWidth;if(d&&l)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left= -null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ -a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+ -c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]); -b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.14"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(), -10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top- -f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var l=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:l.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(l.css("position"))){c._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType? -e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a= -e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing, -step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement= -e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset; -var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left: -a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top- -d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition, -f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25, -display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b= -e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height= -d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},k=function(b){return!isNaN(parseInt(b,10))}})(jQuery); -;/* - * jQuery UI Selectable 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Selectables - * - * Depends: - * jquery.ui.core.js - * jquery.ui.mouse.js - * jquery.ui.widget.js - */ -(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), -selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
    ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, -c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", -c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= -this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable"); -this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a=== -"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&& -!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, -left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; -this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!= -document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a); -return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0], -e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset(); -c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): -this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null, -dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")}, -toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith(); -if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), -this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b= -this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f= -d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")|| -0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out", -a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h- -f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g- -this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this, -this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop", -a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); -a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); -if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", -function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a= -this.options;if(a.icons){c("").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); -this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); -b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); -a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ -c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; -if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); -if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), -e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| -e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", -"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.14", -animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/); -f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide", -paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); -;/* - * jQuery UI Autocomplete 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Autocomplete - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.position.js - */ -(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g= -false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!= -a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)}; -this.menu=d("
      ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&& -a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); -d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&& -b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source= -this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, -"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); -(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", --1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.scrollTop(),c=this.element.height();if(b<0)this.element.scrollTop(g+b);else b>=c&&this.element.scrollTop(g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); -this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b, -this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active|| -this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(a.empty()).text(),e=this.options.icons,f=e.primary&&e.secondary,d=[];if(e.primary||e.secondary){if(this.options.text)d.push("ui-button-text-icon"+(f?"s":e.primary?"-primary":"-secondary"));e.primary&&a.prepend("");e.secondary&&a.append("");if(!this.options.text){d.push(f?"ui-button-icons-only": -"ui-button-icon-only");this.hasTitle||a.attr("title",c)}}else d.push("ui-button-text-only");a.addClass(d.join(" "))}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,c){a==="disabled"&&this.buttons.button("option",a,c);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var a=this.element.css("direction")=== -"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(a?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(a?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); -b.Widget.prototype.destroy.call(this)}})})(jQuery); -;/* - * jQuery UI Dialog 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Dialog - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * jquery.ui.button.js - * jquery.ui.draggable.js - * jquery.ui.mouse.js - * jquery.ui.position.js - * jquery.ui.resizable.js - */ -(function(c,l){var m={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},n={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},o=c.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, -position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
      ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ -b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), -h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id", -e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); -a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!== -b.uiDialog[0]){e=c(this).css("z-index");isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+= -1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target=== -f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
      ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a, -function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;var i=c('').click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.each(h,function(j,k){if(j!=="click")j in o?i[j](k):i.attr(j,k)});c.fn.button&&i.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", -handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition, -originalSize:f.originalSize,position:f.position,size:f.size}}a=a===l?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize", -f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "): -[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f); -if(g in m)e=true;if(g in n)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"): -e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a= -this.options,b,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height- -b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.14",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "), -create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), -height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); -b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(a.range==="min"||a.range==="max"?" ui-slider-range-"+a.range:""))}for(var j=c.length;j"); -this.handles=c.add(d(e.join("")).appendTo(b.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", -g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!b.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");i=b._start(g,l);if(i===false)return}break}m=b.options.step;i=b.options.values&&b.options.values.length? -(h=b.values(l)):(h=b.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=b._valueMin();break;case d.ui.keyCode.END:h=b._valueMax();break;case d.ui.keyCode.PAGE_UP:h=b._trimAlignValue(i+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(i-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===b._valueMax())return;h=b._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===b._valueMin())return;h=b._trimAlignValue(i- -m);break}b._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(g,k);b._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); -return this},_mouseCapture:function(b){var a=this.options,c,f,e,j,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(a.range===true&&this.values(1)===a.min){g+=1;e=d(this.handles[g])}if(this._start(b,g)===false)return false; -this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();a=e.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-e.width()/2,top:b.pageY-a.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(b){var a= -this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;if(this.orientation==="horizontal"){a= -this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a); -c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var f;if(this.options.values&&this.options.values.length){f=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>f||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, -_refreshValue:function(){var b=this.options.range,a=this.options,c=this,f=!this._animateOff?a.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},a.animate); -if(h===1)c.range[f?"animate":"css"]({width:e-g+"%"},{queue:false,duration:a.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},a.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:a.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, -1)[f?"animate":"css"]({width:e+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Tabs 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Tabs - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
      ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& -e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= -d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| -(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); -this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= -this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); -if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); -this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ -g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", -function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; -this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= --1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; -d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= -d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, -e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); -j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); -if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, -this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, -load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, -"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, -url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.14"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k'))}function N(a){return a.bind("mouseout",function(b){b= -d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");b.length&&b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(b){b=d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(d.datepicker._isDisabledDatepicker(J.inline?a.parent()[0]:J.input[0])||!b.length)){b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b.addClass("ui-state-hover"); -b.hasClass("ui-datepicker-prev")&&b.addClass("ui-datepicker-prev-hover");b.hasClass("ui-datepicker-next")&&b.addClass("ui-datepicker-next-hover")}})}function H(a,b){d.extend(a,b);for(var c in b)if(b[c]==null||b[c]==C)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.14"}});var A=(new Date).getTime(),J;d.extend(M.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){H(this._defaults, -a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0, -selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:N(d('
      '))}},_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]= -h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c= -this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f==""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a, -"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", -function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput); -a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}H(a.settings,e||{});b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left", -this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus", -this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span"){b= -b.children("."+this._inlineClass);b.children().removeClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5", -cursor:"default"})}else if(e=="div"||e=="span"){b=b.children("."+this._inlineClass);b.children().addClass("ui-state-disabled");b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a); -d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);if(d.datepicker._curInst&&d.datepicker._curInst!=b){d.datepicker._datepickerShowing&&d.datepicker._triggerOnClose(d.datepicker._curInst);d.datepicker._curInst.dpDiv.stop(true,true)}var c= -d.datepicker._get(b,"beforeShow");H(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c= -{left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){var i=b.dpDiv.find("iframe.ui-datepicker-cover"); -if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.datepicker._datepickerShowing=true;d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){this.maxRows=4;var b=d.datepicker._getBorders(a.dpDiv); -J=a;a.dpDiv.empty().append(this._generateHTML(a));var c=a.dpDiv.find("iframe.ui-datepicker-cover");c.length&&c.css({left:-b[0],top:-b[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("."+this._dayOverClass+" a").mouseover();b=this._getNumberOfMonths(a);c=b[1];a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");c>1&&a.dpDiv.addClass("ui-datepicker-multi-"+c).css("width",17*c+"em");a.dpDiv[(b[0]!=1||b[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"); -a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var e=a.yearshtml;setTimeout(function(){e===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);e=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]|| -c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+ -i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_triggerOnClose:function(a){var b=this._get(a,"onClose");if(b)b.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a])},_hideDatepicker:function(a){var b= -this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();d.datepicker._triggerOnClose(b);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute", -left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&& -d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth= -b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear= -!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a); -a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a)); -d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()% -100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=B+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,j-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=j||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y", -TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= -a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), -b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= -this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var s=this._get(a,"nextText");s=!h?s:this.formatDate(s,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+s+"":f?"":''+s+"";j=this._get(a,"currentText");s=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,s,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
      '+(c?h:"")+(this._isInRange(a,s)?'":"")+(c?"":h)+"
      ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");s=this._get(a,"dayNames");this._get(a,"dayNamesShort");var q=this._get(a,"dayNamesMin"),B= -this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),D=this._get(a,"showOtherMonths"),K=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var E=this._getDefaultDate(a),w="",x=0;x1)switch(G){case 0:y+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right": -"left");break;case i[1]-1:y+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:y+=" ui-datepicker-group-middle";t="";break}y+='">'}y+='
      '+(/all|left/.test(t)&&x==0?c?f:n:"")+(/all|right/.test(t)&&x==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,x>0||G>0,B,v)+'
      ';var z=j?'": -"";for(t=0;t<7;t++){var r=(t+h)%7;z+="=5?' class="ui-datepicker-week-end"':"")+'>'+q[r]+""}y+=z+"";z=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,z);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;z=Math.ceil((t+z)/7);this.maxRows=z=l?this.maxRows>z?this.maxRows:z:z;r=this._daylightSavingAdjust(new Date(m,g,1-t));for(var Q=0;Q";var R=!j?"":'";for(t=0;t<7;t++){var I=p?p.apply(a.input?a.input[0]:null,[r]):[true,""],F=r.getMonth()!=g,L=F&&!K||!I[0]||k&&ro;R+='";r.setDate(r.getDate()+1);r=this._daylightSavingAdjust(r)}y+=R+""}g++;if(g>11){g=0;m++}y+="
      '+this._get(a,"weekHeader")+"
      '+ -this._get(a,"calculateWeek")(r)+""+(F&&!D?" ":L?''+r.getDate()+"":''+ -r.getDate()+"")+"
      "+(l?""+(i[0]>0&&G==i[1]-1?'
      ':""):"");O+=y}w+=O}w+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return w},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"), -l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
      ',o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&&l)?" ":""));if(!a.yearshtml){a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var s=(new Date).getFullYear();i=function(q){q=q.match(/c[+-].*/)?c+parseInt(q.substring(1),10):q.match(/[+-].*/)?s+parseInt(q,10):parseInt(q,10);return isNaN(q)?s:q};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()): -g;for(a.yearshtml+='";k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
      ";return k},_adjustInstDate:function(a,b,c){var e=a.drawYear+(c== -"Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear"); -if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); -c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, -"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= -function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, -[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new M;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.14";window["DP_jQuery_"+A]=d})(jQuery); -;/* - * jQuery UI Progressbar 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Progressbar - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - */ -(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
      ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); -this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* -this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.14"})})(jQuery); -;/* - * jQuery UI Effects 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/ - */ -jQuery.effects||function(f,j){function m(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], -16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return n.transparent;return n[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return m(b)}function o(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, -a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function p(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= -a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function l(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", -"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=m(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var n={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},q=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, -d){if(f.isFunction(b)){d=b;b=null}return this.queue(function(){var e=f(this),g=e.attr("style")||" ",h=p(o.call(this)),r,v=e.attr("class");f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});r=p(o.call(this));e.attr("class",v);e.animate(u(h,r),{queue:false,duration:a,easing:b,complete:function(){f.each(q,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments);f.dequeue(this)}})})}; -f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this, -[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.14",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}); -c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c, -a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(l(c))return this._show.apply(this,arguments);else{var a=k.apply(this,arguments); -a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(l(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(l(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%", -"pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d* -((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/= -e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/= -e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ -e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); -;/* - * jQuery UI Effects Fade 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fade - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Fold 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Fold - * - * Depends: - * jquery.effects.core.js - */ -(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], -10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); -;/* - * jQuery UI Effects Highlight 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Highlight - * - * Depends: - * jquery.effects.core.js - */ -(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& -this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); -;/* - * jQuery UI Effects Pulsate 1.8.14 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Effects/Pulsate - * - * Depends: - * jquery.effects.core.js - */ -(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); -b.dequeue()})})}})(jQuery); -; \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/md5.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/md5.js deleted file mode 100644 index 46d2aab7d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/md5.js +++ /dev/null @@ -1,256 +0,0 @@ -/* - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - -/* - * Configurable variables. You may need to tweak these to be compatible with - * the server-side, but the defaults work in most cases. - */ -var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ -var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ -var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ - -/* - * These are the functions you'll usually want to call - * They take string arguments and return either hex or base-64 encoded strings - */ -function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} -function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} -function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} -function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } -function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } -function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } - -/* - * Perform a simple self-test to see if the VM is working - */ -function md5_vm_test() -{ - return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; -} - -/* - * Calculate the MD5 of an array of little-endian words, and a bit length - */ -function core_md5(x, len) -{ - /* append padding */ - x[len >> 5] |= 0x80 << ((len) % 32); - x[(((len + 64) >>> 9) << 4) + 14] = len; - - var a = 1732584193; - var b = -271733879; - var c = -1732584194; - var d = 271733878; - - for(var i = 0; i < x.length; i += 16) - { - var olda = a; - var oldb = b; - var oldc = c; - var oldd = d; - - a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); - d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); - c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); - b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); - a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); - d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); - c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); - b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); - a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); - d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); - c = md5_ff(c, d, a, b, x[i+10], 17, -42063); - b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); - a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); - d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); - c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); - b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); - - a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); - d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); - c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); - b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); - a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); - d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); - c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); - b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); - a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); - d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); - c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); - b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); - a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); - d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); - c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); - b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); - - a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); - d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); - c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); - b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); - a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); - d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); - c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); - b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); - a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); - d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); - c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); - b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); - a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); - d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); - c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); - b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); - - a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); - d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); - c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); - b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); - a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); - d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); - c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); - b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); - a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); - d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); - c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); - b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); - a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); - d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); - c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); - b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); - - a = safe_add(a, olda); - b = safe_add(b, oldb); - c = safe_add(c, oldc); - d = safe_add(d, oldd); - } - return Array(a, b, c, d); - -} - -/* - * These functions implement the four basic operations the algorithm uses. - */ -function md5_cmn(q, a, b, x, s, t) -{ - return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); -} -function md5_ff(a, b, c, d, x, s, t) -{ - return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); -} -function md5_gg(a, b, c, d, x, s, t) -{ - return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); -} -function md5_hh(a, b, c, d, x, s, t) -{ - return md5_cmn(b ^ c ^ d, a, b, x, s, t); -} -function md5_ii(a, b, c, d, x, s, t) -{ - return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); -} - -/* - * Calculate the HMAC-MD5, of a key and some data - */ -function core_hmac_md5(key, data) -{ - var bkey = str2binl(key); - if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); - - var ipad = Array(16), opad = Array(16); - for(var i = 0; i < 16; i++) - { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5C5C5C5C; - } - - var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); - return core_md5(opad.concat(hash), 512 + 128); -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add(x, y) -{ - var lsw = (x & 0xFFFF) + (y & 0xFFFF); - var msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xFFFF); -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol(num, cnt) -{ - return (num << cnt) | (num >>> (32 - cnt)); -} - -/* - * Convert a string to an array of little-endian words - * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. - */ -function str2binl(str) -{ - var bin = Array(); - var mask = (1 << chrsz) - 1; - for(var i = 0; i < str.length * chrsz; i += chrsz) - bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); - return bin; -} - -/* - * Convert an array of little-endian words to a string - */ -function binl2str(bin) -{ - var str = ""; - var mask = (1 << chrsz) - 1; - for(var i = 0; i < bin.length * 32; i += chrsz) - str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); - return str; -} - -/* - * Convert an array of little-endian words to a hex string. - */ -function binl2hex(binarray) -{ - var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i++) - { - str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + - hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); - } - return str; -} - -/* - * Convert an array of little-endian words to a base-64 string - */ -function binl2b64(binarray) -{ - var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - var str = ""; - for(var i = 0; i < binarray.length * 4; i += 3) - { - var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) - | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) - | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); - for(var j = 0; j < 4; j++) - { - if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; - else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); - } - } - return str; -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/configuration/TestConfiguration.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/configuration/TestConfiguration.java deleted file mode 100644 index cd0036a65..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/configuration/TestConfiguration.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.apache.archiva.configuration; - -/* - * 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. - */ - -import org.apache.archiva.redback.components.registry.RegistryListener; - -import java.util.ArrayList; -import java.util.List; - -public class TestConfiguration - implements ArchivaConfiguration -{ - private Configuration configuration = new Configuration(); - - private List configurationListeners = new ArrayList(); - - public Configuration getConfiguration() - { - return configuration; - } - - public void save( Configuration configuration ) - throws org.apache.archiva.redback.components.registry.RegistryException, IndeterminateConfigurationException - { - this.configuration = configuration; - } - - public boolean isDefaulted() - { - return false; - } - - public void addListener( ConfigurationListener listener ) - { - configurationListeners.add( listener ); - } - - public void removeListener( ConfigurationListener listener ) - { - configurationListeners.remove( listener ); - } - - public void addChangeListener( RegistryListener listener ) - { - //noop - } - - public void reload() - { - // no op - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AbstractActionTestCase.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AbstractActionTestCase.java deleted file mode 100644 index 9767d93d4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AbstractActionTestCase.java +++ /dev/null @@ -1,238 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.config.Configuration; -import com.opensymphony.xwork2.config.ConfigurationManager; -import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider; -import com.opensymphony.xwork2.inject.Container; -import com.opensymphony.xwork2.util.ValueStack; -import com.opensymphony.xwork2.util.ValueStackFactory; -import org.apache.archiva.metadata.generic.GenericMetadataFacet; -import org.apache.archiva.metadata.model.CiManagement; -import org.apache.archiva.metadata.model.IssueManagement; -import org.apache.archiva.metadata.model.License; -import org.apache.archiva.metadata.model.Organization; -import org.apache.archiva.metadata.model.ProjectVersionMetadata; -import org.apache.archiva.metadata.model.Scm; -import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectFacet; -import org.apache.archiva.metadata.repository.storage.maven2.MavenProjectParent; -import org.apache.archiva.security.UserRepositoriesStub; -import org.apache.archiva.webtest.memory.TestMetadataResolver; -import org.apache.jackrabbit.api.JackrabbitRepository; -import org.apache.struts2.StrutsSpringTestCase; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.After; -import org.junit.Before; -import org.junit.runner.RunWith; -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public abstract class AbstractActionTestCase - extends StrutsSpringTestCase -{ - protected static final String TEST_REPO = "test-repo"; - - protected TestMetadataResolver metadataResolver; - - protected static final String TEST_GROUP_ID = "groupId"; - - protected static final String TEST_ARTIFACT_ID = "artifactId"; - - protected static final String TEST_PACKAGING = "packaging"; - - protected static final String TEST_ISSUE_URL = "http://jira.codehaus.org/browse/MRM"; - - protected static final String TEST_ISSUE_SYSTEM = "jira"; - - protected static final String TEST_CI_SYSTEM = "continuum"; - - protected static final String TEST_CI_URL = "http://vmbuild.apache.org/"; - - protected static final String TEST_URL = "url"; - - protected static final String TEST_NAME = "name"; - - protected static final String TEST_DESCRIPTION = "description"; - - protected static final String TEST_PARENT_GROUP_ID = "parentGroupId"; - - protected static final String TEST_PARENT_ARTIFACT_ID = "parentArtifactId"; - - protected static final String TEST_PARENT_VERSION = "parentVersion"; - - protected static final String TEST_ORGANIZATION_NAME = "organizationName"; - - protected static final String TEST_ORGANIZATION_URL = "organizationUrl"; - - protected static final String TEST_LICENSE_URL = "licenseUrl"; - - protected static final String TEST_LICENSE_NAME = "licenseName"; - - protected static final String TEST_LICENSE_URL_2 = "licenseUrl_2"; - - protected static final String TEST_LICENSE_NAME_2 = "licenseName_2"; - - protected static final String TEST_SCM_CONNECTION = "scmConnection"; - - protected static final String TEST_SCM_DEV_CONNECTION = "scmDevConnection"; - - protected static final String TEST_SCM_URL = "scmUrl"; - - protected static final String TEST_GENERIC_METADATA_PROPERTY_NAME = "rating"; - - protected static final String TEST_GENERIC_METADATA_PROPERTY_VALUE = "5 stars"; - - @Override - protected String[] getContextLocations( ) - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - protected void setObservableRepos( List repoIds ) - { - UserRepositoriesStub repos = applicationContext.getBean( "userRepositories", UserRepositoriesStub.class ); - repos.setObservableRepositoryIds( repoIds ); - } - - protected void assertDefaultModel( ProjectVersionMetadata model, String version ) - { - assertDefaultModel( model, TEST_GROUP_ID, TEST_ARTIFACT_ID, version ); - } - - protected void assertDefaultModel( ProjectVersionMetadata model, String groupId, String artifactId, String version ) - { - assertEquals( version, model.getVersion( ) ); - assertEquals( TEST_URL, model.getUrl( ) ); - assertEquals( TEST_NAME, model.getName( ) ); - assertEquals( TEST_DESCRIPTION, model.getDescription( ) ); - assertEquals( TEST_ORGANIZATION_NAME, model.getOrganization( ).getName( ) ); - assertEquals( TEST_ORGANIZATION_URL, model.getOrganization( ).getUrl( ) ); - assertEquals( 2, model.getLicenses( ).size( ) ); - License l = model.getLicenses( ).get( 0 ); - assertEquals( TEST_LICENSE_NAME, l.getName( ) ); - assertEquals( TEST_LICENSE_URL, l.getUrl( ) ); - l = model.getLicenses( ).get( 1 ); - assertEquals( TEST_LICENSE_NAME_2, l.getName( ) ); - assertEquals( TEST_LICENSE_URL_2, l.getUrl( ) ); - assertEquals( TEST_ISSUE_SYSTEM, model.getIssueManagement( ).getSystem( ) ); - assertEquals( TEST_ISSUE_URL, model.getIssueManagement( ).getUrl( ) ); - assertEquals( TEST_CI_SYSTEM, model.getCiManagement( ).getSystem( ) ); - assertEquals( TEST_CI_URL, model.getCiManagement( ).getUrl( ) ); - assertEquals( TEST_SCM_CONNECTION, model.getScm( ).getConnection( ) ); - assertEquals( TEST_SCM_DEV_CONNECTION, model.getScm( ).getDeveloperConnection( ) ); - assertEquals( TEST_SCM_URL, model.getScm( ).getUrl( ) ); - - MavenProjectFacet mavenFacet = (MavenProjectFacet) model.getFacet( MavenProjectFacet.FACET_ID ); - assertEquals( groupId, mavenFacet.getGroupId( ) ); - assertEquals( artifactId, mavenFacet.getArtifactId( ) ); - assertEquals( TEST_PACKAGING, mavenFacet.getPackaging( ) ); - assertEquals( TEST_PARENT_GROUP_ID, mavenFacet.getParent( ).getGroupId( ) ); - assertEquals( TEST_PARENT_ARTIFACT_ID, mavenFacet.getParent( ).getArtifactId( ) ); - assertEquals( TEST_PARENT_VERSION, mavenFacet.getParent( ).getVersion( ) ); - } - - protected ProjectVersionMetadata createProjectModel( String version ) - { - return createProjectModel( TEST_GROUP_ID, TEST_ARTIFACT_ID, version ); - } - - protected ProjectVersionMetadata createProjectModel( String groupId, String artifactId, String version ) - { - ProjectVersionMetadata model = new ProjectVersionMetadata( ); - model.setId( version ); - model.setUrl( TEST_URL ); - model.setName( TEST_NAME ); - model.setDescription( TEST_DESCRIPTION ); - CiManagement ci = new CiManagement( ); - ci.setSystem( TEST_CI_SYSTEM ); - ci.setUrl( TEST_CI_URL ); - model.setCiManagement( ci ); - IssueManagement issue = new IssueManagement( ); - issue.setSystem( TEST_ISSUE_SYSTEM ); - issue.setUrl( TEST_ISSUE_URL ); - model.setIssueManagement( issue ); - Organization organization = new Organization( ); - organization.setName( TEST_ORGANIZATION_NAME ); - organization.setUrl( TEST_ORGANIZATION_URL ); - model.setOrganization( organization ); - License l = new License( ); - l.setName( TEST_LICENSE_NAME ); - l.setUrl( TEST_LICENSE_URL ); - model.addLicense( l ); - l = new License( ); - l.setName( TEST_LICENSE_NAME_2 ); - l.setUrl( TEST_LICENSE_URL_2 ); - model.addLicense( l ); - Scm scm = new Scm( ); - scm.setConnection( TEST_SCM_CONNECTION ); - scm.setDeveloperConnection( TEST_SCM_DEV_CONNECTION ); - scm.setUrl( TEST_SCM_URL ); - model.setScm( scm ); - - MavenProjectFacet mavenProjectFacet = new MavenProjectFacet( ); - mavenProjectFacet.setGroupId( groupId ); - mavenProjectFacet.setArtifactId( artifactId ); - mavenProjectFacet.setPackaging( TEST_PACKAGING ); - MavenProjectParent parent = new MavenProjectParent( ); - parent.setGroupId( TEST_PARENT_GROUP_ID ); - parent.setArtifactId( TEST_PARENT_ARTIFACT_ID ); - parent.setVersion( TEST_PARENT_VERSION ); - mavenProjectFacet.setParent( parent ); - model.addFacet( mavenProjectFacet ); - - GenericMetadataFacet genericMetadataFacet = new GenericMetadataFacet( ); - Map props = new HashMap( ); - props.put( TEST_GENERIC_METADATA_PROPERTY_NAME, TEST_GENERIC_METADATA_PROPERTY_VALUE ); - genericMetadataFacet.setAdditionalProperties( props ); - model.addFacet( genericMetadataFacet ); - - return model; - } - - @Override - @Before - public void setUp( ) - throws Exception - { - super.setUp( ); - - ConfigurationManager configurationManager = new ConfigurationManager( ); - configurationManager.addContainerProvider( new XWorkConfigurationProvider( ) ); - Configuration config = configurationManager.getConfiguration( ); - Container container = config.getContainer( ); - - ValueStack stack = container.getInstance( ValueStackFactory.class ).createValueStack( ); - stack.getContext( ).put( ActionContext.CONTAINER, container ); - ActionContext.setContext( new ActionContext( stack.getContext( ) ) ); - } - - @Override - @After - public void tearDown( ) - throws Exception - { - super.tearDown( ); - applicationContext.getBean( JackrabbitRepository.class ).shutdown( ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AbstractWebworkTestCase.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AbstractWebworkTestCase.java deleted file mode 100644 index f1cdc70e4..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AbstractWebworkTestCase.java +++ /dev/null @@ -1,138 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionSupport; -import org.apache.commons.lang.StringUtils; -import org.apache.struts2.StrutsSpringTestCase; - -import java.lang.reflect.Method; -import java.util.Collection; -import java.util.List; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.runner.RunWith; -/** - * AbstractWebworkTestCase - * - * - */ -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public abstract class AbstractWebworkTestCase - extends StrutsSpringTestCase -{ - - - @Override - protected String[] getContextLocations() - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - /** - * This is a conveinence method for mimicking how the webwork interceptors - * operate on an action, before the request is processed. - * - * Call this before each major request to the action to be sure you mimic the webwork process correctly. - */ - protected void preRequest( ActionSupport action ) - { - action.clearErrorsAndMessages(); - } - - /** - * Tests the action to ensure that it has errors. - * - * NOTE: Don't forget to run {@link #preRequest(ActionSupport)} before each request to your action! - */ - protected void assertHasErrors( ActionSupport action ) - { - assertNotNull( action.getActionErrors() ); - assertTrue( "Expected an error to occur.", action.getActionErrors().size() > 0 ); - } - - /** - * Tests the action to ensure that it has messages. - * - * NOTE: Don't forget to run {@link #preRequest(ActionSupport)} before each request to your action! - */ - protected void assertHasMessages( ActionSupport action ) - { - assertNotNull( action.getActionMessages() ); - assertTrue( "Expected an message to be set.", action.getActionMessages().size() > 0 ); - } - - /** - * Tests the action to ensure that it has NO errors. - * - * NOTE: Don't forget to run {@link #preRequest(ActionSupport)} before each request to your action! - */ - @SuppressWarnings("unchecked") - protected void assertNoErrors( ActionSupport action ) - { - List errors = (List) action.getActionErrors(); - - assertNotNull( errors ); - if ( errors.size() > 0 ) - { - StringBuilder msg = new StringBuilder(); - msg.append( "Should have had no errors. but found the following errors." ); - - for ( String error : errors ) - { - msg.append( "\n " ).append( error ); - } - fail( msg.toString() ); - } - } - - @SuppressWarnings("unchecked") - protected void assertRequestStatus( ActionSupport action, String expectedStatus, String methodName ) - throws Exception - { - action.clearErrorsAndMessages(); - - Method method = action.getClass().getDeclaredMethod( methodName, (Class[]) null ); - Object actualStatus = method.invoke( action, (Object[]) null ); - assertTrue( "return should be of type String", actualStatus instanceof String ); - - if ( !StringUtils.equals( expectedStatus, (String) actualStatus ) ) - { - StringBuilder msg = new StringBuilder(); - msg.append( "Unexpected status returned from method <" ); - msg.append( methodName ).append( "> on action <" ); - String clazzname = action.getClass().getName(); - msg.append( clazzname.substring( clazzname.lastIndexOf( '.' ) ) ); - msg.append( ">: expected:<" ).append( expectedStatus ).append( "> but was:<" ); - msg.append( (String) actualStatus ).append( ">. (see attached action messages and errors below)" ); - - for ( String message : (Collection) action.getActionMessages() ) - { - msg.append( "\n [MESSAGE]: " ).append( message ); - } - - for ( String error : (Collection) action.getActionErrors() ) - { - msg.append( "\n [ERROR]: " ).append( error ); - } - - fail( msg.toString() ); - } - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AuditEventArgumentsMatcher.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AuditEventArgumentsMatcher.java deleted file mode 100644 index 54396b2f8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/AuditEventArgumentsMatcher.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import org.apache.archiva.audit.AuditEvent; -import org.easymock.ArgumentsMatcher; - -import java.util.Arrays; - -public class AuditEventArgumentsMatcher - implements ArgumentsMatcher -{ - public boolean matches( Object[] objects, Object[] objects1 ) - { - if ( objects.length != 1 || objects1.length != 1 ) - { - return false; - } - else - { - AuditEvent o1 = (AuditEvent) objects[0]; - AuditEvent o2 = (AuditEvent) objects1[0]; - o2.setTimestamp( o1.getTimestamp() ); // effectively ignore the timestamp - return o1.equals( o2 ); - } - } - - public String toString( Object[] objects ) - { - return Arrays.asList( objects ).toString(); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/BrowseActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/BrowseActionTest.java deleted file mode 100644 index 29b5517d5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/BrowseActionTest.java +++ /dev/null @@ -1,432 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.google.common.collect.Lists; -import com.opensymphony.xwork2.Action; -import org.apache.archiva.metadata.model.ProjectVersionMetadata; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.webtest.memory.TestMetadataResolver; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.apache.archiva.scheduler.indexing.DefaultDownloadRemoteIndexScheduler; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import org.junit.Test; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class BrowseActionTest - extends AbstractActionTestCase -{ - private static final String ACTION_HINT = "browseAction"; - - private BrowseAction action; - - private static final List GROUPS = - Arrays.asList( "org.apache.archiva", "commons-lang", "org.apache.maven", "com.sun", "com.oracle", - "repeat.repeat" ); - - private static final String OTHER_TEST_REPO = "other-repo"; - - @Override - public void setUp() - throws Exception - { - super.setUp(); - setObservableRepos( Lists.newArrayList( "test-repo" ) ); - action = (BrowseAction) getActionProxy( "/browse.action" ).getAction(); - metadataResolver = new TestMetadataResolver(); - RepositorySession repositorySession = mock( RepositorySession.class ); - when( repositorySession.getResolver() ).thenReturn( metadataResolver ); - TestRepositorySessionFactory factory = - applicationContext.getBean( "repositorySessionFactory#test", TestRepositorySessionFactory.class ); - factory.setRepositorySession( repositorySession ); - } - - @Override - public void tearDown() - throws Exception - { - super.tearDown(); - applicationContext.getBean( DefaultDownloadRemoteIndexScheduler.class ).shutdown(); - setObservableRepos( Lists.newArrayList( "test-repo" ) ); - } - - @Test - public void testInstantiation() - { - assertFalse( action == getActionProxy( "/browse.action" ).getAction() ); - } - - @Test - public void testBrowse() - throws Exception - { - metadataResolver.setNamespaces( TEST_REPO, GROUPS ); - - String result = action.browse(); - assertSuccessResult( result ); - - assertEquals( Arrays.asList( "com", "commons-lang", "org.apache", "repeat.repeat" ), action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - - assertNull( action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseNoObservableRepos() - throws Exception - { - setObservableRepos( Collections.emptyList() ); - - String result = action.browse(); - assertNoAccessResult( result ); - - assertNoOutputVariables(); - } - - @Test - public void testBrowseGroupNoObservableRepos() - throws Exception - { - setObservableRepos( Collections.emptyList() ); - String selectedGroupId = "org"; - - action.setGroupId( selectedGroupId ); - String result = action.browseGroup(); - assertNoAccessResult( result ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseArtifactNoObservableRepos() - throws Exception - { - setObservableRepos( Collections.emptyList() ); - String selectedGroupId = "org.apache"; - String selectedArtifactId = "apache"; - - action.setGroupId( selectedGroupId ); - action.setArtifactId( selectedArtifactId ); - String result = action.browseArtifact(); - assertNoAccessResult( result ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertEquals( selectedArtifactId, action.getArtifactId() ); - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseGroupNoGroupId() - throws Exception - { - String result = action.browseGroup(); - assertErrorResult( result ); - assertNoOutputVariables(); - } - - @Test - public void testBrowseGroupNoArtifacts() - throws Exception - { - String selectedGroupId = "org"; - List groups = Arrays.asList( "org.apache.archiva", "org.apache.maven" ); - - metadataResolver.setNamespaces( TEST_REPO, groups ); - action.setGroupId( selectedGroupId ); - String result = action.browseGroup(); - assertSuccessResult( result ); - - assertEquals( Collections.singletonList( "org.apache" ), action.getNamespaces() ); - assertEquals( Collections.emptyList(), action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseGroupWithArtifacts() - throws Exception - { - String artifacts = "apache"; - String selectedGroupId = "org.apache"; - List groups = Arrays.asList( "org.apache.archiva", "org.apache.maven" ); - - metadataResolver.setNamespaces( TEST_REPO, groups ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, artifacts, new ProjectVersionMetadata() ); - action.setGroupId( selectedGroupId ); - String result = action.browseGroup(); - assertSuccessResult( result ); - - assertEquals( groups, action.getNamespaces() ); - assertEquals( Collections.singletonList( artifacts ), action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseWithCollapsedGroupsAndArtifacts() - throws Exception - { - List groups = Arrays.asList( "org.apache.archiva", "org.apache" ); - - metadataResolver.setNamespaces( TEST_REPO, groups ); - // add an artifact in the tree to make sure "single" is not collapsed - metadataResolver.setProjectVersion( TEST_REPO, "org.apache", "apache", new ProjectVersionMetadata() ); - - String result = action.browse(); - assertSuccessResult( result ); - - assertEquals( Collections.singletonList( "org.apache" ), action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - - assertNull( action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseWithCollapsedGroupsAndArtifactsAcrossRepositories() - throws Exception - { - setObservableRepos( Arrays.asList( TEST_REPO, OTHER_TEST_REPO ) ); - - metadataResolver.setNamespaces( TEST_REPO, Arrays.asList( "org.apache.archiva", "org.apache" ) ); - metadataResolver.setNamespaces( OTHER_TEST_REPO, Arrays.asList( "org.codehaus.plexus", "org.codehaus" ) ); - - // add an artifact in the tree to make sure "single" is not collapsed - metadataResolver.setProjectVersion( TEST_REPO, "org.apache", "apache", new ProjectVersionMetadata() ); - - String result = action.browse(); - assertSuccessResult( result ); - - assertEquals( Collections.singletonList( "org" ), action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - - assertNull( action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseGroupWithCollapsedGroupsAndArtifacts() - throws Exception - { - String artifacts = "apache"; - String selectedGroupId = "org.apache"; - List groups = Arrays.asList( "org.apache.archiva", "org.apache" ); - - metadataResolver.setNamespaces( TEST_REPO, groups ); - // add an artifact in the tree to make sure "single" is not collapsed - metadataResolver.setProjectVersion( TEST_REPO, "org.apache", "apache", new ProjectVersionMetadata() ); - - action.setGroupId( selectedGroupId ); - String result = action.browseGroup(); - assertSuccessResult( result ); - - assertEquals( Collections.singletonList( "org.apache.archiva" ), action.getNamespaces() ); - assertEquals( Collections.singletonList( artifacts ), action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseArtifactNoGroupId() - throws Exception - { - String selectedArtifactId = "apache"; - - action.setArtifactId( selectedArtifactId ); - String result = action.browseArtifact(); - assertErrorResult( result ); - - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - assertNull( action.getGroupId() ); - assertEquals( selectedArtifactId, action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseArtifactNoArtifactId() - throws Exception - { - String selectedGroupId = "org.apache"; - - action.setGroupId( selectedGroupId ); - String result = action.browseArtifact(); - assertErrorResult( result ); - - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - assertEquals( selectedGroupId, action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - @Test - public void testBrowseArtifact() - throws Exception - - { - String selectedGroupId = "org.apache"; - String selectedArtifactId = "apache"; - - List versions = Arrays.asList( "1", "2", "3", "4" ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "1" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "2" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "3" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "4" ) ); - - action.setGroupId( selectedGroupId ); - action.setArtifactId( selectedArtifactId ); - String result = action.browseArtifact(); - assertSuccessResult( result ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertEquals( selectedArtifactId, action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertEquals( versions, action.getProjectVersions() ); - - ProjectVersionMetadata model = action.getSharedModel(); - assertDefaultModel( model, selectedGroupId, selectedArtifactId, null ); - } - - @Test - public void testBrowseArtifactWithSnapshots() - throws Exception - - { - String selectedGroupId = "org.apache"; - String selectedArtifactId = "apache"; - - List versions = Arrays.asList( "1", "2", "3", "4-SNAPSHOT", "4", "5-SNAPSHOT" ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "1" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "2" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "3" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "4-SNAPSHOT" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "4" ) ); - metadataResolver.setProjectVersion( TEST_REPO, selectedGroupId, selectedArtifactId, - createProjectModel( selectedGroupId, selectedArtifactId, "5-SNAPSHOT" ) ); - - action.setGroupId( selectedGroupId ); - action.setArtifactId( selectedArtifactId ); - String result = action.browseArtifact(); - assertSuccessResult( result ); - - assertEquals( selectedGroupId, action.getGroupId() ); - assertEquals( selectedArtifactId, action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertEquals( versions, action.getProjectVersions() ); - - ProjectVersionMetadata model = action.getSharedModel(); - assertDefaultModel( model, selectedGroupId, selectedArtifactId, null ); - } - - // TODO: test with restricted observable repos - // TODO: current behaviour is to ignore values that differ between models - instead, pick the latest and use that. - // Need to update the tests to verify this as models are currently the same - - private void assertNoAccessResult( String result ) - { - assertEquals( GlobalResults.ACCESS_TO_NO_REPOS, result ); - assertEquals( 0, action.getActionErrors().size() ); - assertEquals( 0, action.getActionMessages().size() ); - } - - private void assertSuccessResult( String result ) - { - assertEquals( Action.SUCCESS, result ); - assertEquals( 0, action.getActionErrors().size() ); - assertEquals( 0, action.getActionMessages().size() ); - } - - private void assertErrorResult( String result ) - { - assertEquals( Action.ERROR, result ); - assertEquals( 1, action.getActionErrors().size() ); - assertEquals( 0, action.getActionMessages().size() ); - } - - private void assertNoOutputVariables() - { - assertNull( action.getNamespaces() ); - assertNull( action.getProjectIds() ); - assertNull( action.getProjectVersions() ); - assertNull( action.getGroupId() ); - assertNull( action.getArtifactId() ); - assertNull( action.getRepositoryId() ); - assertNull( action.getSharedModel() ); - } - - -} \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/DeleteArtifactActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/DeleteArtifactActionTest.java deleted file mode 100644 index 3e3f2050f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/DeleteArtifactActionTest.java +++ /dev/null @@ -1,187 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import net.sf.beanlib.provider.replicator.BeanReplicator; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.metadata.model.ArtifactMetadata; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.repository.ManagedRepositoryContent; -import org.apache.archiva.repository.RepositoryContentFactory; -import org.apache.archiva.repository.content.ManagedDefaultRepositoryContent; -import org.apache.archiva.rest.services.DefaultRepositoriesService; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.apache.commons.lang.StringUtils; -import org.apache.struts2.StrutsSpringTestCase; -import org.easymock.MockControl; -import org.easymock.classextension.MockClassControl; - -import java.io.File; -import java.util.ArrayList; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class DeleteArtifactActionTest - extends StrutsSpringTestCase -{ - private DeleteArtifactAction action; - - private ArchivaConfiguration configuration; - - private MockControl configurationControl; - - private RepositoryContentFactory repositoryFactory; - - private MockControl repositoryFactoryControl; - - private MetadataRepository metadataRepository; - - private MockControl metadataRepositoryControl; - - private static final String REPOSITORY_ID = "test-repo"; - - private static final String GROUP_ID = "org.apache.archiva"; - - private static final String ARTIFACT_ID = "npe-metadata"; - - private static final String VERSION = "1.0"; - - private static final String REPO_LOCATION = "target/test-classes/test-repo"; - - @Override - protected String[] getContextLocations() - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteArtifactAction) getActionProxy( "/deleteArtifact.action" ).getAction(); - action.setPrincipal( "admin" ); - assertNotNull( action ); - - configurationControl = MockControl.createControl( ArchivaConfiguration.class ); - configuration = (ArchivaConfiguration) configurationControl.getMock(); - - repositoryFactoryControl = MockClassControl.createControl( RepositoryContentFactory.class ); - repositoryFactory = (RepositoryContentFactory) repositoryFactoryControl.getMock(); - - metadataRepositoryControl = MockControl.createControl( MetadataRepository.class ); - metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock(); - - RepositorySession repositorySession = mock( RepositorySession.class ); - when( repositorySession.getRepository() ).thenReturn( metadataRepository ); - - TestRepositorySessionFactory repositorySessionFactory = - applicationContext.getBean( "repositorySessionFactory#test", TestRepositorySessionFactory.class ); - - repositorySessionFactory.setRepositorySession( repositorySession ); - - ( (DefaultManagedRepositoryAdmin) ( (DefaultRepositoriesService) action.getRepositoriesService() ).getManagedRepositoryAdmin() ).setArchivaConfiguration( - configuration ); - ( (DefaultRepositoriesService) action.getRepositoriesService() ).setRepositoryFactory( repositoryFactory ); - } - - @Override - @After - public void tearDown() - throws Exception - { - action = null; - - super.tearDown(); - } - - - @Test - public void testNPEInDeleteArtifact() - throws Exception - { - action.setGroupId( GROUP_ID ); - action.setArtifactId( ARTIFACT_ID ); - action.setVersion( VERSION ); - action.setRepositoryId( REPOSITORY_ID ); - - Configuration config = createConfiguration(); - - ManagedRepositoryContent repoContent = new ManagedDefaultRepositoryContent(); - repoContent.setRepository( - new BeanReplicator().replicateBean( config.findManagedRepositoryById( REPOSITORY_ID ), - ManagedRepository.class ) ); - - configurationControl.expectAndReturn( configuration.getConfiguration(), config ); - repositoryFactoryControl.expectAndReturn( repositoryFactory.getManagedRepositoryContent( REPOSITORY_ID ), - repoContent ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getArtifacts( REPOSITORY_ID, GROUP_ID, ARTIFACT_ID, VERSION ), - new ArrayList() ); - - configurationControl.replay(); - repositoryFactoryControl.replay(); - metadataRepositoryControl.replay(); - - assertEquals( Action.SUCCESS, action.doDelete() ); - - String artifactPath = - REPO_LOCATION + "/" + StringUtils.replace( GROUP_ID, ".", "/" ) + "/" + StringUtils.replace( ARTIFACT_ID, - ".", "/" ) - + "/" + VERSION + "/" + ARTIFACT_ID + "-" + VERSION; - - assertFalse( new File( artifactPath + ".jar" ).exists() ); - assertFalse( new File( artifactPath + ".jar.sha1" ).exists() ); - assertFalse( new File( artifactPath + ".jar.md5" ).exists() ); - - assertFalse( new File( artifactPath + ".pom" ).exists() ); - assertFalse( new File( artifactPath + ".pom.sha1" ).exists() ); - assertFalse( new File( artifactPath + ".pom.md5" ).exists() ); - } - - private Configuration createConfiguration() - { - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( REPOSITORY_ID ); - managedRepo.setName( "Test Repository" ); - - managedRepo.setLocation( REPO_LOCATION ); - managedRepo.setReleases( true ); - - Configuration config = new Configuration(); - config.addManagedRepository( managedRepo ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/SearchActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/SearchActionTest.java deleted file mode 100644 index 38c0305cc..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/SearchActionTest.java +++ /dev/null @@ -1,543 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.indexer.search.RepositorySearch; -import org.apache.archiva.indexer.search.SearchFields; -import org.apache.archiva.indexer.search.SearchResultHit; -import org.apache.archiva.indexer.search.SearchResultLimits; -import org.apache.archiva.indexer.search.SearchResults; -import org.apache.archiva.indexer.util.SearchUtil; -import org.apache.archiva.metadata.model.ArtifactMetadata; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.security.UserRepositories; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.easymock.MockControl; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import org.junit.Test; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * - */ -public class SearchActionTest - extends AbstractActionTestCase -{ - private SearchAction action; - - private MockControl userReposControl; - - private UserRepositories userRepos; - - private MockControl searchControl; - - private MockControl repoAdminControl; - - private ManagedRepositoryAdmin managedRepositoryAdmin; - - private RepositorySearch search; - - private static final String TEST_CHECKSUM = "afbcdeaadbcffceabbba1"; - - private static final String TEST_REPO = "test-repo"; - - private static final String GUEST = "guest"; - - private RepositorySession session; - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - action = new SearchAction(); - - session = mock(RepositorySession.class); - //TestRepositorySessionFactory factory = (TestRepositorySessionFactory) lookup( RepositorySessionFactory.class ); - TestRepositorySessionFactory factory = new TestRepositorySessionFactory(); - factory.setRepositorySession(session); - action.setRepositorySessionFactory(factory); - - MockControl archivaConfigControl = MockControl.createControl(ArchivaConfiguration.class); - ArchivaConfiguration archivaConfig = (ArchivaConfiguration) archivaConfigControl.getMock(); - - userReposControl = MockControl.createControl(UserRepositories.class); - userRepos = (UserRepositories) userReposControl.getMock(); - - searchControl = MockControl.createControl(RepositorySearch.class); - searchControl.setDefaultMatcher(MockControl.ALWAYS_MATCHER); - search = (RepositorySearch) searchControl.getMock(); - - repoAdminControl = MockControl.createControl(ManagedRepositoryAdmin.class); - managedRepositoryAdmin = (ManagedRepositoryAdmin) repoAdminControl.getMock(); - - //( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( archivaConfig ); - - action.setManagedRepositoryAdmin(managedRepositoryAdmin); - action.setUserRepositories(userRepos); - action.setNexusSearch(search); - } - - // quick search... - - @Test - public void testQuickSearch() - throws Exception - { - action.setQ("archiva"); - action.setCurrentPage(0); - action.setSearchResultsOnly(false); - action.setCompleteQueryString(""); - - List selectedRepos = new ArrayList(); - selectedRepos.add("internal"); - selectedRepos.add("snapshots"); - - SearchResultLimits limits = new SearchResultLimits(action.getCurrentPage()); - limits.setPageSize(30); - - SearchResultHit hit = new SearchResultHit(); - hit.setGroupId("org.apache.archiva"); - hit.setArtifactId("archiva-configuration"); - hit.setUrl("url"); - hit.addVersion("1.0"); - hit.addVersion("1.1"); - - SearchResults results = new SearchResults(); - results.setLimits(limits); - results.setTotalHits(1); - results.addHit(SearchUtil.getHitId("org.apache.archiva", "archiva-configuration", null, "jar"), hit); - results.setTotalHitsMapSize( results.getHitsMap().values().size() ); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds("user"), selectedRepos); - - searchControl.expectAndReturn(search.search("user", selectedRepos, "archiva", limits, null), results); - - userReposControl.replay(); - searchControl.replay(); - - action.setPrincipal("user"); - String result = action.quickSearch(); - - assertEquals(Action.SUCCESS, result); - assertEquals("total pages not 1", 1, action.getTotalPages()); - assertEquals("totol hits not 1", 1, action.getResults().getTotalHits()); - - userReposControl.verify(); - searchControl.verify(); - } - - @Test - public void testSearchWithinSearchResults() - throws Exception - { - action.setQ("archiva"); - action.setCurrentPage(0); - action.setSearchResultsOnly(true); - action.setCompleteQueryString("org;apache"); - - List parsed = new ArrayList(); - parsed.add("org"); - parsed.add("apache"); - - List selectedRepos = new ArrayList(); - selectedRepos.add("internal"); - selectedRepos.add("snapshots"); - - SearchResultLimits limits = new SearchResultLimits(action.getCurrentPage()); - limits.setPageSize(30); - - SearchResultHit hit = new SearchResultHit(); - hit.setGroupId("org.apache.archiva"); - hit.setArtifactId("archiva-configuration"); - hit.setUrl("url"); - hit.addVersion("1.0"); - hit.addVersion("1.1"); - - SearchResults results = new SearchResults(); - results.setLimits(limits); - results.setTotalHits(1); - results.addHit(SearchUtil.getHitId("org.apache.archiva", "archiva-configuration", null, "jar"), hit); - results.setTotalHitsMapSize( results.getHitsMap().values().size() ); - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds("user"), selectedRepos); - - searchControl.expectAndReturn(search.search("user", selectedRepos, "archiva", limits, parsed), results); - - userReposControl.replay(); - searchControl.replay(); - - action.setPrincipal("user"); - String result = action.quickSearch(); - - assertEquals(Action.SUCCESS, result); - assertEquals("org;apache;archiva", action.getCompleteQueryString()); - assertEquals(1, action.getTotalPages()); - assertEquals(1, action.getResults().getTotalHits()); - - userReposControl.verify(); - searchControl.verify(); - } - - @Test - public void testQuickSearchUserHasNoAccessToAnyRepository() - throws Exception - { - action.setQ("archiva"); - action.setCurrentPage(0); - - List selectedRepos = new ArrayList(); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds("user"), selectedRepos); - - userReposControl.replay(); - - action.setPrincipal("user"); - String result = action.quickSearch(); - - assertEquals(GlobalResults.ACCESS_TO_NO_REPOS, result); - - userReposControl.verify(); - } - - @Test - public void testQuickSearchNoSearchHits() - throws Exception - { - action.setQ("archiva"); - action.setCurrentPage(0); - action.setSearchResultsOnly(false); - action.setCompleteQueryString(""); - - List selectedRepos = new ArrayList(); - selectedRepos.add("internal"); - selectedRepos.add("snapshots"); - - SearchResultLimits limits = new SearchResultLimits(action.getCurrentPage()); - limits.setPageSize(30); - - SearchResults results = new SearchResults(); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds("user"), selectedRepos); - - searchControl.expectAndReturn(search.search("user", selectedRepos, "archiva", limits, null), results); - - userReposControl.replay(); - searchControl.replay(); - - action.setPrincipal("user"); - String result = action.quickSearch(); - - assertEquals(Action.INPUT, result); - - userReposControl.verify(); - searchControl.verify(); - } - - // advanced/filtered search... - - @Test - public void testAdvancedSearchOneRepository() - throws Exception - { - List managedRepos = new ArrayList(); - managedRepos.add("internal"); - managedRepos.add("snapshots"); - - action.setRepositoryId("internal"); - action.setManagedRepositoryList(managedRepos); - action.setCurrentPage(0); - action.setRowCount(30); - action.setGroupId("org"); - - SearchResultLimits limits = new SearchResultLimits(action.getCurrentPage()); - limits.setPageSize(30); - - SearchResultHit hit = new SearchResultHit(); - hit.setGroupId("org.apache.archiva"); - hit.setArtifactId("archiva-configuration"); - hit.setUrl("url"); - hit.addVersion("1.0"); - hit.addVersion("1.1"); - - SearchResults results = new SearchResults(); - results.setLimits(limits); - results.setTotalHits(1); - results.addHit(SearchUtil.getHitId("org.apache.archiva", "archiva-configuration", null, "jar"), hit); - - List selectedRepos = new ArrayList(); - selectedRepos.add("internal"); - selectedRepos.add("snapshots"); - - SearchFields searchFields = new SearchFields("org", null, null, null, null, selectedRepos); - - searchControl.expectAndReturn(search.search("user", searchFields, limits), results); - - searchControl.replay(); - - String result = action.filteredSearch(); - - assertEquals(Action.SUCCESS, result); - assertEquals(1, action.getTotalPages()); - assertEquals(1, action.getResults().getTotalHits()); - - searchControl.verify(); - } - - @Test - public void testAdvancedSearchAllRepositories() - throws Exception - { - List managedRepos = new ArrayList(); - managedRepos.add("internal"); - managedRepos.add("snapshots"); - - action.setRepositoryId("all"); - action.setManagedRepositoryList(managedRepos); - action.setCurrentPage(0); - action.setRowCount(30); - action.setGroupId("org"); - - SearchResultLimits limits = new SearchResultLimits(action.getCurrentPage()); - limits.setPageSize(30); - - SearchResultHit hit = new SearchResultHit(); - hit.setGroupId("org.apache.archiva"); - hit.setArtifactId("archiva-configuration"); - hit.setUrl("url"); - hit.addVersion("1.0"); - hit.addVersion("1.1"); - - SearchResults results = new SearchResults(); - results.setLimits(limits); - results.setTotalHits(1); - results.addHit(SearchUtil.getHitId("org.apache.archiva", "archiva-configuration", null, "jar"), hit); - - List selectedRepos = new ArrayList(); - selectedRepos.add("internal"); - - SearchFields searchFields = new SearchFields("org", null, null, null, null, selectedRepos); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds("user"), selectedRepos); - - searchControl.expectAndReturn(search.search("user", searchFields, limits), results); - - searchControl.replay(); - userReposControl.replay(); - - action.setPrincipal("user"); - String result = action.filteredSearch(); - - assertEquals(Action.SUCCESS, result); - assertEquals(1, action.getTotalPages()); - assertEquals(1, action.getResults().getTotalHits()); - - searchControl.verify(); - userReposControl.verify(); - } - - @Test - public void testAdvancedSearchNoSearchHits() - throws Exception - { - List managedRepos = new ArrayList(); - managedRepos.add("internal"); - managedRepos.add("snapshots"); - - action.setRepositoryId("internal"); - action.setManagedRepositoryList(managedRepos); - action.setCurrentPage(0); - action.setRowCount(30); - action.setGroupId("org"); - - SearchResultLimits limits = new SearchResultLimits(action.getCurrentPage()); - limits.setPageSize(30); - - SearchResults results = new SearchResults(); - - List selectedRepos = new ArrayList(); - selectedRepos.add("internal"); - selectedRepos.add("snapshots"); - - SearchFields searchFields = new SearchFields("org", null, null, null, null, selectedRepos); - - searchControl.expectAndReturn(search.search("user", searchFields, limits), results); - - searchControl.replay(); - - String result = action.filteredSearch(); - - assertEquals(Action.INPUT, result); - assertFalse(action.getActionErrors().isEmpty()); - assertEquals("No results found", (String) action.getActionErrors().iterator().next()); - - searchControl.verify(); - } - - @Test - public void testAdvancedSearchUserHasNoAccessToAnyRepository() - throws Exception - { - List managedRepos = new ArrayList(); - - action.setGroupId("org.apache.archiva"); - action.setManagedRepositoryList(managedRepos); - - String result = action.filteredSearch(); - - assertEquals(GlobalResults.ACCESS_TO_NO_REPOS, result); - } - - @Test - public void testAdvancedSearchNoSpecifiedCriteria() - throws Exception - { - List managedRepos = new ArrayList(); - - action.setManagedRepositoryList(managedRepos); - - String result = action.filteredSearch(); - - assertEquals(Action.INPUT, result); - assertFalse(action.getActionErrors().isEmpty()); - assertEquals("Advanced Search - At least one search criteria must be provided.", - (String) action.getActionErrors().iterator().next()); - } - - // find artifact.. - @Test - public void testFindArtifactWithOneHit() - throws Exception - { - action.setQ(TEST_CHECKSUM); - - MockControl control = MockControl.createControl(MetadataRepository.class); - MetadataRepository metadataRepository = (MetadataRepository) control.getMock(); - when(session.getRepository()).thenReturn(metadataRepository); - - ArtifactMetadata artifact = createArtifact("archiva-configuration", "1.0"); - control.expectAndReturn(metadataRepository.getArtifactsByChecksum(TEST_REPO, TEST_CHECKSUM), - Collections.singletonList(artifact)); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds(GUEST), - Collections.singletonList(TEST_REPO)); - - control.replay(); - userReposControl.replay(); - - String result = action.findArtifact(); - assertEquals("artifact", result); - assertEquals(1, action.getDatabaseResults().size()); - assertEquals(artifact, action.getDatabaseResults().get(0)); - - control.verify(); - userReposControl.verify(); - } - - @Test - public void testFindArtifactWithMultipleHits() - throws Exception - { - action.setQ(TEST_CHECKSUM); - - MockControl control = MockControl.createControl(MetadataRepository.class); - MetadataRepository metadataRepository = (MetadataRepository) control.getMock(); - when(session.getRepository()).thenReturn(metadataRepository); - - List artifacts = - Arrays.asList(createArtifact("archiva-configuration", "1.0"), createArtifact("archiva-indexer", "1.0")); - control.expectAndReturn(metadataRepository.getArtifactsByChecksum(TEST_REPO, TEST_CHECKSUM), artifacts); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds(GUEST), - Collections.singletonList(TEST_REPO)); - - control.replay(); - userReposControl.replay(); - - String result = action.findArtifact(); - assertEquals("results", result); - assertFalse(action.getDatabaseResults().isEmpty()); - assertEquals(2, action.getDatabaseResults().size()); - - control.verify(); - userReposControl.verify(); - } - - @Test - public void testFindArtifactNoChecksumSpecified() - throws Exception - { - String result = action.findArtifact(); - - assertEquals(Action.INPUT, result); - assertFalse(action.getActionErrors().isEmpty()); - assertEquals("Unable to search for a blank checksum", (String) action.getActionErrors().iterator().next()); - } - - @Test - public void testFindArtifactNoResults() - throws Exception - { - action.setQ(TEST_CHECKSUM); - - MockControl control = MockControl.createControl(MetadataRepository.class); - MetadataRepository metadataRepository = (MetadataRepository) control.getMock(); - when(session.getRepository()).thenReturn(metadataRepository); - - control.expectAndReturn(metadataRepository.getArtifactsByChecksum(TEST_REPO, TEST_CHECKSUM), - Collections.emptyList()); - - userReposControl.expectAndReturn(userRepos.getObservableRepositoryIds(GUEST), - Collections.singletonList(TEST_REPO)); - - control.replay(); - userReposControl.replay(); - - String result = action.findArtifact(); - assertEquals(Action.INPUT, result); - assertFalse(action.getActionErrors().isEmpty()); - assertEquals("No results found", (String) action.getActionErrors().iterator().next()); - - control.verify(); - userReposControl.verify(); - } - - private ArtifactMetadata createArtifact(String project, String version) - { - ArtifactMetadata metadata = new ArtifactMetadata(); - metadata.setNamespace("org.apache.archiva"); - metadata.setProject(project); - metadata.setProjectVersion(version); - metadata.setVersion(version); - metadata.setRepositoryId(TEST_REPO); - metadata.setId(project + "-" + version + ".jar"); - return metadata; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/ShowArtifactActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/ShowArtifactActionTest.java deleted file mode 100644 index e6add3fac..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/ShowArtifactActionTest.java +++ /dev/null @@ -1,762 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import net.sf.beanlib.provider.replicator.BeanReplicator; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.metadata.model.ArtifactMetadata; -import org.apache.archiva.metadata.model.Dependency; -import org.apache.archiva.metadata.model.MailingList; -import org.apache.archiva.metadata.model.ProjectVersionMetadata; -import org.apache.archiva.metadata.model.ProjectVersionReference; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.maven2.model.Artifact; -import org.apache.archiva.webtest.memory.TestMetadataResolver; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.apache.archiva.metadata.repository.storage.maven2.MavenArtifactFacet; -import org.apache.archiva.reports.RepositoryProblemFacet; -import org.apache.archiva.common.utils.VersionUtil; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.repository.ManagedRepositoryContent; -import org.apache.archiva.repository.RepositoryContentFactory; -import org.apache.archiva.repository.content.ManagedDefaultRepositoryContent; - -import java.io.File; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.junit.Before; -import org.junit.Test; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class ShowArtifactActionTest - extends AbstractActionTestCase -{ - private static final String ACTION_HINT = "showArtifactAction"; - - private static final String TEST_VERSION = "version"; - - private static final String TEST_SNAPSHOT_VERSION = "1.0-SNAPSHOT"; - - private static final String TEST_TS_SNAPSHOT_VERSION = "1.0-20091120.111111-1"; - - private static final String TEST_NAMESPACE = "namespace"; - - private static final String OTHER_TEST_REPO = "first-repo"; - - private ShowArtifactAction action; - - private static final List TEST_SNAPSHOT_ARTIFACTS = - Arrays.asList( createArtifact( TEST_TS_SNAPSHOT_VERSION ), - createArtifact( "1.0-20091120.222222-2", "20091120.222222", 2 ), - createArtifact( "1.0-20091123.333333-3", "20091123.333333", 3 ) ); - - private static final long TEST_SIZE = 12345L; - - private static final String TEST_TYPE = "jar"; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - action = (ShowArtifactAction) getActionProxy( "/showArtifact.action" ).getAction(); - - metadataResolver = new TestMetadataResolver(); - MetadataRepository repo = mock( MetadataRepository.class ); - RepositorySession repositorySession = mock( RepositorySession.class ); - when( repositorySession.getResolver() ).thenReturn( metadataResolver ); - when( repositorySession.getRepository() ).thenReturn( repo ); - TestRepositorySessionFactory repositorySessionFactory = - applicationContext.getBean( "repositorySessionFactory#test", TestRepositorySessionFactory.class ); - repositorySessionFactory.setRepositorySession( repositorySession ); - - RepositoryContentFactory factory = mock( RepositoryContentFactory.class ); - - action.setRepositoryFactory( factory ); - - ManagedRepository config = new ManagedRepository(); - config.setId( TEST_REPO ); - config.setLocation( new File( "target/test-repo" ).getAbsolutePath() ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( config ); - when( factory.getManagedRepositoryContent( TEST_REPO ) ).thenReturn( content ); - - ArchivaConfiguration archivaConfig = mock( ArchivaConfiguration.class ); - - Configuration configuration = new Configuration(); - configuration.addManagedRepository( - new BeanReplicator().replicateBean( config, ManagedRepositoryConfiguration.class ) ); - when( archivaConfig.getConfiguration() ).thenReturn( configuration ); - - when( factory.getArchivaConfiguration() ).thenReturn( archivaConfig ); - - } - - @Test - public void testInstantiation() - { - assertFalse( action == getActionProxy( "/showArtifact.action" ).getAction() ); - } - - @Test - public void testGetArtifactUniqueRelease() - { - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - - setActionParameters(); - - String result = action.artifact(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetArtifactUniqueSnapshot() - { - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_SNAPSHOT_VERSION ) ); - metadataResolver.setArtifacts( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION, - TEST_SNAPSHOT_ARTIFACTS ); - - action.setGroupId( TEST_GROUP_ID ); - action.setArtifactId( TEST_ARTIFACT_ID ); - action.setVersion( TEST_SNAPSHOT_VERSION ); - - String result = action.artifact(); - - assertActionSuccess( action, result ); - - assertEquals( TEST_GROUP_ID, action.getGroupId() ); - assertEquals( TEST_ARTIFACT_ID, action.getArtifactId() ); - assertEquals( TEST_SNAPSHOT_VERSION, action.getVersion() ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model, TEST_SNAPSHOT_VERSION ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - - assertArtifacts( TEST_SNAPSHOT_ARTIFACTS, action.getArtifacts() ); - - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - } - - @Test - public void testGetArtifactUniqueSnapshotTimestamped() - { - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_SNAPSHOT_VERSION ) ); - metadataResolver.setArtifacts( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION, - TEST_SNAPSHOT_ARTIFACTS ); - - action.setGroupId( TEST_GROUP_ID ); - action.setArtifactId( TEST_ARTIFACT_ID ); - action.setVersion( TEST_TS_SNAPSHOT_VERSION ); - - String result = action.artifact(); - assertError( result ); - assertNoOutputFields(); - } - - @Test - public void testGetMissingProject() - { - setActionParameters(); - - String result = action.artifact(); - assertError( result ); - - assertActionParameters( action ); - assertNoOutputFields(); - } - - @Test - public void testGetArtifactNoObservableRepos() - { - setObservableRepos( Collections.emptyList() ); - - setActionParameters(); - - String result = action.artifact(); - - // Actually, it'd be better to have an error: - assertError( result ); - assertActionParameters( action ); - assertNoOutputFields(); - } - - @Test - public void testGetArtifactNotInObservableRepos() - { - metadataResolver.setProjectVersion( OTHER_TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - - setActionParameters(); - - String result = action.artifact(); - assertError( result ); - - assertActionParameters( action ); - assertNoOutputFields(); - } - - @Test - public void testGetArtifactOnlySeenInSecondObservableRepo() - { - setObservableRepos( Arrays.asList( OTHER_TEST_REPO, TEST_REPO ) ); - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - - setActionParameters(); - - String result = action.artifact(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetArtifactSeenInBothObservableRepo() - { - setObservableRepos( Arrays.asList( TEST_REPO, OTHER_TEST_REPO ) ); - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - metadataResolver.setProjectVersion( OTHER_TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - - setActionParameters(); - - String result = action.artifact(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetArtifactCanOnlyObserveInOneOfTwoRepos() - { - setObservableRepos( Arrays.asList( TEST_REPO ) ); - metadataResolver.setProjectVersion( OTHER_TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, - createProjectModel( TEST_VERSION ) ); - - setActionParameters(); - - String result = action.artifact(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetArtifactNoMavenFacet() - { - ProjectVersionMetadata versionMetadata = new ProjectVersionMetadata(); - versionMetadata.setId( TEST_VERSION ); - versionMetadata.setUrl( TEST_URL ); - versionMetadata.setName( TEST_NAME ); - versionMetadata.setDescription( TEST_DESCRIPTION ); - - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, versionMetadata ); - - setActionParameters(); - - String result = action.artifact(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertEquals( TEST_VERSION, model.getVersion() ); - assertEquals( TEST_URL, model.getUrl() ); - assertEquals( TEST_NAME, model.getName() ); - assertEquals( TEST_DESCRIPTION, model.getDescription() ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testMetadataHasRepositoryFacetProblem() - { - String errMsg = "Error in resolving artifact's parent POM file: Sample Parent POM not found"; - ProjectVersionMetadata metaData = createProjectModel( TEST_SNAPSHOT_VERSION ); - metaData.addFacet( - createRepositoryProblemFacet( TEST_REPO, errMsg, TEST_GROUP_ID, TEST_SNAPSHOT_VERSION, TEST_NAMESPACE ) ); - - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, metaData ); - - metadataResolver.setArtifacts( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION, - TEST_SNAPSHOT_ARTIFACTS ); - - action.setGroupId( TEST_GROUP_ID ); - action.setArtifactId( TEST_ARTIFACT_ID ); - action.setVersion( TEST_SNAPSHOT_VERSION ); - - String result = action.artifact(); - - assertEquals( Action.SUCCESS, result ); - - assertTrue( action.hasActionErrors() ); - assertFalse( action.hasActionMessages() ); - assertEquals( "Artifact metadata is incomplete: " + errMsg, action.getActionErrors().toArray()[0].toString() ); - } - - @Test - public void testMetadataIncomplete() - { - ProjectVersionMetadata metaData = createProjectModel( TEST_SNAPSHOT_VERSION ); - metaData.setIncomplete( true ); - - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, metaData ); - - metadataResolver.setArtifacts( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_SNAPSHOT_VERSION, - TEST_SNAPSHOT_ARTIFACTS ); - - action.setGroupId( TEST_GROUP_ID ); - action.setArtifactId( TEST_ARTIFACT_ID ); - action.setVersion( TEST_SNAPSHOT_VERSION ); - - String result = action.artifact(); - - assertEquals( Action.SUCCESS, result ); - - assertTrue( action.hasActionErrors() ); - assertFalse( action.hasActionMessages() ); - - assertEquals( "Artifact metadata is incomplete.", action.getActionErrors().toArray()[0].toString() ); - } - - @Test - public void testGetMailingLists() - { - ProjectVersionMetadata versionMetadata = createProjectModel( TEST_VERSION ); - MailingList ml1 = createMailingList( "Users List", "users" ); - MailingList ml2 = createMailingList( "Developers List", "dev" ); - versionMetadata.setMailingLists( Arrays.asList( ml1, ml2 ) ); - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, versionMetadata ); - - setActionParameters(); - - String result = action.mailingLists(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertNotNull( action.getMailingLists() ); - assertMailingList( action.getMailingLists().get( 0 ), "Users List", "users" ); - assertMailingList( action.getMailingLists().get( 1 ), "Developers List", "dev" ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetDependencies() - { - ProjectVersionMetadata versionMetadata = createProjectModel( TEST_VERSION ); - Dependency dependency1 = createDependencyBasic( "artifactId1" ); - Dependency dependency2 = createDependencyExtended( "artifactId2" ); - versionMetadata.setDependencies( Arrays.asList( dependency1, dependency2 ) ); - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, versionMetadata ); - - setActionParameters(); - - String result = action.dependencies(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertNotNull( action.getDependencies() ); - assertDependencyBasic( action.getDependencies().get( 0 ), "artifactId1" ); - assertDependencyExtended( action.getDependencies().get( 1 ), "artifactId2" ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - assertNull( action.getDependees() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetDependees() - throws Exception - { - setObservableRepos( Arrays.asList( TEST_REPO ) ); - ProjectVersionMetadata versionMetadata = createProjectModel( TEST_VERSION ); - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, versionMetadata ); - ProjectVersionReference dependee1 = createReference( "artifactId1" ); - ProjectVersionReference dependee2 = createReference( "artifactId2" ); - metadataResolver.setProjectReferences( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION, - Arrays.asList( dependee1, dependee2 ) ); - - setActionParameters(); - - String result = action.dependees(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - ProjectVersionMetadata model = action.getModel(); - assertDefaultModel( model ); - - assertNotNull( action.getDependees() ); - assertCoordinate( action.getDependees().get( 0 ), "artifactId1" ); - assertCoordinate( action.getDependees().get( 1 ), "artifactId2" ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testGetProjectMetadata() - { - ProjectVersionMetadata versionMetadata = createProjectModel( TEST_VERSION ); - - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, versionMetadata ); - - setActionParameters(); - - String result = action.projectMetadata(); - - assertActionSuccess( action, result ); - - assertActionParameters( action ); - - Map genericMetadata = action.getGenericMetadata(); - assertNotNull( genericMetadata.get( TEST_GENERIC_METADATA_PROPERTY_NAME ) ); - assertEquals( genericMetadata.get( TEST_GENERIC_METADATA_PROPERTY_NAME ), - TEST_GENERIC_METADATA_PROPERTY_VALUE ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - assertNotNull( action.getModel() ); - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - @Test - public void testAddAndDeleteMetadataProperty() - { - ProjectVersionMetadata versionMetadata = createProjectModel( TEST_VERSION ); - - metadataResolver.setProjectVersion( TEST_REPO, TEST_GROUP_ID, TEST_ARTIFACT_ID, versionMetadata ); - - setActionParameters(); - action.setPropertyName( "foo" ); - action.setPropertyValue( "bar" ); - action.setRepositoryId( TEST_REPO ); - - String result = action.addMetadataProperty(); - - assertActionSuccess( action, result ); - assertActionParameters( action ); - - Map genericMetadata = action.getGenericMetadata(); - assertNotNull( genericMetadata.get( TEST_GENERIC_METADATA_PROPERTY_NAME ) ); - assertEquals( genericMetadata.get( TEST_GENERIC_METADATA_PROPERTY_NAME ), - TEST_GENERIC_METADATA_PROPERTY_VALUE ); - - assertNotNull( genericMetadata.get( "foo" ) ); - assertEquals( "bar", genericMetadata.get( "foo" ) ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - assertNotNull( action.getModel() ); - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - - // test delete property - setActionParameters(); - action.setDeleteItem( "foo" ); - - result = action.deleteMetadataEntry(); - - assertEquals( Action.SUCCESS, result ); - assertActionParameters( action ); - assertTrue( !action.getActionMessages().isEmpty() ); - assertTrue( action.getActionMessages().contains( "Property successfully deleted." ) ); - - genericMetadata = action.getGenericMetadata(); - assertNotNull( genericMetadata.get( TEST_GENERIC_METADATA_PROPERTY_NAME ) ); - assertEquals( genericMetadata.get( TEST_GENERIC_METADATA_PROPERTY_NAME ), - TEST_GENERIC_METADATA_PROPERTY_VALUE ); - - assertNull( genericMetadata.get( "foo" ) ); - - assertEquals( TEST_REPO, action.getRepositoryId() ); - assertNotNull( action.getModel() ); - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - private void assertArtifacts( List expectedArtifacts, - Map> artifactMap ) - { - // assuming only one of each version at this point - assertEquals( expectedArtifacts.size(), artifactMap.size() ); - for ( ArtifactMetadata artifact : expectedArtifacts ) - { - assertTrue( artifactMap.containsKey( artifact.getVersion() ) ); - List list = artifactMap.get( artifact.getVersion() ); - Artifact actual = list.get( 0 ); - assertEquals( artifact.getNamespace(), actual.getGroupId() ); - assertEquals( artifact.getId(),actual.getId() ); - // olamy test has no more sense as we reuse an other object now - //assertEquals( artifact.getProject(), actual.getGroupId() ); - assertEquals( artifact.getRepositoryId(), actual.getRepositoryId() ); - assertEquals( artifact.getVersion(), actual.getVersion() ); - assertEquals( TEST_TYPE, actual.getPackaging() ); - assertEquals( "12.06 K", actual.getSize() ); - // FIXME url path test - //assertEquals( artifact.getNamespace() + "/" + artifact.getProject() + "/" + TEST_SNAPSHOT_VERSION + "/" - // + artifact.getId(), actual.getPath() ); - } - } - - private static ArtifactMetadata createArtifact( String version ) - { - return createArtifact( version, null, 0 ); - } - - private static ArtifactMetadata createArtifact( String version, String timestamp, int buildNumber ) - { - ArtifactMetadata metadata = new ArtifactMetadata(); - metadata.setProject( TEST_ARTIFACT_ID ); - metadata.setId( TEST_ARTIFACT_ID + "-" + version + ".jar" ); - metadata.setNamespace( TEST_GROUP_ID ); - metadata.setRepositoryId( TEST_REPO ); - metadata.setSize( TEST_SIZE ); - metadata.setProjectVersion( VersionUtil.getBaseVersion( version ) ); - metadata.setVersion( version ); - - MavenArtifactFacet facet = new MavenArtifactFacet(); - facet.setType( "jar" ); - facet.setTimestamp( timestamp ); - facet.setBuildNumber( buildNumber ); - metadata.addFacet( facet ); - - return metadata; - } - - private ProjectVersionReference createReference( String projectId ) - { - ProjectVersionReference reference = new ProjectVersionReference(); - reference.setNamespace( "groupId" ); - reference.setProjectId( projectId ); - reference.setProjectVersion( "version" ); - reference.setReferenceType( ProjectVersionReference.ReferenceType.DEPENDENCY ); - return reference; - } - - private void assertCoordinate( ProjectVersionReference dependee, String artifactId ) - { - assertEquals( artifactId, dependee.getProjectId() ); - assertEquals( "groupId", dependee.getNamespace() ); - assertEquals( "version", dependee.getProjectVersion() ); - } - - private void assertDependencyBasic( Dependency dependency, String artifactId ) - { - assertEquals( artifactId, dependency.getArtifactId() ); - assertEquals( "groupId", dependency.getGroupId() ); - assertEquals( "version", dependency.getVersion() ); - } - - private void assertDependencyExtended( Dependency dependency, String artifactId ) - { - assertDependencyBasic( dependency, artifactId ); - assertEquals( true, dependency.isOptional() ); - assertEquals( "classifier", dependency.getClassifier() ); - assertEquals( "type", dependency.getType() ); - assertEquals( "scope", dependency.getScope() ); - assertEquals( "systemPath", dependency.getSystemPath() ); - } - - private Dependency createDependencyExtended( String artifactId ) - { - Dependency dependency = createDependencyBasic( artifactId ); - dependency.setClassifier( "classifier" ); - dependency.setOptional( true ); - dependency.setScope( "scope" ); - dependency.setSystemPath( "systemPath" ); - dependency.setType( "type" ); - return dependency; - } - - private Dependency createDependencyBasic( String artifactId ) - { - Dependency dependency = new Dependency(); - dependency.setArtifactId( artifactId ); - dependency.setGroupId( "groupId" ); - dependency.setVersion( "version" ); - return dependency; - } - - private void assertMailingList( MailingList mailingList, String name, String prefix ) - { - assertEquals( name, mailingList.getName() ); - assertEquals( prefix + "-post@", mailingList.getPostAddress() ); - assertEquals( prefix + "-subscribe@", mailingList.getSubscribeAddress() ); - assertEquals( prefix + "-unsubscribe@", mailingList.getUnsubscribeAddress() ); - assertEquals( prefix + "-archive-url", mailingList.getMainArchiveUrl() ); - assertEquals( Arrays.asList( "other-" + prefix + "-archive-url-1", "other-" + prefix + "-archive-url-2" ), - mailingList.getOtherArchives() ); - } - - private MailingList createMailingList( String name, String prefix ) - { - MailingList ml1 = new MailingList(); - ml1.setName( name ); - ml1.setPostAddress( prefix + "-post@" ); - ml1.setSubscribeAddress( prefix + "-subscribe@" ); - ml1.setUnsubscribeAddress( prefix + "-unsubscribe@" ); - ml1.setMainArchiveUrl( prefix + "-archive-url" ); - ml1.setOtherArchives( - Arrays.asList( "other-" + prefix + "-archive-url-1", "other-" + prefix + "-archive-url-2" ) ); - return ml1; - } - - private void assertNoOutputFields() - { - assertNull( action.getModel() ); - assertNull( action.getDependees() ); - assertNull( action.getDependencies() ); - assertNull( action.getMailingLists() ); - assertTrue( action.getArtifacts().isEmpty() ); - } - - private void assertError( String result ) - { - assertEquals( Action.ERROR, result ); - assertEquals( 1, action.getActionErrors().size() ); - } - - private void assertDefaultModel( ProjectVersionMetadata model ) - { - assertDefaultModel( model, TEST_VERSION ); - } - - private void setActionParameters() - { - action.setGroupId( TEST_GROUP_ID ); - action.setArtifactId( TEST_ARTIFACT_ID ); - action.setVersion( TEST_VERSION ); - } - - private void assertActionParameters( ShowArtifactAction action ) - { - assertEquals( TEST_GROUP_ID, action.getGroupId() ); - assertEquals( TEST_ARTIFACT_ID, action.getArtifactId() ); - assertEquals( TEST_VERSION, action.getVersion() ); - } - - private void assertActionSuccess( ShowArtifactAction action, String result ) - { - assertEquals( Action.SUCCESS, result ); - assertTrue( action.getActionErrors().isEmpty() ); - assertTrue( action.getActionMessages().isEmpty() ); - } - - private RepositoryProblemFacet createRepositoryProblemFacet( String repoId, String errMsg, String projectId, - String projectVersion, String namespace ) - { - RepositoryProblemFacet repoProblemFacet = new RepositoryProblemFacet(); - repoProblemFacet.setRepositoryId( repoId ); - repoProblemFacet.setId( repoId ); - repoProblemFacet.setMessage( errMsg ); - repoProblemFacet.setProblem( errMsg ); - repoProblemFacet.setProject( projectId ); - repoProblemFacet.setVersion( projectVersion ); - repoProblemFacet.setNamespace( namespace ); - return repoProblemFacet; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java deleted file mode 100644 index cdb8788ba..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java +++ /dev/null @@ -1,866 +0,0 @@ -package org.apache.archiva.web.action; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import net.sf.beanlib.provider.replicator.BeanReplicator; -import org.apache.archiva.admin.model.admin.ArchivaAdministration; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.audit.AuditEvent; -import org.apache.archiva.audit.AuditListener; -import org.apache.archiva.checksum.ChecksumAlgorithm; -import org.apache.archiva.checksum.ChecksummedFile; -import org.apache.archiva.common.utils.FileUtil; -import org.apache.archiva.maven2.metadata.MavenMetadataReader; -import org.apache.archiva.model.ArchivaRepositoryMetadata; -import org.apache.archiva.model.SnapshotVersion; -import org.apache.archiva.repository.ManagedRepositoryContent; -import org.apache.archiva.repository.RepositoryContentFactory; -import org.apache.archiva.repository.RepositoryNotFoundException; -import org.apache.archiva.repository.content.ManagedDefaultRepositoryContent; -import org.apache.archiva.repository.metadata.MetadataTools; -import org.apache.archiva.scheduler.ArchivaTaskScheduler; -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; -import org.easymock.MockControl; -import org.easymock.classextension.MockClassControl; - -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.TimeZone; -import org.junit.Test; - -/** - * UploadActionTest - */ -public class UploadActionTest - extends AbstractActionTestCase -{ - private UploadAction uploadAction; - - private RepositoryContentFactory repoFactory; - - private MockControl repoFactoryControl; - - private MockControl managedRepoAdminControl; - - private ManagedRepositoryAdmin managedRepositoryAdmin; - - private MockControl archivaAdminControl; - - private ArchivaAdministration archivaAdministration; - - private static final String REPOSITORY_ID = "test-repo"; - - - private ManagedRepository managedRepository; - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - MockControl schedulerControl = MockControl.createControl( ArchivaTaskScheduler.class ); - ArchivaTaskScheduler scheduler = (ArchivaTaskScheduler) schedulerControl.getMock(); - - repoFactoryControl = MockClassControl.createControl( RepositoryContentFactory.class ); - repoFactory = (RepositoryContentFactory) repoFactoryControl.getMock(); - - managedRepoAdminControl = MockControl.createControl( ManagedRepositoryAdmin.class ); - managedRepositoryAdmin = (ManagedRepositoryAdmin) managedRepoAdminControl.getMock(); - - archivaAdminControl = MockControl.createControl( ArchivaAdministration.class ); - archivaAdministration = (ArchivaAdministration) archivaAdminControl.getMock(); - - uploadAction = new UploadAction(); - uploadAction.setScheduler( scheduler ); - uploadAction.setManagedRepositoryAdmin( managedRepositoryAdmin ); - uploadAction.setArchivaAdministration( archivaAdministration ); - - uploadAction.setRepositoryFactory( repoFactory ); - - File testRepo = new File( FileUtil.getBasedir(), "target/test-classes/test-repo" ); - testRepo.mkdirs(); - - assertTrue( testRepo.exists() ); - - managedRepository = new ManagedRepository(); - managedRepository.setId( REPOSITORY_ID ); - managedRepository.setLayout( "default" ); - managedRepository.setLocation( testRepo.getPath() ); - managedRepository.setName( REPOSITORY_ID ); - managedRepository.setBlockRedeployments( true ); - - } - - @Override - public void tearDown() - throws Exception - { - File testRepo = new File( this.managedRepository.getLocation() ); - FileUtils.deleteDirectory( testRepo ); - - assertFalse( testRepo.exists() ); - - super.tearDown(); - } - - private void setUploadParameters( String version, String classifier, File artifact, File pomFile, - boolean generatePom ) - { - uploadAction.setRepositoryId( REPOSITORY_ID ); - uploadAction.setGroupId( "org.apache.archiva" ); - uploadAction.setArtifactId( "artifact-upload" ); - uploadAction.setVersion( version ); - uploadAction.setPackaging( "jar" ); - - uploadAction.setClassifier( classifier ); - uploadAction.setArtifact( artifact ); - uploadAction.setPom( pomFile ); - uploadAction.setGeneratePom( generatePom ); - } - - private void assertAllArtifactsIncludingSupportArtifactsArePresent( String repoLocation, String artifact, - String version ) - { - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".jar" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact - + ".jar.sha1" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact - + ".jar.md5" ).exists() ); - - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".pom" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact - + ".pom.sha1" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact - + ".pom.md5" ).exists() ); - - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA - + ".sha1" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA - + ".md5" ).exists() ); - } - - private void verifyVersionMetadataChecksums( String repoLocation, String version ) - throws IOException - { - ChecksummedFile checksum = new ChecksummedFile( new File( repoLocation, - "/org/apache/archiva/artifact-upload/" + version + "/" - + MetadataTools.MAVEN_METADATA ) ); - String sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 ); - String md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 ); - - String contents = FileUtils.readFileToString( new File( repoLocation, - "/org/apache/archiva/artifact-upload/" + version + "/" - + MetadataTools.MAVEN_METADATA + ".sha1" ) ); - assertTrue( StringUtils.contains( contents, sha1 ) ); - - contents = FileUtils.readFileToString( new File( repoLocation, - "/org/apache/archiva/artifact-upload/" + version + "/" - + MetadataTools.MAVEN_METADATA + ".md5" ) ); - assertTrue( StringUtils.contains( contents, md5 ) ); - } - - private void verifyProjectMetadataChecksums( String repoLocation ) - throws IOException - { - ChecksummedFile checksum = new ChecksummedFile( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA ) ); - String sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 ); - String md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 ); - - String contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA + ".sha1" ) ); - assertTrue( StringUtils.contains( contents, sha1 ) ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA + ".md5" ) ); - assertTrue( StringUtils.contains( contents, md5 ) ); - } - - private void verifyPomChecksums( String repoLocation, String artifact, String version ) - throws IOException - { - ChecksummedFile checksum; - String sha1; - String md5; - String contents; - checksum = new ChecksummedFile( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".pom" ) ); - sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 ); - md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".pom.sha1" ) ); - assertTrue( StringUtils.contains( contents, sha1 ) ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".pom.md5" ) ); - assertTrue( StringUtils.contains( contents, md5 ) ); - } - - private void verifyArtifactChecksums( String repoLocation, String artifact, String version ) - throws IOException - { - ChecksummedFile checksum = new ChecksummedFile( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".jar" ) ); - String sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 ); - String md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 ); - - String contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".jar.sha1" ) ); - assertTrue( StringUtils.contains( contents, sha1 ) ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + version + "/" + artifact + ".jar.md5" ) ); - assertTrue( StringUtils.contains( contents, md5 ) ); - } - - private String getTimestamp( String[] artifactsList, int startIndex, int index ) - { - int endIndex = -1; - String timestamp; - - if ( artifactsList[index].contains( "jar" ) ) - { - endIndex = artifactsList[index].indexOf( ".jar" ); - } - else - { - endIndex = artifactsList[index].indexOf( ".pom" ); - } - - timestamp = artifactsList[index].substring( startIndex, endIndex ); - - return timestamp; - } - - private MockControl mockAuditLogs( List resources ) - { - return mockAuditLogs( AuditEvent.UPLOAD_FILE, resources ); - } - - private MockControl mockAuditLogs( String action, List resources ) - { - MockControl control = MockControl.createControl( AuditListener.class ); - AuditListener listener = (AuditListener) control.getMock(); - boolean matcherSet = false; - for ( String resource : resources ) - { - listener.auditEvent( new AuditEvent( REPOSITORY_ID, "guest", resource, action ) ); - if ( !matcherSet ) - { - control.setMatcher( new AuditEventArgumentsMatcher() ); - matcherSet = true; - } - } - control.replay(); - - uploadAction.setAuditListeners( Collections.singletonList( listener ) ); - return control; - } - - @Test - public void testArtifactUploadWithPomSuccessful() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - new File( FileUtil.getBasedir(), "target/test-classes/upload-artifact-test/pom.xml" ), - false ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( getManagedRepository() ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - repoFactoryControl.replay(); - - MockControl control = mockAuditLogs( - Arrays.asList( "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar", - "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ) ); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0", "1.0" ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - } - - @Test - public void testArtifactUploadWithClassifier() - throws Exception - { - setUploadParameters( "1.0", "tests", new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - new File( FileUtil.getBasedir(), "target/test-classes/upload-artifact-test/pom.xml" ), - false ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( getManagedRepository() ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - MockControl control = mockAuditLogs( - Arrays.asList( "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar", - "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ) ); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar" ).exists() ); - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar.sha1" ).exists() ); - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0-tests.jar.md5" ).exists() ); - - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ).exists() ); - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.sha1" ).exists() ); - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.md5" ).exists() ); - - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA - + ".sha1" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA - + ".md5" ).exists() ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0-tests", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - } - - @Test - public void testArtifactUploadGeneratePomSuccessful() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( getManagedRepository() ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - MockControl control = mockAuditLogs( - Arrays.asList( "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar", - "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ) ); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0", "1.0" ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - } - - @Test - public void testArtifactUploadNoPomSuccessful() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, false ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( getManagedRepository() ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - MockControl control = - mockAuditLogs( Arrays.asList( "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ) ); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ).exists() ); - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.sha1" ).exists() ); - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.md5" ).exists() ); - - assertFalse( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ).exists() ); - assertFalse( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.sha1" ).exists() ); - assertFalse( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom.md5" ).exists() ); - - assertTrue( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA - + ".sha1" ).exists() ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA - + ".md5" ).exists() ); - - // verify checksums of jar file - ChecksummedFile checksum = new ChecksummedFile( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ) ); - String sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 ); - String md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 ); - - String contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.sha1" ) ); - assertTrue( StringUtils.contains( contents, sha1 ) ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar.md5" ) ); - assertTrue( StringUtils.contains( contents, md5 ) ); - - // verify checksums of metadata file - checksum = new ChecksummedFile( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA ) ); - sha1 = checksum.calculateChecksum( ChecksumAlgorithm.SHA1 ); - md5 = checksum.calculateChecksum( ChecksumAlgorithm.MD5 ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA + ".sha1" ) ); - assertTrue( StringUtils.contains( contents, sha1 ) ); - - contents = FileUtils.readFileToString( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA + ".md5" ) ); - assertTrue( StringUtils.contains( contents, md5 ) ); - } - - @Test - public void testArtifactUploadFailedRepositoryNotFound() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, false ); - - repoFactoryControl.expectAndThrow( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), - new RepositoryNotFoundException() ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.ERROR, returnString ); - - repoFactoryControl.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertFalse( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar" ).exists() ); - - assertFalse( - new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ).exists() ); - - assertFalse( - new File( repoLocation, "/org/apache/archiva/artifact-upload/" + MetadataTools.MAVEN_METADATA ).exists() ); - } - - @Test - public void testArtifactUploadSnapshots() - throws Exception - { - setUploadParameters( "1.0-SNAPSHOT", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( getManagedRepository() ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2, 5 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - SimpleDateFormat fmt = new SimpleDateFormat( "yyyyMMdd.HHmmss" ); - fmt.setTimeZone( TimeZone.getTimeZone( "UTC" ) ); - String timestamp = fmt.format( new Date() ); - MockControl control = mockAuditLogs( Arrays.asList( - "org/apache/archiva/artifact-upload/1.0-SNAPSHOT/artifact-upload-1.0-" + timestamp + "-1.jar", - "org/apache/archiva/artifact-upload/1.0-SNAPSHOT/artifact-upload-1.0-" + timestamp + "-1.pom" ) ); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - String[] artifactsList = new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" ).list(); - Arrays.sort( artifactsList ); - - assertEquals( 9, artifactsList.length ); - assertTrue( new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" - + MetadataTools.MAVEN_METADATA ).exists() ); - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" + MetadataTools.MAVEN_METADATA - + ".sha1" ).exists() ); - assertTrue( new File( repoLocation, - "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" + MetadataTools.MAVEN_METADATA - + ".md5" ).exists() ); - - int startIndex = "artifact-upload-1.0-".length(); - String timestampPath = getTimestamp( artifactsList, startIndex, 0 ); - - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0-" + timestampPath, - "1.0-SNAPSHOT" ); - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0-" + timestampPath, "1.0-SNAPSHOT" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0-" + timestampPath, "1.0-SNAPSHOT" ); - verifyProjectMetadataChecksums( repoLocation ); - verifyVersionMetadataChecksums( repoLocation, "1.0-SNAPSHOT" ); - - // verify build number - File metadataFile = new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" - + MetadataTools.MAVEN_METADATA ); - ArchivaRepositoryMetadata artifactMetadata = MavenMetadataReader.read( metadataFile ); - - SnapshotVersion snapshotVersion = artifactMetadata.getSnapshotVersion(); - assertEquals( "Incorrect build number set in artifact metadata.", 1, snapshotVersion.getBuildNumber() ); - - String timestampPart = StringUtils.substringBeforeLast( timestampPath, "-" ); - assertEquals( "Incorrect timestamp set in artifact metadata.", timestampPart, snapshotVersion.getTimestamp() ); - - String buildnumber = StringUtils.substringAfterLast( timestampPath, "-" ); - assertEquals( "Incorrect build number in filename.", "1", buildnumber ); - - repoFactoryControl.reset(); - control.reset(); - - control.setDefaultMatcher( MockControl.ALWAYS_MATCHER ); - - // MRM-1353 - // upload snapshot artifact again and check if build number was incremented - setUploadParameters( "1.0-SNAPSHOT", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - repoFactoryControl.replay(); - - fmt = new SimpleDateFormat( "yyyyMMdd.HHmmss" ); - fmt.setTimeZone( TimeZone.getTimeZone( "UTC" ) ); - timestamp = fmt.format( new Date() ); - - control = mockAuditLogs( Arrays.asList( - "org/apache/archiva/artifact-upload/1.0-SNAPSHOT/artifact-upload-1.0-" + timestamp + "-2.jar", - "org/apache/archiva/artifact-upload/1.0-SNAPSHOT/artifact-upload-1.0-" + timestamp + "-2.pom" ) ); - - returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - artifactsList = new File( repoLocation, "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" ).list(); - Arrays.sort( artifactsList ); - - assertEquals( 15, artifactsList.length ); - - timestampPath = getTimestamp( artifactsList, startIndex, 6 ); - - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0-" + timestampPath, - "1.0-SNAPSHOT" ); - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0-" + timestampPath, "1.0-SNAPSHOT" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0-" + timestampPath, "1.0-SNAPSHOT" ); - verifyProjectMetadataChecksums( repoLocation ); - verifyVersionMetadataChecksums( repoLocation, "1.0-SNAPSHOT" ); - - // verify build number set in metadata and in filename - metadataFile = new File( repoLocation, - "/org/apache/archiva/artifact-upload/1.0-SNAPSHOT/" + MetadataTools.MAVEN_METADATA ); - artifactMetadata = MavenMetadataReader.read( metadataFile ); - - snapshotVersion = artifactMetadata.getSnapshotVersion(); - assertEquals( "Incorrect build number set in artifact metadata.", 2, snapshotVersion.getBuildNumber() ); - - timestampPart = StringUtils.substringBeforeLast( timestampPath, "-" ); - assertEquals( "Incorrect timestamp set in artifact metadata.", timestampPart, snapshotVersion.getTimestamp() ); - - buildnumber = StringUtils.substringAfterLast( timestampPath, "-" ); - assertEquals( "Incorrect build number in filename.", "2", buildnumber ); - } - - @Test - public void testChecksumIsCorrectWhenArtifactIsReUploaded() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - ManagedRepository repoConfig = getManagedRepository(); - repoConfig.setBlockRedeployments( false ); - content.setRepository( repoConfig ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - repoConfig, 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2, 5 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - - repoFactoryControl.reset(); - - String repoLocation = getManagedRepository().getLocation(); - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0", "1.0" ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - - // RE-upload artifact - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-reuploaded.jar" ), - null, true ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content ); - - repoFactoryControl.replay(); - - // TODO: track modifications? -// MockControl control = mockAuditLogs( AuditEvent.MODIFY_FILE, Arrays.asList( - MockControl control = mockAuditLogs( - Arrays.asList( "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar", - "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ) ); - - returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - repoLocation = getManagedRepository().getLocation(); - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0", "1.0" ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - } - - @Test - public void testUploadArtifactAlreadyExistingRedeploymentsBlocked() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - content.setRepository( getManagedRepository() ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content, 1, 8 ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - getManagedRepository(), 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2, 5 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - MockControl control = mockAuditLogs( Collections.emptyList() ); - - returnString = uploadAction.doUpload(); - assertEquals( Action.ERROR, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0", "1.0" ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - } - - @Test - public void testUploadArtifactAlreadyExistingRedeploymentsAllowed() - throws Exception - { - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - ManagedRepositoryContent content = new ManagedDefaultRepositoryContent(); - ManagedRepository repoConfig = getManagedRepository(); - repoConfig.setBlockRedeployments( false ); - content.setRepository( repoConfig ); - - repoFactoryControl.expectAndReturn( repoFactory.getManagedRepositoryContent( REPOSITORY_ID ), content, 1, 8 ); - - managedRepoAdminControl.expectAndReturn( managedRepositoryAdmin.getManagedRepository( REPOSITORY_ID ), - repoConfig, 1, 8 ); - - archivaAdminControl.expectAndReturn( archivaAdministration.getKnownContentConsumers(), new ArrayList(), - 2, 5 ); - - managedRepoAdminControl.replay(); - archivaAdminControl.replay(); - - repoFactoryControl.replay(); - - String returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - setUploadParameters( "1.0", null, new File( FileUtil.getBasedir(), - "target/test-classes/upload-artifact-test/artifact-to-be-uploaded.jar" ), - null, true ); - - // TODO: track modifications? -// MockControl control = mockAuditLogs( AuditEvent.MODIFY_FILE, Arrays.asList( - MockControl control = mockAuditLogs( - Arrays.asList( "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.jar", - "org/apache/archiva/artifact-upload/1.0/artifact-upload-1.0.pom" ) ); - - returnString = uploadAction.doUpload(); - assertEquals( Action.SUCCESS, returnString ); - - repoFactoryControl.verify(); - control.verify(); - - String repoLocation = getManagedRepository().getLocation(); - assertAllArtifactsIncludingSupportArtifactsArePresent( repoLocation, "artifact-upload-1.0", "1.0" ); - - verifyArtifactChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyPomChecksums( repoLocation, "artifact-upload-1.0", "1.0" ); - verifyProjectMetadataChecksums( repoLocation ); - } - - ManagedRepository getManagedRepository() - { - return new BeanReplicator().replicateBean( this.managedRepository, ManagedRepository.class ); - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java deleted file mode 100644 index 9597b5e1a..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/AbstractOrganizationInfoActionTest.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.apache.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -import org.apache.archiva.admin.repository.admin.DefaultArchivaAdministration; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.easymock.MockControl; -import org.junit.Before; - -/** - */ -public abstract class AbstractOrganizationInfoActionTest - extends AbstractWebworkTestCase -{ - protected MockControl archivaConfigurationControl; - - protected ArchivaConfiguration configuration; - - protected AbstractAppearanceAction action; - - protected Configuration config; - - protected abstract AbstractAppearanceAction getAction(); - - @Before - @Override - public void setUp() - throws Exception - { - super.setUp(); - - config = new Configuration(); - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - configuration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - configuration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config, 1, 5 ); - - configuration.save( config ); - archivaConfigurationControl.setVoidCallable( 1, 4 ); - - archivaConfigurationControl.replay(); - - DefaultArchivaAdministration defaultArchivaAdministration = new DefaultArchivaAdministration(); - defaultArchivaAdministration.setArchivaConfiguration( configuration ); - getAction().setArchivaAdministration( defaultArchivaAdministration ); - } - - protected void reloadAction() - { - action = getAction(); - ( (DefaultArchivaAdministration) action.getArchivaAdministration() ).setArchivaConfiguration( configuration ); - - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java deleted file mode 100644 index 5a709eb4d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/EditOrganizationInfoActionTest.java +++ /dev/null @@ -1,223 +0,0 @@ -package org.apache.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ActionValidatorManager; -import org.apache.archiva.web.validator.utils.ValidatorUtil; -import org.apache.archiva.configuration.OrganisationInformation; -import org.apache.archiva.web.action.admin.repositories.DefaultActionValidatorManagerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; - -/** - */ -public class EditOrganizationInfoActionTest - extends AbstractOrganizationInfoActionTest -{ - private static final String EMPTY_STRING = ""; - - // valid inputs - private static final String ORGANISATION_NAME_VALID_INPUT = "abcXYZ0129. _/\\~ :?!&=-"; - - private static final String ORGANISATION_URL_VALID_INPUT = "file://home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\""; - - private static final String ORGANISATION_LOGO_VALID_INPUT = "file://home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\""; - - // invalid inputs - private static final String ORGANISATION_NAME_INVALID_INPUT = "<>~+[ ]'\""; - - private static final String ORGANISATION_URL_INVALID_INPUT = "/home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\""; - - private static final String ORGANISATION_LOGO_INVALID_INPUT = "/home/user/abcXYZ0129._/\\~:?!&=-<> ~+[ ]'\""; - - // testing requisite - private ActionValidatorManager actionValidatorManager; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - DefaultActionValidatorManagerFactory factory = new DefaultActionValidatorManagerFactory(); - - actionValidatorManager = factory.createDefaultActionValidatorManager(); - } - - @Test - public void testOrganisationInfoSaves() - throws Exception - { - config.setOrganisationInfo( new OrganisationInformation() ); - OrganisationInformation orginfo = config.getOrganisationInfo(); - orginfo.setLogoLocation( "LOGO" ); - orginfo.setName( "NAME" ); - orginfo.setUrl( "URL" ); - - configuration.save( config ); - - reloadAction(); - - action.prepare(); - - assertEquals( "LOGO", action.getOrganisationLogo() ); - assertEquals( "NAME", action.getOrganisationName() ); - assertEquals( "URL", action.getOrganisationUrl() ); - - action.setOrganisationLogo( "LOGO1" ); - action.setOrganisationName( "NAME1" ); - action.setOrganisationUrl( "URL1" ); - - action.execute(); - - orginfo = config.getOrganisationInfo(); - - assertEquals( "LOGO1", orginfo.getLogoLocation() ); - assertEquals( "NAME1", orginfo.getName() ); - assertEquals( "URL1", orginfo.getUrl() ); - } - - @Test - public void testStruts2ValidationFrameworkWithNullInputs() - throws Exception - { - // prep - action = getAction(); - populateOrganisationValues( action, null, null, null ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a name" ); - expectedFieldErrors.put( "organisationName", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithBlankInputs() - throws Exception - { - // prep - action = getAction(); - populateOrganisationValues( action, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a name" ); - expectedFieldErrors.put( "organisationName", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithInvalidInputs() - throws Exception - { - // prep - action = getAction(); - populateOrganisationValues( action, ORGANISATION_NAME_INVALID_INPUT, ORGANISATION_URL_INVALID_INPUT, - ORGANISATION_LOGO_INVALID_INPUT ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Organisation name must only contain alphanumeric characters, white-spaces(' '), equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." ); - expectedFieldErrors.put( "organisationName", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a URL." ); - expectedFieldErrors.put( "organisationUrl", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a URL for your logo." ); - expectedFieldErrors.put( "organisationLogo", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithValidInputs() - throws Exception - { - // prep - action = getAction(); - populateOrganisationValues( action, ORGANISATION_NAME_VALID_INPUT, ORGANISATION_URL_VALID_INPUT, - ORGANISATION_LOGO_VALID_INPUT ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertFalse( action.hasFieldErrors() ); - } - - private void populateOrganisationValues( AbstractAppearanceAction abstractAppearanceAction, String name, String url, - String logo ) - { - abstractAppearanceAction.setOrganisationName( name ); - abstractAppearanceAction.setOrganisationUrl( url ); - abstractAppearanceAction.setOrganisationLogo( logo ); - } - - @Override - protected AbstractAppearanceAction getAction() - { - return (EditOrganisationInfoAction) getActionProxy( "/admin/editAppearance.action" ).getAction(); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java deleted file mode 100644 index 242906924..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/appearance/OrganizationInfoActionTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.apache.archiva.web.action.admin.appearance; - -/* - * 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. - */ - -import org.apache.archiva.configuration.OrganisationInformation; -import org.junit.Test; - -/** - */ -public class OrganizationInfoActionTest - extends AbstractOrganizationInfoActionTest -{ - @Test - public void testOrganisationInfoLoads() - throws Exception - { - config.setOrganisationInfo( new OrganisationInformation() ); - OrganisationInformation orginfo = config.getOrganisationInfo(); - orginfo.setLogoLocation( "LOGO" ); - orginfo.setName( "NAME" ); - orginfo.setUrl( "URL" ); - - configuration.save( config ); - - reloadAction(); - - action.prepare(); - - assertEquals( "URL", action.getOrganisationUrl() ); - assertEquals( "NAME", action.getOrganisationName() ); - assertEquals( "LOGO", action.getOrganisationLogo() ); - } - - @Override - protected AbstractAppearanceAction getAction() - { - return (OrganisationInfoAction) getActionProxy( "/components/companyInfo.action" ).getAction(); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java deleted file mode 100644 index 839c39c1c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/AddProxyConnectorActionTest.java +++ /dev/null @@ -1,437 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.policies.CachedFailuresPolicy; -import org.apache.archiva.policies.ChecksumPolicy; -import org.apache.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.archiva.policies.ReleasesPolicy; -import org.apache.archiva.policies.SnapshotsPolicy; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; - -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; - -/** - * AddProxyConnectorActionTest - * - * - */ -public class AddProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private AddProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (AddProxyConnectorAction) getActionProxy( "/admin/addProxyConnector.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testAddBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getBlackListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setBlackListPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - } - - @Test - public void testAddProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no property pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getProperties().size() ); - - // Try again, but now with a property key/value to add. - action.setPropertyKey( "eat-a" ); - action.setPropertyValue( "gramov-a-bits" ); - preRequest( action ); - status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property added. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - } - - @SuppressWarnings( "unchecked" ) - @Test - public void testAddProxyConnectorCommit() - throws Exception - { - expectConfigurationRequests( 9 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - // forms will use an array - //connector.getProperties().put( "eat-a", new String[] { "gramov-a-bits" } ); - // FIXME olamy check the array mode !!! - connector.getProperties().put( "eat-a", "gramov-a-bits" ); - - // Create the input screen. - assertRequestStatus( action, Action.SUCCESS, "commit" ); - assertNoErrors( action ); - - // Test configuration. - List proxyConfigs = archivaConfiguration.getConfiguration().getProxyConnectors(); - assertNotNull( proxyConfigs ); - assertEquals( 1, proxyConfigs.size() ); - - ProxyConnectorConfiguration actualConnector = proxyConfigs.get( 0 ); - - assertNotNull( actualConnector ); - // The use of "(direct connection)" should result in a proxyId which is . - assertNull( actualConnector.getProxyId() ); - assertEquals( "corporate", actualConnector.getSourceRepoId() ); - assertEquals( "central", actualConnector.getTargetRepoId() ); - assertEquals( "gramov-a-bits", actualConnector.getProperties().get( "eat-a" ) ); - } - - @Test - public void testAddProxyConnectorInitialPage() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - ProxyConnector configuration = action.getConnector(); - assertNotNull( configuration ); - assertNull( configuration.getProxyId() ); - assertNull( configuration.getSourceRepoId() ); - assertNull( configuration.getTargetRepoId() ); - assertTrue( configuration.getPolicies().isEmpty() ); - assertTrue( configuration.getProperties().isEmpty() ); - assertTrue( configuration.getBlackListPatterns().isEmpty() ); - assertTrue( configuration.getWhiteListPatterns().isEmpty() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - } - - @Test - public void testAddWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setWhiteListPattern( "**/*.jar" ); - preRequest( action ); - status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - } - - @Test - public void testRemoveBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - - // Add some arbitrary blacklist patterns. - connector.addBlackListPattern( "**/*-javadoc.jar" ); - connector.addBlackListPattern( "**/*.war" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - assertEquals( "Should have left 1 blacklist pattern", "**/*.war", connector.getBlackListPatterns().get( 0 ) ); - } - - @Test - public void testRemoveProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - - // Add some arbitrary properties. - connector.addProperty( "username", "general-tso" ); - connector.addProperty( "password", "chicken" ); - - // Perform Test w/no property key. - preRequest( action ); - String status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Perform test w/invalid (non-existant) property key to remove. - preRequest( action ); - action.setPropertyKey( "slurm" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Try again, but now with a valid property to remove. - preRequest( action ); - action.setPropertyKey( "password" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property left. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - assertEquals( "Should have left 1 property", "general-tso", connector.getProperties().get( "username" ) ); - } - - @Test - public void testRemoveWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.prepare(); - ProxyConnector connector = action.getConnector(); - populateProxyConnector( connector ); - - // Add some arbitrary whitelist patterns. - connector.addWhiteListPattern( "javax/**/*" ); - connector.addWhiteListPattern( "com/sun/**/*" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "com/sun/**/*" ); - preRequest( action ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - assertEquals( "Should have left 1 whitelist pattern", "javax/**/*", connector.getWhiteListPatterns().get( 0 ) ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( "corporate" ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( "central" ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws org.apache.archiva.redback.components.registry.RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config, requestConfigCount, requestConfigCount + 1 ); - archivaConfiguration.save( config ); - } - - @SuppressWarnings( "unchecked" ) - private void populateProxyConnector( ProxyConnector connector ) - { - connector.setProxyId( AbstractProxyConnectorFormAction.DIRECT_CONNECTION ); - connector.setSourceRepoId( "corporate" ); - connector.setTargetRepoId( "central" ); - - // TODO: Set these options programatically via list of available policies. - Map policies = connector.getPolicies(); - policies.put( "releases", new ReleasesPolicy().getDefaultOption() ); - policies.put( "snapshots", new SnapshotsPolicy().getDefaultOption() ); - policies.put( "checksum", new ChecksumPolicy().getDefaultOption() ); - policies.put( "cache-failures", new CachedFailuresPolicy().getDefaultOption() ); - policies.put( "propagate-errors", new PropagateErrorsDownloadPolicy().getDefaultOption() ); - policies.put( "propagate-errors-on-update", new PropagateErrorsOnUpdateDownloadPolicy().getDefaultOption() ); - } - - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java deleted file mode 100644 index 8616d47f5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/DeleteProxyConnectorActionTest.java +++ /dev/null @@ -1,238 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; -import org.junit.Before; -import org.junit.Test; -/** - * DeleteProxyConnectorActionTest - * - * - */ -public class DeleteProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private DeleteProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteProxyConnectorAction) getActionProxy( "/admin/deleteProxyConnector.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testConfirmDelete() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Show the confirm the delete of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDelete(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - } - - @Test - public void testConfirmDeleteBadSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 4 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm delete screen, but provide - // a bad source id or target id to actually delete - - preRequest( action ); - action.setSource( "bad-source" ); // id doesn't exist. - action.setTarget( "bad-target" ); // id doesn't exist. - String status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( "bad" ); // Bad doesn't exist. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( "bad" ); // Bad doesn't exist. - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - @Test - public void testConfirmDeleteNoSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm delete screen, but don't provide - // the source id or target id to actually delete - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( null ); // No target Id. - String status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( null ); // No target Id. - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDelete(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - @Test - public void testDelete() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - // Show the confirm the delete of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDelete(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - - // Perform the delete. - preRequest( action ); - status = action.delete(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - assertHasMessages( action ); - - // Test the configuration. - assertEquals( 0, archivaConfiguration.getConfiguration().getProxyConnectors().size() ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws org.apache.archiva.redback.components.registry.RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java deleted file mode 100644 index c5ca57865..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright 2008 jdumay. - * - * Licensed 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. - * under the License. - */ - -package org.apache.archiva.web.action.admin.connectors.proxy; - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.components.registry.RegistryException; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; -import org.junit.Before; -import org.junit.Test; - -public class DisableProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private DisableProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (DisableProxyConnectorAction) getActionProxy( "/admin/disableProxyConnector.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( archivaConfiguration ); - } - - @Test - public void testConfirmDisableBadSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 4 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm disable screen, but provide - // a bad source id or target id to actually delete - - preRequest( action ); - action.setSource( "bad-source" ); // id doesn't exist. - action.setTarget( "bad-target" ); // id doesn't exist. - String status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( "bad" ); // Bad doesn't exist. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( "bad" ); // Bad doesn't exist. - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - @Test - public void testConfirmDisableNoSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm disable screen, but don't provide - // the source id or target id to actually delete - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( null ); // No target Id. - String status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( null ); // No target Id. - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmDisable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - @Test - public void testDelete() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - // Show the confirm the disable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDisable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - - // Perform the disable. - preRequest( action ); - status = action.disable(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - assertHasMessages( action ); - - // Test the configuration. - assertEquals( 1, archivaConfiguration.getConfiguration().getProxyConnectors().size() ); - ProxyConnectorConfiguration config = - (ProxyConnectorConfiguration) archivaConfiguration.getConfiguration().getProxyConnectors().get( 0 ); - assertTrue( config.isDisabled() ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testConfirmEnable() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Show the confirm the disable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmDisable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - - connector.setDisabled( false ); - - config.addProxyConnector( connector ); - - return config; - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - for ( int i = 0; i < requestConfigCount; i++ ) - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config ); - } - - archivaConfiguration.save( config ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java deleted file mode 100644 index 76df7c6f3..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/EditProxyConnectorActionTest.java +++ /dev/null @@ -1,485 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.beans.ProxyConnector; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.policies.CachedFailuresPolicy; -import org.apache.archiva.policies.ChecksumPolicy; -import org.apache.archiva.policies.PropagateErrorsDownloadPolicy; -import org.apache.archiva.policies.PropagateErrorsOnUpdateDownloadPolicy; -import org.apache.archiva.policies.ReleasesPolicy; -import org.apache.archiva.policies.SnapshotsPolicy; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.components.registry.RegistryException; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; - -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; - -/** - * EditProxyConnectorActionTest - * - * - */ -public class EditProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private EditProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (EditProxyConnectorAction) getActionProxy( "/admin/editProxyConnector.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - - - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws org.apache.archiva.redback.components.registry.RegistryException, IndeterminateConfigurationException - { - expectConfigurationRequests( requestConfigCount, 1 ); - } - - private void expectConfigurationRequests( int requestConfigCount, int saveRequestCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - archivaConfigurationControl.expectAndReturn( archivaConfiguration.getConfiguration(), config, - requestConfigCount , 20); - //archivaConfiguration.getConfiguration(); - //archivaConfigurationControl.setReturnValue( config, requestConfigCount ); - - for ( int i = 0; i <= saveRequestCount; i++ ) - { - archivaConfiguration.save( config ); - } - - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testAddBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getBlackListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setBlackListPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.addBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - } - - @Test - public void testAddProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no property pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getProperties().size() ); - - // Try again, but now with a property key/value to add. - action.setPropertyKey( "eat-a" ); - action.setPropertyValue( "gramov-a-bits" ); - preRequest( action ); - status = action.addProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property added. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - assertEquals( "gramov-a-bits", connector.getProperties().get( "eat-a" ) ); - } - - @Test - public void testAddWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Perform Test w/no values. - preRequest( action ); - String status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern added. - assertHasErrors( action ); - assertEquals( 0, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a pattern to add. - action.setWhiteListPattern( "**/*.jar" ); - preRequest( action ); - status = action.addWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern added. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - } - - @SuppressWarnings( "unchecked" ) - @Test - public void testEditProxyConnectorCommit() - throws Exception - { - expectConfigurationRequests( 9, 2 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - // forms will use an array - //connector.getProperties().put( "eat-a", new String[]{ "gramov-a-bits" } ); - // FIXME check the array mode - connector.getProperties().put( "eat-a", "gramov-a-bits" ); - - // Create the input screen. - assertRequestStatus( action, Action.SUCCESS, "commit" ); - assertNoErrors( action ); - - // Test configuration. - List proxyConfigs = archivaConfiguration.getConfiguration().getProxyConnectors(); - assertNotNull( proxyConfigs ); - assertEquals( 1, proxyConfigs.size() ); - - ProxyConnectorConfiguration actualConnector = proxyConfigs.get( 0 ); - - assertNotNull( actualConnector ); - // The use of "(direct connection)" should result in a proxyId which is . - assertNull( actualConnector.getProxyId() ); - assertEquals( "corporate", actualConnector.getSourceRepoId() ); - assertEquals( "central", actualConnector.getTargetRepoId() ); - - } - - @Test - public void testEditProxyConnectorInitialPage() - throws Exception - { - expectConfigurationRequests( 3 ); - archivaConfigurationControl.replay(); - - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - } - - @Test - public void testRemoveBlackListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Add some arbitrary blacklist patterns. - connector.addBlackListPattern( "**/*-javadoc.jar" ); - connector.addBlackListPattern( "**/*.war" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no blacklist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getBlackListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "**/*-javadoc.jar" ); - preRequest( action ); - status = action.removeBlackListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 blacklist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getBlackListPatterns().size() ); - assertEquals( "Should have left 1 blacklist pattern", "**/*.war", connector.getBlackListPatterns().get( 0 ) ); - } - - @Test - public void testRemoveProperty() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Add some arbitrary properties. - connector.addProperty( "username", "general-tso" ); - connector.addProperty( "password", "chicken" ); - - // Perform Test w/no property key. - preRequest( action ); - String status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Perform test w/invalid (non-existant) property key to remove. - preRequest( action ); - action.setPropertyKey( "slurm" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no properties removed. - assertHasErrors( action ); - assertEquals( 2, connector.getProperties().size() ); - - // Try again, but now with a valid property to remove. - preRequest( action ); - action.setPropertyKey( "password" ); - status = action.removeProperty(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 property left. - assertNoErrors( action ); - assertEquals( 1, connector.getProperties().size() ); - assertEquals( "Should have left 1 property", "general-tso", connector.getProperties().get( "username" ) ); - } - - @Test - public void testRemoveWhiteListPattern() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Prepare Test. - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - action.prepare(); - ProxyConnector connector = action.getConnector(); - assertInitialProxyConnector( connector ); - - // Add some arbitrary whitelist patterns. - connector.addWhiteListPattern( "javax/**/*" ); - connector.addWhiteListPattern( "com/sun/**/*" ); - - // Perform Test w/no pattern value. - preRequest( action ); - String status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Perform test w/invalid (non-existant) pattern value to remove. - preRequest( action ); - action.setPattern( "**/*oops*" ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have returned an error, with no whitelist pattern removed. - assertHasErrors( action ); - assertEquals( 2, connector.getWhiteListPatterns().size() ); - - // Try again, but now with a valid pattern to remove. - action.setPattern( "com/sun/**/*" ); - preRequest( action ); - status = action.removeWhiteListPattern(); - assertEquals( Action.INPUT, status ); - - // Should have no error, and 1 whitelist pattern left. - assertNoErrors( action ); - assertEquals( 1, connector.getWhiteListPatterns().size() ); - assertEquals( "Should have left 1 whitelist pattern", "javax/**/*", connector.getWhiteListPatterns().get( 0 ) ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - /* Configuration will be requested at least 3 times. */ - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration(), 3 ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private void assertInitialProxyConnector( ProxyConnector connector ) - { - assertNotNull( connector ); - assertNotNull( connector.getBlackListPatterns() ); - assertNotNull( connector.getWhiteListPatterns() ); - assertNotNull( connector.getProperties() ); - - assertEquals( TEST_SOURCE_ID, connector.getSourceRepoId() ); - assertEquals( TEST_TARGET_ID, connector.getTargetRepoId() ); - } - - @SuppressWarnings( "unchecked" ) - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - - // TODO: Set these options programatically via list of available policies. - Map policies = connector.getPolicies(); - policies.put( "releases", new ReleasesPolicy().getDefaultOption() ); - policies.put( "snapshots", new SnapshotsPolicy().getDefaultOption() ); - policies.put( "checksum", new ChecksumPolicy().getDefaultOption() ); - policies.put( "cache-failures", new CachedFailuresPolicy().getDefaultOption() ); - policies.put( "propagate-errors", new PropagateErrorsDownloadPolicy().getDefaultOption() ); - policies.put( "propagate-errors-on-update", new PropagateErrorsOnUpdateDownloadPolicy().getDefaultOption() ); - - config.addProxyConnector( connector ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java deleted file mode 100644 index cac2a6ac7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright 2008 jdumay. - * - * Licensed 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. - * under the License. - */ - -package org.apache.archiva.web.action.admin.connectors.proxy; - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; -import org.junit.Before; -import org.junit.Test; - -public class EnableProxyConnectorActionTest - extends AbstractWebworkTestCase -{ - private static final String TEST_TARGET_ID = "central"; - - private static final String TEST_SOURCE_ID = "corporate"; - - private EnableProxyConnectorAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - action = (EnableProxyConnectorAction) getActionProxy( "/admin/enableProxyConnector.action" ).getAction(); - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( archivaConfiguration ); - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws org.apache.archiva.redback.components.registry.RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config, requestConfigCount ); - archivaConfiguration.save( config ); - } - - @Test - public void testConfirmDeleteBadSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 4 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm enable screen, but provide - // a bad source id or target id to actually enable - - preRequest( action ); - action.setSource( "bad-source" ); // id doesn't exist. - action.setTarget( "bad-target" ); // id doesn't exist. - String status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( "bad" ); // Bad doesn't exist. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( "bad" ); // Bad doesn't exist. - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - @Test - public void testConfirmEnableNoSourceOrTarget() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Attempt to show the confirm enable screen, but don't provide - // the source id or target id to actually delete - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( null ); // No target Id. - String status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( null ); // No target Id. - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - - preRequest( action ); - action.setSource( null ); // No source Id. - action.setTarget( TEST_TARGET_ID ); - status = action.confirmEnable(); - // Should have resulted in an error. - assertEquals( Action.ERROR, status ); - assertHasErrors( action ); - } - - @Test - public void testEnable() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - // Show the confirm the enable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmEnable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - - // Perform the delete. - preRequest( action ); - status = action.enable(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - assertHasMessages( action ); - - // Test the configuration. - assertEquals( 1, archivaConfiguration.getConfiguration().getProxyConnectors().size() ); - ProxyConnectorConfiguration config = - (ProxyConnectorConfiguration) archivaConfiguration.getConfiguration().getProxyConnectors().get( 0 ); - assertFalse( config.isDisabled() ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testConfirmEnable() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - // Show the confirm the enable of proxy connector screen. - preRequest( action ); - action.setSource( TEST_SOURCE_ID ); - action.setTarget( TEST_TARGET_ID ); - String status = action.confirmEnable(); - assertEquals( Action.INPUT, status ); - assertNoErrors( action ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( TEST_SOURCE_ID ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( TEST_TARGET_ID ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( TEST_SOURCE_ID ); - connector.setTargetRepoId( TEST_TARGET_ID ); - connector.setDisabled( true ); - - config.addProxyConnector( connector ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java deleted file mode 100644 index f9d93a196..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/ProxyConnectorsActionTest.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.components.registry.RegistryException; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; -import org.junit.Before; -import org.junit.Test; - -/** - * ProxyConnectorsActionTest - * - * - */ -public class ProxyConnectorsActionTest - extends AbstractWebworkTestCase -{ - private static final String JAVAX = "javax"; - - private static final String CENTRAL = "central"; - - private static final String CORPORATE = "corporate"; - - private ProxyConnectorsAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (ProxyConnectorsAction) getActionProxy( "/admin/proxyConnectors.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testExecute() - throws Exception - { - expectConfigurationRequests( 5 ); - archivaConfigurationControl.replay(); - - action.prepare(); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - assertNoErrors( action ); - - assertNotNull( action.getProxyConnectorMap() ); - assertNotNull( action.getRepoMap() ); - - assertEquals( 1, action.getProxyConnectorMap().size() ); - assertEquals( 3, action.getRepoMap().size() ); - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config, requestConfigCount + 1 ); - - archivaConfiguration.save( config ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( CORPORATE ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( CENTRAL ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - - config.addRemoteRepository( remoteRepo ); - - remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( JAVAX ); - remoteRepo.setUrl( "http://download.java.net/maven/2/" ); - - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( CENTRAL ); - - config.addProxyConnector( connector ); - - connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( JAVAX ); - - config.addProxyConnector( connector ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java deleted file mode 100644 index b59e2a4bd..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/connectors/proxy/SortProxyConnectorsActionTest.java +++ /dev/null @@ -1,264 +0,0 @@ -package org.apache.archiva.web.action.admin.connectors.proxy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.proxyconnector.DefaultProxyConnectorAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.commons.lang.StringUtils; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.configuration.functors.ProxyConnectorConfigurationOrderComparator; -import org.apache.archiva.web.action.AbstractWebworkTestCase; -import org.apache.archiva.redback.components.registry.RegistryException; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; - -import java.util.Collections; -import java.util.List; -import org.junit.Before; -import org.junit.Test; - -/** - * SortProxyConnectorsActionTest - * - * - */ -public class SortProxyConnectorsActionTest - extends AbstractWebworkTestCase -{ - private static final String JAVAX = "javax"; - - private static final String CENTRAL = "central"; - - private static final String CORPORATE = "corporate"; - - private static final String CODEHAUS = "codehaus"; - - private SortProxyConnectorsAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (SortProxyConnectorsAction) getActionProxy( "/admin/sortUpProxyConnector.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultProxyConnectorAdmin) action.getProxyConnectorAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - private void expectConfigurationRequests( int requestConfigCount ) - throws RegistryException, IndeterminateConfigurationException - { - Configuration config = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( config, requestConfigCount ); - - archivaConfiguration.save( config ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - expectConfigurationRequests( 1 ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testSortDown() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - action.setSource( CORPORATE ); - action.setTarget( CENTRAL ); - String status = action.sortDown(); - assertEquals( Action.SUCCESS, status ); - - assertOrder( new String[]{ JAVAX, CENTRAL, CODEHAUS } ); - } - - @Test - public void testSortDownPastEnd() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Ask the last connector to sort down (essentially a no-op) - action.setSource( CORPORATE ); - action.setTarget( CODEHAUS ); - String status = action.sortDown(); - assertEquals( Action.SUCCESS, status ); - - // No order change. - assertOrder( new String[]{ CENTRAL, JAVAX, CODEHAUS } ); - } - - @Test - public void testSortUp() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - action.setSource( CORPORATE ); - action.setTarget( CODEHAUS ); - String status = action.sortUp(); - assertEquals( Action.SUCCESS, status ); - - assertOrder( new String[]{ CENTRAL, CODEHAUS, JAVAX } ); - } - - @Test - public void testSortUpPastBeginning() - throws Exception - { - expectConfigurationRequests( 7 ); - archivaConfigurationControl.replay(); - - // Ask the first connector to sort up (essentially a no-op) - action.setSource( CORPORATE ); - action.setTarget( CENTRAL ); - String status = action.sortUp(); - assertEquals( Action.SUCCESS, status ); - - // No order change. - assertOrder( new String[]{ CENTRAL, JAVAX, CODEHAUS } ); - } - - private void assertOrder( String[] targetRepoOrder ) - { - List connectors = archivaConfiguration.getConfiguration().getProxyConnectors(); - Collections.sort( connectors, ProxyConnectorConfigurationOrderComparator.getInstance() ); - - for ( ProxyConnectorConfiguration connector : connectors ) - { - assertEquals( "All connectors in list should have the same source id (in this test)", CORPORATE, - connector.getSourceRepoId() ); - } - - assertEquals( targetRepoOrder.length, connectors.size() ); - - int orderFailedAt = ( -1 ); - for ( int i = 0; i < targetRepoOrder.length; i++ ) - { - if ( !StringUtils.equals( targetRepoOrder[i], connectors.get( i ).getTargetRepoId() ) ) - { - orderFailedAt = i; - break; - } - } - - if ( orderFailedAt >= 0 ) - { - StringBuilder msg = new StringBuilder(); - - msg.append( "Failed expected order of the proxy connectors <" ); - msg.append( StringUtils.join( targetRepoOrder, ", " ) ); - msg.append( ">, actual <" ); - - boolean needsComma = false; - for ( ProxyConnectorConfiguration proxy : connectors ) - { - if ( needsComma ) - { - msg.append( ", " ); - } - msg.append( proxy.getTargetRepoId() ); - needsComma = true; - } - msg.append( "> failure at index <" ).append( orderFailedAt ).append( ">." ); - - fail( msg.toString() ); - } - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo = new ManagedRepositoryConfiguration(); - managedRepo.setId( CORPORATE ); - managedRepo.setLayout( "${java.io.tmpdir}/archiva-test/managed-repo" ); - managedRepo.setReleases( true ); - config.addManagedRepository( managedRepo ); - - RemoteRepositoryConfiguration remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( CENTRAL ); - remoteRepo.setUrl( "http://repo1.maven.org/maven2/" ); - config.addRemoteRepository( remoteRepo ); - - remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( JAVAX ); - remoteRepo.setUrl( "http://download.java.net/maven/2/" ); - config.addRemoteRepository( remoteRepo ); - - remoteRepo = new RemoteRepositoryConfiguration(); - remoteRepo.setId( CODEHAUS ); - remoteRepo.setUrl( "http://repository.codehaus.org/" ); - config.addRemoteRepository( remoteRepo ); - - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( CENTRAL ); - connector.setOrder( 1 ); - config.addProxyConnector( connector ); - - connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( JAVAX ); - connector.setOrder( 2 ); - config.addProxyConnector( connector ); - - connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( CORPORATE ); - connector.setTargetRepoId( CODEHAUS ); - connector.setOrder( 3 ); - config.addProxyConnector( connector ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathActionTest.java deleted file mode 100644 index e43db473b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/legacy/AddLegacyArtifactPathActionTest.java +++ /dev/null @@ -1,265 +0,0 @@ -package org.apache.archiva.web.action.admin.legacy; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ActionValidatorManager; -import junit.framework.TestCase; -import org.apache.archiva.admin.model.beans.LegacyArtifactPath; -import org.apache.archiva.web.validator.utils.ValidatorUtil; -import org.apache.archiva.web.action.admin.repositories.DefaultActionValidatorManagerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class AddLegacyArtifactPathActionTest - extends TestCase -{ - private static final String EMPTY_STRING = ""; - - // valid inputs - private static final String LEGACY_ARTIFACT_PATH_PATH_VALID_INPUT = "-abcXYZ0129._/\\"; - - private static final String GROUP_ID_VALID_INPUT = "abcXYZ0129._-"; - - private static final String ARTIFACT_ID_VALID_INPUT = "abcXYZ0129._-"; - - private static final String VERSION_VALID_INPUT = "abcXYZ0129._-"; - - private static final String CLASSIFIER_VALID_INPUT = "abcXYZ0129._-"; - - private static final String TYPE_VALID_INPUT = "abcXYZ0129._-"; - - // invalid inputs - private static final String LEGACY_ARTIFACT_PATH_PATH_INVALID_INPUT = "<> ~+[ ]'\""; - - private static final String GROUP_ID_INVALID_INPUT = "<> \\/~+[ ]'\""; - - private static final String ARTIFACT_ID_INVALID_INPUT = "<> \\/~+[ ]'\""; - - private static final String VERSION_INVALID_INPUT = "<> \\/~+[ ]'\""; - - private static final String CLASSIFIER_INVALID_INPUT = "<> \\/~+[ ]'\""; - - private static final String TYPE_INVALID_INPUT = "<> \\/~+[ ]'\""; - - // testing requisite - private AddLegacyArtifactPathAction addLegacyArtifactPathAction; - - private ActionValidatorManager actionValidatorManager; - - @Override - @Before - public void setUp() - throws Exception - { - addLegacyArtifactPathAction = new AddLegacyArtifactPathAction(); - - DefaultActionValidatorManagerFactory factory = new DefaultActionValidatorManagerFactory(); - - actionValidatorManager = factory.createDefaultActionValidatorManager(); - } - - @Test - public void testStruts2ValidationFrameworkWithNullInputs() - throws Exception - { - // prep - LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( null ); - populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, null, null, null, - null, null ); - - // test - actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING ); - - // verify - assertTrue( addLegacyArtifactPathAction.hasFieldErrors() ); - - Map> fieldErrors = addLegacyArtifactPathAction.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a legacy path." ); - expectedFieldErrors.put( "legacyArtifactPath.path", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a groupId." ); - expectedFieldErrors.put( "groupId", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter an artifactId." ); - expectedFieldErrors.put( "artifactId", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a version." ); - expectedFieldErrors.put( "version", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a type." ); - expectedFieldErrors.put( "type", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithBlankInputs() - throws Exception - { - // prep - LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( EMPTY_STRING ); - populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, EMPTY_STRING, - EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING ); - - // test - actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING ); - - // verify - assertTrue( addLegacyArtifactPathAction.hasFieldErrors() ); - - Map> fieldErrors = addLegacyArtifactPathAction.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a legacy path." ); - expectedFieldErrors.put( "legacyArtifactPath.path", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a groupId." ); - expectedFieldErrors.put( "groupId", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter an artifactId." ); - expectedFieldErrors.put( "artifactId", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a version." ); - expectedFieldErrors.put( "version", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a type." ); - expectedFieldErrors.put( "type", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithInvalidInputs() - throws Exception - { - // prep - LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( LEGACY_ARTIFACT_PATH_PATH_INVALID_INPUT ); - populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, - GROUP_ID_INVALID_INPUT, ARTIFACT_ID_INVALID_INPUT, - VERSION_INVALID_INPUT, CLASSIFIER_INVALID_INPUT, - TYPE_INVALID_INPUT ); - - // test - actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING ); - - // verify - assertTrue( addLegacyArtifactPathAction.hasFieldErrors() ); - - Map> fieldErrors = addLegacyArtifactPathAction.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Legacy path must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "legacyArtifactPath.path", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Group id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "groupId", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Artifact id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "artifactId", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Version must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "version", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Classifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "classifier", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Type must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "type", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithValidInputs() - throws Exception - { - // prep - LegacyArtifactPath legacyArtifactPath = createLegacyArtifactPath( LEGACY_ARTIFACT_PATH_PATH_VALID_INPUT ); - populateAddLegacyArtifactPathActionFields( addLegacyArtifactPathAction, legacyArtifactPath, - GROUP_ID_VALID_INPUT, ARTIFACT_ID_VALID_INPUT, VERSION_VALID_INPUT, - CLASSIFIER_VALID_INPUT, TYPE_VALID_INPUT ); - - // test - actionValidatorManager.validate( addLegacyArtifactPathAction, EMPTY_STRING ); - - // verify - assertFalse( addLegacyArtifactPathAction.hasFieldErrors() ); - } - - private LegacyArtifactPath createLegacyArtifactPath( String path ) - { - LegacyArtifactPath legacyArtifactPath = new LegacyArtifactPath(); - legacyArtifactPath.setPath( path ); - return legacyArtifactPath; - } - - private void populateAddLegacyArtifactPathActionFields( AddLegacyArtifactPathAction addLegacyArtifactPathAction, - LegacyArtifactPath legacyArtifactPath, String groupId, - String artifactId, String version, String classifier, - String type ) - { - addLegacyArtifactPathAction.setLegacyArtifactPath( legacyArtifactPath ); - addLegacyArtifactPathAction.setGroupId( groupId ); - addLegacyArtifactPathAction.setArtifactId( artifactId ); - addLegacyArtifactPathAction.setVersion( version ); - addLegacyArtifactPathAction.setClassifier( classifier ); - addLegacyArtifactPathAction.setType( type ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyActionTest.java deleted file mode 100644 index 937000b99..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/networkproxies/ConfigureNetworkProxyActionTest.java +++ /dev/null @@ -1,230 +0,0 @@ -package org.apache.archiva.web.action.admin.networkproxies; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ActionValidatorManager; -import junit.framework.TestCase; -import org.apache.archiva.admin.model.beans.NetworkProxy; -import org.apache.archiva.web.validator.utils.ValidatorUtil; -import org.apache.archiva.web.action.admin.repositories.DefaultActionValidatorManagerFactory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class ConfigureNetworkProxyActionTest extends TestCase -{ - private static final String EMPTY_STRING = ""; - - private static final String VALIDATION_CONTEXT = "saveNetworkProxy"; - - // valid inputs - private static final String PROXY_ID_VALID_INPUT = "abcXYZ0129._-"; - - private static final String PROXY_PROTOCOL_VALID_INPUT = "-abcXYZ0129./:\\"; - - private static final String PROXY_HOST_VALID_INPUT = "abcXYZ0129._/\\~:?!&=-"; - - private static final int PROXY_PORT_VALID_INPUT = 8080; - - private static final String PROXY_USERNAME_VALID_INPUT = "abcXYZ0129.@/_-\\"; - - // invalid inputs - private static final String PROXY_ID_INVALID_INPUT = "<> \\/~+[ ]'\""; - - private static final String PROXY_PROTOCOL_INVALID_INPUT = "<> ~+[ ]'\""; - - private static final String PROXY_HOST_INVALID_INPUT = "<> ~+[ ]'\""; - - private static final int PROXY_PORT_INVALID_INPUT = 0; - - private static final String PROXY_USERNAME_INVALID_INPUT = "<> ~+[ ]'\""; - - // testing requisite - private ConfigureNetworkProxyAction configureNetworkProxyAction; - - private ActionValidatorManager actionValidatorManager; - - @Override - @Before - public void setUp() - throws Exception - { - configureNetworkProxyAction = new ConfigureNetworkProxyAction(); - - DefaultActionValidatorManagerFactory factory = new DefaultActionValidatorManagerFactory(); - - actionValidatorManager = factory.createDefaultActionValidatorManager(); - } - - @Test - public void testStruts2ValidationFrameworkWithNullInputs() throws Exception - { - // prep - NetworkProxy networkProxy = createNetworkProxy(null, null, null, null); - configureNetworkProxyAction.setProxy(networkProxy); - - // test - actionValidatorManager.validate(configureNetworkProxyAction, VALIDATION_CONTEXT); - - // verify - assertTrue(configureNetworkProxyAction.hasFieldErrors()); - - Map> fieldErrors = configureNetworkProxyAction.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("You must enter an identifier."); - expectedFieldErrors.put("proxy.id", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("You must enter a protocol."); - expectedFieldErrors.put("proxy.protocol", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("You must enter a host."); - expectedFieldErrors.put("proxy.host", expectedErrorMessages); - - ValidatorUtil.assertFieldErrors(expectedFieldErrors, fieldErrors); - } - - @Test - public void testStruts2ValidationFrameworkWithBlankInputs() throws Exception - { - // prep - NetworkProxy networkProxy = createNetworkProxy(EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING); - configureNetworkProxyAction.setProxy(networkProxy); - - // test - actionValidatorManager.validate(configureNetworkProxyAction, VALIDATION_CONTEXT); - - // verify - assertTrue(configureNetworkProxyAction.hasFieldErrors()); - - Map> fieldErrors = configureNetworkProxyAction.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("You must enter an identifier."); - expectedFieldErrors.put("proxy.id", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("You must enter a protocol."); - expectedFieldErrors.put("proxy.protocol", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("You must enter a host."); - expectedFieldErrors.put("proxy.host", expectedErrorMessages); - - ValidatorUtil.assertFieldErrors(expectedFieldErrors, fieldErrors); - } - - @Test - public void testStruts2ValidationFrameworkWithInvalidInputs() throws Exception - { - // prep - NetworkProxy networkProxy = createNetworkProxy( PROXY_ID_INVALID_INPUT, PROXY_HOST_INVALID_INPUT, - PROXY_PORT_INVALID_INPUT, PROXY_PROTOCOL_INVALID_INPUT, - PROXY_USERNAME_INVALID_INPUT ); - configureNetworkProxyAction.setProxy(networkProxy); - - // test - actionValidatorManager.validate(configureNetworkProxyAction, VALIDATION_CONTEXT); - - // verify - assertTrue(configureNetworkProxyAction.hasFieldErrors()); - - Map> fieldErrors = configureNetworkProxyAction.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("Proxy id must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)."); - expectedFieldErrors.put("proxy.id", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("Protocol must only contain alphanumeric characters, forward-slashes(/), back-slashes(\\), dots(.), colons(:), and dashes(-)."); - expectedFieldErrors.put("proxy.protocol", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("Host must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)."); - expectedFieldErrors.put("proxy.host", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("Port needs to be larger than 1"); - expectedFieldErrors.put("proxy.port", expectedErrorMessages); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add("Username must only contain alphanumeric characters, at's(@), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), and dashes(-)."); - expectedFieldErrors.put("proxy.username", expectedErrorMessages); - - ValidatorUtil.assertFieldErrors(expectedFieldErrors, fieldErrors); - } - - @Test - public void testStruts2ValidationFrameworkWithValidInputs() throws Exception - { - // prep - NetworkProxy networkProxy = createNetworkProxy(PROXY_ID_VALID_INPUT, PROXY_HOST_VALID_INPUT, PROXY_PORT_VALID_INPUT, PROXY_PROTOCOL_VALID_INPUT, PROXY_USERNAME_VALID_INPUT); - configureNetworkProxyAction.setProxy(networkProxy); - - // test - actionValidatorManager.validate(configureNetworkProxyAction, VALIDATION_CONTEXT); - - // verify - assertFalse(configureNetworkProxyAction.hasFieldErrors()); - } - - private NetworkProxy createNetworkProxy(String id, String host, int port, String protocol, String username) - { - NetworkProxy networkProxy = new NetworkProxy(); - networkProxy.setId( id ); - networkProxy.setHost( host ); - networkProxy.setPort( port ); - networkProxy.setProtocol( protocol ); - networkProxy.setUsername( username ); - return networkProxy; - } - - // over-loaded - // for simulating empty/null form purposes; excluding primitive data-typed values - private NetworkProxy createNetworkProxy(String id, String host, String protocol, String username) - { - NetworkProxy networkProxy = new NetworkProxy(); - networkProxy.setId( id ); - networkProxy.setHost( host ); - networkProxy.setProtocol( protocol ); - networkProxy.setUsername( username ); - return networkProxy; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java deleted file mode 100644 index d25abd434..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java +++ /dev/null @@ -1,150 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.validator.ActionValidatorManager; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.struts2.StrutsSpringTestCase; - -import java.io.File; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.Before; -import org.junit.runner.RunWith; -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public abstract class AbstractManagedRepositoryActionTest - extends StrutsSpringTestCase -{ - protected static final String EMPTY_STRING = ""; - - // valid inputs; validation testing - protected static final String REPOSITORY_ID_VALID_INPUT = "abcXYZ0129._-"; - - protected static final String REPOSITORY_LOCATION_VALID_INPUT = "abcXYZ0129._/\\~:?!&=-"; - - protected static final String REPOSITORY_INDEX_DIR_VALID_INPUT = "abcXYZ0129._/\\~:?!&=-"; - - protected static final String REPOSITORY_NAME_VALID_INPUT = "abcXYZ 0129.)/ _(-"; - - protected static final int REPOSITORY_RETENTION_COUNT_VALID_INPUT = 1; - - protected static final int REPOSITORY_DAYS_OLDER_VALID_INPUT = 1; - - // invalid inputs; validation testing - protected static final String REPOSITORY_ID_INVALID_INPUT = "<> \\/~+[ ]'\""; - - protected static final String REPOSITORY_LOCATION_INVALID_INPUT = "<> ~+[ ]'\""; - - protected static final String REPOSITORY_INDEX_DIR_INVALID_INPUT = "<> ~+[ ]'\""; - - protected static final String REPOSITORY_NAME_INVALID_INPUT = "<>\\~+[]'\""; - - protected static final int REPOSITORY_RETENTION_COUNT_INVALID_INPUT = 101; - - protected static final int REPOSITORY_DAYS_OLDER_INVALID_INPUT = -1; - - // testing requisite; validation testing - protected ActionValidatorManager actionValidatorManager; - - protected static final String REPO_ID = "repo-ident"; - - protected File location; - - @Override - protected String[] getContextLocations() - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - DefaultActionValidatorManagerFactory defaultActionValidatorManagerFactory = - new DefaultActionValidatorManagerFactory(); - - actionValidatorManager = defaultActionValidatorManagerFactory.createDefaultActionValidatorManager(); - } - - protected void populateRepository( ManagedRepository repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setLocation( location.getAbsolutePath() ); - repository.setLayout( "default" ); - repository.setCronExpression( "* 0/5 * * * ?" ); - repository.setDaysOlder( 31 ); - repository.setRetentionCount( 20 ); - repository.setReleases( true ); - repository.setSnapshots( false ); - repository.setScanned( false ); - repository.setDeleteReleasedSnapshots( true ); - } - - protected ManagedRepository createManagedRepository( String id, String name, String location ) - { - ManagedRepository managedRepositoryConfiguration = new ManagedRepository(); - - managedRepositoryConfiguration.setId( id ); - managedRepositoryConfiguration.setName( name ); - managedRepositoryConfiguration.setLocation( location ); - - return managedRepositoryConfiguration; - } - - // over-loaded - // for simulating empty/null form purposes; excluding primitive data-typed values - protected ManagedRepository createManagedRepository( String id, String name, String location, - String indexDir ) - { - ManagedRepository managedRepositoryConfiguration = new ManagedRepository(); - - managedRepositoryConfiguration.setId( id ); - managedRepositoryConfiguration.setName( name ); - managedRepositoryConfiguration.setLocation( location ); - managedRepositoryConfiguration.setIndexDirectory( indexDir ); - - return managedRepositoryConfiguration; - } - - protected ManagedRepository createManagedRepository( String id, String name, String location, String indexDir, - int daysOlder, int retentionCount ) - { - ManagedRepository managedRepositoryConfiguration = new ManagedRepository(); - - managedRepositoryConfiguration.setId( id ); - managedRepositoryConfiguration.setName( name ); - managedRepositoryConfiguration.setLocation( location ); - managedRepositoryConfiguration.setIndexDirectory( indexDir ); - managedRepositoryConfiguration.setDaysOlder( daysOlder ); - managedRepositoryConfiguration.setRetentionCount( retentionCount ); - - return managedRepositoryConfiguration; - } - - - protected ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return applicationContext.getBean( ManagedRepositoryAdmin.class ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java deleted file mode 100644 index 15dd9f78c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java +++ /dev/null @@ -1,398 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.repository.DefaultRepositoryCommonValidator; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.apache.archiva.redback.role.RoleManager; -import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; -import org.apache.archiva.scheduler.repository.RepositoryTask; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.validator.utils.ValidatorUtil; -import org.apache.commons.io.FileUtils; -import org.easymock.MockControl; -import org.easymock.classextension.MockClassControl; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; - -/** - * AddManagedRepositoryActionTest - * - * - */ -public class AddManagedRepositoryActionTest - extends AbstractManagedRepositoryActionTest -{ - private AddManagedRepositoryAction action; - - private RoleManager roleManager; - - private MockControl roleManagerControl; - - private MockControl archivaConfigurationControl; - - private org.apache.archiva.redback.components.registry.Registry registry; - - private MockControl registryControl; - - private ArchivaConfiguration archivaConfiguration; - - private MockControl repositoryTaskSchedulerControl; - - private RepositoryArchivaTaskScheduler repositoryTaskScheduler; - - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = new AddManagedRepositoryAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - roleManagerControl = MockControl.createControl( RoleManager.class ); - roleManager = (RoleManager) roleManagerControl.getMock(); - - registryControl = MockControl.createControl( org.apache.archiva.redback.components.registry.Registry.class ); - registry = (org.apache.archiva.redback.components.registry.Registry) registryControl.getMock(); - //action.setRegistry( registry ); - - repositoryTaskSchedulerControl = MockClassControl.createControl( RepositoryArchivaTaskScheduler.class ); - repositoryTaskScheduler = (RepositoryArchivaTaskScheduler) repositoryTaskSchedulerControl.getMock(); - - location = new File( System.getProperty( "basedir" ), "target/test/location" ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setArchivaConfiguration( archivaConfiguration ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRoleManager( roleManager ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRegistry( registry ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryTaskScheduler( - repositoryTaskScheduler ); - - DefaultRepositoryCommonValidator defaultRepositoryCommonValidator = new DefaultRepositoryCommonValidator(); - defaultRepositoryCommonValidator.setArchivaConfiguration( archivaConfiguration ); - defaultRepositoryCommonValidator.setRegistry( registry ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryCommonValidator( - defaultRepositoryCommonValidator ); - - action.setRepositoryCommonValidator( defaultRepositoryCommonValidator ); - - action.setManagedRepositoryAdmin( getManagedRepositoryAdmin() ); - - } - - @Test - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testAddRepositoryInitialPage() - throws Exception - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - ManagedRepository configuration = action.getRepository(); - assertNotNull( configuration ); - assertNull( configuration.getId() ); - // check all booleans are false - assertFalse( configuration.isDeleteReleasedSnapshots() ); - assertFalse( configuration.isScanned() ); - assertFalse( configuration.isReleases() ); - assertFalse( configuration.isSnapshots() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - - // check defaults - assertFalse( configuration.isDeleteReleasedSnapshots() ); - assertTrue( configuration.isScanned() ); - assertTrue( configuration.isReleases() ); - assertFalse( configuration.isSnapshots() ); - } - - @Test - public void testAddRepository() - throws Exception - { - FileUtils.deleteDirectory( location ); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setVoidCallable(); - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManagerControl.replay(); - - registry.getString( "appserver.base", "${appserver.base}" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - registry.getString( "appserver.home", "${appserver.home}" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - - registryControl.replay(); - - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( REPO_ID ); - repositoryTaskScheduler.isProcessingRepositoryTask( REPO_ID ); - repositoryTaskSchedulerControl.setReturnValue( false ); - repositoryTaskScheduler.queueTask( task ); - repositoryTaskSchedulerControl.setVoidCallable(); - repositoryTaskSchedulerControl.replay(); - - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - ManagedRepository repository = action.getRepository(); - populateRepository( repository ); - - assertFalse( location.exists() ); - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - assertTrue( location.exists() ); - - assertEquals( Collections.singletonList( repository ), getManagedRepositoryAdmin().getManagedRepositories() ); - assertEquals( location.getCanonicalPath(), new File( repository.getLocation() ).getCanonicalPath() ); - - roleManagerControl.verify(); - archivaConfigurationControl.verify(); - registryControl.verify(); - } - - - @Test - public void testAddRepositoryExistingLocation() - throws Exception - { - if ( !location.exists() ) - { - location.mkdirs(); - } - - registry.getString( "appserver.base", "${appserver.base}" ); - registryControl.setReturnValue( "target/test" ); - registry.getString( "appserver.home", "${appserver.home}" ); - registryControl.setReturnValue( "target/test" ); - - registryControl.replay(); - - action.prepare(); - ManagedRepository repository = action.getRepository(); - populateRepository( repository ); - - assertTrue( location.exists() ); - String status = action.commit(); - assertEquals( AddManagedRepositoryAction.CONFIRM, status ); - assertEquals( location.getCanonicalPath(), new File( repository.getLocation() ).getCanonicalPath() ); - registryControl.verify(); - } - - @Test - public void testStruts2ValidationFrameworkWithNullInputs() - throws Exception - { - // prep - // 0 is the default value for primitive int; null for objects - ManagedRepository managedRepositoryConfiguration = createManagedRepository( null, null, null, null ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository identifier." ); - expectedFieldErrors.put( "repository.id", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a directory." ); - expectedFieldErrors.put( "repository.location", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository name." ); - expectedFieldErrors.put( "repository.name", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithBlankInputs() - throws Exception - { - // prep - // 0 is the default value for primitive int - ManagedRepository managedRepositoryConfiguration = - createManagedRepository( EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository identifier." ); - expectedFieldErrors.put( "repository.id", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a directory." ); - expectedFieldErrors.put( "repository.location", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository name." ); - expectedFieldErrors.put( "repository.name", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithInvalidInputs() - throws Exception - { - // prep - ManagedRepository managedRepositoryConfiguration = - createManagedRepository( REPOSITORY_ID_INVALID_INPUT, REPOSITORY_NAME_INVALID_INPUT, - REPOSITORY_LOCATION_INVALID_INPUT, REPOSITORY_INDEX_DIR_INVALID_INPUT, - REPOSITORY_DAYS_OLDER_INVALID_INPUT, REPOSITORY_RETENTION_COUNT_INVALID_INPUT ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "repository.id", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." ); - expectedFieldErrors.put( "repository.location", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "repository.name", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." ); - expectedFieldErrors.put( "repository.indexDirectory", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "Repository Purge By Retention Count needs to be between 1 and 100." ); - expectedFieldErrors.put( "repository.retentionCount", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "Repository Purge By Days Older Than needs to be larger than 0." ); - expectedFieldErrors.put( "repository.daysOlder", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithValidInputs() - throws Exception - { - // prep - ManagedRepository managedRepositoryConfiguration = - createManagedRepository( REPOSITORY_ID_VALID_INPUT, REPOSITORY_NAME_VALID_INPUT, - REPOSITORY_LOCATION_VALID_INPUT, REPOSITORY_INDEX_DIR_VALID_INPUT, - REPOSITORY_DAYS_OLDER_VALID_INPUT, REPOSITORY_RETENTION_COUNT_VALID_INPUT ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertFalse( action.hasFieldErrors() ); - } - - // TODO: test errors during add, other actions -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java deleted file mode 100644 index c51fd8bd8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/AddRemoteRepositoryActionTest.java +++ /dev/null @@ -1,139 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.easymock.MockControl; - -import java.util.Collections; -import org.junit.Before; -import org.junit.Test; - -/** - * AddRemoteRepositoryActionTest - * - * - */ -public class AddRemoteRepositoryActionTest - extends AbstractActionTestCase -{ - private AddRemoteRepositoryAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private static final String REPO_ID = "remote-repo-ident"; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (AddRemoteRepositoryAction) getActionProxy( "/admin/addRemoteRepository.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testSecureActionBundle() - throws Exception - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testAddRemoteRepositoryInitialPage() - throws Exception - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - RemoteRepository configuration = action.getRepository(); - assertNotNull( configuration ); - assertNull( configuration.getId() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - } - - @Test - public void testAddRemoteRepository() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - - archivaConfiguration.save( configuration ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 1 ); - - archivaConfigurationControl.replay(); - - action.prepare(); - RemoteRepository repository = action.getRepository(); - populateRepository( repository ); - - assertEquals( "url ", repository.getUrl() ); - - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - - assertEquals( Collections.singletonList( repository ), - action.getRemoteRepositoryAdmin().getRemoteRepositories() ); - - assertEquals( "url", repository.getUrl() ); - - archivaConfigurationControl.verify(); - } - - private void populateRepository( RemoteRepository repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setUrl( "url " ); - repository.setLayout( "default" ); - } - - // TODO: test errors during add, other actions -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DefaultActionValidatorManagerFactory.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DefaultActionValidatorManagerFactory.java deleted file mode 100644 index 6ad924b09..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DefaultActionValidatorManagerFactory.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.DefaultTextProvider; -import com.opensymphony.xwork2.ObjectFactory; -import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.conversion.ObjectTypeDeterminer; -import com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer; -import com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter; -import com.opensymphony.xwork2.conversion.impl.XWorkConverter; -import com.opensymphony.xwork2.inject.Container; -import com.opensymphony.xwork2.inject.ContainerBuilder; -import com.opensymphony.xwork2.inject.Scope; -import com.opensymphony.xwork2.ognl.OgnlReflectionProvider; -import com.opensymphony.xwork2.ognl.OgnlUtil; -import com.opensymphony.xwork2.ognl.OgnlValueStackFactory; -import com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor; -import com.opensymphony.xwork2.util.CompoundRoot; -import com.opensymphony.xwork2.util.ValueStack; -import com.opensymphony.xwork2.util.ValueStackFactory; -import com.opensymphony.xwork2.util.reflection.ReflectionProvider; -import com.opensymphony.xwork2.validator.ActionValidatorManager; -import com.opensymphony.xwork2.validator.DefaultActionValidatorManager; -import com.opensymphony.xwork2.validator.DefaultValidatorFactory; -import com.opensymphony.xwork2.validator.DefaultValidatorFileParser; -import ognl.PropertyAccessor; - -import java.util.HashMap; - -/** - * Factory for creating the DefaultActionValidatorManager to be used for the validation tests. - */ -public class DefaultActionValidatorManagerFactory -{ - - // ObjectFactory.setObjectFactory(..) was removed in struts 2.1, so we have to workaround with this - // to make the validation tests work - public ActionValidatorManager createDefaultActionValidatorManager() - throws ClassNotFoundException - { - Container container = createBootstrapContainer(); - - ActionContext context = new ActionContext( new HashMap() ); - context.setValueStack( createValueStack( container ) ); - ActionContext.setContext( context ); - - OgnlReflectionProvider reflectionProvider = new OgnlReflectionProvider(); - - reflectionProvider.setOgnlUtil( container.getInstance( OgnlUtil.class ) ); - - ObjectFactory objectFactory = new ObjectFactory(); - objectFactory.setReflectionProvider( reflectionProvider ); - - DefaultValidatorFileParser fileParser = new DefaultValidatorFileParser(); - fileParser.setObjectFactory( objectFactory ); - - DefaultValidatorFactory validatorFactory = new DefaultValidatorFactory( objectFactory, fileParser ); - - DefaultActionValidatorManager defaultValidatorManager = new DefaultActionValidatorManager(); - defaultValidatorManager.setValidatorFactory( validatorFactory ); - defaultValidatorManager.setValidatorFileParser( fileParser ); - - return defaultValidatorManager; - } - - private ValueStack createValueStack( Container container ) - throws ClassNotFoundException - { - OgnlValueStackFactory stackFactory = new OgnlValueStackFactory(); - - stackFactory.setXWorkConverter( container.getInstance( XWorkConverter.class ) ); - stackFactory.setContainer( container ); - stackFactory.setTextProvider( container.getInstance( TextProvider.class ) ); - - ValueStack stack = stackFactory.createValueStack(); - - return stack; - } - - private Container createBootstrapContainer() - { - ContainerBuilder builder = new ContainerBuilder(); - builder.factory( ObjectFactory.class, Scope.SINGLETON ); - builder.factory( ReflectionProvider.class, OgnlReflectionProvider.class, Scope.SINGLETON ); - builder.factory( ValueStackFactory.class, OgnlValueStackFactory.class, Scope.SINGLETON ); - builder.factory( XWorkConverter.class, Scope.SINGLETON ); - builder.factory( XWorkBasicConverter.class, Scope.SINGLETON ); - builder.factory( TextProvider.class, "system", DefaultTextProvider.class, Scope.SINGLETON ); - builder.factory( ObjectTypeDeterminer.class, DefaultObjectTypeDeterminer.class, Scope.SINGLETON ); - builder.factory( PropertyAccessor.class, CompoundRoot.class.getName(), CompoundRootAccessor.class, Scope.SINGLETON ); - builder.factory( OgnlUtil.class, Scope.SINGLETON ); - builder.constant( "devMode", "false" ); - - return builder.create( true ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java deleted file mode 100644 index 33370b7b7..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java +++ /dev/null @@ -1,483 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import net.sf.beanlib.provider.replicator.BeanReplicator; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.audit.AuditEvent; -import org.apache.archiva.audit.AuditListener; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; -import org.apache.archiva.redback.components.registry.RegistryException; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.apache.archiva.redback.role.RoleManager; -import org.apache.archiva.redback.role.RoleManagerException; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.apache.archiva.web.action.AuditEventArgumentsMatcher; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.easymock.MockControl; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import org.junit.Before; -import org.junit.Test; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * DeleteManagedRepositoryActionTest - * - * - */ -public class DeleteManagedRepositoryActionTest - extends AbstractActionTestCase -{ - private DeleteManagedRepositoryAction action; - - private RoleManager roleManager; - - private MockControl roleManagerControl; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private static final String REPO_ID = "repo-ident"; - - private File location; - - private MockControl repositoryStatisticsManagerControl; - - private RepositoryStatisticsManager repositoryStatisticsManager; - - private MetadataRepository metadataRepository; - - private RepositorySession respositorySession; - - private MockControl metadataRepositoryControl; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - // TODO use getAction .?? - action = new DeleteManagedRepositoryAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - roleManagerControl = MockControl.createControl( RoleManager.class ); - roleManager = (RoleManager) roleManagerControl.getMock(); - //action.setRoleManager( roleManager ); - location = new File( System.getProperty( "basedir" ), "target/test/location" ); - - repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class ); - repositoryStatisticsManager = (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock(); - - metadataRepositoryControl = MockControl.createControl( MetadataRepository.class ); - metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock(); - metadataRepository.removeRepository( REPO_ID ); - - respositorySession = mock( RepositorySession.class ); - when( respositorySession.getRepository() ).thenReturn( metadataRepository ); - - TestRepositorySessionFactory factory = new TestRepositorySessionFactory(); - factory.setRepositorySession( respositorySession ); - action.setRepositorySessionFactory( factory ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setArchivaConfiguration( archivaConfiguration ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRoleManager( roleManager ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryStatisticsManager( - repositoryStatisticsManager ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositorySessionFactory( factory ); - action.setManagedRepositoryAdmin( getManagedRepositoryAdmin() ); - - metadataRepositoryControl.replay(); - } - - @Test - public void testSecureActionBundle() - throws SecureActionException, RepositoryAdminException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testDeleteRepositoryAndReposUnderRepoGroup() - throws Exception - { - repositoryStatisticsManager.deleteStatistics( metadataRepository, REPO_ID ); - repositoryStatisticsManagerControl.replay(); - - Configuration configuration = prepDeletionTest( createRepository(), 6 ); - List repoIds = new ArrayList(); - repoIds.add( REPO_ID ); - configuration.addRepositoryGroup( createRepoGroup( repoIds, "repo.group" ) ); - - prepareRoleManagerMock(); - - assertEquals( 1, configuration.getRepositoryGroups().size() ); - - MockControl control = mockAuditListeners(); - when( respositorySession.getRepository() ).thenReturn( metadataRepository ); - String status = action.deleteContents(); - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - assertEquals( 0, configuration.getRepositoryGroups().get( 0 ).getRepositories().size() ); - - assertFalse( location.exists() ); - - repositoryStatisticsManagerControl.verify(); - control.verify(); - metadataRepositoryControl.verify(); - } - - @Test - public void testDeleteRepositoryConfirmation() - throws Exception - { - ManagedRepository originalRepository = createRepository(); - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - Configuration stageRepoConfiguration = new Configuration(); - stageRepoConfiguration.addManagedRepository( createStagingRepository() ); - archivaConfigurationControl.setReturnValue( stageRepoConfiguration ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepository repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), - action.getManagedRepositoryAdmin().getManagedRepositories() ); - } - - @Test - public void testDeleteRepositoryKeepContent() - throws Exception - { - // even when we keep the content, we don't keep the metadata at this point - repositoryStatisticsManager.deleteStatistics( metadataRepository, REPO_ID ); - repositoryStatisticsManagerControl.replay(); - - prepareRoleManagerMock(); - - Configuration configuration = prepDeletionTest( createRepository(), 4 ); - - MockControl control = mockAuditListeners(); - - when( respositorySession.getRepository() ).thenReturn( metadataRepository ); - - String status = action.deleteEntry(); - - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - - assertTrue( location.exists() ); - - repositoryStatisticsManagerControl.verify(); - control.verify(); - metadataRepositoryControl.verify(); - } - - private MockControl mockAuditListeners() - { - MockControl control = MockControl.createControl( AuditListener.class ); - AuditListener listener = (AuditListener) control.getMock(); - listener.auditEvent( new AuditEvent( REPO_ID, "guest", null, AuditEvent.DELETE_MANAGED_REPO ) ); - control.setMatcher( new AuditEventArgumentsMatcher() ); - control.replay(); - action.setAuditListeners( Arrays.asList( listener ) ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setAuditListeners( Arrays.asList( listener ) ); - return control; - } - - @Test - public void testDeleteRepositoryDeleteContent() - throws Exception - { - repositoryStatisticsManager.deleteStatistics( metadataRepository, REPO_ID ); - repositoryStatisticsManagerControl.replay(); - - prepareRoleManagerMock(); - - Configuration configuration = prepDeletionTest( createRepository(), 4 ); - - MockControl control = mockAuditListeners(); - - when( respositorySession.getRepository() ).thenReturn( metadataRepository ); - - String status = action.deleteContents(); - - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - - assertFalse( location.exists() ); - - repositoryStatisticsManagerControl.verify(); - control.verify(); - metadataRepositoryControl.verify(); - } - - @Test - public void testDeleteRepositoryAndAssociatedProxyConnectors() - throws Exception - { - repositoryStatisticsManager.deleteStatistics( metadataRepository, REPO_ID ); - repositoryStatisticsManagerControl.replay(); - - Configuration configuration = prepDeletionTest( createRepository(), 5 ); - configuration.addRemoteRepository( createRemoteRepository( "codehaus", "http://repository.codehaus.org" ) ); - configuration.addRemoteRepository( createRemoteRepository( "java.net", "http://dev.java.net/maven2" ) ); - configuration.addProxyConnector( createProxyConnector( REPO_ID, "codehaus" ) ); - - prepareRoleManagerMock(); - - assertEquals( 1, configuration.getProxyConnectors().size() ); - - MockControl control = mockAuditListeners(); - when( respositorySession.getRepository() ).thenReturn( metadataRepository ); - String status = action.deleteContents(); - - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getManagedRepositories().isEmpty() ); - assertEquals( 0, configuration.getProxyConnectors().size() ); - - assertFalse( location.exists() ); - - repositoryStatisticsManagerControl.verify(); - control.verify(); - metadataRepositoryControl.verify(); - } - - @Test - public void testDeleteRepositoryCancelled() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - - ManagedRepository originalRepository = createRepository(); - Configuration configuration = prepDeletionTest( originalRepository, 3 ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - - ManagedRepository repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), - action.getManagedRepositoryAdmin().getManagedRepositories() ); - - assertTrue( location.exists() ); - - repositoryStatisticsManagerControl.verify(); - } - - - private Configuration prepDeletionTest( ManagedRepository originalRepository, int expectCountGetConfig ) - throws RegistryException, IndeterminateConfigurationException, RepositoryAdminException - { - - //Configuration originalConfiguration = - // ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).getArchivaConfiguration().getConfiguration(); - - location.mkdirs(); - - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, expectCountGetConfig ); - - Configuration stageRepoConfiguration = new Configuration(); - stageRepoConfiguration.addManagedRepository( createStagingRepository() ); - archivaConfigurationControl.setReturnValue( stageRepoConfiguration ); - - archivaConfiguration.save( configuration ); - - // save for staging repo delete - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepository repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - assertTrue( location.exists() ); - return configuration; - } - - private void assertRepositoryEquals( ManagedRepository expectedRepository, ManagedRepository actualRepository ) - { - assertEquals( expectedRepository.getDaysOlder(), actualRepository.getDaysOlder() ); - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getIndexDirectory(), actualRepository.getIndexDirectory() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getLocation(), actualRepository.getLocation() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - assertEquals( expectedRepository.getCronExpression(), actualRepository.getCronExpression() ); - assertEquals( expectedRepository.getRetentionCount(), actualRepository.getRetentionCount() ); - assertEquals( expectedRepository.isDeleteReleasedSnapshots(), actualRepository.isDeleteReleasedSnapshots() ); - assertEquals( expectedRepository.isScanned(), actualRepository.isScanned() ); - assertEquals( expectedRepository.isReleases(), actualRepository.isReleases() ); - assertEquals( expectedRepository.isSnapshots(), actualRepository.isSnapshots() ); - } - - private Configuration createConfigurationForEditing( ManagedRepository repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - ManagedRepositoryConfiguration managedRepositoryConfiguration = - new BeanReplicator().replicateBean( repositoryConfiguration, ManagedRepositoryConfiguration.class ); - managedRepositoryConfiguration.setRefreshCronExpression( repositoryConfiguration.getCronExpression() ); - configuration.addManagedRepository( managedRepositoryConfiguration ); - return configuration; - } - - private ManagedRepository createRepository() - { - ManagedRepository r = new ManagedRepository(); - r.setId( REPO_ID ); - r.setName( "repo name" ); - r.setLocation( location.getAbsolutePath() ); - r.setLayout( "default" ); - r.setCronExpression( "* 0/5 * * * ?" ); - r.setDaysOlder( 0 ); - r.setRetentionCount( 0 ); - r.setReleases( true ); - r.setSnapshots( true ); - r.setScanned( false ); - r.setDeleteReleasedSnapshots( false ); - return r; - } - - private ManagedRepositoryConfiguration createStagingRepository() - { - ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration(); - r.setId( REPO_ID + "-stage" ); - r.setName( "repo name" ); - r.setLocation( location.getAbsolutePath() ); - r.setLayout( "default" ); - r.setRefreshCronExpression( "* 0/5 * * * ?" ); - r.setDaysOlder( 0 ); - r.setRetentionCount( 0 ); - r.setReleases( true ); - r.setSnapshots( true ); - r.setScanned( false ); - r.setDeleteReleasedSnapshots( false ); - return r; - } - - private RemoteRepositoryConfiguration createRemoteRepository( String id, String url ) - { - RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration(); - r.setId( id ); - r.setUrl( url ); - r.setLayout( "default" ); - - return r; - } - - private ProxyConnectorConfiguration createProxyConnector( String managedRepoId, String remoteRepoId ) - { - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( managedRepoId ); - connector.setTargetRepoId( remoteRepoId ); - - return connector; - } - - private RepositoryGroupConfiguration createRepoGroup( List repoIds, String repoGroupId ) - { - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( repoGroupId ); - repoGroup.setRepositories( repoIds ); - - return repoGroup; - } - - private void prepareRoleManagerMock() - throws RoleManagerException - { - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( true ); - roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( true ); - roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.replay(); - } - - protected ManagedRepositoryAdmin getManagedRepositoryAdmin() - { - return applicationContext.getBean( ManagedRepositoryAdmin.class ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java deleted file mode 100644 index a0c2cde5c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteRemoteRepositoryActionTest.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.IndeterminateConfigurationException; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.easymock.MockControl; - -import java.util.Collections; -import org.junit.Before; -import org.junit.Test; - -/** - * DeleteRemoteRepositoryActionTest - * - * - */ -public class DeleteRemoteRepositoryActionTest - extends AbstractActionTestCase -{ - private static final String REPO_ID = "remote-repo-ident"; - - private DeleteRemoteRepositoryAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - //action = (DeleteRemoteRepositoryAction) lookup( Action.class.getName(), "deleteRemoteRepositoryAction" ); - action = (DeleteRemoteRepositoryAction) getActionProxy( "/admin/deleteRemoteRepository.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testDeleteRemoteRepositoryConfirmation() - throws Exception - { - RemoteRepository originalRepository = createRepository(); - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 3, 4 ); - - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepository repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.confirmDelete(); - assertEquals( Action.INPUT, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), - action.getRemoteRepositoryAdmin().getRemoteRepositories() ); - } - - @Test - public void testDeleteRemoteRepository() - throws org.apache.archiva.redback.components.registry.RegistryException, IndeterminateConfigurationException, RepositoryAdminException - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - configuration.addManagedRepository( createManagedRepository( "internal", "target/repo/internal" ) ); - configuration.addManagedRepository( createManagedRepository( "snapshots", "target/repo/snapshots" ) ); - configuration.addProxyConnector( createProxyConnector( "internal", REPO_ID ) ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepository repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - assertEquals( 1, configuration.getProxyConnectors().size() ); - - String status = action.delete(); - assertEquals( Action.SUCCESS, status ); - - assertTrue( configuration.getRemoteRepositories().isEmpty() ); - assertEquals( 0, configuration.getProxyConnectors().size() ); - } - - @Test - public void testDeleteRemoteRepositoryCancelled() - throws Exception - { - RemoteRepository originalRepository = createRepository(); - Configuration configuration = createConfigurationForEditing( originalRepository ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepository repositoryConfiguration = action.getRepository(); - assertNotNull( repositoryConfiguration ); - assertRepositoryEquals( repositoryConfiguration, createRepository() ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - - RemoteRepository repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - assertEquals( Collections.singletonList( originalRepository ), - action.getRemoteRepositoryAdmin().getRemoteRepositories() ); - } - - private Configuration createConfigurationForEditing( RemoteRepository repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - RemoteRepositoryConfiguration conf = new RemoteRepositoryConfiguration(); - conf.setId( repositoryConfiguration.getId() ); - conf.setLayout( repositoryConfiguration.getLayout() ); - conf.setUrl( repositoryConfiguration.getUrl() ); - conf.setName( repositoryConfiguration.getName() ); - configuration.addRemoteRepository( conf ); - return configuration; - } - - private RemoteRepository createRepository() - { - RemoteRepository r = new RemoteRepository(); - r.setId( REPO_ID ); - populateRepository( r ); - return r; - } - - private void assertRepositoryEquals( RemoteRepository expectedRepository, RemoteRepository actualRepository ) - { - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getUrl(), actualRepository.getUrl() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - } - - private ManagedRepositoryConfiguration createManagedRepository( String string, String testPath ) - { - ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration(); - r.setId( REPO_ID ); - r.setName( "repo name" ); - r.setLocation( testPath ); - r.setLayout( "default" ); - r.setRefreshCronExpression( "* 0/5 * * * ?" ); - r.setDaysOlder( 0 ); - r.setRetentionCount( 0 ); - r.setReleases( true ); - r.setSnapshots( true ); - r.setScanned( false ); - r.setDeleteReleasedSnapshots( false ); - return r; - } - - private ProxyConnectorConfiguration createProxyConnector( String managedRepoId, String remoteRepoId ) - { - ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration(); - connector.setSourceRepoId( managedRepoId ); - connector.setTargetRepoId( remoteRepoId ); - - return connector; - } - - private void populateRepository( RemoteRepository repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setUrl( "url" ); - repository.setLayout( "default" ); - } - - // TODO: what about removing proxied content if a proxy is removed? -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java deleted file mode 100644 index 81ef1b95b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteRepositoryGroupActionTest.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RepositoryGroup; -import org.apache.archiva.admin.repository.group.DefaultRepositoryGroupAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.easymock.MockControl; - -import java.util.Collections; -import org.junit.Before; -import org.junit.Test; - -/** - * DeleteRepositoryGroupActionTest - */ -public class DeleteRepositoryGroupActionTest - extends AbstractActionTestCase -{ - private static final String REPO_GROUP_ID = "repo-group-ident"; - - private DeleteRepositoryGroupAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = (DeleteRepositoryGroupAction) getActionProxy( "/admin/deleteRepositoryGroup.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - ( (DefaultRepositoryGroupAdmin) action.getRepositoryGroupAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testSecureActionBundle() - throws SecureActionException, RepositoryAdminException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testDeleteRepositoryGroupConfirmation() - throws Exception - { - RepositoryGroupConfiguration origRepoGroup = createRepositoryGroup(); - Configuration configuration = createConfigurationForEditing( origRepoGroup ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - archivaConfigurationControl.replay(); - - action.setRepoGroupId( REPO_GROUP_ID ); - - action.prepare(); - assertEquals( REPO_GROUP_ID, action.getRepoGroupId() ); - RepositoryGroup repoGroup = action.getRepositoryGroup(); - assertNotNull( repoGroup ); - assertEquals( repoGroup.getId(), action.getRepoGroupId() ); - assertEquals( Collections.singletonList( origRepoGroup ), configuration.getRepositoryGroups() ); - } - - @Test - public void testDeleteRepositoryGroup() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepositoryGroup() ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 7 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoGroupId( REPO_GROUP_ID ); - - action.prepare(); - assertEquals( REPO_GROUP_ID, action.getRepoGroupId() ); - RepositoryGroup repoGroup = action.getRepositoryGroup(); - assertNotNull( repoGroup ); - assertEquals( Collections.singletonList( repoGroup ), - action.getRepositoryGroupAdmin().getRepositoriesGroups() ); - - String status = action.delete(); - assertEquals( Action.SUCCESS, status ); - assertTrue( configuration.getRepositoryGroups().isEmpty() ); - } - - @Test - public void testDeleteRepositoryGroupCancelled() - throws Exception - { - RepositoryGroupConfiguration origRepoGroup = createRepositoryGroup(); - Configuration configuration = createConfigurationForEditing( origRepoGroup ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoGroupId( REPO_GROUP_ID ); - - action.prepare(); - assertEquals( REPO_GROUP_ID, action.getRepoGroupId() ); - RepositoryGroup repoGroup = action.getRepositoryGroup(); - assertNotNull( repoGroup ); - - String status = action.execute(); - assertEquals( Action.SUCCESS, status ); - assertEquals( Collections.singletonList( repoGroup ), - action.getRepositoryGroupAdmin().getRepositoriesGroups() ); - } - - private Configuration createConfigurationForEditing( RepositoryGroupConfiguration repoGroup ) - { - Configuration configuration = new Configuration(); - configuration.addRepositoryGroup( repoGroup ); - return configuration; - } - - private RepositoryGroupConfiguration createRepositoryGroup() - { - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( REPO_GROUP_ID ); - - return repoGroup; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java deleted file mode 100644 index c5e062932..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java +++ /dev/null @@ -1,641 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.repository.DefaultRepositoryCommonValidator; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.audit.AuditListener; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.apache.archiva.redback.role.RoleManager; -import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; -import org.apache.archiva.scheduler.repository.RepositoryTask; -import org.apache.archiva.security.common.ArchivaRoleConstants; -import org.apache.archiva.web.validator.utils.ValidatorUtil; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.apache.commons.io.FileUtils; -import org.easymock.MockControl; -import org.easymock.classextension.MockClassControl; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** - * EditManagedRepositoryActionTest - * - * - */ -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class EditManagedRepositoryActionTest - extends AbstractManagedRepositoryActionTest -{ - private EditManagedRepositoryAction action; - - private RoleManager roleManager; - - private MockControl roleManagerControl; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private org.apache.archiva.redback.components.registry.Registry registry; - - private MockControl registryControl; - - private MetadataRepository metadataRepository; - - private MockControl repositoryTaskSchedulerControl; - - private RepositoryArchivaTaskScheduler repositoryTaskScheduler; - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - action = new EditManagedRepositoryAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - roleManagerControl = MockControl.createControl( RoleManager.class ); - roleManager = (RoleManager) roleManagerControl.getMock(); - - registryControl = MockControl.createControl( org.apache.archiva.redback.components.registry.Registry.class ); - registry = (org.apache.archiva.redback.components.registry.Registry) registryControl.getMock(); - - repositoryTaskSchedulerControl = MockClassControl.createControl( RepositoryArchivaTaskScheduler.class ); - repositoryTaskScheduler = (RepositoryArchivaTaskScheduler) repositoryTaskSchedulerControl.getMock(); - - location = new File( System.getProperty( "basedir", "target/test/location" ) ); - - metadataRepository = mock( MetadataRepository.class ); - RepositorySession repositorySession = mock( RepositorySession.class ); - when( repositorySession.getRepository() ).thenReturn( metadataRepository ); - TestRepositorySessionFactory factory = applicationContext.getBean( TestRepositorySessionFactory.class ); - factory.setRepositorySession( repositorySession ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setArchivaConfiguration( archivaConfiguration ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRoleManager( roleManager ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryTaskScheduler( - repositoryTaskScheduler ); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositorySessionFactory( factory ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRegistry( registry ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setAuditListeners( - new ArrayList( 0 ) ); - - DefaultRepositoryCommonValidator defaultRepositoryCommonValidator = new DefaultRepositoryCommonValidator(); - defaultRepositoryCommonValidator.setArchivaConfiguration( archivaConfiguration ); - defaultRepositoryCommonValidator.setRegistry( registry ); - - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryCommonValidator( - defaultRepositoryCommonValidator ); - - action.setRepositoryCommonValidator( defaultRepositoryCommonValidator ); - - action.setManagedRepositoryAdmin( getManagedRepositoryAdmin() ); - - } - - @Test - public void testSecureActionBundle() - throws SecureActionException, RepositoryAdminException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testEditRepositoryInitialPage() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - Configuration stageRepoConfiguration = new Configuration(); - stageRepoConfiguration.addManagedRepository( createStagingRepository() ); - archivaConfigurationControl.setReturnValue( stageRepoConfiguration ); - - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepository repository = action.getRepository(); - assertNotNull( repository ); - - ManagedRepository newRepository = createRepository(); - assertRepositoryEquals( repository, newRepository ); - assertEquals( repository.getLocation(), newRepository.getLocation() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - } - - @Test - public void testEditRepository() - throws Exception - { - String stageRepoId = REPO_ID + "-stage"; - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, stageRepoId ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, stageRepoId ); - roleManagerControl.setVoidCallable(); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, stageRepoId ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, stageRepoId ); - roleManagerControl.setVoidCallable(); - - roleManagerControl.replay(); - - registry.getString( "appserver.base", "${appserver.base}" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - registry.getString( "appserver.home", "${appserver.home}" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - - registryControl.replay(); - - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( REPO_ID ); - repositoryTaskScheduler.isProcessingRepositoryTask( REPO_ID ); - repositoryTaskSchedulerControl.setReturnValue( false ); - repositoryTaskScheduler.queueTask( task ); - repositoryTaskSchedulerControl.setVoidCallable(); - - RepositoryTask stageTask = new RepositoryTask(); - stageTask.setRepositoryId( stageRepoId ); - repositoryTaskScheduler.isProcessingRepositoryTask( stageRepoId ); - repositoryTaskSchedulerControl.setReturnValue( false ); - repositoryTaskScheduler.queueTask( stageTask ); - repositoryTaskSchedulerControl.setVoidCallable(); - - repositoryTaskSchedulerControl.replay(); - - Configuration configuration = createConfigurationForEditing( createRepository() ); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - - Configuration stageRepoConfiguration = new Configuration(); - stageRepoConfiguration.addManagedRepository( createStagingRepository() ); - archivaConfigurationControl.setReturnValue( stageRepoConfiguration ); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.save( configuration ); - archivaConfiguration.save( configuration ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - ManagedRepository repository = action.getRepository(); - populateRepository( repository ); - repository.setName( "new repo name" ); - - MockControl repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class ); - RepositoryStatisticsManager repositoryStatisticsManager = - (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock(); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryStatisticsManager( - repositoryStatisticsManager ); - repositoryStatisticsManager.deleteStatistics( metadataRepository , REPO_ID ); - repositoryStatisticsManagerControl.setVoidCallable(); - repositoryStatisticsManagerControl.replay(); - - new File( "target/test/" + REPO_ID + "-stage" ).mkdirs(); - - repository.setLocation( System.getProperty( "basedir" ) + "/target/test/" + REPO_ID ); - - action.setRepository( repository ); - action.setStageNeeded( true ); - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - - ManagedRepository newRepository = createRepository(); - newRepository.setName( "new repo name" ); - assertRepositoryEquals( repository, newRepository ); - //assertEquals( Collections.singletonList( repository ), configuration.getManagedRepositories() ); - //assertEquals( location.getCanonicalPath(), new File( repository.getLocation() ).getCanonicalPath() ); - - roleManagerControl.verify(); - //archivaConfigurationControl.verify(); - repositoryStatisticsManagerControl.verify(); - registryControl.verify(); - } - - @Test - public void testEditRepositoryLocationChanged() - throws Exception - { - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID ); - roleManagerControl.setVoidCallable(); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID + "-stage" ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID + "-stage" ); - roleManagerControl.setVoidCallable(); - - roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID + "-stage" ); - roleManagerControl.setReturnValue( false ); - roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID + "-stage" ); - roleManagerControl.setVoidCallable(); - - roleManagerControl.replay(); - - registry.getString( "appserver.base" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - - registry.getString( "appserver.base", "${appserver.base}" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - registry.getString( "appserver.home", "${appserver.home}" ); - registryControl.setReturnValue( "target/test", 1, 3 ); - - registryControl.replay(); - - RepositoryTask task = new RepositoryTask(); - task.setRepositoryId( REPO_ID ); - repositoryTaskScheduler.isProcessingRepositoryTask( REPO_ID ); - repositoryTaskSchedulerControl.setReturnValue( false ); - repositoryTaskScheduler.queueTask( task ); - repositoryTaskSchedulerControl.setVoidCallable(); - - repositoryTaskSchedulerControl.replay(); - - Configuration configuration = createConfigurationForEditing( createRepository() ); - archivaConfiguration.getConfiguration(); - - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfigurationControl.setReturnValue( buildEasyConfiguration() ); - - Configuration stageRepoConfiguration = buildEasyConfiguration(); - stageRepoConfiguration.addManagedRepository( createStagingRepository() ); - archivaConfigurationControl.setReturnValue( stageRepoConfiguration ); - - archivaConfigurationControl.setReturnValue( configuration ); - archivaConfigurationControl.setReturnValue( configuration ); - - archivaConfiguration.save( configuration ); - configuration.addManagedRepository( stageRepoConfiguration.getManagedRepositories().get( 0 ) ); - archivaConfiguration.save( configuration ); - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - MockControl repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class ); - RepositoryStatisticsManager repositoryStatisticsManager = - (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock(); - ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryStatisticsManager( - repositoryStatisticsManager ); - repositoryStatisticsManager.deleteStatistics( metadataRepository, REPO_ID ); - repositoryStatisticsManagerControl.replay(); - - new File( "target/test/location/" + REPO_ID + "-stage" ).mkdirs(); - - action.setStageNeeded( true ); - action.setRepoid( REPO_ID ); - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - - ManagedRepository repository = new ManagedRepository(); - populateRepository( repository ); - File testFile = new File( "target/test/location/new" ); - FileUtils.deleteDirectory( testFile ); - repository.setLocation( "${appserver.base}/location/new" ); - action.setRepository( repository ); - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - //assertEquals( Collections.singletonList( repository ), configuration.getManagedRepositories() ); - //assertEquals( testFile.getCanonicalPath(), new File( repository.getLocation() ).getCanonicalPath() ); - - roleManagerControl.verify(); - //archivaConfigurationControl.verify(); - repositoryStatisticsManagerControl.verify(); - registryControl.verify(); - } - - @Test - public void testStruts2ValidationFrameworkWithNullInputs() - throws Exception - { - // prep - // 0 is the default value for primitive int; null for objects - ManagedRepository managedRepositoryConfiguration = createManagedRepository( null, null, null, null, 1, 1 ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository identifier." ); - expectedFieldErrors.put( "repository.id", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a directory." ); - expectedFieldErrors.put( "repository.location", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository name." ); - expectedFieldErrors.put( "repository.name", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithBlankInputs() - throws Exception - { - // prep - // 0 is the default value for primitive int - ManagedRepository managedRepositoryConfiguration = - createManagedRepository( EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, EMPTY_STRING, 1, 1 ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository identifier." ); - expectedFieldErrors.put( "repository.id", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a directory." ); - expectedFieldErrors.put( "repository.location", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "You must enter a repository name." ); - expectedFieldErrors.put( "repository.name", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithInvalidInputs() - throws Exception - { - // prep - ManagedRepository managedRepositoryConfiguration = - createManagedRepository( REPOSITORY_ID_INVALID_INPUT, REPOSITORY_NAME_INVALID_INPUT, - REPOSITORY_LOCATION_INVALID_INPUT, REPOSITORY_INDEX_DIR_INVALID_INPUT, - REPOSITORY_DAYS_OLDER_INVALID_INPUT, REPOSITORY_RETENTION_COUNT_INVALID_INPUT ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertTrue( action.hasFieldErrors() ); - - Map> fieldErrors = action.getFieldErrors(); - - // make an expected field error object - Map> expectedFieldErrors = new HashMap>(); - - // populate - List expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Identifier must only contain alphanumeric characters, underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "repository.id", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." ); - expectedFieldErrors.put( "repository.location", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Repository Name must only contain alphanumeric characters, white-spaces(' '), forward-slashes(/), open-parenthesis('('), close-parenthesis(')'), underscores(_), dots(.), and dashes(-)." ); - expectedFieldErrors.put( "repository.name", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( - "Index directory must only contain alphanumeric characters, equals(=), question-marks(?), exclamation-points(!), ampersands(&), forward-slashes(/), back-slashes(\\), underscores(_), dots(.), colons(:), tildes(~), and dashes(-)." ); - expectedFieldErrors.put( "repository.indexDirectory", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "Repository Purge By Retention Count needs to be between 1 and 100." ); - expectedFieldErrors.put( "repository.retentionCount", expectedErrorMessages ); - - expectedErrorMessages = new ArrayList(); - expectedErrorMessages.add( "Repository Purge By Days Older Than needs to be larger than 0." ); - expectedFieldErrors.put( "repository.daysOlder", expectedErrorMessages ); - - ValidatorUtil.assertFieldErrors( expectedFieldErrors, fieldErrors ); - } - - @Test - public void testStruts2ValidationFrameworkWithValidInputs() - throws Exception - { - // prep - ManagedRepository managedRepositoryConfiguration = - createManagedRepository( REPOSITORY_ID_VALID_INPUT, REPOSITORY_NAME_VALID_INPUT, - REPOSITORY_LOCATION_VALID_INPUT, REPOSITORY_INDEX_DIR_VALID_INPUT, - REPOSITORY_DAYS_OLDER_VALID_INPUT, REPOSITORY_RETENTION_COUNT_VALID_INPUT ); - action.setRepository( managedRepositoryConfiguration ); - - // test - actionValidatorManager.validate( action, EMPTY_STRING ); - - // verify - assertFalse( action.hasFieldErrors() ); - } - - private void assertRepositoryEquals( ManagedRepository expectedRepository, ManagedRepository actualRepository ) - { - assertEquals( expectedRepository.getDaysOlder(), actualRepository.getDaysOlder() ); - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getIndexDirectory(), actualRepository.getIndexDirectory() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - assertEquals( expectedRepository.getCronExpression(), actualRepository.getCronExpression() ); - assertEquals( expectedRepository.getRetentionCount(), actualRepository.getRetentionCount() ); - assertEquals( expectedRepository.isDeleteReleasedSnapshots(), actualRepository.isDeleteReleasedSnapshots() ); - assertEquals( expectedRepository.isScanned(), actualRepository.isScanned() ); - assertEquals( expectedRepository.isReleases(), actualRepository.isReleases() ); - assertEquals( expectedRepository.isSnapshots(), actualRepository.isSnapshots() ); - } - - private Configuration createConfigurationForEditing( ManagedRepository repositoryConfiguration ) - throws Exception - { - Configuration configuration = buildEasyConfiguration(); - - ManagedRepositoryConfiguration managedRepositoryConfiguration = new ManagedRepositoryConfiguration(); - - managedRepositoryConfiguration.setDaysOlder( repositoryConfiguration.getDaysOlder() ); - managedRepositoryConfiguration.setIndexDir( repositoryConfiguration.getIndexDirectory() ); - managedRepositoryConfiguration.setRetentionCount( repositoryConfiguration.getRetentionCount() ); - managedRepositoryConfiguration.setBlockRedeployments( repositoryConfiguration.isBlockRedeployments() ); - managedRepositoryConfiguration.setDeleteReleasedSnapshots( - repositoryConfiguration.isDeleteReleasedSnapshots() ); - managedRepositoryConfiguration.setLocation( repositoryConfiguration.getLocation() ); - managedRepositoryConfiguration.setRefreshCronExpression( repositoryConfiguration.getCronExpression() ); - managedRepositoryConfiguration.setReleases( repositoryConfiguration.isReleases() ); - managedRepositoryConfiguration.setScanned( repositoryConfiguration.isScanned() ); - managedRepositoryConfiguration.setId( repositoryConfiguration.getId() ); - managedRepositoryConfiguration.setName( repositoryConfiguration.getName() ); - managedRepositoryConfiguration.setLayout( repositoryConfiguration.getLayout() ); - - configuration.addManagedRepository( managedRepositoryConfiguration ); - return configuration; - } - - // easy configuration for hashCode/equals - private Configuration buildEasyConfiguration() - { - return new Configuration() - { - @Override - public int hashCode() - { - return getManagedRepositories().size(); - } - - @Override - public boolean equals( Object o ) - { - return true; - } - }; - } - - private ManagedRepository createRepository() - throws IOException - { - ManagedRepository r = new ManagedRepository(); - r.setLocation( System.getProperty( "basedir" ) + "/target/repo-" + REPO_ID ); - r.setIndexDirectory( System.getProperty( "basedir" ) + "/target/repo-" + REPO_ID + "-index" ); - r.setId( REPO_ID ); - populateRepository( r ); - return r; - } - - private ManagedRepositoryConfiguration createStagingRepository() - throws IOException - { - ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration(); - r.setId( REPO_ID + "-stage" ); - r.setLocation( System.getProperty( "basedir" ) + "/target/" + REPO_ID + "-stage" ); - populateStagingRepository( r ); - return r; - } - - private void populateStagingRepository( ManagedRepositoryConfiguration repository ) - throws IOException - { - repository.setId( REPO_ID + "-stage" ); - repository.setName( "repo name" ); - repository.setLocation( "${appserver.base}/location" ); - repository.setLayout( "default" ); - repository.setRefreshCronExpression( "* 0/5 * * * ?" ); - repository.setDaysOlder( 31 ); - repository.setRetentionCount( 20 ); - repository.setReleases( true ); - repository.setSnapshots( true ); - repository.setScanned( false ); - repository.setDeleteReleasedSnapshots( true ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java deleted file mode 100644 index 5208cd8fb..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditRemoteRepositoryActionTest.java +++ /dev/null @@ -1,182 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RemoteRepository; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.RemoteRepositoryConfiguration; -import org.apache.struts2.StrutsSpringTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.easymock.MockControl; - -import java.util.Collections; - -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -/** - * EditRemoteRepositoryActionTest - * - * - */ -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class EditRemoteRepositoryActionTest - extends StrutsSpringTestCase -{ - private static final String REPO_ID = "remote-repo-ident"; - - private EditRemoteRepositoryAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - protected String[] getContextLocations() - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - @Before - @Override - public void setUp() - throws Exception - { - super.setUp(); - - action = (EditRemoteRepositoryAction) getActionProxy( "/admin/editRemoteRepository.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testEditRemoteRepository() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4, 6 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - action.prepare(); - - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepository repository = action.getRepository(); - populateRepository( repository ); - repository.setName( "new repo name" ); - - String status = action.commit(); - assertEquals( Action.SUCCESS, status ); - - RemoteRepository newRepository = createRepository(); - newRepository.setName( "new repo name" ); - assertRepositoryEquals( repository, newRepository ); - assertEquals( Collections.singletonList( repository ), - action.getRemoteRepositoryAdmin().getRemoteRepositories() ); - - archivaConfigurationControl.verify(); - } - - @Test - public void testEditRemoteRepositoryInitialPage() - throws Exception - { - Configuration configuration = createConfigurationForEditing( createRepository() ); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 2 ); - archivaConfigurationControl.replay(); - - action.setRepoid( REPO_ID ); - - action.prepare(); - assertEquals( REPO_ID, action.getRepoid() ); - RemoteRepository repository = action.getRepository(); - assertNotNull( repository ); - assertRepositoryEquals( repository, createRepository() ); - - String status = action.input(); - assertEquals( Action.INPUT, status ); - repository = action.getRepository(); - assertRepositoryEquals( repository, createRepository() ); - } - - @Test - public void testSecureActionBundle() - throws SecureActionException, RepositoryAdminException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - private void assertRepositoryEquals( RemoteRepository expectedRepository, RemoteRepository actualRepository ) - { - assertEquals( expectedRepository.getId(), actualRepository.getId() ); - assertEquals( expectedRepository.getLayout(), actualRepository.getLayout() ); - assertEquals( expectedRepository.getUrl(), actualRepository.getUrl() ); - assertEquals( expectedRepository.getName(), actualRepository.getName() ); - } - - private Configuration createConfigurationForEditing( RemoteRepository repositoryConfiguration ) - { - Configuration configuration = new Configuration(); - RemoteRepositoryConfiguration conf = new RemoteRepositoryConfiguration(); - conf.setId( repositoryConfiguration.getId() ); - conf.setLayout( repositoryConfiguration.getLayout() ); - conf.setUrl( repositoryConfiguration.getUrl() ); - conf.setName( repositoryConfiguration.getName() ); - configuration.addRemoteRepository( conf ); - return configuration; - } - - private RemoteRepository createRepository() - { - RemoteRepository r = new RemoteRepository(); - r.setId( REPO_ID ); - populateRepository( r ); - return r; - } - - private void populateRepository( RemoteRepository repository ) - { - repository.setId( REPO_ID ); - repository.setName( "repo name" ); - repository.setUrl( "url" ); - repository.setLayout( "default" ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/RepositoriesActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/RepositoriesActionTest.java deleted file mode 100644 index 5c2a5b6d0..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/RepositoriesActionTest.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.repository.group.DefaultRepositoryGroupAdmin; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.admin.repository.remote.DefaultRemoteRepositoryAdmin; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.apache.archiva.metadata.repository.stats.RepositoryStatistics; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.struts2.StrutsSpringTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.easymock.MockControl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Arrays; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -/** - * Test the repositories action returns the correct data. - */ -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class RepositoriesActionTest - extends StrutsSpringTestCase -{ - private Logger log = LoggerFactory.getLogger( getClass() ); - - private RepositoriesAction action; - - ArchivaConfiguration originalArchivaConfiguration; - - @Override - @Before - public void setUp() - throws Exception - { - - super.setUp(); - - action = (RepositoriesAction) getActionProxy( "/admin/index.action" ).getAction(); - originalArchivaConfiguration = - ( (DefaultRepositoryGroupAdmin) action.getRepositoryGroupAdmin() ).getArchivaConfiguration(); - // some other test are modifying archivaConfiguration with a mocked instance : this test need the real one - // so use the real one from spring, backup the mock and restore it at the end (tearDown) - ArchivaConfiguration real = applicationContext.getBean( ArchivaConfiguration.class ); - ( (DefaultRepositoryGroupAdmin) action.getRepositoryGroupAdmin() ).setArchivaConfiguration( real ); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( real ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( real ); - } - - - @Override - @After - public void tearDown() - throws Exception - { - super.tearDown(); - ( (DefaultRepositoryGroupAdmin) action.getRepositoryGroupAdmin() ).setArchivaConfiguration( - originalArchivaConfiguration ); - ( (DefaultManagedRepositoryAdmin) action.getManagedRepositoryAdmin() ).setArchivaConfiguration( - originalArchivaConfiguration ); - ( (DefaultRemoteRepositoryAdmin) action.getRemoteRepositoryAdmin() ).setArchivaConfiguration( - originalArchivaConfiguration ); - } - - @Override - protected String[] getContextLocations() - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - @Test - public void testGetRepositories() - throws Exception - { - try - { - MockControl control = MockControl.createControl( MetadataRepository.class ); - MetadataRepository metadataRepository = (MetadataRepository) control.getMock(); - control.expectAndReturn( metadataRepository.getMetadataFacets( "internal", RepositoryStatistics.FACET_ID ), - Arrays.asList( "20091125.123456.678" ) ); - control.expectAndReturn( - metadataRepository.getMetadataFacet( "internal", RepositoryStatistics.FACET_ID, "20091125.123456.678" ), - new RepositoryStatistics() ); - control.expectAndReturn( metadataRepository.getMetadataFacets( "snapshots", RepositoryStatistics.FACET_ID ), - Arrays.asList( "20091112.012345.012" ) ); - control.expectAndReturn( metadataRepository.getMetadataFacet( "snapshots", RepositoryStatistics.FACET_ID, - "20091112.012345.012" ), - new RepositoryStatistics() ); - control.replay(); - - RepositorySession session = mock( RepositorySession.class ); - when( session.getRepository() ).thenReturn( metadataRepository ); - TestRepositorySessionFactory factory = - applicationContext.getBean( "repositorySessionFactory#test", TestRepositorySessionFactory.class ); - factory.setRepositorySession( session ); - - ServletRunner sr = new ServletRunner(); - ServletUnitClient sc = sr.newClient(); - - action.setServletRequest( sc.newInvocation( "http://localhost/admin/repositories.action" ).getRequest() ); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - // TODO: for some reason servletunit is not populating the port of the servlet request - assertEquals( "http://localhost:0/repository", action.getBaseUrl() ); - - assertNotNull( action.getManagedRepositories() ); - assertNotNull( action.getRemoteRepositories() ); - assertNotNull( action.getRepositoryStatistics() ); - - assertEquals( 2, action.getManagedRepositories().size() ); - assertEquals( 1, action.getRemoteRepositories().size() ); - assertEquals( 2, action.getRepositoryStatistics().size() ); - - control.verify(); - } - catch ( Exception e ) - { - log.error( e.getMessage(), e ); - throw e; - } - } - - @Test - public void testSecureActionBundle() - throws SecureActionException - { - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java deleted file mode 100644 index 4af239368..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/RepositoryGroupsActionTest.java +++ /dev/null @@ -1,399 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.meterware.servletunit.ServletRunner; -import com.meterware.servletunit.ServletUnitClient; -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.RepositoryAdminException; -import org.apache.archiva.admin.model.beans.RepositoryGroup; -import org.apache.archiva.admin.repository.group.DefaultRepositoryGroupAdmin; -import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.easymock.MockControl; - -import java.util.Collections; -import java.util.List; -import org.junit.Test; - -/** - * RepositoryGroupsActionTest - */ -public class RepositoryGroupsActionTest - extends AbstractActionTestCase -{ - private static final String REPO_GROUP_ID = "repo-group-ident"; - - private static final String REPO1_ID = "managed-repo-ident-1"; - - private static final String REPO2_ID = "managed-repo-ident-2"; - - private RepositoryGroupsAction action; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - action = (RepositoryGroupsAction) getActionProxy( "/admin/repositoryGroups.action" ).getAction(); - - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - - ( (DefaultRepositoryGroupAdmin) action.getRepositoryGroupAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - ( (DefaultManagedRepositoryAdmin) ( (DefaultRepositoryGroupAdmin) action.getRepositoryGroupAdmin() ).getManagedRepositoryAdmin() ).setArchivaConfiguration( - archivaConfiguration ); - } - - @Test - public void testSecureActionBundle() - throws SecureActionException, RepositoryAdminException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration(), 3, 5 ); - archivaConfigurationControl.replay(); - - action.prepare(); - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testAddRepositoryGroup() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6, 8 ); - - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - RepositoryGroup repositoryGroup = action.getRepositoryGroup(); - repositoryGroup.setId( REPO_GROUP_ID ); - - String status = action.addRepositoryGroup(); - assertEquals( Action.SUCCESS, status ); - - assertEquals( Collections.singletonList( repositoryGroup ), - action.getRepositoryGroupAdmin().getRepositoriesGroups() ); - - archivaConfigurationControl.verify(); - } - - @Test - public void testAddEmptyRepositoryGroup() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 5, 7 ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - - String status = action.addRepositoryGroup(); - assertEquals( Action.ERROR, status ); - - assertEquals( 0, configuration.getRepositoryGroups().size() ); - } - - @Test - public void testAddDuplicateRepositoryGroup() - throws Exception - { - Configuration configuration = new Configuration(); - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 10, 12 ); - - archivaConfiguration.save( configuration ); - - archivaConfigurationControl.replay(); - - action.prepare(); - RepositoryGroup repositoryGroup = action.getRepositoryGroup(); - repositoryGroup.setId( REPO_GROUP_ID ); - - String status = action.addRepositoryGroup(); - assertEquals( Action.SUCCESS, status ); - - assertEquals( Collections.singletonList( repositoryGroup ), - action.getRepositoryGroupAdmin().getRepositoriesGroups() ); - - repositoryGroup.setId( REPO_GROUP_ID ); - status = action.addRepositoryGroup(); - - assertEquals( Action.ERROR, status ); - assertEquals( Collections.singletonList( repositoryGroup ), - action.getRepositoryGroupAdmin().getRepositoriesGroups() ); - } - - @Test - public void testGetRepositoryGroups() - throws Exception - { - ServletRunner sr = new ServletRunner(); - ServletUnitClient sc = sr.newClient(); - - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6, 8 ); - archivaConfigurationControl.replay(); - - action.setServletRequest( sc.newInvocation( "http://localhost/admin/repositoryGroups.action" ).getRequest() ); - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertEquals( "http://localhost:0/repository", action.getBaseUrl() ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroup repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - - assertEquals( 1, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - } - - @Test - public void testAddRepositoryToGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 20, 24 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroup repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO2_ID ); - - result = action.addRepositoryToGroup(); - assertEquals( Action.SUCCESS, result ); - - action.prepare(); - result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertEquals( 1, action.getRepositoryGroups().size() ); - repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 2, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - assertEquals( REPO2_ID, repoGroup.getRepositories().get( 1 ) ); - - assertEquals( 0, action.getGroupToRepositoryMap().size() ); - assertNull( action.getGroupToRepositoryMap().get( repoGroup.getId() ) ); - } - - @Test - public void testRemoveRepositoryFromGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 19, 22 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroup repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO1_ID ); - - result = action.removeRepositoryFromGroup(); - assertEquals( Action.SUCCESS, result ); - - action.prepare(); - result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 0, repoGroup.getRepositories().size() ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 2, repos.size() ); - assertEquals( REPO1_ID, repos.get( 0 ) ); - assertEquals( REPO2_ID, repos.get( 1 ) ); - } - - @Test - public void testAddDuplicateRepositoryToGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6, 10 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroup repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO1_ID ); - - result = action.addRepositoryToGroup(); - assertEquals( Action.ERROR, result ); - } - - @Test - public void testRemoveRepositoryNotInGroup() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 6, 10 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - action.prepare(); - String result = action.execute(); - assertEquals( Action.SUCCESS, result ); - - assertNotNull( action.getRepositoryGroups() ); - assertEquals( 1, action.getRepositoryGroups().size() ); - assertEquals( 2, action.getManagedRepositories().size() ); - - RepositoryGroup repoGroup = action.getRepositoryGroups().get( REPO_GROUP_ID ); - assertEquals( 1, repoGroup.getRepositories().size() ); - assertEquals( REPO1_ID, repoGroup.getRepositories().get( 0 ) ); - - assertNotNull( action.getGroupToRepositoryMap() ); - assertEquals( 1, action.getGroupToRepositoryMap().size() ); - - List repos = action.getGroupToRepositoryMap().get( repoGroup.getId() ); - assertEquals( 1, repos.size() ); - assertEquals( REPO2_ID, repos.get( 0 ) ); - - action.setRepoGroupId( REPO_GROUP_ID ); - action.setRepoId( REPO2_ID ); - - result = action.removeRepositoryFromGroup(); - assertEquals( Action.ERROR, result ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - ManagedRepositoryConfiguration managedRepo1 = new ManagedRepositoryConfiguration(); - managedRepo1.setId( REPO1_ID ); - - config.addManagedRepository( managedRepo1 ); - - ManagedRepositoryConfiguration managedRepo2 = new ManagedRepositoryConfiguration(); - managedRepo2.setId( REPO2_ID ); - - config.addManagedRepository( managedRepo2 ); - - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( REPO_GROUP_ID ); - repoGroup.addRepository( REPO1_ID ); - - config.addRepositoryGroup( repoGroup ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java deleted file mode 100644 index ddaec50b6..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/SortRepositoriesActionTest.java +++ /dev/null @@ -1,254 +0,0 @@ -package org.apache.archiva.web.action.admin.repositories; - -/* - * 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. - */ - -import com.opensymphony.xwork2.Action; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.RepositoryGroupConfiguration; -import org.apache.struts2.StrutsSpringTestCase; -import org.apache.archiva.redback.integration.interceptor.SecureActionBundle; -import org.apache.archiva.redback.integration.interceptor.SecureActionException; -import org.easymock.MockControl; - -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -/** - * SortRepositoriesActionTest - */ -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class SortRepositoriesActionTest - extends StrutsSpringTestCase -{ - private static final String REPO_GROUP_ID = "repo-group-ident"; - - private static final String REPO1_ID = "managed-repo-ident-1"; - - private static final String REPO2_ID = "managed-repo-ident-2"; - - private static final String REPO3_ID = "managed-repo-ident-3"; - - private MockControl archivaConfigurationControl; - - private ArchivaConfiguration archivaConfiguration; - - private ArchivaConfiguration originalArchivaConfiguration; - - private SortRepositoriesAction action; - - @Override - protected String[] getContextLocations() - { - return new String[]{ "classpath*:/META-INF/spring-context.xml", "classpath*:/spring-context.xml" }; - } - - @Before - @Override - public void setUp() - throws Exception - { - super.setUp(); - action = (SortRepositoriesAction) getActionProxy( "/admin/sortDownRepositoryFromGroup.action" ).getAction(); - archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock(); - originalArchivaConfiguration = action.archivaConfiguration; - action.setArchivaConfiguration( archivaConfiguration ); - } - - @Override - @After - public void tearDown() - throws Exception - { - super.tearDown(); - action.archivaConfiguration = originalArchivaConfiguration; - } - - @Test - public void testSecureActionBundle() - throws SecureActionException - { - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( new Configuration() ); - archivaConfigurationControl.replay(); - - SecureActionBundle bundle = action.getSecureActionBundle(); - assertTrue( bundle.requiresAuthentication() ); - assertEquals( 1, bundle.getAuthorizationTuples().size() ); - } - - @Test - public void testSortDownFirstRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = - (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort down first repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO1_ID ); - - String result = action.sortDown(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO2_ID, repositories.get( 0 ) ); - assertEquals( REPO1_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - } - - @Test - public void testSortDownLastRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = - (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort down last repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO3_ID ); - - String result = action.sortDown(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - } - - @Test - public void testSortUpLastRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = - (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort up last repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO3_ID ); - - String result = action.sortUp(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO3_ID, repositories.get( 1 ) ); - assertEquals( REPO2_ID, repositories.get( 2 ) ); - } - - @Test - public void testSortUpFirstRepository() - throws Exception - { - Configuration configuration = createInitialConfiguration(); - - archivaConfiguration.getConfiguration(); - archivaConfigurationControl.setReturnValue( configuration, 4 ); - archivaConfiguration.save( configuration ); - archivaConfigurationControl.replay(); - - RepositoryGroupConfiguration repoGroup = - (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - java.util.List repositories = repoGroup.getRepositories(); - - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - - // sort up first repo - action.setRepoGroupId( repoGroup.getId() ); - action.setTargetRepo( REPO1_ID ); - - String result = action.sortUp(); - assertEquals( Action.SUCCESS, result ); - - repoGroup = (RepositoryGroupConfiguration) configuration.getRepositoryGroups().get( 0 ); - repositories = repoGroup.getRepositories(); - assertEquals( 3, repositories.size() ); - assertEquals( REPO1_ID, repositories.get( 0 ) ); - assertEquals( REPO2_ID, repositories.get( 1 ) ); - assertEquals( REPO3_ID, repositories.get( 2 ) ); - } - - private Configuration createInitialConfiguration() - { - Configuration config = new Configuration(); - - RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration(); - repoGroup.setId( REPO_GROUP_ID ); - repoGroup.addRepository( REPO1_ID ); - repoGroup.addRepository( REPO2_ID ); - repoGroup.addRepository( REPO3_ID ); - - config.addRepositoryGroup( repoGroup ); - - return config; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/scanning/RepositoryScanningActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/scanning/RepositoryScanningActionTest.java deleted file mode 100644 index ac4be6f53..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/scanning/RepositoryScanningActionTest.java +++ /dev/null @@ -1,143 +0,0 @@ -package org.apache.archiva.web.action.admin.scanning; - -import org.apache.archiva.admin.repository.admin.DefaultArchivaAdministration; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.RepositoryScanningConfiguration; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.easymock.MockControl; - -import java.util.ArrayList; -import java.util.List; -import org.junit.Before; -import org.junit.Test; - -/* - * 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. - */ - -public class RepositoryScanningActionTest - extends AbstractActionTestCase -{ - private RepositoryScanningAction action; - - private MockControl archivaConfigControl; - - private ArchivaConfiguration archivaConfig; - - private Configuration config; - - @Override - @Before - public void setUp() - throws Exception - { - - super.setUp(); - - archivaConfigControl = MockControl.createControl( ArchivaConfiguration.class ); - archivaConfig = (ArchivaConfiguration) archivaConfigControl.getMock(); - - action = new RepositoryScanningAction(); - - config = new Configuration(); - - RepositoryScanningConfiguration repositoryScanningConfig = new RepositoryScanningConfiguration(); - - repositoryScanningConfig.setKnownContentConsumers( createKnownContentConsumersList() ); - - config.setRepositoryScanning( repositoryScanningConfig ); - - DefaultArchivaAdministration archivaAdministration = new DefaultArchivaAdministration(); - archivaAdministration.setArchivaConfiguration( archivaConfig ); - action.setArchivaAdministration( archivaAdministration ); - - } - - @Test - public void testUpdateKnownConsumers() - throws Exception - { - archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config, 10 ); - - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfigControl.replay(); - - setEnabledKnownContentConsumers(); - - String returnString = action.updateKnownConsumers(); - - List results = config.getRepositoryScanning().getKnownContentConsumers(); - - assertEquals( action.SUCCESS, returnString ); - assertEquals( "results " + results, 8, results.size() ); - } - - @Test - public void testDisableAllKnownConsumers() - throws Exception - { - archivaConfigControl.expectAndReturn( archivaConfig.getConfiguration(), config, 10 ); - - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfig.save( config ); - archivaConfigControl.replay(); - - action.setEnabledKnownContentConsumers( null ); - - String returnString = action.updateKnownConsumers(); - - List results = config.getRepositoryScanning().getKnownContentConsumers(); - - assertEquals( action.SUCCESS, returnString ); - assertEquals( 0, results.size() ); - } - - private void setEnabledKnownContentConsumers() - { - action.setEnabledKnownContentConsumers( createKnownContentConsumersList() ); - } - - private List createKnownContentConsumersList() - { - List knownContentConsumers = new ArrayList(); - knownContentConsumers.add( "auto-remove" ); - knownContentConsumers.add( "auto-rename" ); - knownContentConsumers.add( "create-missing-checksums" ); - knownContentConsumers.add( "index-content" ); - knownContentConsumers.add( "metadata-updater" ); - knownContentConsumers.add( "repository-purge" ); - knownContentConsumers.add( "update-db-artifact" ); - knownContentConsumers.add( "validate-checksums" ); - - return knownContentConsumers; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/reports/GenerateReportActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/reports/GenerateReportActionTest.java deleted file mode 100644 index b5e015ec9..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/reports/GenerateReportActionTest.java +++ /dev/null @@ -1,743 +0,0 @@ -package org.apache.archiva.web.action.reports; - -/* - * 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. - */ - -import com.google.common.collect.Lists; -import com.opensymphony.xwork2.Action; -import org.apache.archiva.admin.model.beans.ManagedRepository; -import org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin; -import org.apache.archiva.metadata.model.MetadataFacet; -import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.apache.archiva.metadata.repository.stats.RepositoryStatistics; -import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; -import org.apache.archiva.reports.RepositoryProblemFacet; -import org.apache.archiva.security.UserRepositoriesStub; -import org.apache.commons.io.IOUtils; -import org.apache.archiva.web.action.AbstractActionTestCase; -import org.easymock.MockControl; -import org.junit.After; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.junit.Test; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -/** - * Test the GenerationReportAction. Note that we are testing for current behaviour, however there are several - * instances below where other behaviour may actually be more appropriate (eg the error handling, download stats should - * never forward to HTML page, etc). This is also missing tests for various combinations of paging at this point. - */ -public class GenerateReportActionTest - extends AbstractActionTestCase -{ - private GenerateReportAction action; - - private static final String SNAPSHOTS = "snapshots"; - - private static final String INTERNAL = "internal"; - - private static final String GROUP_ID = "groupId"; - - private RepositoryStatisticsManager repositoryStatisticsManager; - - private MockControl repositoryStatisticsManagerControl; - - private MockControl metadataRepositoryControl; - - private MetadataRepository metadataRepository; - - private static final String PROBLEM = "problem"; - - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - UserRepositoriesStub stub = applicationContext.getBean( "userRepositories", UserRepositoriesStub.class ); - stub.setRepoIds( Lists.newArrayList( "internal", "snapshots" ) ); - - action = (GenerateReportAction) getActionProxy( "/report/generateReport.action" ).getAction(); - - repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class ); - repositoryStatisticsManager = (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock(); - action.setRepositoryStatisticsManager( repositoryStatisticsManager ); - - metadataRepositoryControl = MockControl.createControl( MetadataRepository.class ); - metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock(); - - RepositorySession repositorySession = mock( RepositorySession.class ); - when( repositorySession.getRepository() ).thenReturn( metadataRepository ); - - TestRepositorySessionFactory factory = - applicationContext.getBean( "repositorySessionFactory#test", TestRepositorySessionFactory.class ); - factory.setRepositorySession( repositorySession ); - } - - - @Override - @After - public void tearDown() - throws Exception - { - UserRepositoriesStub stub = applicationContext.getBean( "userRepositories", UserRepositoriesStub.class ); - stub.setRepoIds( Lists.newArrayList( "test-repo" ) ); - - super.tearDown(); - - } - - private void prepareAction( List selectedRepositories, List availableRepositories ) - throws Exception - { - MockControl managedRepositoryControl = MockControl.createControl( ManagedRepositoryAdmin.class ); - ManagedRepositoryAdmin managedRepositoryAdmin = (ManagedRepositoryAdmin) managedRepositoryControl.getMock(); - - Map map = new HashMap( availableRepositories.size() ); - for ( String repoId : availableRepositories ) - { - map.put( repoId, new ManagedRepository() ); - } - - managedRepositoryControl.expectAndReturn( managedRepositoryAdmin.getManagedRepositoriesAsMap(), map, 1, 10 ); - - managedRepositoryControl.replay(); - action.setManagedRepositoryAdmin( managedRepositoryAdmin ); - - - action.setSelectedRepositories( selectedRepositories ); - action.prepare(); - - List repos = Arrays.asList( GenerateReportAction.ALL_REPOSITORIES, INTERNAL, SNAPSHOTS ); - - Collections.sort( repos ); - - Collections.sort( action.getRepositoryIds() ); - - assertEquals( repos, action.getRepositoryIds() ); - Collections.sort( action.getAvailableRepositories() ); - - availableRepositories = new ArrayList( availableRepositories ); - Collections.sort( availableRepositories ); - - - assertEquals( availableRepositories, action.getAvailableRepositories() ); - } - - @Test - public void testGenerateStatisticsInvalidRowCount() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - action.setRowCount( 0 ); - String result = action.generateStatistics(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsInvalidEndDate() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - action.setStartDate( "2009/12/12" ); - action.setEndDate( "2008/11/11" ); - String result = action.generateStatistics(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsMalformedEndDate() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - action.setEndDate( "This is not a date" ); - String result = action.generateStatistics(); - - // TODO: should be an input error - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsInvalidEndDateMultiRepo() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - action.setStartDate( "2009/12/12" ); - action.setEndDate( "2008/11/11" ); - String result = action.generateStatistics(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsMalformedEndDateMultiRepo() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - action.setEndDate( "This is not a date" ); - String result = action.generateStatistics(); - - // TODO: should be an input error - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsNoRepos() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.generateStatistics(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsSingleRepo() - throws Exception - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.singletonList( createDefaultStats() ) ); - - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - String result = action.generateStatistics(); - assertSuccessResult( result ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsSingleRepoNoStats() - throws Exception - - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.emptyList() ); - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - String result = action.generateStatistics(); - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsOvershotPages() - throws Exception - - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.singletonList( createDefaultStats() ) ); - repositoryStatisticsManagerControl.replay(); - action.setPage( 2 ); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - String result = action.generateStatistics(); - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsMultipleRepoNoResults() - throws Exception - - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, SNAPSHOTS, null, null ), - Collections.emptyList() ); - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.emptyList() ); - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - String result = action.generateStatistics(); - assertEquals( GenerateReportAction.BLANK, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasActionMessages() ); - assertFalse( action.hasFieldErrors() ); - - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testGenerateStatisticsMultipleRepo() - throws Exception - - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, SNAPSHOTS, null, null ), - Collections.singletonList( createDefaultStats() ) ); - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.singletonList( createDefaultStats() ) ); - - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - String result = action.generateStatistics(); - assertSuccessResult( result ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsSingleRepo() - throws Exception - { - Date date = new Date(); - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, SNAPSHOTS, null, null ), - Collections.singletonList( createStats( date ) ) ); - repositoryStatisticsManagerControl.replay(); - - prepareAction( Arrays.asList( SNAPSHOTS ), Arrays.asList( INTERNAL ) ); - - String result = action.downloadStatisticsReport(); - assertEquals( GenerateReportAction.SEND_FILE, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasFieldErrors() ); - - assertEquals( - "Date of Scan,Total File Count,Total Size,Artifact Count,Group Count,Project Count,Plugins,Archetypes,Jars,Wars\n" - + date + ",0,0,0,0,0,0,0,0,0\n", IOUtils.toString( action.getInputStream() ) ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsMultipleRepos() - throws Exception - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, SNAPSHOTS, null, null ), - Collections.singletonList( createDefaultStats() ) ); - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.singletonList( createDefaultStats() ) ); - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - String result = action.downloadStatisticsReport(); - assertEquals( GenerateReportAction.SEND_FILE, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasFieldErrors() ); - - assertMultiRepoCsvResult(); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsMalformedEndDateMultiRepo() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - action.setEndDate( "This is not a date" ); - String result = action.downloadStatisticsReport(); - - // TODO: should be an input error - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsMalformedEndDateSingleRepo() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS ), Arrays.asList( INTERNAL ) ); - - action.setEndDate( "This is not a date" ); - String result = action.downloadStatisticsReport(); - - // TODO: should be an input error - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsInvalidEndDateMultiRepo() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - action.setStartDate( "2009/12/12" ); - action.setEndDate( "2008/11/11" ); - String result = action.downloadStatisticsReport(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsInvalidEndDateSingleRepo() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS ), Arrays.asList( INTERNAL ) ); - - action.setStartDate( "2009/12/12" ); - action.setEndDate( "2008/11/11" ); - String result = action.downloadStatisticsReport(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsSingleRepoNoStats() - throws Exception - - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.emptyList() ); - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.singletonList( INTERNAL ), Collections.singletonList( SNAPSHOTS ) ); - - String result = action.downloadStatisticsReport(); - assertEquals( Action.ERROR, result ); - assertTrue( action.hasActionErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsNoRepos() - throws Exception - { - repositoryStatisticsManagerControl.replay(); - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.downloadStatisticsReport(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsMultipleRepoNoResults() - throws Exception - - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, SNAPSHOTS, null, null ), - Collections.emptyList() ); - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.emptyList() ); - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - String result = action.downloadStatisticsReport(); - assertEquals( GenerateReportAction.BLANK, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasActionMessages() ); - assertFalse( action.hasFieldErrors() ); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testDownloadStatisticsMultipleRepoInStrutsFormat() - throws Exception - { - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, SNAPSHOTS, null, null ), - Collections.singletonList( createDefaultStats() ) ); - repositoryStatisticsManagerControl.expectAndReturn( - repositoryStatisticsManager.getStatisticsInRange( metadataRepository, INTERNAL, null, null ), - Collections.singletonList( createDefaultStats() ) ); - repositoryStatisticsManagerControl.replay(); - prepareAction( Arrays.asList( SNAPSHOTS, INTERNAL ), Collections.emptyList() ); - - action.setSelectedRepositories( Collections.singletonList( "[" + SNAPSHOTS + "],[" + INTERNAL + "]" ) ); - String result = action.downloadStatisticsReport(); - assertEquals( GenerateReportAction.SEND_FILE, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasFieldErrors() ); - - assertMultiRepoCsvResult(); - repositoryStatisticsManagerControl.verify(); - } - - @Test - public void testHealthReportSingleRepo() - throws Exception - { - RepositoryProblemFacet problem1 = createProblem( GROUP_ID, "artifactId", INTERNAL ); - RepositoryProblemFacet problem2 = createProblem( GROUP_ID, "artifactId-2", INTERNAL ); - - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( INTERNAL, RepositoryProblemFacet.FACET_ID ), - Arrays.asList( problem1.getName(), problem2.getName() ) ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( INTERNAL, RepositoryProblemFacet.FACET_ID, problem1.getName() ), - problem1 ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( INTERNAL, RepositoryProblemFacet.FACET_ID, problem2.getName() ), - problem2 ); - metadataRepositoryControl.replay(); - - action.setRepositoryId( INTERNAL ); - - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertSuccessResult( result ); - - assertEquals( Collections.singleton( INTERNAL ), action.getRepositoriesMap().keySet() ); - assertEquals( Arrays.asList( problem1, problem2 ), action.getRepositoriesMap().get( INTERNAL ) ); - - metadataRepositoryControl.verify(); - } - - @Test - public void testHealthReportInvalidRowCount() - throws Exception - { - metadataRepositoryControl.replay(); - - action.setRowCount( 0 ); - action.setRepositoryId( INTERNAL ); - - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertEquals( Action.INPUT, result ); - assertFalse( action.hasActionErrors() ); - assertTrue( action.hasFieldErrors() ); - - metadataRepositoryControl.verify(); - } - - @Test - public void testHealthReportAllRepos() - throws Exception - { - RepositoryProblemFacet problem1 = createProblem( GROUP_ID, "artifactId", INTERNAL ); - RepositoryProblemFacet problem2 = createProblem( GROUP_ID, "artifactId-2", SNAPSHOTS ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( INTERNAL, RepositoryProblemFacet.FACET_ID ), - Arrays.asList( problem1.getName() ) ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( SNAPSHOTS, RepositoryProblemFacet.FACET_ID ), - Arrays.asList( problem2.getName() ) ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( INTERNAL, RepositoryProblemFacet.FACET_ID, problem1.getName() ), - problem1 ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( SNAPSHOTS, RepositoryProblemFacet.FACET_ID, problem2.getName() ), - problem2 ); - metadataRepositoryControl.replay(); - - action.setRepositoryId( GenerateReportAction.ALL_REPOSITORIES ); - - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertSuccessResult( result ); - - assertEquals( Arrays.asList( INTERNAL, SNAPSHOTS ), - new ArrayList( action.getRepositoriesMap().keySet() ) ); - assertEquals( Arrays.asList( problem1 ), action.getRepositoriesMap().get( INTERNAL ) ); - assertEquals( Arrays.asList( problem2 ), action.getRepositoriesMap().get( SNAPSHOTS ) ); - - metadataRepositoryControl.verify(); - } - - @Test - public void testHealthReportSingleRepoByCorrectGroupId() - throws Exception - { - RepositoryProblemFacet problem1 = createProblem( GROUP_ID, "artifactId", INTERNAL ); - RepositoryProblemFacet problem2 = createProblem( GROUP_ID, "artifactId-2", INTERNAL ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( INTERNAL, RepositoryProblemFacet.FACET_ID ), - Arrays.asList( problem1.getName(), problem2.getName() ) ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( INTERNAL, RepositoryProblemFacet.FACET_ID, problem1.getName() ), - problem1 ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( INTERNAL, RepositoryProblemFacet.FACET_ID, problem2.getName() ), - problem2 ); - metadataRepositoryControl.replay(); - - action.setGroupId( GROUP_ID ); - action.setRepositoryId( INTERNAL ); - - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertSuccessResult( result ); - - assertEquals( Collections.singleton( INTERNAL ), action.getRepositoriesMap().keySet() ); - assertEquals( Arrays.asList( problem1, problem2 ), action.getRepositoriesMap().get( INTERNAL ) ); - - metadataRepositoryControl.verify(); - } - - @Test - public void testHealthReportSingleRepoByCorrectGroupIdAllRepositories() - throws Exception - { - RepositoryProblemFacet problem1 = createProblem( GROUP_ID, "artifactId", INTERNAL ); - RepositoryProblemFacet problem2 = createProblem( GROUP_ID, "artifactId-2", SNAPSHOTS ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( INTERNAL, RepositoryProblemFacet.FACET_ID ), - Arrays.asList( problem1.getName() ) ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( SNAPSHOTS, RepositoryProblemFacet.FACET_ID ), - Arrays.asList( problem2.getName() ) ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( INTERNAL, RepositoryProblemFacet.FACET_ID, problem1.getName() ), - problem1 ); - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacet( SNAPSHOTS, RepositoryProblemFacet.FACET_ID, problem2.getName() ), - problem2 ); - metadataRepositoryControl.replay(); - - action.setGroupId( GROUP_ID ); - action.setRepositoryId( GenerateReportAction.ALL_REPOSITORIES ); - - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertSuccessResult( result ); - - assertEquals( Arrays.asList( INTERNAL, SNAPSHOTS ), - new ArrayList( action.getRepositoriesMap().keySet() ) ); - assertEquals( Arrays.asList( problem1 ), action.getRepositoriesMap().get( INTERNAL ) ); - assertEquals( Arrays.asList( problem2 ), action.getRepositoriesMap().get( SNAPSHOTS ) ); - - metadataRepositoryControl.verify(); - } - - @Test - public void testHealthReportSingleRepoByIncorrectGroupId() - throws Exception - { - metadataRepositoryControl.expectAndReturn( - metadataRepository.getMetadataFacets( INTERNAL, RepositoryProblemFacet.FACET_ID ), - Collections.emptyList() ); - metadataRepositoryControl.replay(); - - action.setGroupId( "not.it" ); - action.setRepositoryId( INTERNAL ); - - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertEquals( GenerateReportAction.BLANK, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasFieldErrors() ); - - metadataRepositoryControl.verify(); - } - - private void assertMultiRepoCsvResult() - throws IOException - { - assertEquals( - "Repository,Total File Count,Total Size,Artifact Count,Group Count,Project Count,Plugins,Archetypes,Jars,Wars\n" - + "snapshots,0,0,0,0,0,0,0,0,0\n" + "internal,0,0,0,0,0,0,0,0,0\n", - IOUtils.toString( action.getInputStream() ) ); - } - - private RepositoryProblemFacet createProblem( String groupId, String artifactId, String repoId ) - { - RepositoryProblemFacet problem = new RepositoryProblemFacet(); - problem.setRepositoryId( repoId ); - problem.setNamespace( groupId ); - problem.setProject( artifactId ); - problem.setProblem( PROBLEM ); - return problem; - } - - @Test - public void testHealthReportNoRepositoryId() - throws Exception - { - prepareAction( Collections.emptyList(), Arrays.asList( SNAPSHOTS, INTERNAL ) ); - - String result = action.execute(); - assertEquals( Action.INPUT, result ); - assertTrue( action.hasFieldErrors() ); - } - - private void assertSuccessResult( String result ) - { - assertEquals( Action.SUCCESS, result ); - assertFalse( action.hasActionErrors() ); - assertFalse( action.hasFieldErrors() ); - } - - private RepositoryStatistics createDefaultStats() - { - return createStats( new Date() ); - } - - private RepositoryStatistics createStats( Date date ) - { - RepositoryStatistics stats = new RepositoryStatistics(); - stats.setScanStartTime( date ); - return stats; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/startup/BannerTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/startup/BannerTest.java deleted file mode 100644 index 6f371aece..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/startup/BannerTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.apache.archiva.web.startup; - -/* - * 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. - */ - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.zip.GZIPInputStream; - -import org.apache.commons.io.IOUtils; - -import junit.framework.TestCase; -import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; -import org.junit.Test; -import org.junit.runner.RunWith; -/** - * BannerTest - * - * - */ -@RunWith( ArchivaBlockJUnit4ClassRunner.class ) -public class BannerTest - extends TestCase -{ - private static final String eol = System.getProperty( "line.separator" ); - - private void assertEncodeDecode( String encoded, String decoded ) - { - assertEquals( "Encoding: ", encoded, Banner.encode( decoded ) ); - assertEquals( "Decoding: ", decoded, Banner.decode( encoded ) ); - } - - @Test - public void testEncodeDecode() - { - assertEncodeDecode( "[$10 ]", "[ ]" ); - assertEncodeDecode( "$$$5_$n$5_", "$_____" + eol + "_____" ); - assertEncodeDecode( "$${Refgjuvyr}", "${Erstwhile}" ); - } - - @Test - public void testInjectVersion() - { - assertEquals( "[ 1.0 ]", Banner.injectVersion( "[#####]", "1.0" ) ); - assertEquals( ".\\ 1.0-SNAPSHOT \\._____", - Banner.injectVersion( ".\\################\\._____", "1.0-SNAPSHOT" ) ); - assertEquals( "Archiva:\"+eol+\" ( 1.0-alpha-1 )", - Banner.injectVersion( "Archiva:\"+eol+\" (##############)", "1.0-alpha-1" ) ); - } - - @Test - public void testGetBanner() - throws IOException - { - String version = "1.0-alpha-1-SNAPSHOT"; - String banner = Banner.getBanner( version ); - assertNotNull( "Banner should not be null.", banner ); - assertTrue( "Banner contains version.", banner.indexOf( version ) > 0 ); - - /* Want to make a new banner? - * Steps to do it. - * 1) Edit the src/test/resources/banner.gz file. - * 2) Save it compressed. - * 3) Add (to this test method) ... - * System.out.println( "\"" + Banner.encode( getRawBanner() ) + "\"" ); - * 4) Run the test - * 5) Copy / Paste the encoded form into the Banner.getBanner() method. - */ - } - - public String getRawBanner() - throws IOException - { - File gzBanner = new File( "src/test/resources/banner.gz" ); - assertTrue( "File [" + gzBanner.getPath() + "] not found.", gzBanner.exists() ); - FileInputStream fis = new FileInputStream( gzBanner ); - GZIPInputStream gzis = new GZIPInputStream( fis ); - String str = IOUtils.toString( gzis ); - IOUtils.closeQuietly( gzis ); - return str; - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/tags/DependencyTreeTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/tags/DependencyTreeTest.java deleted file mode 100644 index 4c5e3a563..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/tags/DependencyTreeTest.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.apache.archiva.web.tags; - -/* - * 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. - */ - -import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.config.ConfigurationManager; -import com.opensymphony.xwork2.config.providers.XWorkConfigurationProvider; -import com.opensymphony.xwork2.inject.Container; -import com.opensymphony.xwork2.util.ValueStack; -import com.opensymphony.xwork2.util.ValueStackFactory; -import junit.framework.TestCase; -import org.apache.archiva.common.ArchivaException; -import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; -import org.apache.archiva.configuration.ArchivaConfiguration; -import org.apache.archiva.configuration.Configuration; -import org.apache.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.archiva.configuration.RepositoryScanningConfiguration; -import org.apache.archiva.metadata.model.ProjectVersionMetadata; -import org.apache.archiva.metadata.repository.RepositorySession; -import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; -import org.apache.archiva.webtest.memory.TestMetadataResolver; -import org.apache.archiva.webtest.memory.TestRepositorySessionFactory; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.sonatype.aether.artifact.Artifact; -import org.sonatype.aether.util.artifact.DefaultArtifact; -import org.springframework.context.ApplicationContext; -import org.springframework.test.context.ContextConfiguration; - -import javax.inject.Inject; -import java.util.List; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -@RunWith( ArchivaSpringJUnit4ClassRunner.class ) -@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml", - "classpath:/spring-context-DependencyTreeTest.xml" } ) -public class DependencyTreeTest - extends TestCase -{ - @Inject - private DependencyTree tree; - - @Inject - private PlexusSisuBridge plexusSisuBridge; - - @Inject - private ApplicationContext applicationContext; - - - private static final String TEST_VERSION = "version"; - - private static final String TEST_REPO_ID = "test-repo"; - - private static final String TEST_GROUP_ID = "groupId"; - - private static final String TEST_ARTIFACT_ID = "artifactId"; - - - @Override - @Before - public void setUp() - throws Exception - { - super.setUp(); - - ConfigurationManager configurationManager = new ConfigurationManager(); - configurationManager.addContainerProvider( new XWorkConfigurationProvider() ); - com.opensymphony.xwork2.config.Configuration config = configurationManager.getConfiguration(); - Container container = config.getContainer(); - - ValueStack stack = container.getInstance( ValueStackFactory.class ).createValueStack(); - stack.getContext().put( ActionContext.CONTAINER, container ); - ActionContext.setContext( new ActionContext( stack.getContext() ) ); - - assertNotNull( ActionContext.getContext() ); - - Configuration configuration = new Configuration(); - ManagedRepositoryConfiguration repoConfig = new ManagedRepositoryConfiguration(); - repoConfig.setId( TEST_REPO_ID ); - repoConfig.setLocation( "src/test/repositories/test" ); - configuration.addManagedRepository( repoConfig ); - - ArchivaConfiguration archivaConfiguration = applicationContext.getBean( ArchivaConfiguration.class ); - archivaConfiguration.getConfiguration().setRepositoryScanning( new RepositoryScanningConfiguration() ); - archivaConfiguration.save( configuration ); - - TestMetadataResolver metadataResolver = applicationContext.getBean( TestMetadataResolver.class ); - ProjectVersionMetadata metadata = new ProjectVersionMetadata(); - metadata.setId( TEST_VERSION ); - metadataResolver.setProjectVersion( TEST_REPO_ID, TEST_GROUP_ID, TEST_ARTIFACT_ID, metadata ); - - RepositorySession repositorySession = mock( RepositorySession.class ); - when( repositorySession.getResolver() ).thenReturn( metadataResolver ); - TestRepositorySessionFactory repositorySessionFactory = - applicationContext.getBean( TestRepositorySessionFactory.class ); - repositorySessionFactory.setRepositorySession( repositorySession ); - } - - @Test - public void testTree() - throws ArchivaException - { - List entries = tree.gatherTreeList( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ); - assertEquals( 8, entries.size() ); - - DependencyTree.TreeEntry artifactId = entries.get( 0 ); - assertEquals( "
      • ", artifactId.getPre() ); - // olamy tree with aether always create jar so createPomArtifact failed but it's not used - assertTrue( assertArtifactsEquals( createArtifact( TEST_GROUP_ID, TEST_ARTIFACT_ID, TEST_VERSION ), - artifactId.getArtifact() ) ); - assertEquals( "
      • ", artifactId.getPost() ); - - DependencyTree.TreeEntry child1 = entries.get( 1 ); - assertEquals( "
        • ", child1.getPre() ); - assertTrue( assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "child1", "1.0" ), child1.getArtifact() ) ); - assertEquals( "
        • ", child1.getPost() ); - - DependencyTree.TreeEntry grandchild = entries.get( 2 ); - assertEquals( "
          • ", grandchild.getPre() ); - assertTrue( - assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "grandchild1", "2.0" ), grandchild.getArtifact() ) ); - assertEquals( "
          • ", grandchild.getPost() ); - - DependencyTree.TreeEntry greatGrandchild = entries.get( 3 ); - assertEquals( "
            • ", greatGrandchild.getPre() ); - assertTrue( assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "great-grandchild", "3.0" ), - greatGrandchild.getArtifact() ) ); - assertEquals( "
          ", greatGrandchild.getPost() ); - - DependencyTree.TreeEntry child2 = entries.get( 4 ); - assertEquals( "
        • ", child2.getPre() ); - assertTrue( assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "child2", "1.0" ), child2.getArtifact() ) ); - assertEquals( "
        • ", child2.getPost() ); - - DependencyTree.TreeEntry grandchild2 = entries.get( 5 ); - assertEquals( "
          • ", grandchild2.getPre() ); - assertTrue( - assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "grandchild2", "2.0" ), grandchild2.getArtifact() ) ); - assertEquals( "
          • ", grandchild2.getPost() ); - - DependencyTree.TreeEntry grandchild3 = entries.get( 6 ); - assertEquals( "
          • ", grandchild3.getPre() ); - assertTrue( - assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "grandchild3", "2.0" ), grandchild3.getArtifact() ) ); - assertEquals( "
          ", grandchild3.getPost() ); - - DependencyTree.TreeEntry child3 = entries.get( 7 ); - assertEquals( "
        • ", child3.getPre() ); - assertTrue( assertArtifactsEquals( createArtifact( TEST_GROUP_ID, "child3", "1.0" ), child3.getArtifact() ) ); - assertEquals( "
      ", child3.getPost() ); - } - - private Artifact createPomArtifact( String groupId, String artifactId, String version ) - { - return new DefaultArtifact( groupId + ":" + artifactId + ":" + version ); - } - - private Artifact createArtifact( String groupId, String artifactId, String version ) - { - return new DefaultArtifact( groupId, artifactId, "jar", version ); - } - - - public boolean assertArtifactsEquals( Artifact a, Artifact b ) - { - return a.getArtifactId().equals( b.getArtifactId() ) && a.getGroupId().equals( b.getGroupId() ) - && a.getVersion().equals( b.getVersion() ) && a.getExtension().equals( b.getExtension() ) - && a.getClassifier().equals( b.getClassifier() ); - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/validator/utils/ValidatorUtil.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/validator/utils/ValidatorUtil.java deleted file mode 100644 index 470544f0b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/validator/utils/ValidatorUtil.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.archiva.web.validator.utils; - -/* - * 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. - */ - -import junit.framework.Assert; -import org.apache.commons.lang.SystemUtils; - -import java.util.List; -import java.util.Map; - -public class ValidatorUtil -{ - public static void assertFieldErrors( Map> expectedFieldErrors, - Map> actualFieldErrors ) - { - if ( expectedFieldErrors != null ) - { - Assert.assertNotNull( actualFieldErrors ); - // checks the number of field errors - Assert.assertEquals( - "expected " + expectedFieldErrors + SystemUtils.LINE_SEPARATOR + ", found " + actualFieldErrors, - expectedFieldErrors.size(), actualFieldErrors.size() ); - - // check every content of the field error - for ( Map.Entry> expectedEntry : expectedFieldErrors.entrySet() ) - { - if ( expectedEntry.getValue() != null ) - { - Assert.assertNotNull( "actual with key " + expectedEntry.getKey() + " is null", - actualFieldErrors.get( expectedEntry.getKey() ) ); - // checks the error message count per error field - Assert.assertEquals( expectedEntry.getValue().size(), - actualFieldErrors.get( expectedEntry.getKey() ).size() ); - - // check the contents of error messages per field error - for ( int i = 0; i < expectedEntry.getValue().size(); i++ ) - { - String expected = expectedEntry.getValue().get( i ); - String actual = actualFieldErrors.get( expectedEntry.getKey() ).get( i ); - Assert.assertEquals( expected, actual ); - } - } - else - { - Assert.assertNull( actualFieldErrors.get( expectedEntry.getKey() ) ); - } - } - } - else - { - Assert.assertNull( actualFieldErrors ); - } - } -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/artifactId/version/artifactId-version.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/artifactId/version/artifactId-version.pom deleted file mode 100644 index a00ae8ed5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/artifactId/version/artifactId-version.pom +++ /dev/null @@ -1,43 +0,0 @@ - - - - 4.0.0 - groupId - artifactId - version - - - - groupId - child1 - 1.0 - - - groupId - child2 - 1.0 - - - groupId - child3 - 1.0 - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child1/1.0/child1-1.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child1/1.0/child1-1.0.pom deleted file mode 100644 index 9fd48010e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child1/1.0/child1-1.0.pom +++ /dev/null @@ -1,33 +0,0 @@ - - - - 4.0.0 - groupId - child1 - 1.0 - - - - groupId - grandchild1 - 2.0 - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child2/1.0/child2-1.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child2/1.0/child2-1.0.pom deleted file mode 100644 index d00b00716..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child2/1.0/child2-1.0.pom +++ /dev/null @@ -1,37 +0,0 @@ - - - - 4.0.0 - groupId - child2 - 1.0 - - - groupId - grandchild2 - 2.0 - - - groupId - grandchild3 - 2.0 - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child3/1.0/child3-1.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child3/1.0/child3-1.0.pom deleted file mode 100644 index ef4fc37d6..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/child3/1.0/child3-1.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - groupId - child3 - 1.0 - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild1/2.0/grandchild1-2.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild1/2.0/grandchild1-2.0.pom deleted file mode 100644 index 36a00b03f..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild1/2.0/grandchild1-2.0.pom +++ /dev/null @@ -1,32 +0,0 @@ - - - - 4.0.0 - groupId - grandchild1 - 2.0 - - - groupId - great-grandchild - 3.0 - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild2/2.0/grandchild2-2.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild2/2.0/grandchild2-2.0.pom deleted file mode 100644 index 0cfd9b0fc..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild2/2.0/grandchild2-2.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - groupId - grandchild2 - 2.0 - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild3/2.0/grandchild3-2.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild3/2.0/grandchild3-2.0.pom deleted file mode 100644 index 0cfd9b0fc..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/grandchild3/2.0/grandchild3-2.0.pom +++ /dev/null @@ -1,25 +0,0 @@ - - - - 4.0.0 - groupId - grandchild2 - 2.0 - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/great-grandchild/3.0/great-grandchild-3.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/great-grandchild/3.0/great-grandchild-3.0.pom deleted file mode 100644 index 7eb6c675e..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repositories/test/groupId/great-grandchild/3.0/great-grandchild-3.0.pom +++ /dev/null @@ -1,26 +0,0 @@ - - - - 4.0.0 - groupId - great-grandchild - 3.0 - pom - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/repository.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/repository.xml deleted file mode 100644 index 0be86ebbd..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/repository.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/spring-context.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/spring-context.xml deleted file mode 100644 index 5fe8e3d02..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/spring-context.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - scheduler1 - org.quartz.simpl.SimpleThreadPool - 2 - 4 - org.quartz.simpl.RAMJobStore - - - - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/artifact.jar b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/artifact.jar deleted file mode 100644 index e6f67ee94..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/artifact.jar +++ /dev/null @@ -1 +0,0 @@ -artifact.jar diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/banner.gz b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/banner.gz deleted file mode 100755 index 9715c46e7..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/banner.gz and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/empty-archiva.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/empty-archiva.xml deleted file mode 100644 index 997d62b00..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/empty-archiva.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - 2 - - - - - artifacts - - **/*.pom - **/*.jar - **/*.ear - **/*.war - **/*.car - **/*.sar - **/*.mar - **/*.rar - **/*.dtd - **/*.tld - **/*.tar.gz - **/*.tar.bz2 - **/*.zip - - - - indexable-content - - **/*.txt - **/*.TXT - **/*.block - **/*.config - **/*.pom - **/*.xml - **/*.xsd - **/*.dtd - **/*.tld - - - - auto-remove - - **/*.bak - **/*~ - **/*- - - - - ignored - - **/.htaccess - **/KEYS - **/*.rb - **/*.sh - **/.svn/** - **/.DAV/** - - - - - update-db-artifact - create-missing-checksums - update-db-repository-metadata - validate-checksum - validate-signature - index-content - auto-remove - auto-rename - - - update-db-bad-content - - - - - 0 0 * * * ? - - index-artifact - update-db-project - validate-repository-metadata - index-archive-toc - update-db-bytecode-stats - index-public-methods - - - not-present-remove-db-artifact - not-present-remove-db-project - not-present-remove-indexed - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j2-test.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j2-test.xml deleted file mode 100644 index 8d23a38d5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j2-test.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/spring-context-DependencyTreeTest.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/spring-context-DependencyTreeTest.xml deleted file mode 100644 index 3a4c26fed..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/spring-context-DependencyTreeTest.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/spring-context.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/spring-context.xml deleted file mode 100644 index e23485c79..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/spring-context.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/struts-security.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/struts-security.xml deleted file mode 100644 index 4a5c9ec8c..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/struts-security.xml +++ /dev/null @@ -1,330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - * - - - - - - - - - - - - - - - addadmin - /security - - /WEB-INF/jsp/redback/requiresAuthentication.jsp - /WEB-INF/jsp/redback/accessDenied.jsp - - password - /security - - - userlist - /security - - /WEB-INF/jsp/redback/invalidToken.jsp - - - - - - - security-logout - - - - - /WEB-INF/jsp/redback/register.jsp - /WEB-INF/jsp/redback/register.jsp - /WEB-INF/jsp/redback/validationNotification.jsp - - security-register-success - - - security-register-cancel - - - - - - - /WEB-INF/jsp/redback/password.jsp - /WEB-INF/jsp/redback/password.jsp - - security-login-success - - - security-register-success - - ${targetUrl} - - logout - /security - - /WEB-INF/jsp/redback/changePasswordSuccess.jsp - - - - /WEB-INF/jsp/redback/requestPasswordReset.jsp - /WEB-INF/jsp/redback/login.jsp - - - - - - - - /WEB-INF/jsp/redback/admin/systemInformation.jsp - - - - /WEB-INF/jsp/redback/admin/console.jsp - - - - userlist - - - - /WEB-INF/jsp/redback/admin/userList.jsp - /WEB-INF/jsp/redback/admin/userList.jsp - - - - /WEB-INF/jsp/redback/admin/userEdit.jsp - /WEB-INF/jsp/redback/admin/userEdit.jsp - /WEB-INF/jsp/redback/admin/confirmUserAdministrator.jsp - /WEB-INF/jsp/redback/admin/confirmUserAdministrator.jsp - userlist - userlist - - - - /WEB-INF/jsp/redback/admin/userCreate.jsp - /WEB-INF/jsp/redback/admin/userCreate.jsp - - assignments - ${user.username} - - - * - - - - - /WEB-INF/jsp/redback/admin/userDelete.jsp - userlist - userlist - userlist - - * - - - - - - - - - /WEB-INF/jsp/redback/admin/assignments.jsp - /WEB-INF/jsp/redback/include/error.jsp - /WEB-INF/jsp/redback/admin/assignments.jsp - - - - userlist - - * - - - - - userlist - - - - /WEB-INF/jsp/redback/admin/roleCreate.jsp - /WEB-INF/jsp/redback/admin/roleCreate.jsp - userlist - - * - - - - - /WEB-INF/jsp/redback/admin/role.jsp - /WEB-INF/jsp/redback/admin/role.jsp - roles - - - - /WEB-INF/jsp/redback/admin/roleEdit.jsp - /WEB-INF/jsp/redback/admin/roleEdit.jsp - roles - - - - /WEB-INF/jsp/redback/admin/roleEdit.jsp - /WEB-INF/jsp/redback/admin/roleEdit.jsp - roles - - * - - - - - /WEB-INF/jsp/redback/admin/roleEdit.jsp - /WEB-INF/jsp/redback/admin/roleEdit.jsp - /WEB-INF/jsp/redback/admin/roleEdit.jsp - - * - - - - - /WEB-INF/jsp/redback/admin/roleEdit.jsp - /WEB-INF/jsp/redback/admin/roleEdit.jsp - /WEB-INF/jsp/redback/admin/roleEdit.jsp - - * - - - - - /WEB-INF/jsp/redback/admin/roleSummary.jsp - - - - /WEB-INF/jsp/redback/admin/roleList.jsp - - - - /WEB-INF/jsp/redback/admin/permissionList.jsp - - - - /WEB-INF/jsp/redback/admin/operationList.jsp - - - - /WEB-INF/jsp/redback/admin/resourceList.jsp - - - - /WEB-INF/jsp/redback/admin/roleModel.jsp - - - - - - /WEB-INF/jsp/redback/admin/backupRestore.jsp - - - - /WEB-INF/jsp/redback/admin/backupRestore.jsp - backupRestore - - - - /WEB-INF/jsp/redback/admin/backupRestore.jsp - backupRestore - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar deleted file mode 100644 index 0464407c2..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar.md5 b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar.md5 deleted file mode 100644 index 29ab7cbb5..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar.md5 +++ /dev/null @@ -1 +0,0 @@ -5b0e72a002c047e2f200855f6d904a7e \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar.sha1 b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar.sha1 deleted file mode 100644 index 898bb7519..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -9b3ed9b1a8f1639bcc6a6986930d71a2996ba2fe \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom deleted file mode 100644 index 143bd719d..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom +++ /dev/null @@ -1,8 +0,0 @@ - - - 4.0.0 - org.apache.archiva - npe-metadata - 1.0 - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom.md5 b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom.md5 deleted file mode 100644 index c835b0b76..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom.md5 +++ /dev/null @@ -1 +0,0 @@ -30124c5194a639f12a2fb01e7aa5a952 \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom.sha1 b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom.sha1 deleted file mode 100644 index 274871d24..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/1.0/npe-metadata-1.0.pom.sha1 +++ /dev/null @@ -1 +0,0 @@ -83bee18c83a6f4964026587cc4ccffe653c45d0c \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml deleted file mode 100644 index c999862ff..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - org.apache.archiva - npe-metadata - 1.0 - - - 1.0 - - 20101105071933 - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml.md5 b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml.md5 deleted file mode 100644 index c73f5bc10..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml.md5 +++ /dev/null @@ -1 +0,0 @@ -6b4a71798c8fcb45ee0411cc9cf68064 \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml.sha1 b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml.sha1 deleted file mode 100644 index 76091f5fa..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/test-repo/org/apache/archiva/npe-metadata/maven-metadata.xml.sha1 +++ /dev/null @@ -1 +0,0 @@ -33c6dbdfdb263c394082d56e349d36e893ead06f \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar deleted file mode 100644 index 6e8a96d57..000000000 Binary files a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-reuploaded.jar and /dev/null differ diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-uploaded.jar b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/artifact-to-be-uploaded.jar deleted file mode 100644 index e69de29bb..000000000 diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml deleted file mode 100644 index 4b53023f3..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/upload-artifact-test/pom.xml +++ /dev/null @@ -1,6 +0,0 @@ - - org.apache.archiva - artifact-to-be-uploaded - 1.0 - jar - \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/auto-admin-creation.properties b/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/auto-admin-creation.properties deleted file mode 100644 index 7c8c5815b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/auto-admin-creation.properties +++ /dev/null @@ -1,22 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -redback.admin.fullname=Archiva Admin -redback.admin.email=admin@toto.com -redback.admin.password=admin123 \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/log4j2-test.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/log4j2-test.xml deleted file mode 100644 index 8c01d10be..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/log4j2-test.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml deleted file mode 100644 index fda8f8221..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml deleted file mode 100644 index 8a0c2c939..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - Apache Archiva - - - org.springframework.web.context.ContextLoaderListener - - - - contextClass - org.apache.archiva.redback.components.springutils.CachingWebApplicationContext - - - - contextConfigLocation - - classpath*:/spring-context.xml - classpath*:/META-INF/spring-context.xml - - - -