Browse Source

MRM-541 - convenient way to take Archiva proxies "offline"

* merging from branch



git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@687035 13f79535-47bb-0310-9956-ffa450edef68
tags/archiva-1.2-M1
James William Dumay 16 years ago
parent
commit
3109539b39
20 changed files with 993 additions and 120 deletions
  1. 9
    0
      archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
  2. 16
    0
      archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
  3. 13
    0
      archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java
  4. 8
    7
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
  5. 6
    6
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
  6. 39
    18
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ChecksumTransferTest.java
  7. 10
    10
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java
  8. 43
    22
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java
  9. 8
    8
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.java
  10. 63
    39
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MetadataTransferTest.java
  11. 10
    10
      archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/SnapshotTransferTest.java
  12. 4
    0
      archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java
  13. 98
    0
      archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java
  14. 98
    0
      archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java
  15. 13
    0
      archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml
  16. 50
    0
      archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp
  17. 50
    0
      archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp
  18. 18
    0
      archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
  19. 219
    0
      archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java
  20. 218
    0
      archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java

+ 9
- 0
archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo View File

@@ -725,6 +725,15 @@
<multiplicity>*</multiplicity>
</association>
</field>
<field>
<name>disabled</name>
<version>1.2+</version>
<description>
If the the repository proxy connector is disabled or not
</description>
<type>boolean</type>
<defaultValue>false</defaultValue>
</field>
</fields>
<codeSegments>
<codeSegment>

+ 16
- 0
archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java View File

@@ -151,6 +151,11 @@ public class DefaultRepositoryProxyConnectors
Map<String, Exception> previousExceptions = new LinkedHashMap<String, Exception>();
for ( ProxyConnector connector : connectors )
{
if (connector.isDisabled())
{
continue;
}
RemoteRepositoryContent targetRepository = connector.getTargetRepository();
requestProperties.setProperty( "remoteRepositoryId", targetRepository.getId() );

@@ -221,6 +226,11 @@ public class DefaultRepositoryProxyConnectors
List<ProxyConnector> connectors = getProxyConnectors( repository );
for ( ProxyConnector connector : connectors )
{
if (connector.isDisabled())
{
continue;
}
RemoteRepositoryContent targetRepository = connector.getTargetRepository();
requestProperties.setProperty( "remoteRepositoryId", targetRepository.getId() );

@@ -280,6 +290,11 @@ public class DefaultRepositoryProxyConnectors
List<ProxyConnector> connectors = getProxyConnectors( repository );
for ( ProxyConnector connector : connectors )
{
if (connector.isDisabled())
{
continue;
}
RemoteRepositoryContent targetRepository = connector.getTargetRepository();

File localRepoFile = toLocalRepoFile( repository, targetRepository, logicalPath );
@@ -1061,6 +1076,7 @@ public class DefaultRepositoryProxyConnectors
connector.setProxyId( proxyConfig.getProxyId() );
connector.setPolicies( proxyConfig.getPolicies() );
connector.setOrder( proxyConfig.getOrder() );
connector.setDisabled( proxyConfig.isDisabled() );

// Copy any blacklist patterns.
List<String> blacklist = new ArrayList<String>();

+ 13
- 0
archiva-modules/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/ProxyConnector.java View File

@@ -49,6 +49,18 @@ public class ProxyConnector
private int order;

private Map<String, String> policies;
private boolean disabled;

public boolean isDisabled()
{
return disabled;
}

public void setDisabled(boolean disabled)
{
this.disabled = disabled;
}

public List<String> getBlacklist()
{
@@ -110,6 +122,7 @@ public class ProxyConnector
this.proxyId = proxyId;
}

@Override
public String toString()
{
StringBuffer sb = new StringBuffer();

+ 8
- 7
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java View File

@@ -338,29 +338,29 @@ public abstract class AbstractProxyTestCase
}
}

protected void saveConnector( String sourceRepoId, String targetRepoId )
protected void saveConnector( String sourceRepoId, String targetRepoId, boolean disabled )
{
saveConnector( sourceRepoId, targetRepoId, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, disabled );
}

protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy,
String snapshotPolicy, String cacheFailuresPolicy )
String snapshotPolicy, String cacheFailuresPolicy, boolean disabled )
{
saveConnector( sourceRepoId, targetRepoId, checksumPolicy, releasePolicy, snapshotPolicy, cacheFailuresPolicy,
PropagateErrorsDownloadPolicy.QUEUE );
PropagateErrorsDownloadPolicy.QUEUE, disabled );
}

protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy,
String snapshotPolicy, String cacheFailuresPolicy, String errorPolicy )
String snapshotPolicy, String cacheFailuresPolicy, String errorPolicy, boolean disabled )
{
saveConnector( sourceRepoId, targetRepoId, checksumPolicy, releasePolicy, snapshotPolicy, cacheFailuresPolicy,
errorPolicy, PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT );
errorPolicy, PropagateErrorsOnUpdateDownloadPolicy.NOT_PRESENT, disabled );
}

protected void saveConnector( String sourceRepoId, String targetRepoId, String checksumPolicy, String releasePolicy,
String snapshotPolicy, String cacheFailuresPolicy, String errorPolicy,
String errorOnUpdatePolicy )
String errorOnUpdatePolicy, boolean disabled )
{
ProxyConnectorConfiguration connectorConfig = new ProxyConnectorConfiguration();
connectorConfig.setSourceRepoId( sourceRepoId );
@@ -371,6 +371,7 @@ public abstract class AbstractProxyTestCase
connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_CACHE_FAILURES, cacheFailuresPolicy );
connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS, errorPolicy );
connectorConfig.addPolicy( ProxyConnectorConfiguration.POLICY_PROPAGATE_ERRORS_ON_UPDATE, errorOnUpdatePolicy );
connectorConfig.setDisabled(disabled);

int count = config.getConfiguration().getProxyConnectors().size();
config.getConfiguration().addProxyConnector( connectorConfig );

+ 6
- 6
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java View File

@@ -60,9 +60,9 @@ public class CacheFailuresTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false );
saveConnector( ID_DEFAULT_MANAGED, "badproxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false );

wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) );

@@ -103,9 +103,9 @@ public class CacheFailuresTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
saveConnector( ID_DEFAULT_MANAGED, "badproxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

wagonMock.get( path, new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" ) );

@@ -153,9 +153,9 @@ public class CacheFailuresTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false );
saveConnector( ID_DEFAULT_MANAGED, "proxied2", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );


+ 39
- 18
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ChecksumTransferTest.java View File

@@ -39,6 +39,27 @@ import java.io.File;
public class ChecksumTransferTest
extends AbstractProxyTestCase
{
public void testGetChecksumWhenConnectorIsDisabled()
throws Exception
{
String path = "org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar";
setupTestableManagedRepository( path );

File expectedFile = new File( managedDefaultDir, path );
ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );

FileUtils.deleteDirectory( expectedFile.getParentFile() );
assertFalse( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, true );
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
assertNull(downloadedFile);
}
public void testGetChecksumBothCorrect()
throws Exception
{
@@ -53,7 +74,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -78,7 +99,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -103,7 +124,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -127,7 +148,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -151,7 +172,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -175,7 +196,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -197,7 +218,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -222,7 +243,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -244,7 +265,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -269,7 +290,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -291,7 +312,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -316,7 +337,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -341,7 +362,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -366,7 +387,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -394,7 +415,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "badproxied", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

wagonMock.get( path, new File( expectedFile.getAbsolutePath() + ".tmp" ) );
wagonMockControl.setMatcher(customWagonGetMatcher);
@@ -440,7 +461,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO , false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -466,7 +487,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO , false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -493,7 +514,7 @@ public class ChecksumTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "proxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO , false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );


+ 10
- 10
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ErrorHandlingTest.java View File

@@ -63,7 +63,7 @@ public class ErrorHandlingTest
File expectedFile = setupRepositoriesWithLocalFileNotPresent( path );

createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

simulateGetError( path, expectedFile, createTransferException() );

@@ -92,7 +92,7 @@ public class ErrorHandlingTest
String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL;
File expectedFile = setupRepositoriesWithLocalFileNotPresent( path );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );

createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.STOP );

@@ -107,7 +107,7 @@ public class ErrorHandlingTest

createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

simulateGetError( path, expectedFile, createResourceNotFoundException() );

@@ -122,7 +122,7 @@ public class ErrorHandlingTest

createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.STOP );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

simulateGetError( path, expectedFile, createTransferException() );

@@ -135,7 +135,7 @@ public class ErrorHandlingTest
String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL;
File expectedFile = setupRepositoriesWithLocalFileNotPresent( path );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );

createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.QUEUE );

@@ -201,7 +201,7 @@ public class ErrorHandlingTest

createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.QUEUE );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

simulateGetError( path, expectedFile, createResourceNotFoundException() );

@@ -216,7 +216,7 @@ public class ErrorHandlingTest

createMockedProxyConnector( ID_MOCKED_PROXIED1, NAME_MOCKED_PROXIED1, PropagateErrorsDownloadPolicy.IGNORE );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

simulateGetError( path, expectedFile, createTransferException() );

@@ -229,7 +229,7 @@ public class ErrorHandlingTest
String path = PATH_IN_BOTH_REMOTES_NOT_LOCAL;
File expectedFile = setupRepositoriesWithLocalFileNotPresent( path );

saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );

createMockedProxyConnector( ID_MOCKED_PROXIED2, NAME_MOCKED_PROXIED2, PropagateErrorsDownloadPolicy.IGNORE );

@@ -499,14 +499,14 @@ public class ErrorHandlingTest
{
saveRemoteRepositoryConfig( id, name, "test://bad.machine.com/repo/", "default" );
saveConnector( ID_DEFAULT_MANAGED, id, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS,
CachedFailuresPolicy.NO, errorPolicy );
CachedFailuresPolicy.NO, errorPolicy, false );
}

private void createMockedProxyConnector( String id, String name, String errorPolicy, String errorOnUpdatePolicy )
{
saveRemoteRepositoryConfig( id, name, "test://bad.machine.com/repo/", "default" );
saveConnector( ID_DEFAULT_MANAGED, id, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS, SnapshotsPolicy.ALWAYS,
CachedFailuresPolicy.NO, errorPolicy, errorOnUpdatePolicy );
CachedFailuresPolicy.NO, errorPolicy, errorOnUpdatePolicy, false );
}

private File setupRepositoriesWithLocalFileNotPresent( String path )

+ 43
- 22
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedDefaultTransferTest.java View File

@@ -40,6 +40,27 @@ import java.io.File;
public class ManagedDefaultTransferTest
extends AbstractProxyTestCase
{
public void testGetDefaultLayoutNotPresentConnectorOffline()
throws Exception
{
String path = "org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar";
setupTestableManagedRepository( path );

File expectedFile = new File( managedDefaultDir, path );
ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );

// Ensure file isn't present first.
assertNotExistsInManagedDefaultRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
CachedFailuresPolicy.NO, true );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
assertNull("File should not have been downloaded", downloadedFile);
}
public void testGetDefaultLayoutNotPresent()
throws Exception
{
@@ -54,7 +75,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
CachedFailuresPolicy.NO );
CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -77,7 +98,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
CachedFailuresPolicy.NO );
CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, path );
@@ -111,7 +132,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
CachedFailuresPolicy.NO );
CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -144,7 +165,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ONCE, SnapshotsPolicy.ONCE,
CachedFailuresPolicy.NO );
CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, path );
@@ -189,7 +210,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -233,7 +254,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -264,7 +285,7 @@ public class ManagedDefaultTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.DAILY, SnapshotsPolicy.DAILY,
CachedFailuresPolicy.NO );
CachedFailuresPolicy.NO, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -286,8 +307,8 @@ public class ManagedDefaultTransferTest
assertNotExistsInManagedDefaultRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 , false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 , false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -316,8 +337,8 @@ public class ManagedDefaultTransferTest
assertNotExistsInManagedDefaultRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -339,9 +360,9 @@ public class ManagedDefaultTransferTest
assertNotExistsInManagedDefaultRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -371,8 +392,8 @@ public class ManagedDefaultTransferTest
wagonMockControl.replay();

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "badproxied" );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2 );
saveConnector( ID_DEFAULT_MANAGED, "badproxied", false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, false );

// Attempt the proxy fetch.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -400,8 +421,8 @@ public class ManagedDefaultTransferTest
saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", "test://dead.machine.com/repo/", "default" );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "badproxied1" );
saveConnector( ID_DEFAULT_MANAGED, "badproxied2" );
saveConnector( ID_DEFAULT_MANAGED, "badproxied1", false );
saveConnector( ID_DEFAULT_MANAGED, "badproxied2", false );

File tmpFile = new File( expectedFile.getParentFile(), expectedFile.getName() + ".tmp" );
wagonMock.get( path, tmpFile );
@@ -446,7 +467,7 @@ public class ManagedDefaultTransferTest
assertTrue( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -473,7 +494,7 @@ public class ManagedDefaultTransferTest
assertTrue( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -495,7 +516,7 @@ public class ManagedDefaultTransferTest
assertNotExistsInManagedDefaultRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -517,7 +538,7 @@ public class ManagedDefaultTransferTest
assertNotExistsInManagedDefaultRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_DEFAULT_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );


+ 8
- 8
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/ManagedLegacyTransferTest.java View File

@@ -51,7 +51,7 @@ public class ManagedLegacyTransferTest
assertNotExistsInManagedLegacyRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1 );
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -80,7 +80,7 @@ public class ManagedLegacyTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -102,7 +102,7 @@ public class ManagedLegacyTransferTest
assertNotExistsInManagedLegacyRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -127,7 +127,7 @@ public class ManagedLegacyTransferTest
ArtifactReference artifact = managedLegacyRepository.toArtifactReference( path );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -149,7 +149,7 @@ public class ManagedLegacyTransferTest
assertTrue( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -171,7 +171,7 @@ public class ManagedLegacyTransferTest
assertTrue( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1 );
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -193,7 +193,7 @@ public class ManagedLegacyTransferTest
assertNotExistsInManagedLegacyRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED );
saveConnector( ID_LEGACY_MANAGED, ID_LEGACY_PROXIED, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );

@@ -215,7 +215,7 @@ public class ManagedLegacyTransferTest
assertNotExistsInManagedLegacyRepo( expectedFile );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1 );
saveConnector( ID_LEGACY_MANAGED, ID_PROXIED1, false );

File downloadedFile = proxyHandler.fetchFromProxies( managedLegacyRepository, artifact );


+ 63
- 39
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/MetadataTransferTest.java View File

@@ -95,6 +95,30 @@ public class MetadataTransferTest
* @plexus.requirement
*/
private MetadataTools metadataTools;
public void testGetProjectMetadataProxiedNotLocalOnRemoteConnectoDisabled()
throws Exception
{
// New project metadata that does not exist locally but exists on remote.
String requestedResource = "org/apache/maven/test/get-found-in-proxy/maven-metadata.xml";
setupTestableManagedRepository( requestedResource );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, true);

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );

File expectedFile = new File( managedDefaultDir, requestedResource );

ProjectReference metadata = createProjectReference( requestedResource );

File downloadedFile = proxyHandler.fetchMetatadaFromProxies( managedDefaultRepository, managedDefaultRepository.toMetadataPath(metadata) );

assertNull( "Should not have downloaded a file.", downloadedFile );
assertNoTempFiles( expectedFile );
}

// TODO: same test for other fetch* methods
public void testFetchFromTwoProxiesWhenFirstConnectionFails()
@@ -108,9 +132,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( "badproxied1", requestedResource );
@@ -185,9 +209,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -211,9 +235,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -237,7 +261,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -259,9 +283,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertProjectMetadataContents( requestedResource, new String[] { "1.0" }, null, null );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -285,9 +309,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertProjectMetadataContents( requestedResource, new String[] { "1.0-beta-2" }, null, null );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -313,7 +337,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertProjectMetadataContents( requestedResource, new String[] { "1.0.8", "1.0.22" }, null, null );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -386,9 +410,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -416,7 +440,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceNotFound( requestedResource );

@@ -443,7 +467,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertNoRepoMetadata( ID_PROXIED1, requestedResource );

@@ -470,7 +494,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertReleaseMetadataContents( requestedResource );

@@ -496,9 +520,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertReleaseMetadataContents( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -527,7 +551,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertReleaseMetadataContents( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -578,9 +602,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -603,7 +627,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertNoMetadata( requestedResource );

@@ -624,7 +648,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceNotFound( requestedResource );

@@ -644,9 +668,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertSnapshotMetadataContents( requestedResource, "20070822", "021008", 3 );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -669,9 +693,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceExists( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -695,7 +719,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertSnapshotMetadataContents( requestedResource, "20050831", "101112", 1 );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -751,9 +775,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -777,9 +801,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -803,7 +827,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertResourceNotFound( requestedResource );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -825,9 +849,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertGroupMetadataContents( requestedResource, new String[] { "plugin1" } );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -851,9 +875,9 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertGroupMetadataContents( requestedResource, new String[] { "plugin5" } );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );
@@ -879,7 +903,7 @@ public class MetadataTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );

assertGroupMetadataContents( requestedResource, new String[] { "plugin6", "plugin7" } );
assertNoRepoMetadata( ID_PROXIED1, requestedResource );

+ 10
- 10
archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/SnapshotTransferTest.java View File

@@ -50,7 +50,7 @@ public class SnapshotTransferTest
assertFalse( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
assertNotDownloaded( downloadedFile );
@@ -70,7 +70,7 @@ public class SnapshotTransferTest
assertFalse( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -92,7 +92,7 @@ public class SnapshotTransferTest
expectedFile.setLastModified( getPastDate().getTime() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -115,7 +115,7 @@ public class SnapshotTransferTest
ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1 );
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false );

// Attempt to download.
File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
@@ -207,7 +207,7 @@ public class SnapshotTransferTest
proxiedFile.setLastModified( getFutureDate().getTime() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -230,7 +230,7 @@ public class SnapshotTransferTest
ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -253,9 +253,9 @@ public class SnapshotTransferTest

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES , false);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED2, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES );
SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.YES , false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -277,7 +277,7 @@ public class SnapshotTransferTest
assertFalse( expectedFile.exists() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );

@@ -303,7 +303,7 @@ public class SnapshotTransferTest
expectedFile.setLastModified( getPastDate().getTime() );

// Configure Connector (usually done within archiva.xml configuration)
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1);
saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, false);

File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );


+ 4
- 0
archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/connector/RepositoryConnector.java View File

@@ -39,4 +39,8 @@ public interface RepositoryConnector
public List<String> getBlacklist();
public List<String> getWhitelist();
public boolean isDisabled();
public void setDisabled(boolean disabled);
}

+ 98
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorAction.java View File

@@ -0,0 +1,98 @@
package org.apache.maven.archiva.web.action.admin.connectors.proxy;

import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;

/*
* 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
*
* @plexus.component role="com.opensymphony.xwork.Action" role-hint="disableProxyConnectorAction"
*/
public class DisableProxyConnectorAction extends AbstractProxyConnectorAction
{
private String source;
private String target;
private ProxyConnectorConfiguration proxyConfig;
public String confirmDisable()
{
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()
{
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 );
return saveConfiguration();
}

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;
}
}

+ 98
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorAction.java View File

@@ -0,0 +1,98 @@
package org.apache.maven.archiva.web.action.admin.connectors.proxy;

import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;

/*
* 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
*
* @plexus.component role="com.opensymphony.xwork.Action" role-hint="enableProxyConnectorAction"
*/
public class EnableProxyConnectorAction extends AbstractProxyConnectorAction
{
private String source;
private String target;
private ProxyConnectorConfiguration proxyConfig;
public String confirmEnable()
{
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()
{
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);
addActionMessage( "Successfully enabled proxy connector [" + source + " , " + target + " ]" );

setSource( null );
setTarget( null );
return saveConfiguration();
}

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;
}
}

+ 13
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/resources/xwork.xml View File

@@ -377,6 +377,19 @@
<result name="success" type="redirect-action">proxyConnectors</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
<action name="enableProxyConnector" class="enableProxyConnectorAction" method="confirm">
<result name="input">/WEB-INF/jsp/admin/enableProxyConnector.jsp</result>
<result name="success" type="redirect-action">proxyConnectors</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>

<action name="disableProxyConnector" class="disableProxyConnectorAction" method="confirm">
<result name="input">/WEB-INF/jsp/admin/disableProxyConnector.jsp</result>
<result name="success" type="redirect-action">proxyConnectors</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>


<!-- .\ NETWORK PROXIES \._________________________________________ -->


+ 50
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/disableProxyConnector.jsp View File

@@ -0,0 +1,50 @@
<%--
~ 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="ww" uri="/webwork" %>

<html>
<head>
<title>Admin: Disable Proxy Connector</title>
<ww:head/>
</head>

<body>

<h1>Admin: Disable Proxy Connector</h1>

<ww:actionerror/>

<div id="contentArea">

<h2>Disable Proxy Connector</h2>
<p>
Are you sure you want to disable proxy connector <code>[ ${source} , ${target} ]</code> ?
</p>

<ww:form method="post" action="disableProxyConnector!disable" namespace="/admin" validate="true">
<ww:hidden name="target"/>
<ww:hidden name="source"/>
<ww:submit value="Disable"/>
</ww:form>
</div>

</body>
</html>

+ 50
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/enableProxyConnector.jsp View File

@@ -0,0 +1,50 @@
<%--
~ 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="ww" uri="/webwork" %>

<html>
<head>
<title>Admin: Enable Proxy Connector</title>
<ww:head/>
</head>

<body>

<h1>Admin: Enable Proxy Connector</h1>

<ww:actionerror/>

<div id="contentArea">

<h2>Enable Proxy Connector</h2>

<p>
Are you sure you want to enable proxy connector <code>[ ${source} , ${target} ]</code> ?
</p>

<ww:form method="post" action="enableProxyConnector!enable" namespace="/admin" validate="true">
<ww:hidden name="target"/>
<ww:hidden name="source"/>
<ww:submit value="Enable"/>
</ww:form>
</div>

</body>
</html>

+ 18
- 0
archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp View File

@@ -105,6 +105,24 @@
<ww:param name="source" value="%{'${connector.sourceRepoId}'}"/>
<ww:param name="target" value="%{'${connector.targetRepoId}'}"/>
</ww:url>
<ww:url id="enableProxyConnectorUrl" action="enableProxyConnector" method="confirmEnable">
<ww:param name="source" value="%{'${connector.sourceRepoId}'}"/>
<ww:param name="target" value="%{'${connector.targetRepoId}'}"/>
</ww:url>
<ww:url id="disableProxyConnectorUrl" action="disableProxyConnector" method="confirmDisable">
<ww:param name="source" value="%{'${connector.sourceRepoId}'}"/>
<ww:param name="target" value="%{'${connector.targetRepoId}'}"/>
</ww:url>
<c:if test="${connector.disabled}">
<ww:a href="%{enableProxyConnectorUrl}" label="Enable Proxy Connector">
Enable
</ww:a>
</c:if>
<c:if test="${connector.disabled == false}">
<ww:a href="%{disableProxyConnectorUrl}" title="Disable Proxy Connector">
Disable
</ww:a>
</c:if>
<c:if test="${pc.count > 1}">
<ww:a href="%{sortUpProxyConnectorUrl}" cssClass="up" title="Move Proxy Connector Up">
<img src="${iconUpUrl}"/>

+ 219
- 0
archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/DisableProxyConnectorActionTest.java View File

@@ -0,0 +1,219 @@
/*
* 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.maven.archiva.web.action.admin.connectors.proxy;

import com.opensymphony.xwork.Action;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
import org.apache.maven.archiva.web.action.AbstractWebworkTestCase;
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
import org.codehaus.plexus.registry.RegistryException;
import org.easymock.MockControl;

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;

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 );
}

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 );
}

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());
}

public void testSecureActionBundle()
throws Exception
{
expectConfigurationRequests( 1 );
archivaConfigurationControl.replay();

SecureActionBundle bundle = action.getSecureActionBundle();
assertTrue( bundle.requiresAuthentication() );
assertEquals( 1, bundle.getAuthorizationTuples().size() );
}
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 );
}

@Override
protected void setUp()
throws Exception
{
super.setUp();

action = (DisableProxyConnectorAction) lookup( Action.class.getName(), "disableProxyConnectorAction" );

archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();
action.setArchivaConfiguration( archivaConfiguration );
}
}

+ 218
- 0
archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/connectors/proxy/EnableProxyConnectorActionTest.java View File

@@ -0,0 +1,218 @@
/*
* 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.maven.archiva.web.action.admin.connectors.proxy;

import com.opensymphony.xwork.Action;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.IndeterminateConfigurationException;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
import org.apache.maven.archiva.web.action.AbstractWebworkTestCase;
import org.codehaus.plexus.redback.xwork.interceptor.SecureActionBundle;
import org.codehaus.plexus.registry.RegistryException;
import org.easymock.MockControl;

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;

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 );
}

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 );
}

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());
}

public void testSecureActionBundle()
throws Exception
{
expectConfigurationRequests( 1 );
archivaConfigurationControl.replay();

SecureActionBundle bundle = action.getSecureActionBundle();
assertTrue( bundle.requiresAuthentication() );
assertEquals( 1, bundle.getAuthorizationTuples().size() );
}
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;
}

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 );
}

@Override
protected void setUp()
throws Exception
{
super.setUp();

action = (EnableProxyConnectorAction) lookup( Action.class.getName(), "enableProxyConnectorAction" );

archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();
action.setArchivaConfiguration( archivaConfiguration );
}
}

Loading…
Cancel
Save