You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jm...@apache.org on 2008/07/03 23:47:08 UTC
svn commit: r673828 - in /maven/sandbox/trunk/mercury: ./
src/main/java/org/apache/maven/mercury/spi/http/client/deploy/
src/test/java/org/apache/maven/mercury/spi/http/client/
src/test/java/org/apache/maven/mercury/spi/http/server/
src/test/resources/...
Author: jmcconnell
Date: Thu Jul 3 14:47:07 2008
New Revision: 673828
URL: http://svn.apache.org/viewvc?rev=673828&view=rev
Log:
enable webdav support, enable ssl support, add test put server and associated test deployer, which dependency on jetty-client to 7.0-SNAPSHOT
Added:
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/SecureJettyDeployerTest.java
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SecurePutServer.java
maven/sandbox/trunk/mercury/src/test/resources/secureServer/
maven/sandbox/trunk/mercury/src/test/resources/secureServer/keystore (with props)
maven/sandbox/trunk/mercury/src/test/resources/secureServer/realm.properties
Modified:
maven/sandbox/trunk/mercury/pom.xml
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/spi/http/client/deploy/DefaultDeployer.java
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimplePutServer.java
Modified: maven/sandbox/trunk/mercury/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/pom.xml?rev=673828&r1=673827&r2=673828&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/pom.xml (original)
+++ maven/sandbox/trunk/mercury/pom.xml Thu Jul 3 14:47:07 2008
@@ -103,12 +103,12 @@
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-client</artifactId>
- <version>7.0.0pre0</version>
+ <version>7.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
- <version>7.0.0pre0</version>
+ <version>7.0.0pre2</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/spi/http/client/deploy/DefaultDeployer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/spi/http/client/deploy/DefaultDeployer.java?rev=673828&r1=673827&r2=673828&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/spi/http/client/deploy/DefaultDeployer.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/spi/http/client/deploy/DefaultDeployer.java Thu Jul 3 14:47:07 2008
@@ -51,6 +51,7 @@
_idGenerator = new RandomBatchIdGenerator();
_httpClient = new HttpClient();
_httpClient.setConnectorType( HttpClient.CONNECTOR_SELECT_CHANNEL );
+ _httpClient.registerListener( "org.mortbay.jetty.client.webdav.WebdavListener");
try
{
_httpClient.start();
Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java?rev=673828&r1=673827&r2=673828&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/JettyDeployerTest.java Thu Jul 3 14:47:07 2008
@@ -26,8 +26,10 @@
import org.apache.maven.mercury.spi.http.client.deploy.DefaultDeployer;
import org.apache.maven.mercury.spi.http.client.deploy.DeployRequest;
import org.apache.maven.mercury.spi.http.client.deploy.DeployResponse;
+import org.apache.maven.mercury.spi.http.server.SecurePutServer;
import org.apache.maven.mercury.spi.http.server.SimplePutServer;
import org.apache.maven.mercury.spi.http.validate.Validator;
+import org.mortbay.jetty.Server;
import org.mortbay.util.IO;
import java.io.File;
@@ -41,11 +43,11 @@
public class JettyDeployerTest extends TestCase
{
- public static final String __HOST_FRAGMENT = "http://localhost:";
+ public String _HOST_FRAGMENT = "http://localhost:";
public static final String __PATH_FRAGMENT = "/maven2/repo/";
- private DefaultDeployer _deployer;
- private SimplePutServer _putServer;
- private String _port;
+ protected DefaultDeployer _deployer;
+ protected SimplePutServer _putServer;
+ protected String _port;
File _baseDir;
File _file0;
File _file1;
@@ -137,19 +139,19 @@
_file4 = new File(_baseDir, "file4.so");
_file5 = new File(_baseDir, "file5.jpg");
- _binding0.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
+ _binding0.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
_binding0.setLocalFile(_file0);
bindings.add(_binding0);
- _binding3.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
+ _binding3.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
_binding3.setLocalFile(_file3);
bindings.add(_binding3);
- _binding4.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
+ _binding4.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
_binding4.setLocalFile(_file4);
bindings.add(_binding4);
- _binding5.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
+ _binding5.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
_binding5.setLocalFile(_file5);
bindings.add(_binding5);
@@ -194,24 +196,24 @@
_file4 = new File(_baseDir, "file4.so");
_file5 = new File(_baseDir, "file5.jpg");
- _binding0.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
+ _binding0.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
_binding0.setLocalFile(_file0);
bindings.add(_binding0);
- _binding1.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file1.txt"); //has no sha file
+ _binding1.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file1.txt"); //has no sha file
_binding1.setLocalFile(_file1);
_binding1.setLenientChecksum(true);
bindings.add(_binding1);
- _binding3.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
+ _binding3.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
_binding3.setLocalFile(_file3);
bindings.add(_binding3);
- _binding4.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
+ _binding4.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
_binding4.setLocalFile(_file4);
bindings.add(_binding4);
- _binding5.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
+ _binding5.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
_binding5.setLocalFile(_file5);
bindings.add(_binding5);
@@ -264,29 +266,29 @@
File file6 = new File(_baseDir, "file6.txt");//doesn't exist
File file7 = new File(_baseDir, "file7.txt");//doesn't exist
- _binding0.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
+ _binding0.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
_binding0.setLocalFile(_file0);
bindings.add(_binding0);
- _binding3.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
+ _binding3.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
_binding3.setLocalFile(_file3);
bindings.add(_binding3);
- _binding4.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
+ _binding4.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
_binding4.setLocalFile(_file4);
bindings.add(_binding4);
- _binding5.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
+ _binding5.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
_binding5.setLocalFile(_file5);
bindings.add(_binding5);
Binding binding6 = new Binding();
- binding6.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file6.txt");
+ binding6.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file6.txt");
binding6.setLocalFile(file6);
bindings.add(binding6);
Binding binding7 = new Binding();
- binding6.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file7.txt");
+ binding6.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file7.txt");
binding6.setLocalFile(file7);
bindings.add(binding7);
@@ -344,29 +346,29 @@
File file6 = new File(_baseDir, "file6.txt");//doesn't exist
File file7 = new File(_baseDir, "file7.txt");//doesn't exist
- _binding0.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
+ _binding0.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file0.txt");
_binding0.setLocalFile(_file0);
bindings.add(_binding0);
- _binding3.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
+ _binding3.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file3.jar");
_binding3.setLocalFile(_file3);
bindings.add(_binding3);
- _binding4.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
+ _binding4.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file4.so");
_binding4.setLocalFile(_file4);
bindings.add(_binding4);
- _binding5.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
+ _binding5.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file5.jpg");
_binding5.setLocalFile(_file5);
bindings.add(_binding5);
Binding binding6 = new Binding();
- binding6.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file6.txt");
+ binding6.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file6.txt");
binding6.setLocalFile(file6);
bindings.add(binding6);
Binding binding7 = new Binding();
- binding6.setRemoteUrl(__HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file7.txt");
+ binding6.setRemoteUrl(_HOST_FRAGMENT+_port+__PATH_FRAGMENT+"file7.txt");
binding6.setLocalFile(file7);
bindings.add(binding7);
Added: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/SecureJettyDeployerTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/SecureJettyDeployerTest.java?rev=673828&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/SecureJettyDeployerTest.java (added)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/client/SecureJettyDeployerTest.java Thu Jul 3 14:47:07 2008
@@ -0,0 +1,44 @@
+/**
+ * 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.
+ */
+
+package org.apache.maven.mercury.spi.http.client;
+
+import org.apache.maven.mercury.spi.http.client.deploy.DefaultDeployer;
+import org.apache.maven.mercury.spi.http.server.SecurePutServer;
+
+public class SecureJettyDeployerTest extends JettyDeployerTest
+{
+ public SecureJettyDeployerTest() throws Exception
+ {
+ super();
+ }
+
+ protected void setUp() throws Exception
+ {
+ _HOST_FRAGMENT = "https://localhost:";
+
+ _deployer = new DefaultDeployer();
+ _putServer = new SecurePutServer();
+ _putServer.start();
+ _port = String.valueOf(_putServer.getPort());
+ //super.setUp();
+ }
+
+
+}
Added: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SecurePutServer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SecurePutServer.java?rev=673828&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SecurePutServer.java (added)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SecurePutServer.java Thu Jul 3 14:47:07 2008
@@ -0,0 +1,94 @@
+/**
+ * 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.
+ */
+
+package org.apache.maven.mercury.spi.http.server;
+
+import java.io.File;
+
+import org.mortbay.jetty.Server;
+import org.mortbay.jetty.Connector;
+import org.mortbay.jetty.handler.DefaultHandler;
+import org.mortbay.jetty.handler.HandlerCollection;
+import org.mortbay.jetty.security.SslSocketConnector;
+import org.mortbay.jetty.servlet.Context;
+import org.mortbay.jetty.servlet.DefaultServlet;
+import org.mortbay.jetty.servlet.FilterHolder;
+import org.mortbay.servlet.PutFilter;
+
+public class SecurePutServer extends SimplePutServer
+{
+ private File _base;
+
+ public SecurePutServer() throws Exception
+ {
+ SslSocketConnector connector = new SslSocketConnector();
+ String keystore = System.getProperty("user.dir") + File.separator + "src" + File.separator + "test" + File.separator + "resources" + File.separator
+ + "secureServer" + File.separator + "keystore";
+
+ connector.setPort(0);
+ connector.setKeystore(keystore);
+ connector.setPassword("storepwd");
+ connector.setKeyPassword("keypwd");
+
+ setConnectors(new Connector[] { connector });
+
+ HandlerCollection handlers = new HandlerCollection();
+ setHandler(handlers);
+
+ Context context = new Context(handlers,"/maven2/repo");
+ handlers.addHandler(new DefaultHandler());
+
+ _base = File.createTempFile("securePutServer",null);
+ _base.delete();
+ _base.mkdir();
+ _base.deleteOnExit();
+ FilterHolder holder = context.addFilter(PutFilter.class, "/*", 0);
+ holder.setInitParameter("delAllowed","true");
+ context.addServlet(DefaultServlet.class,"/");
+ context.setResourceBase(_base.getCanonicalPath());
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.maven.mercury.spi.http.server.PutServer#getPutDir()
+ */
+ public File getPutDir ()
+ {
+ return _base;
+ }
+
+ public void destroy ()
+ {
+ super.destroy();
+ File[] files = _base.listFiles();
+ for (int i=0;files!=null && i>0; i++)
+ {
+ files[i].delete();
+ }
+ _base.delete();
+ }
+
+ public static void main(String[] args)
+ throws Exception
+ {
+ SecurePutServer server = new SecurePutServer();
+ server.start();
+ server.join();
+ }
+
+}
Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimplePutServer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimplePutServer.java?rev=673828&r1=673827&r2=673828&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimplePutServer.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimplePutServer.java Thu Jul 3 14:47:07 2008
@@ -65,11 +65,17 @@
_base.delete();
}
+ /* (non-Javadoc)
+ * @see org.apache.maven.mercury.spi.http.server.PutServer#getPutDir()
+ */
public File getPutDir ()
{
return _base;
}
+ /* (non-Javadoc)
+ * @see org.apache.maven.mercury.spi.http.server.PutServer#getPort()
+ */
public int getPort()
{
return getConnectors()[0].getLocalPort();
Added: maven/sandbox/trunk/mercury/src/test/resources/secureServer/keystore
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/resources/secureServer/keystore?rev=673828&view=auto
==============================================================================
Binary file - no diff available.
Propchange: maven/sandbox/trunk/mercury/src/test/resources/secureServer/keystore
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: maven/sandbox/trunk/mercury/src/test/resources/secureServer/realm.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/resources/secureServer/realm.properties?rev=673828&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/resources/secureServer/realm.properties (added)
+++ maven/sandbox/trunk/mercury/src/test/resources/secureServer/realm.properties Thu Jul 3 14:47:07 2008
@@ -0,0 +1,22 @@
+#
+# This file defines users passwords and roles for a HashUserRealm
+#
+# The format is
+# <username>: <password>[,<rolename> ...]
+#
+# Passwords may be clear text, obfuscated or checksummed. The class
+# org.mortbay.util.Password should be used to generate obfuscated
+# passwords or password checksums
+#
+# If DIGEST Authentication is used, the password must be in a recoverable
+# format, either plain text or OBF:.
+#
+# if using digest authentication, do not MD5-hash the password
+jetty: jetty,user
+admin: CRYPT:ad1ks..kc.1Ug,server-administrator,content-administrator,admin
+other: OBF:1xmk1w261u9r1w1c1xmq
+plain: plain
+user: password
+
+# This entry is for digest auth. The credential is a MD5 hash of username:realmname:password
+digest: MD5:6e120743ad67abfbc385bc2bb754e297