You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by da...@apache.org on 2016/12/02 04:40:50 UTC

maven-wagon git commit: [WAGON-458] FTPSClient for Wagon

Repository: maven-wagon
Updated Branches:
  refs/heads/master ffa7fc883 -> e30c31d4b


[WAGON-458] FTPSClient for Wagon 

Submitted by: Witek

Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/e30c31d4
Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/e30c31d4
Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/e30c31d4

Branch: refs/heads/master
Commit: e30c31d4bd0762ec0ec54ae44fc1f3ef407c81c1
Parents: ffa7fc8
Author: trand8 <da...@emc.com>
Authored: Thu Dec 1 20:40:44 2016 -0800
Committer: trand8 <da...@emc.com>
Committed: Thu Dec 1 20:40:44 2016 -0800

----------------------------------------------------------------------
 wagon-providers/wagon-ftp/pom.xml               |  2 +-
 .../maven/wagon/providers/ftp/FtpWagon.java     |  7 ++-
 .../maven/wagon/providers/ftp/FtpsWagon.java    | 64 ++++++++++++++++++++
 .../wagon-ftp/src/site/apt/index.apt            | 63 ++++++++++++++++++-
 4 files changed, 133 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/e30c31d4/wagon-providers/wagon-ftp/pom.xml
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-ftp/pom.xml b/wagon-providers/wagon-ftp/pom.xml
index 2755a57..8cec0c9 100644
--- a/wagon-providers/wagon-ftp/pom.xml
+++ b/wagon-providers/wagon-ftp/pom.xml
@@ -37,7 +37,7 @@ under the License.
     <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
-      <version>3.1</version>
+      <version>3.5</version>
     </dependency>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/e30c31d4/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
index 455d3f4..4fa0fd6 100644
--- a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
+++ b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
@@ -112,7 +112,7 @@ public class FtpWagon
 
         String host = getRepository().getHost();
 
-        ftp = new FTPClient();
+        ftp = createClient();
         ftp.setDefaultTimeout( getTimeout() );
         ftp.setDataTimeout( getTimeout() );
         ftp.setControlEncoding( getControlEncoding() );
@@ -187,6 +187,11 @@ public class FtpWagon
         }
     }
 
+    protected FTPClient createClient()
+    {
+        return new FTPClient();
+    }
+
     protected void firePutCompleted( Resource resource, File file )
     {
         try

http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/e30c31d4/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
new file mode 100644
index 0000000..3736449
--- /dev/null
+++ b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpsWagon.java
@@ -0,0 +1,64 @@
+package org.apache.maven.wagon.providers.ftp;
+
+/*
+ * 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 org.apache.commons.net.ftp.FTPClient;
+import org.apache.commons.net.ftp.FTPSClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * FtpsWagon
+ *
+ *
+ * @plexus.component role="org.apache.maven.wagon.Wagon"
+ * role-hint="ftps"
+ * instantiation-strategy="per-lookup"
+ */
+public class FtpsWagon
+    extends FtpWagon
+{
+    private static final Logger LOG = LoggerFactory.getLogger( FtpsWagon.class );
+
+    /**
+     * @plexus.configuration default-value="TLS"
+     */
+    private String securityProtocol = "TLS";
+
+    /**
+     * @plexus.configuration default-value="false"
+     */
+    private boolean implicit = false;
+
+    /**
+     * @plexus.configuration default-value="true"
+     */
+    private boolean endpointChecking = true;
+
+    @Override
+    protected FTPClient createClient()
+    {
+        LOG.debug( "Creating secure FTP client. Protocol: [{}], implicit mode: [{}], endpoint checking: [{}].",
+                securityProtocol, implicit, endpointChecking );
+        FTPSClient client = new FTPSClient( securityProtocol, implicit );
+        client.setEndpointCheckingEnabled( endpointChecking );
+        return client;
+    }
+}

http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/e30c31d4/wagon-providers/wagon-ftp/src/site/apt/index.apt
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-ftp/src/site/apt/index.apt b/wagon-providers/wagon-ftp/src/site/apt/index.apt
index 0f7f47e..a44f821 100644
--- a/wagon-providers/wagon-ftp/src/site/apt/index.apt
+++ b/wagon-providers/wagon-ftp/src/site/apt/index.apt
@@ -38,4 +38,65 @@ Features
 
  * Get files from FTP Server
 
- * Deploy files to FTP server
\ No newline at end of file
+ * Deploy files to FTP server
+
+Configuration
+
+ * <<<passiveMode>>> default: <<true>>
+
+ * <<<controlEncoding>>> default: <<"ISO-8859-1">>,
+ set from <<<org.apache.commons.net.ftp.FTP.DEFAULT_CONTROL_ENCODING>>>
+
+ * <<<securityProtocol>>> default: <<TLS>>, FTPS security protocol, TLS or SSL
+
+ * <<<implicit>>> default: <<false>>
+
+ * <<<endpointChecking>>> default: <<true>>
+
+Sample Configuration
+
+* pom.xml
+
+---------------------------------------------
+<project>
+    ...
+    <distributionManagement>
+        ...
+        <site>
+            <id>ftp.server.id</id>
+            <!--<url>ftp://ftp.example.com</url>-->
+            <url>ftps://secure.example.com</url>
+        </site>
+    </distributionManagement>
+    ...
+    <build>
+        <extensions>
+            <extension>
+                <groupId>org.apache.maven.wagon</groupId>
+                <artifactId>wagon-ftp</artifactId>
+            </extension>
+        </extensions>
+        ...
+    </build>
+    ...
+</project>
+---------------------------------------------
+
+* settings.xml
+
+---------------------------------------------
+<settings>
+    ...
+    <servers>
+        ...
+        <server>
+            <id>ftp.server.id</id>
+            <username>username</username>
+            <password>password</password>
+            <configuration>
+                <endpointChecking>false</endpointChecking>
+            </configuration>
+        </server>
+    </servers>
+<settings>
+---------------------------------------------