mirror of https://github.com/apache/archiva.git
Fixing unit tests for upload
This commit is contained in:
parent
d3582e5897
commit
acb431b0bf
|
@ -19,25 +19,11 @@ package org.apache.archiva.upload;
|
|||
*/
|
||||
|
||||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
|
||||
import org.apache.archiva.admin.model.beans.RemoteRepository;
|
||||
import org.apache.archiva.redback.rest.api.model.User;
|
||||
import org.apache.archiva.redback.rest.api.services.RoleManagementService;
|
||||
import org.apache.archiva.redback.rest.api.services.UserService;
|
||||
import org.apache.archiva.redback.rest.services.AbstractRestServicesTest;
|
||||
import org.apache.archiva.redback.rest.services.FakeCreateAdminService;
|
||||
import org.apache.archiva.remotedownload.AbstractDownloadTest;
|
||||
import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
|
||||
import org.apache.archiva.security.common.ArchivaRoleConstants;
|
||||
import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
|
||||
import org.apache.archiva.web.api.FileUploadService;
|
||||
import org.apache.archiva.web.api.RuntimeInfoService;
|
||||
import org.apache.archiva.web.model.ApplicationRuntimeInfo;
|
||||
import org.apache.archiva.web.model.FileMetadata;
|
||||
import org.apache.catalina.Context;
|
||||
import org.apache.catalina.LifecycleException;
|
||||
import org.apache.catalina.deploy.ApplicationParameter;
|
||||
import org.apache.catalina.startup.Tomcat;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.SystemUtils;
|
||||
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
|
||||
|
@ -47,38 +33,15 @@ import org.apache.cxf.jaxrs.ext.multipart.AttachmentBuilder;
|
|||
import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition;
|
||||
import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
|
||||
import org.apache.cxf.message.Message;
|
||||
import org.apache.cxf.transport.servlet.CXFServlet;
|
||||
import org.apache.maven.wagon.providers.http.HttpWagon;
|
||||
import org.apache.maven.wagon.repository.Repository;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.bridge.SLF4JBridgeHandler;
|
||||
import org.springframework.web.context.ContextLoaderListener;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipFile;
|
||||
|
||||
/**
|
||||
* @author Olivier Lamy
|
||||
|
@ -87,78 +50,7 @@ import java.util.zip.ZipFile;
|
|||
public class UploadArtifactsTest
|
||||
extends AbstractRestServicesTest
|
||||
{
|
||||
private Tomcat tomcat;
|
||||
|
||||
@Override
|
||||
@Before
|
||||
public void startServer( )
|
||||
throws Exception
|
||||
{
|
||||
System.setProperty( "org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true" );
|
||||
System.setProperty("appserver.base", Paths.get("target/appserver-base").toAbsolutePath().toString());
|
||||
Path appServerBase = Paths.get("target/appserver-base");
|
||||
FileUtils.deleteDirectory(appServerBase.toAbsolutePath().toFile());
|
||||
Path confDir = appServerBase.resolve( "conf" );
|
||||
if ( !Files.exists(confDir))
|
||||
{
|
||||
Files.createDirectories(confDir);
|
||||
}
|
||||
Path log4jCfg = Paths.get( "src/test/resources/log4j2-test.xml" );
|
||||
Path log4jCfgDst = confDir.resolve( log4jCfg.getFileName( ) );
|
||||
|
||||
Files.copy( log4jCfg, log4jCfgDst, StandardCopyOption.REPLACE_EXISTING );
|
||||
|
||||
Path archivaCfg = Paths.get( "src/test/resources/archiva.xml" );
|
||||
Files.copy( archivaCfg, confDir.resolve( archivaCfg.getFileName( ) ), StandardCopyOption.REPLACE_EXISTING );
|
||||
|
||||
Path jcrDirectory = appServerBase.resolve("jcr" );
|
||||
|
||||
if ( Files.exists(jcrDirectory) )
|
||||
{
|
||||
FileUtils.deleteDirectory( jcrDirectory.toAbsolutePath().toFile() );
|
||||
}
|
||||
// We have to activate this to verify the bad path traversal protection. We cannot rely on
|
||||
// the application server only.
|
||||
|
||||
SLF4JBridgeHandler.removeHandlersForRootLogger();
|
||||
SLF4JBridgeHandler.install();
|
||||
this.tomcat = new Tomcat();
|
||||
this.tomcat.setBaseDir(System.getProperty("java.io.tmpdir"));
|
||||
this.tomcat.setPort(0);
|
||||
this.tomcat.setSilent(false);
|
||||
Context context = this.tomcat.addContext("", System.getProperty("java.io.tmpdir"));
|
||||
ApplicationParameter applicationParameter = new ApplicationParameter();
|
||||
applicationParameter.setName("contextConfigLocation");
|
||||
applicationParameter.setValue(this.getSpringConfigLocation());
|
||||
context.addApplicationParameter(applicationParameter);
|
||||
context.addApplicationListener(ContextLoaderListener.class.getName());
|
||||
Tomcat.addServlet(context, "cxf", new CXFServlet());
|
||||
context.addServletMapping("/" + this.getRestServicesPath() + "/*", "cxf");
|
||||
this.tomcat.start();
|
||||
this.port = this.tomcat.getConnector().getLocalPort();
|
||||
this.log.info("start server on port {}", this.port);
|
||||
UserService userService = this.getUserService();
|
||||
User adminUser = new User();
|
||||
adminUser.setUsername("admin");
|
||||
adminUser.setPassword("rose210208");
|
||||
adminUser.setFullName("the admin user");
|
||||
adminUser.setEmail("toto@toto.fr");
|
||||
userService.createAdminUser(adminUser);
|
||||
FakeCreateAdminService fakeCreateAdminService = this.getFakeCreateAdminService();
|
||||
// super.startServer( );
|
||||
}
|
||||
|
||||
@After
|
||||
public void stop( ) {
|
||||
if (this.tomcat != null) {
|
||||
try {
|
||||
this.tomcat.stop();
|
||||
} catch (LifecycleException e) {
|
||||
//
|
||||
}
|
||||
}
|
||||
System.clearProperty( "org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH" );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getSpringConfigLocation( )
|
||||
|
|
|
@ -20,11 +20,13 @@
|
|||
-->
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd"
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/tx
|
||||
http://www.springframework.org/schema/tx/spring-tx.xsd"
|
||||
default-lazy-init="true">
|
||||
|
||||
<context:annotation-config/>
|
||||
|
@ -79,16 +81,43 @@
|
|||
<property name="queue" ref="taskQueue#repository-scanning"/>
|
||||
</bean>
|
||||
|
||||
<bean id="repository" class="org.apache.jackrabbit.core.RepositoryImpl" destroy-method="shutdown">
|
||||
<constructor-arg ref="config"/>
|
||||
</bean>
|
||||
<bean id="config" class="org.apache.jackrabbit.core.config.RepositoryConfig" factory-method="create">
|
||||
<constructor-arg value="${basedir}/src/test/repository.xml"/>
|
||||
<constructor-arg value="${appserver.base}/jcr"/>
|
||||
</bean>
|
||||
|
||||
|
||||
<alias name="repositorySessionFactory#jcr" alias="repositorySessionFactory"/>
|
||||
<alias name="userConfiguration#archiva" alias="userConfiguration#default"/>
|
||||
<alias name="authorizer#rbac" alias="authorizer#default"/>
|
||||
<alias name="userManager#configurable" alias="userManager#default"/>
|
||||
|
||||
<!-- ***
|
||||
JPA settings
|
||||
*** -->
|
||||
<bean name="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
|
||||
<property name="jpaVendorAdapter" >
|
||||
<bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter" />
|
||||
</property>
|
||||
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence-hsqldb.xml" />
|
||||
<property name="jpaPropertyMap">
|
||||
<map>
|
||||
<entry key="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:redback_database" />
|
||||
<entry key="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver" />
|
||||
<entry key="openjpa.ConnectionUserName" value="sa" />
|
||||
<entry key="openjpa.ConnectionPassword" value="" />
|
||||
<entry key="openjpa.Log" value="${openjpa.Log:DefaultLevel=INFO,Runtime=ERROR,Tool=ERROR,SQL=ERROR,Schema=ERROR,MetaData=ERROR}" />
|
||||
<entry key="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
|
||||
<entry key="openjpa.jdbc.MappingDefaults"
|
||||
value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
|
||||
</map>
|
||||
</property>
|
||||
|
||||
</bean>
|
||||
|
||||
<bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<tx:annotation-driven />
|
||||
<!-- ***
|
||||
End of JPA settings
|
||||
*** -->
|
||||
|
||||
</beans>
|
Loading…
Reference in New Issue