@@ -135,6 +135,7 @@ public class ManagedDefaultRepositoryContent | |||
private StorageAsset getAssetByPath( String assetPath ) | |||
{ | |||
log.debug( "Get asset {}", assetPath ); | |||
return getStorage( ).getAsset( assetPath ); | |||
} | |||
@@ -394,6 +394,7 @@ public class DefaultFileUploadService | |||
org.apache.archiva.repository.ManagedRepository repository = repositoryRegistry.getManagedRepository(repositoryId); | |||
log.debug( "Finding artifact path for {}, {}, {}, {}", groupId, artifactId, version, packaging ); | |||
ItemSelector selector = ArchivaItemSelector.builder( ) | |||
.withNamespace( groupId ) | |||
.withProjectId( artifactId ) |
@@ -0,0 +1,313 @@ | |||
package org.apache.archiva.web;/* | |||
* 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.fasterxml.jackson.databind.ObjectMapper; | |||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; | |||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; | |||
import junit.framework.TestCase; | |||
import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants; | |||
import org.apache.archiva.redback.rest.api.model.User; | |||
import org.apache.archiva.redback.rest.api.services.LdapGroupMappingService; | |||
import org.apache.archiva.redback.rest.api.services.LoginService; | |||
import org.apache.archiva.redback.rest.api.services.RoleManagementService; | |||
import org.apache.archiva.redback.rest.api.services.UserService; | |||
import org.apache.archiva.redback.rest.api.services.v2.AuthenticationService; | |||
import org.apache.archiva.redback.rest.services.BaseSetup; | |||
import org.apache.archiva.redback.rest.services.FakeCreateAdminService; | |||
import org.apache.commons.lang3.SystemUtils; | |||
import org.apache.cxf.common.util.Base64Utility; | |||
import org.apache.cxf.jaxrs.client.JAXRSClientFactory; | |||
import org.apache.cxf.jaxrs.client.WebClient; | |||
import org.apache.cxf.transport.servlet.CXFServlet; | |||
import org.eclipse.jetty.server.HttpConnectionFactory; | |||
import org.eclipse.jetty.server.Server; | |||
import org.eclipse.jetty.server.ServerConnector; | |||
import org.eclipse.jetty.server.session.SessionHandler; | |||
import org.eclipse.jetty.servlet.ServletContextHandler; | |||
import org.eclipse.jetty.servlet.ServletHolder; | |||
import org.junit.After; | |||
import org.junit.Before; | |||
import org.junit.runner.RunWith; | |||
import org.junit.runners.JUnit4; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.springframework.web.context.ContextLoaderListener; | |||
import javax.ws.rs.core.MediaType; | |||
import java.util.Collections; | |||
import java.util.concurrent.atomic.AtomicReference; | |||
/** | |||
* @author Olivier Lamy | |||
*/ | |||
@RunWith(JUnit4.class) | |||
public abstract class AbstractRestServicesTest | |||
extends TestCase | |||
{ | |||
protected Logger log = LoggerFactory.getLogger( getClass() ); | |||
private static AtomicReference<Server> server = new AtomicReference<>(); | |||
private static AtomicReference<ServerConnector> serverConnector = new AtomicReference<>(); | |||
public String authorizationHeader = getAdminAuthzHeader(); | |||
/** | |||
* Returns the server that was started, or null if not initialized before. | |||
* @return | |||
*/ | |||
public Server getServer() { | |||
return this.server.get(); | |||
} | |||
public int getServerPort() { | |||
ServerConnector connector = serverConnector.get(); | |||
if (connector!=null) { | |||
return connector.getLocalPort(); | |||
} else { | |||
return 0; | |||
} | |||
} | |||
JacksonJaxbJsonProvider getJsonProvider() { | |||
JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider( ); | |||
ObjectMapper mapper = new ObjectMapper( ); | |||
mapper.registerModule( new JavaTimeModule( ) ); | |||
provider.setMapper( mapper ); | |||
return provider; | |||
} | |||
/** | |||
* Returns true, if the server does exist and is running. | |||
* @return true, if server does exist and is running. | |||
*/ | |||
public boolean isServerRunning() { | |||
return this.server.get() != null && this.server.get().isRunning(); | |||
} | |||
/** | |||
* Returns the timeout in ms for rest requests. The timeout can be set by | |||
* the system property <code>rest.test.timeout</code>. | |||
* @return The timeout value in ms. | |||
*/ | |||
public long getTimeout() | |||
{ | |||
return Long.getLong( "rest.test.timeout", 1000000 ); | |||
} | |||
public static String encode( String uid, String password ) | |||
{ | |||
return "Basic " + Base64Utility.encode( ( uid + ":" + password ).getBytes() ); | |||
} | |||
public static String getAdminAuthzHeader() | |||
{ | |||
return encode( RedbackRoleConstants.ADMINISTRATOR_ACCOUNT_NAME, BaseSetup.getAdminPwd() ); | |||
} | |||
protected String getSpringConfigLocation() | |||
{ | |||
return "classpath*:spring-context.xml,classpath*:META-INF/spring-context.xml"; | |||
} | |||
protected String getRestServicesPath() | |||
{ | |||
return "restServices"; | |||
} | |||
@Before | |||
public void startServer() | |||
throws Exception | |||
{ | |||
log.info("Starting server"); | |||
log.info( "User config {}", System.getProperty( "archiva.user.configFileName" ) ); | |||
log.info( "Appserver base {}", System.getProperty( "appserver.base" ) ); | |||
Server myServer = new Server(); | |||
this.server.set(myServer); | |||
this.serverConnector.set(new ServerConnector( myServer, new HttpConnectionFactory())); | |||
myServer.addConnector(serverConnector.get()); | |||
ServletHolder servletHolder = new ServletHolder( new CXFServlet() ); | |||
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); | |||
context.setResourceBase( SystemUtils.JAVA_IO_TMPDIR ); | |||
context.setSessionHandler( new SessionHandler( ) ); | |||
context.addServlet( servletHolder, "/" + getRestServicesPath() + "/*" ); | |||
context.setInitParameter( "contextConfigLocation", getSpringConfigLocation() ); | |||
context.addEventListener(new ContextLoaderListener()); | |||
getServer().setHandler( context ); | |||
getServer().start(); | |||
if (log.isDebugEnabled()) | |||
{ | |||
log.debug( "Jetty dump: {}", getServer().dump() ); | |||
} | |||
log.info( "Started server on port {}", getServerPort() ); | |||
UserService userService = getUserService(); | |||
User adminUser = new User(); | |||
adminUser.setUsername( RedbackRoleConstants.ADMINISTRATOR_ACCOUNT_NAME ); | |||
adminUser.setPassword( BaseSetup.getAdminPwd() ); | |||
adminUser.setFullName( "the admin user" ); | |||
adminUser.setEmail( "toto@toto.fr" ); | |||
if( !userService.createAdminUser( adminUser ) ) { | |||
log.info( "Could not create admin user." ); | |||
} | |||
FakeCreateAdminService fakeCreateAdminService = getFakeCreateAdminService(); | |||
//assertTrue( res.booleanValue() ); | |||
} | |||
protected FakeCreateAdminService getFakeCreateAdminService() | |||
{ | |||
return JAXRSClientFactory.create( | |||
"http://localhost:" + getServerPort()+ "/" + getRestServicesPath() + "/fakeCreateAdminService/", | |||
FakeCreateAdminService.class, Collections.singletonList( getJsonProvider() ) ); | |||
} | |||
@After | |||
public void stopServer() | |||
throws Exception | |||
{ | |||
if ( getServer() != null ) | |||
{ | |||
log.info("Stopping server"); | |||
getServer().stop(); | |||
} | |||
} | |||
protected UserService getUserService() | |||
{ | |||
return getUserService( null ); | |||
} | |||
// START SNIPPET: get-user-service | |||
protected UserService getUserService( String authzHeader ) | |||
{ | |||
UserService service = | |||
JAXRSClientFactory.create( "http://localhost:" + getServerPort() + "/" + getRestServicesPath() + "/redbackServices/", | |||
UserService.class, Collections.singletonList( new JacksonJaxbJsonProvider() ) ); | |||
// time out for debuging purpose | |||
WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( getTimeout() ); | |||
if ( authzHeader != null ) | |||
{ | |||
WebClient.client( service ).header( "Authorization", authzHeader ); | |||
} | |||
WebClient.client(service).header("Referer","http://localhost:"+getServerPort()); | |||
WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE ); | |||
WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE ); | |||
return service; | |||
} | |||
// END SNIPPET: get-user-service | |||
protected RoleManagementService getRoleManagementService( String authzHeader ) | |||
{ | |||
RoleManagementService service = | |||
JAXRSClientFactory.create( "http://localhost:" + getServerPort() + "/" + getRestServicesPath() + "/redbackServices/", | |||
RoleManagementService.class, | |||
Collections.singletonList( new JacksonJaxbJsonProvider() ) ); | |||
// for debuging purpose | |||
WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( getTimeout() ); | |||
if ( authzHeader != null ) | |||
{ | |||
WebClient.client( service ).header( "Authorization", authzHeader ); | |||
} | |||
WebClient.client(service).header("Referer","http://localhost:"+getServerPort()); | |||
WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE ); | |||
WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE ); | |||
return service; | |||
} | |||
protected LoginService getLoginService( String authzHeader ) | |||
{ | |||
LoginService service = | |||
JAXRSClientFactory.create( "http://localhost:" + getServerPort() + "/" + getRestServicesPath() + "/redbackServices/", | |||
LoginService.class, Collections.singletonList( getJsonProvider() ) ); | |||
// for debuging purpose | |||
WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( getTimeout() ); | |||
if ( authzHeader != null ) | |||
{ | |||
WebClient.client( service ).header( "Authorization", authzHeader ); | |||
} | |||
WebClient.client(service).header("Referer","http://localhost:"+getServerPort()); | |||
WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE ); | |||
WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE ); | |||
return service; | |||
} | |||
protected AuthenticationService getLoginServiceV2( String authzHeader ) | |||
{ | |||
AuthenticationService service = | |||
JAXRSClientFactory.create( "http://localhost:" + getServerPort() + "/" + getRestServicesPath() + "/v2/redback/", | |||
AuthenticationService.class, Collections.singletonList( getJsonProvider() ) ); | |||
// for debuging purpose | |||
WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( getTimeout() ); | |||
if ( authzHeader != null ) | |||
{ | |||
WebClient.client( service ).header( "Authorization", authzHeader ); | |||
} | |||
WebClient.client(service).header("Referer","http://localhost:"+getServerPort()); | |||
WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE ); | |||
WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE ); | |||
return service; | |||
} | |||
protected LdapGroupMappingService getLdapGroupMappingService( String authzHeader ) | |||
{ | |||
LdapGroupMappingService service = | |||
JAXRSClientFactory.create( "http://localhost:" + getServerPort() + "/" + getRestServicesPath() + "/redbackServices/", | |||
LdapGroupMappingService.class, | |||
Collections.singletonList( getJsonProvider() ) ); | |||
// for debuging purpose | |||
WebClient.getConfig( service ).getHttpConduit().getClient().setReceiveTimeout( getTimeout() ); | |||
if ( authzHeader != null ) | |||
{ | |||
WebClient.client( service ).header( "Authorization", authzHeader ); | |||
} | |||
WebClient.client(service).header("Referer","http://localhost:"+getServerPort()); | |||
WebClient.client( service ).accept( MediaType.APPLICATION_JSON_TYPE ); | |||
WebClient.client( service ).type( MediaType.APPLICATION_JSON_TYPE ); | |||
return service; | |||
} | |||
} |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva; | |||
package org.apache.archiva.web; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva; | |||
* "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 | |||
* | |||
* 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 | |||
@@ -20,7 +19,6 @@ package org.apache.archiva; | |||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; | |||
import org.apache.archiva.redback.rest.services.AbstractRestServicesTest; | |||
import org.apache.archiva.remotedownload.DownloadArtifactsTest; | |||
import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; | |||
import org.apache.archiva.web.api.RuntimeInfoService; | |||
import org.apache.archiva.web.model.ApplicationRuntimeInfo; | |||
@@ -37,7 +35,6 @@ import org.junit.runner.RunWith; | |||
import java.io.IOException; | |||
import java.nio.file.Files; | |||
import java.nio.file.Path; | |||
import java.nio.file.Paths; | |||
import java.util.Collections; | |||
/** |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva; | |||
package org.apache.archiva.web; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.security; | |||
package org.apache.archiva.web.mock.security; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.security; | |||
* "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 | |||
* | |||
* 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 | |||
@@ -20,6 +19,10 @@ package org.apache.archiva.security; | |||
*/ | |||
import org.apache.archiva.admin.model.beans.ManagedRepository; | |||
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 java.util.Collections; | |||
import java.util.List; |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.remotedownload; | |||
package org.apache.archiva.web.remotedownload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.remotedownload; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.upload; | |||
package org.apache.archiva.web.upload; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
* or more contributor license agreements. See the NOTICE file | |||
@@ -8,8 +8,7 @@ package org.apache.archiva.upload; | |||
* "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 | |||
* | |||
* 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 | |||
@@ -20,10 +19,9 @@ package org.apache.archiva.upload; | |||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; | |||
import org.apache.archiva.configuration.ArchivaConfiguration; | |||
import org.apache.archiva.redback.rest.services.AbstractRestServicesTest; | |||
import org.apache.archiva.redback.rest.services.FakeCreateAdminService; | |||
import org.apache.archiva.rest.api.services.ArchivaRestServiceException; | |||
import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner; | |||
import org.apache.archiva.web.AbstractRestServicesTest; | |||
import org.apache.archiva.web.api.FileUploadService; | |||
import org.apache.archiva.web.model.FileMetadata; | |||
import org.apache.commons.lang3.StringUtils; | |||
@@ -54,7 +52,8 @@ import java.util.concurrent.atomic.AtomicReference; | |||
*/ | |||
@RunWith(ArchivaBlockJUnit4ClassRunner.class) | |||
public class UploadArtifactsTest | |||
extends AbstractRestServicesTest { | |||
extends AbstractRestServicesTest | |||
{ | |||
private static String PREVIOUS_ARCHIVA_PATH; | |||
private AtomicReference<Path> projectDir = new AtomicReference<>( ); | |||
@@ -64,8 +63,17 @@ public class UploadArtifactsTest | |||
throws Exception | |||
{ | |||
PREVIOUS_ARCHIVA_PATH = System.getProperty(ArchivaConfiguration.USER_CONFIG_PROPERTY); | |||
System.setProperty( ArchivaConfiguration.USER_CONFIG_PROPERTY, | |||
if (System.getProperties().containsKey( "test.resources.path" )) | |||
{ | |||
System.setProperty( ArchivaConfiguration.USER_CONFIG_PROPERTY, | |||
System.getProperty( "test.resources.path" ) + "/archiva.xml" ); | |||
} else { | |||
Path path = Paths.get( "src/test/resources/archiva.xml" ).toAbsolutePath(); | |||
System.setProperty( ArchivaConfiguration.USER_CONFIG_PROPERTY, | |||
path.toString() ); | |||
} | |||
System.err.println( "USER_CONFIG_DIR " + System.getProperty( ArchivaConfiguration.USER_CONFIG_PROPERTY ) ); | |||
} | |||
@@ -91,6 +99,7 @@ public class UploadArtifactsTest | |||
} | |||
projectDir.compareAndSet(null, newVal); | |||
} | |||
System.err.println( "project dir: " + projectDir.get( ).toString( ) ); | |||
return projectDir.get(); | |||
} | |||
@@ -196,7 +205,7 @@ public class UploadArtifactsTest | |||
try { | |||
FileUploadService service = getUploadService(); | |||
Path file = getProjectDirectory().resolve("src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar"); | |||
Path targetDir = Paths.get("target/testDelete").toAbsolutePath(); | |||
Path targetDir = getProjectDirectory().resolve("target/testDelete").toAbsolutePath(); | |||
if (!Files.exists(targetDir)) Files.createDirectories(targetDir); | |||
Path tempDir = SystemUtils.getJavaIoTmpDir().toPath(); | |||
testFile = Files.createTempFile(targetDir, "TestFile", ".txt"); | |||
@@ -224,7 +233,7 @@ public class UploadArtifactsTest | |||
@Test | |||
public void failSaveFileWithBadParams() throws IOException, ArchivaRestServiceException { | |||
Path path = Paths.get("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.jar"); | |||
Path path = getProjectDirectory().resolve("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.jar"); | |||
Files.deleteIfExists(path); | |||
FileUploadService service = getUploadService(); | |||
Path file = getProjectDirectory().resolve("src/test/repositories/snapshot-repo/org/apache/archiva/archiva-model/1.4-M4-SNAPSHOT/archiva-model-1.4-M4-20130425.081822-1.jar"); | |||
@@ -244,17 +253,17 @@ public class UploadArtifactsTest | |||
} catch (ClientErrorException e) { | |||
assertEquals(422, e.getResponse().getStatus()); | |||
} | |||
assertFalse(Files.exists(Paths.get("target/test-testSave.4"))); | |||
assertFalse(Files.exists(getProjectDirectory().resolve("target/test-testSave.4"))); | |||
} | |||
@Test | |||
public void saveFile() throws IOException, ArchivaRestServiceException { | |||
log.debug("Starting saveFile()"); | |||
Path path = Paths.get("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.jar"); | |||
Path path = getProjectDirectory().resolve("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.jar"); | |||
log.debug("Jar exists: {}",Files.exists(path)); | |||
Files.deleteIfExists(path); | |||
path = Paths.get("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.pom"); | |||
path = getProjectDirectory().resolve("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.pom"); | |||
Files.deleteIfExists(path); | |||
FileUploadService service = getUploadService(); | |||
service.clearUploadedFiles(); | |||
@@ -270,10 +279,10 @@ public class UploadArtifactsTest | |||
public void saveFileWithOtherExtension() throws IOException, ArchivaRestServiceException { | |||
log.debug("Starting saveFileWithOtherExtension()"); | |||
Path path = Paths.get("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.bin"); | |||
Path path = getProjectDirectory().resolve("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.bin"); | |||
log.debug("Jar exists: {}",Files.exists(path)); | |||
Files.deleteIfExists(path); | |||
Path pomPath = Paths.get("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.pom"); | |||
Path pomPath = getProjectDirectory().resolve("target/appserver-base/repositories/internal/org/apache/archiva/archiva-model/1.2/archiva-model-1.2.pom"); | |||
Files.deleteIfExists(pomPath); | |||
FileUploadService service = getUploadService(); | |||
service.clearUploadedFiles(); |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.webtest.memory; | |||
package org.apache.archiva.web.webtest.memory; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.webtest.memory; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.webtest.memory; | |||
package org.apache.archiva.web.webtest.memory; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -9,8 +9,7 @@ package org.apache.archiva.webtest.memory; | |||
* "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 | |||
* | |||
* 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 |
@@ -1,4 +1,4 @@ | |||
package org.apache.archiva.webtest.memory; | |||
package org.apache.archiva.web.webtest.memory; | |||
/* | |||
* Licensed to the Apache Software Foundation (ASF) under one | |||
@@ -10,7 +10,6 @@ package org.apache.archiva.webtest.memory; | |||
* 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 |
@@ -29,7 +29,8 @@ | |||
<logger name="org.springframework" level="error"/> | |||
<logger name="org.apache.archiva" level="error"/> | |||
<logger name="org.apache.archiva.web" level="info"/> | |||
<logger name="org.apache.archiva.web" level="debug"/> | |||
<logger name="org.apache.archiva.repository" level="debug"/> | |||
<logger name="org.apache.commons.configuration" level="error"/> | |||
<logger name="org.apache.archiva.scheduler.indexing" level="info"/> | |||
<logger name="org.apache.archiva.remotedownload" level="info"/> |
@@ -50,11 +50,11 @@ | |||
</property> | |||
</bean> | |||
<bean name="repositorySessionFactory" class="org.apache.archiva.webtest.memory.TestRepositorySessionFactory"/> | |||
<bean name="repositorySessionFactory" class="org.apache.archiva.web.webtest.memory.TestRepositorySessionFactory"/> | |||
<alias name="userManager#configurable" alias="userManager#default"/> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean"> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.web.TestRepositorySessionFactoryBean"> | |||
<constructor-arg> | |||
<value>jcr</value> | |||
</constructor-arg> |
@@ -51,12 +51,12 @@ | |||
</property> | |||
</bean> | |||
<bean name="repositorySessionFactory" class="org.apache.archiva.webtest.memory.TestRepositorySessionFactory"/> | |||
<bean name="repositorySessionFactory" class="org.apache.archiva.web.webtest.memory.TestRepositorySessionFactory"/> | |||
<alias name="userConfiguration#archiva" alias="userConfiguration#default"/> | |||
<alias name="authorizer#rbac" alias="authorizer#default"/> | |||
<alias name="userManager#configurable" alias="userManager#default"/> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean"> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.web.TestRepositorySessionFactoryBean"> | |||
<constructor-arg> | |||
<value>jcr</value> | |||
</constructor-arg> |
@@ -30,11 +30,11 @@ | |||
<context:property-placeholder system-properties-mode="OVERRIDE"/> | |||
<context:annotation-config/> | |||
<context:component-scan base-package="org.apache.archiva.webtest.memory"/> | |||
<context:component-scan base-package="org.apache.archiva.web.webtest.memory"/> | |||
<alias name="repositorySessionFactory#test" alias="repositorySessionFactory"/> | |||
<bean name="userRepositories#test" class="org.apache.archiva.security.UserRepositoriesStub"/> | |||
<bean name="userRepositories#test" class="org.apache.archiva.web.mock.security.UserRepositoriesStub"/> | |||
<alias name="userRepositories#test" alias="userRepositories"/> | |||
@@ -49,7 +49,7 @@ | |||
<alias name="archivaConfiguration#default" alias="archivaConfiguration"/> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean"> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.web.TestRepositorySessionFactoryBean"> | |||
<constructor-arg> | |||
<value>jcr</value> | |||
</constructor-arg> |
@@ -31,7 +31,7 @@ | |||
<context:annotation-config/> | |||
<context:component-scan | |||
base-package="org.apache.archiva.repository.content.maven2,org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils"/> | |||
base-package="org.apache.archiva.maven.repository.content,org.apache.archiva.redback.keys,org.apache.archiva.rest.services.utils"/> | |||
<bean name="scheduler" class="org.apache.archiva.components.scheduler.DefaultScheduler"> | |||
<property name="properties"> | |||
@@ -68,7 +68,7 @@ | |||
</bean> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean"> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.web.TestRepositorySessionFactoryBean"> | |||
<constructor-arg> | |||
<value>jcr</value> | |||
</constructor-arg> |
@@ -39,7 +39,7 @@ | |||
<alias name="repositorySessionFactory#jcr" alias="repositorySessionFactory"/> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.TestRepositorySessionFactoryBean"> | |||
<bean name="TestRepositorySessionFactoryBean" class="org.apache.archiva.web.TestRepositorySessionFactoryBean"> | |||
<constructor-arg> | |||
<value>jcr</value> | |||
</constructor-arg> |