mirror of https://github.com/apache/archiva.git
Merge branch 'feature/jetty_9.4'
This commit is contained in:
commit
84a1846854
|
@ -1,7 +1,5 @@
|
|||
language: java
|
||||
jdk:
|
||||
- openjdk7
|
||||
- oraclejdk7
|
||||
- oraclejdk8
|
||||
|
||||
before_install: "mvn clean install -DskipTests=true -B -V -Pci-build"
|
||||
|
|
|
@ -106,10 +106,6 @@
|
|||
<include>LICENSE</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>src/main/contexts</directory>
|
||||
<outputDirectory>contexts</outputDirectory>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
||||
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd">
|
||||
<!--
|
||||
~ Licensed to the Apache Software Foundation (ASF) under one
|
||||
~ or more contributor license agreements. See the NOTICE file
|
||||
|
@ -19,165 +19,89 @@
|
|||
~ under the License.
|
||||
-->
|
||||
|
||||
<!-- =============================================================== -->
|
||||
<!-- ============================================================================= -->
|
||||
<!-- Configure the Jetty Server -->
|
||||
<!-- -->
|
||||
<!-- Documentation of this file format can be found at: -->
|
||||
<!-- http://docs.codehaus.org/display/JETTY/jetty.xml -->
|
||||
<!-- https://www.eclipse.org/jetty/documentation/9.4.x/reference-section.html -->
|
||||
<!-- -->
|
||||
<!-- =============================================================== -->
|
||||
<!-- ============================================================================= -->
|
||||
|
||||
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Server Thread Pool -->
|
||||
<!-- =========================================================== -->
|
||||
<Set name="ThreadPool">
|
||||
<!-- Default bounded blocking threadpool
|
||||
-->
|
||||
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
|
||||
<Set name="minThreads">10</Set>
|
||||
<Set name="maxThreads">250</Set>
|
||||
</New>
|
||||
|
||||
<!-- Optional Java 5 bounded threadpool with job queue
|
||||
<New class="org.eclipse.jetty.util.thread.ExecutorThreadPool">
|
||||
<Set name="corePoolSize">250</Set>
|
||||
<Set name="maximumPoolSize">250</Set>
|
||||
<Arg name="threadpool">
|
||||
<New id="threadpool" class="org.eclipse.jetty.util.thread.QueuedThreadPool">
|
||||
<Arg name="minThreads" type="int">10</Arg>
|
||||
<Arg name="maxThreads" type="int">200</Arg>
|
||||
<Arg name="idleTimeout" type="int">60000</Arg>
|
||||
<Set name="detailedDump">false</Set>
|
||||
</New>
|
||||
-->
|
||||
</Set>
|
||||
</Arg>
|
||||
|
||||
<Call name="addBean">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.util.thread.ScheduledExecutorScheduler"/>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Set connectors -->
|
||||
<!-- =========================================================== -->
|
||||
<!-- One of each type! -->
|
||||
<!-- =========================================================== -->
|
||||
|
||||
<!-- Use this connector for many frequently idle connections
|
||||
and for threadless continuations.
|
||||
-->
|
||||
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
|
||||
<Set name="secureScheme">https</Set>
|
||||
<Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
|
||||
<Set name="outputBufferSize">32768</Set>
|
||||
<Set name="requestHeaderSize">8192</Set>
|
||||
<Set name="responseHeaderSize">8192</Set>
|
||||
<Set name="headerCacheSize">512</Set>
|
||||
</New>
|
||||
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
|
||||
<Set name="host"><SystemProperty name="jetty.host"/></Set>
|
||||
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
|
||||
<Set name="maxIdleTime">30000</Set>
|
||||
<Set name="Acceptors">2</Set>
|
||||
<Set name="statsOn">false</Set>
|
||||
<Set name="confidentialPort">8443</Set>
|
||||
<Set name="lowResourcesConnections">5000</Set>
|
||||
<Set name="lowResourcesMaxIdleTime">5000</Set>
|
||||
<New class="org.eclipse.jetty.server.ServerConnector">
|
||||
<Arg name="server"><Ref refid="Server" /></Arg>
|
||||
<Arg name="factories">
|
||||
<Array type="org.eclipse.jetty.server.ConnectionFactory">
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
|
||||
<Arg name="config"><Ref refid="httpConfig" /></Arg>
|
||||
</New>
|
||||
</Item>
|
||||
</Array>
|
||||
</Arg>
|
||||
<Set name="host"><Property name="jetty.host" /></Set>
|
||||
<Set name="port"><Property name="jetty.port" default="8080" /></Set>
|
||||
<Set name="idleTimeout">30000</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- Use this connector if NIO is not available.
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.mortbay.jetty.bio.SocketConnector">
|
||||
<Set name="port">8081</Set>
|
||||
<Set name="maxIdleTime">50000</Set>
|
||||
<Set name="lowResourceMaxIdleTime">1500</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
-->
|
||||
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
<!-- To add a HTTPS SSL listener -->
|
||||
<!-- see jetty-ssl.xml to add an ssl connector. use -->
|
||||
<!-- java -jar start.jar etc/jetty.xml etc/jetty-ssl.xml -->
|
||||
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Set up global session ID manager -->
|
||||
<!-- =========================================================== -->
|
||||
<!--
|
||||
<Set name="sessionIdManager">
|
||||
<New class="org.mortbay.jetty.servlet.HashSessionIdManager">
|
||||
<Set name="workerName">node1</Set>
|
||||
</New>
|
||||
</Set>
|
||||
-->
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Set handler Collection Structure -->
|
||||
<!-- =========================================================== -->
|
||||
<Set name="handler">
|
||||
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
|
||||
<Set name="handlers">
|
||||
<Array type="org.eclipse.jetty.server.Handler">
|
||||
<Item>
|
||||
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
|
||||
<New class="org.eclipse.jetty.webapp.WebAppContext">
|
||||
<Set name="contextPath">/</Set>
|
||||
<Set name="war"><SystemProperty name="appserver.base" default="./apps/archiva"/>/apps/archiva</Set>
|
||||
<Set name="extractWAR">false</Set>
|
||||
<Set name="copyWebDir">false</Set>
|
||||
</New>
|
||||
</Item>
|
||||
<Item>
|
||||
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
|
||||
</Item>
|
||||
<Item>
|
||||
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/>
|
||||
</Item>
|
||||
</Array>
|
||||
</Set>
|
||||
</New>
|
||||
</Set>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure the context deployer -->
|
||||
<!-- A context deployer will deploy contexts described in -->
|
||||
<!-- configuration files discovered in a directory. -->
|
||||
<!-- The configuration directory can be scanned for hot -->
|
||||
<!-- deployments at the configured scanInterval. -->
|
||||
<!-- -->
|
||||
<!-- This deployer is configured to deploy contexts configured -->
|
||||
<!-- in the $JETTY_HOME/contexts directory -->
|
||||
<!-- -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addLifeCycle">
|
||||
<Call name="setRequestLog">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.ContextDeployer">
|
||||
<Set name="contexts"><Ref id="Contexts"/></Set>
|
||||
<Set name="configurationDir"><SystemProperty name="jetty.home" default="."/>/contexts</Set>
|
||||
<Set name="scanInterval">1</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure the webapp deployer. -->
|
||||
<!-- A webapp deployer will deploy standard webapps discovered -->
|
||||
<!-- in a directory at startup, without the need for additional -->
|
||||
<!-- configuration files. It does not support hot deploy or -->
|
||||
<!-- non standard contexts (see ContextDeployer above). -->
|
||||
<!-- -->
|
||||
<!-- This deployer is configured to deploy webapps from the -->
|
||||
<!-- $JETTY_HOME/webapps directory -->
|
||||
<!-- -->
|
||||
<!-- Normally only one type of deployer need be used. -->
|
||||
<!-- -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addLifeCycle">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.deploy.WebAppDeployer">
|
||||
<Set name="contexts"><Ref id="Contexts"/></Set>
|
||||
<Set name="webAppDir"><SystemProperty name="jetty.home" default="."/>/apps</Set>
|
||||
<Set name="parentLoaderPriority">false</Set>
|
||||
<Set name="extract">true</Set>
|
||||
<Set name="allowDuplicates">false</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configure Request Log -->
|
||||
<!-- Request logs may be configured for the entire server here, -->
|
||||
<!-- or they can be configured for a specific web app in a -->
|
||||
<!-- contexts configuration (see $(jetty.home)/contexts/test.xml -->
|
||||
<!-- for an example). -->
|
||||
<!-- =========================================================== -->
|
||||
<Ref id="RequestLog">
|
||||
<Set name="requestLog">
|
||||
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
|
||||
<Set name="filename"><SystemProperty name="jetty.logs" default="./logs"/>/request-yyyy_mm_dd.log</Set>
|
||||
<Set name="filenameDateFormat">yyyyMMdd</Set>
|
||||
|
@ -187,58 +111,14 @@
|
|||
<Set name="logCookies">false</Set>
|
||||
<Set name="LogTimeZone">GMT</Set>
|
||||
</New>
|
||||
</Set>
|
||||
</Ref>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- extra options -->
|
||||
<!-- =========================================================== -->
|
||||
<Set name="stopAtShutdown">true</Set>
|
||||
<Set name="sendServerVersion">true</Set>
|
||||
<Set name="sendDateHeader">true</Set>
|
||||
<Set name="gracefulShutdown">1000</Set>
|
||||
|
||||
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- JNDI java:comp/env -->
|
||||
<!-- To use JNDI with Jetty, you will need to tell your -->
|
||||
<!-- WebAppContext to process the naming related items in -->
|
||||
<!-- web.xml. For an example of how to do that, see the test -->
|
||||
<!-- webapp below. More information can be found at -->
|
||||
<!-- http://docs.codehaus.org/display/JETTY/Jetty+Wiki -->
|
||||
<!-- =========================================================== -->
|
||||
|
||||
|
||||
<!-- Configuring <resource-ref> and <resource-env-ref>s -->
|
||||
<!-- -->
|
||||
<!-- The following are examples of setting up a resource that -->
|
||||
<!-- can be referenced in a web.xml file as a <resource-ref> or -->
|
||||
<!-- a <resource-env-ref>. The first argument is the name of the -->
|
||||
<!-- resource relative to java:comp/env and must be the SAME as -->
|
||||
<!-- the <res-ref-name> or <resource-env-ref-name> in web.xml. -->
|
||||
<!-- The second argument is the construction of the resource -->
|
||||
<!-- object. Any object at all can be configured. -->
|
||||
|
||||
|
||||
<!-- These examples set up a javax.sql.DataSource around an -->
|
||||
<!-- XADataSource that is provided by the Derby relational db. -->
|
||||
<!-- The DataSource wrapper that is registered in JNDI is -->
|
||||
<!-- provided by Atomikos, and works with the Atomikos -->
|
||||
<!-- transaction manager configured further below. To use these -->
|
||||
<!-- examples, download Atomikos http://www.atomikos.com and -->
|
||||
<!-- Derby http://db.apache.org/derby -->
|
||||
|
||||
|
||||
<!-- Configuring Transactions -->
|
||||
<!-- -->
|
||||
<!-- The following is a example of a setting up a JTA -->
|
||||
<!-- transaction manager that can be referenced by looking up -->
|
||||
<!-- java:comp/UserTransaction. Note that this is just an -->
|
||||
<!-- example and if you uncomment it, you will need to download -->
|
||||
<!-- the atomikos jar (see http://www.atomikos.com/download.html)-->
|
||||
<!-- You can configure any transaction manager that implements -->
|
||||
<!-- javax.transaction.UserTransaction. -->
|
||||
|
||||
|
||||
<Call name="setAttribute">
|
||||
|
@ -252,24 +132,11 @@
|
|||
<Item>org.eclipse.jetty.plus.webapp.EnvConfiguration</Item>
|
||||
<Item>org.eclipse.jetty.plus.webapp.PlusConfiguration</Item>
|
||||
<Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
|
||||
<Item>org.eclipse.jetty.webapp.TagLibConfiguration</Item>
|
||||
</Array>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Configurations for WebAppContexts -->
|
||||
<!-- Sequence of configurations to be applied to a webapp. -->
|
||||
<!-- =========================================================== -->
|
||||
<Array id="plusConfig" type="java.lang.String">
|
||||
<Item>org.eclipse.jetty.webapp.WebInfConfiguration</Item>
|
||||
<Item>org.eclipse.jetty.plus.webapp.EnvConfiguration</Item>
|
||||
<Item>org.eclipse.jetty.webapp.Configuration</Item>
|
||||
<Item>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</Item>
|
||||
<Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
|
||||
</Array>
|
||||
|
||||
<!-- ARCHIVA CONFIG -->
|
||||
|
||||
<New id="validation_mail" class="org.eclipse.jetty.plus.jndi.Resource">
|
||||
|
@ -287,30 +154,6 @@
|
|||
</Arg>
|
||||
</New>
|
||||
|
||||
<!-- Users / Security Database -->
|
||||
<!--
|
||||
<New id="users" class="org.eclipse.jetty.plus.jndi.Resource">
|
||||
<Arg>jdbc/users</Arg>
|
||||
<Arg>
|
||||
<New class="org.apache.derby.jdbc.EmbeddedDataSource">
|
||||
<Set name="DatabaseName"><SystemProperty name="appserver.base" default=".."/>/data/databases/users</Set>
|
||||
<Set name="user">sa</Set>
|
||||
<Set name="createDatabase">create</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</New>
|
||||
|
||||
<New id="usersShutdown" class="org.eclipse.jetty.plus.jndi.Resource">
|
||||
<Arg>jdbc/usersShutdown</Arg>
|
||||
<Arg>
|
||||
<New class="org.apache.derby.jdbc.EmbeddedDataSource">
|
||||
<Set name="DatabaseName"><SystemProperty name="appserver.base" default=".."/>/data/databases/users</Set>
|
||||
<Set name="user">sa</Set>
|
||||
<Set name="shutdownDatabase">shutdown</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</New>
|
||||
-->
|
||||
<New id="users" class="org.eclipse.jetty.plus.jndi.Resource">
|
||||
<Arg>jdbc/users</Arg>
|
||||
<Arg>
|
||||
|
@ -341,14 +184,4 @@
|
|||
</New>
|
||||
|
||||
|
||||
<!--
|
||||
<New id="ArchivaWebAppContext" class="org.eclipse.jetty.webapp.WebAppContext">
|
||||
<Arg><Ref id="Handlers"/></Arg>
|
||||
<Arg><SystemProperty name="jetty.home" default="."/>/apps/archiva</Arg>
|
||||
<Arg>/</Arg>
|
||||
<Set name="extractWAR">false</Set>
|
||||
<Set name="throwUnavailableOnStartupException">true</Set>
|
||||
</New>
|
||||
-->
|
||||
|
||||
</Configure>
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
~ Licensed to the Apache Software Foundation (ASF) under one
|
||||
~ or more contributor license agreements. See the NOTICE file
|
||||
|
@ -20,12 +18,24 @@
|
|||
~ under the License.
|
||||
-->
|
||||
|
||||
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
|
||||
|
||||
<Set name="contextPath">/</Set>
|
||||
<Set name="war"><SystemProperty name="jetty.home" default="."/>/apps/archiva</Set>
|
||||
<configuration>
|
||||
<appenders>
|
||||
<Console name="console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d [%t] %-5p %c %x - %m%n"/>
|
||||
</Console>
|
||||
</appenders>
|
||||
<loggers>
|
||||
|
||||
<logger name="org.springframework" level="error"/>
|
||||
|
||||
<!--
|
||||
<logger name="org.apache.http" level="debug"/>
|
||||
-->
|
||||
<root level="info">
|
||||
<appender-ref ref="console"/>
|
||||
</root>
|
||||
</loggers>
|
||||
</configuration>
|
||||
|
||||
<Set name="extractWAR">false</Set>
|
||||
<Set name="copyWebDir">false</Set>
|
||||
|
||||
</Configure>
|
|
@ -38,8 +38,10 @@ import org.apache.archiva.policies.SnapshotsPolicy;
|
|||
import org.apache.archiva.repository.ManagedRepositoryContent;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.eclipse.jetty.server.Handler;
|
||||
import org.eclipse.jetty.server.HttpConnectionFactory;
|
||||
import org.eclipse.jetty.server.Request;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.server.handler.AbstractHandler;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
|
@ -164,11 +166,13 @@ public class HttpProxyTransferTest
|
|||
}
|
||||
};
|
||||
|
||||
server = new Server( 0 );
|
||||
server = new Server( );
|
||||
ServerConnector serverConnector = new ServerConnector( server, new HttpConnectionFactory());
|
||||
server.addConnector( serverConnector );
|
||||
server.setHandler( handler );
|
||||
server.start();
|
||||
|
||||
int port = server.getConnectors()[0].getLocalPort();
|
||||
int port = serverConnector.getLocalPort();
|
||||
|
||||
NetworkProxyConfiguration proxyConfig = new NetworkProxyConfiguration();
|
||||
proxyConfig.setHost( "localhost" );
|
||||
|
|
|
@ -18,11 +18,11 @@ package org.apache.archiva.scheduler.indexing;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.archiva.admin.model.beans.RemoteRepository;
|
||||
import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin;
|
||||
import org.apache.archiva.common.plexusbridge.PlexusSisuBridge;
|
||||
import org.apache.archiva.common.utils.FileUtil;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
import org.apache.lucene.search.BooleanClause;
|
||||
import org.apache.lucene.search.BooleanQuery;
|
||||
import org.apache.maven.index.FlatSearchRequest;
|
||||
|
@ -30,12 +30,12 @@ import org.apache.maven.index.FlatSearchResponse;
|
|||
import org.apache.maven.index.MAVEN;
|
||||
import org.apache.maven.index.NexusIndexer;
|
||||
import org.apache.maven.index.expr.StringSearchExpression;
|
||||
import org.eclipse.jetty.server.Connector;
|
||||
import org.eclipse.jetty.server.HttpConnectionFactory;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.servlet.DefaultServlet;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
@ -50,7 +50,8 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* @author Olivier Lamy
|
||||
|
@ -61,6 +62,7 @@ public class DownloadRemoteIndexTaskTest
|
|||
{
|
||||
|
||||
private Server server;
|
||||
private ServerConnector serverConnector;
|
||||
|
||||
private int port;
|
||||
|
||||
|
@ -81,12 +83,12 @@ public class DownloadRemoteIndexTaskTest
|
|||
public void initialize()
|
||||
throws Exception
|
||||
{
|
||||
server = new Server( 0 );
|
||||
server = new Server( );
|
||||
serverConnector = new ServerConnector( server, new HttpConnectionFactory());
|
||||
server.addConnector( serverConnector );
|
||||
createContext( server, new File( "src/test/" ) );
|
||||
|
||||
this.server.start();
|
||||
Connector connector = this.server.getConnectors()[0];
|
||||
this.port = connector.getLocalPort();
|
||||
this.port = serverConnector.getLocalPort();
|
||||
log.info( "start server on port {}", this.port );
|
||||
nexusIndexer = plexusSisuBridge.lookup( NexusIndexer.class );
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
-->
|
||||
|
||||
|
||||
<configuration status="debug">
|
||||
<configuration>
|
||||
<appenders>
|
||||
<Console name="console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d [%t] %-5p %c %x - %m%n"/>
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
<logger name="org.springframework" level="error"/>
|
||||
|
||||
<logger name="org.apache.archiva.scheduler.indexing" level="debug"/>
|
||||
<logger name="org.apache.archiva.scheduler.indexing" level="info"/>
|
||||
<!--
|
||||
<logger name="org.apache.http" level="debug"/>
|
||||
-->
|
||||
|
|
|
@ -384,24 +384,14 @@
|
|||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat.embed</groupId>
|
||||
<artifactId>tomcat-embed-core</artifactId>
|
||||
<scope>test</scope>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-server</artifactId>
|
||||
<version>${jettyVersion}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat</groupId>
|
||||
<artifactId>tomcat-juli</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat.embed</groupId>
|
||||
<artifactId>tomcat-embed-logging-juli</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat</groupId>
|
||||
<artifactId>tomcat-jsp-api</artifactId>
|
||||
<scope>test</scope>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-servlet</artifactId>
|
||||
<version>${jettyVersion}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
|
|
|
@ -18,20 +18,19 @@ package org.apache.archiva.rest.services;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.archiva.rest.api.services.PluginsService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Eric Barboni
|
||||
|
@ -46,7 +45,7 @@ public class DefaultPluginsServices
|
|||
|
||||
private List<String> adminFeatures = new ArrayList<>();
|
||||
|
||||
private ApplicationContext appCont;
|
||||
private ApplicationContext applicationContext;
|
||||
|
||||
private Logger log = LoggerFactory.getLogger( getClass() );
|
||||
|
||||
|
@ -56,11 +55,14 @@ public class DefaultPluginsServices
|
|||
public DefaultPluginsServices( ApplicationContext applicationContext )
|
||||
throws IOException
|
||||
{
|
||||
this.appCont = applicationContext;
|
||||
log.debug( "init DefaultPluginsServices" );
|
||||
this.applicationContext = applicationContext;
|
||||
|
||||
// rebuild
|
||||
feed( repositoryType, "repository" );
|
||||
feed( adminFeatures, "features" );
|
||||
repositoryType = feed( "repository" );
|
||||
log.debug( "feed {}:{}", "repository" , repositoryType);
|
||||
adminFeatures = feed( "features" );
|
||||
log.debug( "feed {}:{}", "features", adminFeatures );
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for ( String repoType : repositoryType )
|
||||
{
|
||||
|
@ -81,21 +83,23 @@ public class DefaultPluginsServices
|
|||
}
|
||||
}
|
||||
|
||||
private void feed( List<String> repository, String key )
|
||||
private List<String> feed( String key )
|
||||
throws IOException
|
||||
{
|
||||
log.info( "Feeding: {}", key );
|
||||
repository.clear();
|
||||
Resource[] xmlResources;
|
||||
|
||||
xmlResources = appCont.getResources( "/**/" + key + "/**/main.js" );
|
||||
Resource[] xmlResources = applicationContext.getResources( "/**/" + key + "/**/main.js" );
|
||||
if (xmlResources == null)
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<String> repository = new ArrayList<>( xmlResources.length );
|
||||
for ( Resource rc : xmlResources )
|
||||
{
|
||||
String tmp = rc.getURL().toString();
|
||||
tmp = tmp.substring( tmp.lastIndexOf( key ) + key.length() + 1, tmp.length() - 8 );
|
||||
repository.add( "archiva/admin/" + key + "/" + tmp + "/main" );
|
||||
}
|
||||
|
||||
return repository;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
-->
|
||||
|
||||
|
||||
<configuration status="debug">
|
||||
<configuration> <!-- status="debug" -->
|
||||
<appenders>
|
||||
<Console name="console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%L] [%t] %-5level %logger{3} - %msg%n}" />
|
||||
|
@ -27,13 +27,10 @@
|
|||
</appenders>
|
||||
<loggers>
|
||||
|
||||
<logger name="org.codehaus.redback.rest.services" level="error"/>
|
||||
|
||||
<logger name="org.apache.archiva.redback.rest.services" level="error"/>
|
||||
<logger name="JPOX" level="error"/>
|
||||
|
||||
|
||||
<logger name="org.apache.archiva.rest.services" level="info"/>
|
||||
<logger name="org.springframework" level="error"/>
|
||||
|
||||
<logger name="org.apache.commons.configuration" level="error"/>
|
||||
|
||||
<root level="info">
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -185,11 +185,6 @@
|
|||
<groupId>org.apache.archiva</groupId>
|
||||
<artifactId>audit</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.ws.rs</groupId>
|
||||
<artifactId>javax.ws.rs-api</artifactId>
|
||||
|
@ -234,12 +229,17 @@
|
|||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.mail</groupId>
|
||||
<artifactId>mail</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
|
|
|
@ -25,7 +25,9 @@ import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
|
|||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.maven.wagon.providers.http.HttpWagon;
|
||||
import org.apache.maven.wagon.repository.Repository;
|
||||
import org.eclipse.jetty.server.HttpConnectionFactory;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
import org.junit.After;
|
||||
|
@ -96,7 +98,9 @@ public class DownloadArtifactsTest
|
|||
|
||||
// repo handler
|
||||
|
||||
this.repoServer = new Server( 0 );
|
||||
this.repoServer = new Server( );
|
||||
ServerConnector repoServerConnector = new ServerConnector( this.repoServer, new HttpConnectionFactory());
|
||||
this.repoServer.addConnector( repoServerConnector );
|
||||
|
||||
ServletHolder shRepo = new ServletHolder( RepoServlet.class );
|
||||
ServletContextHandler contextRepo = new ServletContextHandler();
|
||||
|
@ -105,12 +109,16 @@ public class DownloadArtifactsTest
|
|||
contextRepo.addServlet( shRepo, "/*" );
|
||||
|
||||
repoServer.setHandler( contextRepo );
|
||||
|
||||
repoServer.start();
|
||||
this.repoServerPort = repoServer.getConnectors()[0].getLocalPort();
|
||||
this.repoServerPort = repoServerConnector.getLocalPort();
|
||||
|
||||
//redirect handler
|
||||
|
||||
this.redirectServer = new Server( 0 );
|
||||
this.redirectServer = new Server( );
|
||||
ServerConnector redirectServerConnector = new ServerConnector( this.redirectServer, new HttpConnectionFactory());
|
||||
this.redirectServer.addConnector( redirectServerConnector );
|
||||
|
||||
ServletHolder shRedirect = new ServletHolder( RedirectServlet.class );
|
||||
ServletContextHandler contextRedirect = new ServletContextHandler();
|
||||
contextRedirect.setAttribute( "redirectToPort", Integer.toString( this.repoServerPort ) );
|
||||
|
@ -120,7 +128,7 @@ public class DownloadArtifactsTest
|
|||
|
||||
redirectServer.setHandler( contextRedirect );
|
||||
redirectServer.start();
|
||||
this.redirectPort = redirectServer.getConnectors()[0].getLocalPort();
|
||||
this.redirectPort = redirectServerConnector.getLocalPort();
|
||||
log.info( "redirect server port {}", redirectPort );
|
||||
|
||||
}
|
||||
|
|
|
@ -24,7 +24,9 @@ import org.apache.archiva.rest.api.services.RemoteRepositoriesService;
|
|||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.cxf.jaxrs.client.WebClient;
|
||||
import org.eclipse.jetty.server.Handler;
|
||||
import org.eclipse.jetty.server.HttpConnectionFactory;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.server.handler.DefaultHandler;
|
||||
import org.eclipse.jetty.server.handler.HandlerList;
|
||||
import org.eclipse.jetty.server.handler.ResourceHandler;
|
||||
|
@ -71,6 +73,9 @@ public class RemoteRepositoryConnectivityCheckTest
|
|||
|
||||
Server repoServer =
|
||||
buildStaticServer( new File( System.getProperty( "basedir" ) + "/src/test/repositories/test-repo" ) );
|
||||
|
||||
ServerConnector serverConnector = new ServerConnector( repoServer, new HttpConnectionFactory());
|
||||
repoServer.addConnector( serverConnector );
|
||||
repoServer.start();
|
||||
|
||||
RemoteRepositoriesService service = getRemoteRepositoriesService();
|
||||
|
@ -80,7 +85,7 @@ public class RemoteRepositoryConnectivityCheckTest
|
|||
try
|
||||
{
|
||||
|
||||
int repoServerPort = repoServer.getConnectors()[0].getLocalPort();
|
||||
int repoServerPort = serverConnector.getLocalPort();
|
||||
|
||||
RemoteRepository repo = getRemoteRepository();
|
||||
|
||||
|
@ -104,6 +109,8 @@ public class RemoteRepositoryConnectivityCheckTest
|
|||
|
||||
File tmpDir = Files.createTempDirectory( "test" ).toFile();
|
||||
Server repoServer = buildStaticServer( tmpDir );
|
||||
ServerConnector serverConnector = new ServerConnector( repoServer, new HttpConnectionFactory());
|
||||
repoServer.addConnector( serverConnector );
|
||||
repoServer.start();
|
||||
|
||||
RemoteRepositoriesService service = getRemoteRepositoriesService();
|
||||
|
@ -113,7 +120,7 @@ public class RemoteRepositoryConnectivityCheckTest
|
|||
try
|
||||
{
|
||||
|
||||
int repoServerPort = repoServer.getConnectors()[0].getLocalPort();
|
||||
int repoServerPort = serverConnector.getLocalPort();
|
||||
|
||||
RemoteRepository repo = getRemoteRepository();
|
||||
|
||||
|
@ -160,7 +167,7 @@ public class RemoteRepositoryConnectivityCheckTest
|
|||
|
||||
protected Server buildStaticServer( File path )
|
||||
{
|
||||
Server repoServer = new Server( 0 );
|
||||
Server repoServer = new Server( );
|
||||
|
||||
ResourceHandler resourceHandler = new ResourceHandler();
|
||||
resourceHandler.setDirectoriesListed( true );
|
||||
|
|
|
@ -28,15 +28,15 @@
|
|||
<loggers>
|
||||
|
||||
<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.commons.configuration" level="error"/>
|
||||
|
||||
<logger name="org.apache.archiva.scheduler.indexing" level="debug"/>
|
||||
|
||||
<logger name="org.apache.archiva.remotedownload" level="debug"/>
|
||||
|
||||
<logger name="org.apache.archiva.scheduler.indexing" level="info"/>
|
||||
<logger name="org.apache.archiva.remotedownload" level="info"/>
|
||||
<logger name="org.apache.jackrabbit" level="error"/>
|
||||
<logger name="org.quartz" level="error"/>
|
||||
<logger name="JPOX.RDBMS" level="error"/>
|
||||
<logger name="JPOX" level="error"/>
|
||||
<root level="info">
|
||||
<appender-ref ref="console"/>
|
||||
</root>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
</init-param>
|
||||
<init-param>
|
||||
<param-name>forceEncoding</param-name>
|
||||
<param-value>true</param-value>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
|
|
|
@ -159,6 +159,11 @@
|
|||
<artifactId>xmlunit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.mail</groupId>
|
||||
<artifactId>mail</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-server</artifactId>
|
||||
|
|
|
@ -28,7 +28,9 @@ import org.apache.archiva.policies.ChecksumPolicy;
|
|||
import org.apache.archiva.policies.ReleasesPolicy;
|
||||
import org.apache.archiva.policies.SnapshotsPolicy;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.eclipse.jetty.server.HttpConnectionFactory;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
|
||||
import org.eclipse.jetty.servlet.DefaultServlet;
|
||||
import org.eclipse.jetty.servlet.ServletContextHandler;
|
||||
|
@ -137,7 +139,9 @@ public abstract class AbstractRepositoryServletProxiedTestCase
|
|||
repo.root.mkdirs();
|
||||
}
|
||||
|
||||
repo.server = new Server( 0 );
|
||||
repo.server = new Server( );
|
||||
ServerConnector serverConnector = new ServerConnector( repo.server, new HttpConnectionFactory());
|
||||
repo.server.addConnector( serverConnector );
|
||||
ContextHandlerCollection contexts = new ContextHandlerCollection();
|
||||
repo.server.setHandler( contexts );
|
||||
|
||||
|
@ -154,7 +158,7 @@ public abstract class AbstractRepositoryServletProxiedTestCase
|
|||
|
||||
repo.server.start();
|
||||
|
||||
int port = repo.server.getConnectors()[0].getLocalPort();
|
||||
int port = serverConnector.getLocalPort();
|
||||
repo.url = "http://localhost:" + port + repo.context;
|
||||
log.info( "Remote HTTP Server started on {}", repo.url );
|
||||
|
||||
|
|
|
@ -20,46 +20,30 @@ package org.apache.archiva.webdav;
|
|||
*/
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.archiva.redback.authentication.AuthenticationException;
|
||||
import org.apache.archiva.redback.policy.AccountLockedException;
|
||||
import org.apache.archiva.redback.policy.MustChangePasswordException;
|
||||
import org.apache.archiva.redback.users.User;
|
||||
import org.apache.jackrabbit.webdav.DavSessionProvider;
|
||||
import org.apache.jackrabbit.webdav.WebdavRequest;
|
||||
import org.apache.jackrabbit.webdav.WebdavRequestImpl;
|
||||
import org.apache.archiva.security.ServletAuthenticator;
|
||||
import org.apache.archiva.redback.authentication.AuthenticationDataSource;
|
||||
import org.apache.archiva.redback.authentication.AuthenticationException;
|
||||
import org.apache.archiva.redback.authentication.AuthenticationResult;
|
||||
import org.apache.archiva.redback.authorization.AuthorizationException;
|
||||
import org.apache.archiva.redback.authorization.UnauthorizedException;
|
||||
import org.apache.archiva.redback.system.SecuritySession;
|
||||
import org.apache.archiva.redback.integration.filter.authentication.HttpAuthenticator;
|
||||
|
||||
import javax.servlet.AsyncContext;
|
||||
import javax.servlet.DispatcherType;
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletInputStream;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import javax.servlet.http.Part;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.security.Principal;
|
||||
import java.util.Collection;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import org.apache.archiva.redback.policy.AccountLockedException;
|
||||
import org.apache.archiva.redback.policy.MustChangePasswordException;
|
||||
import org.apache.archiva.redback.system.SecuritySession;
|
||||
import org.apache.archiva.redback.users.User;
|
||||
import org.apache.archiva.security.ServletAuthenticator;
|
||||
import org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
|
||||
import org.apache.jackrabbit.webdav.DavSessionProvider;
|
||||
import org.apache.jackrabbit.webdav.WebdavRequest;
|
||||
import org.apache.jackrabbit.webdav.WebdavRequestImpl;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import java.io.IOException;
|
||||
|
||||
@RunWith( ArchivaBlockJUnit4ClassRunner.class )
|
||||
public class ArchivaDavSessionProviderTest
|
||||
|
@ -76,7 +60,7 @@ public class ArchivaDavSessionProviderTest
|
|||
{
|
||||
super.setUp();
|
||||
sessionProvider = new ArchivaDavSessionProvider( new ServletAuthenticatorMock(), new HttpAuthenticatorMock() );
|
||||
request = new WebdavRequestImpl( new HttpServletRequestMock(), null );
|
||||
request = new WebdavRequestImpl( new MockHttpServletRequest(), null );
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -101,10 +85,30 @@ public class ArchivaDavSessionProviderTest
|
|||
}
|
||||
|
||||
@SuppressWarnings( "unchecked" )
|
||||
/*
|
||||
private class HttpServletRequestMock
|
||||
implements HttpServletRequest
|
||||
{
|
||||
|
||||
@Override
|
||||
public long getContentLengthLong()
|
||||
{
|
||||
throw new UnsupportedOperationException( "Not supported yet." );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String changeSessionId()
|
||||
{
|
||||
throw new UnsupportedOperationException( "Not supported yet." );
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends HttpUpgradeHandler> T upgrade( Class<T> handlerClass )
|
||||
throws IOException, ServletException
|
||||
{
|
||||
throw new UnsupportedOperationException( "Not supported yet." );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean authenticate( HttpServletResponse httpServletResponse )
|
||||
throws IOException, ServletException
|
||||
|
@ -513,6 +517,7 @@ public class ArchivaDavSessionProviderTest
|
|||
}
|
||||
}
|
||||
|
||||
*/
|
||||
private class ServletAuthenticatorMock
|
||||
implements ServletAuthenticator
|
||||
{
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
-->
|
||||
|
||||
|
||||
<configuration status="debug">
|
||||
<configuration>
|
||||
<appenders>
|
||||
<Console name="console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||
|
@ -31,7 +31,6 @@
|
|||
|
||||
<logger name="org.springframework" level="error"/>
|
||||
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="console"/>
|
||||
</root>
|
||||
|
|
9
pom.xml
9
pom.xml
|
@ -86,7 +86,7 @@
|
|||
<httpclient.version>4.5.2</httpclient.version>
|
||||
<httpclient.core.version>4.4.4</httpclient.core.version>
|
||||
<javaxMailVersion>1.4</javaxMailVersion>
|
||||
<jettyVersion>8.1.14.v20131031</jettyVersion>
|
||||
<jettyVersion>9.4.5.v20170502</jettyVersion>
|
||||
<guava.version>16.0.1</guava.version>
|
||||
|
||||
<!-- restore when we will be able to use a derby in memory database -->
|
||||
|
@ -1200,15 +1200,10 @@
|
|||
<artifactId>geronimo-jpa_2.0_spec</artifactId>
|
||||
<version>1.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<version>3.1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
|
|
Loading…
Reference in New Issue