You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2015/07/28 08:30:11 UTC

[2/3] mina-sshd git commit: [SSHD-546] Fix the visibility of some classes that were once inner ones and now are regular ones

[SSHD-546] Fix the visibility of some classes that were once inner ones and now are regular ones


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/84f7b623
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/84f7b623
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/84f7b623

Branch: refs/heads/master
Commit: 84f7b6232cbf2e835139acf30736cfa8a653129c
Parents: a5bf6ca
Author: Lyor Goldstein <lg...@vmware.com>
Authored: Tue Jul 28 09:07:28 2015 +0300
Committer: Lyor Goldstein <lg...@vmware.com>
Committed: Tue Jul 28 09:07:28 2015 +0300

----------------------------------------------------------------------
 .../apache/sshd/common/util/Transformer.java    | 15 ++--
 .../apache/sshd/common/util/buffer/Buffer.java  |  1 -
 .../subsystem/sftp/DefaultGroupPrincipal.java   |  2 +-
 .../subsystem/sftp/DefaultUserPrincipal.java    |  2 +-
 .../server/subsystem/sftp/DirectoryHandle.java  |  2 +-
 .../sshd/server/subsystem/sftp/FileHandle.java  |  2 +-
 .../sshd/server/subsystem/sftp/Handle.java      |  4 +-
 .../subsystem/sftp/InvalidHandleException.java  |  2 +-
 .../server/subsystem/sftp/PrincipalBase.java    |  2 +-
 .../server/subsystem/sftp/UnixDateFormat.java   | 20 ++++--
 .../sshd/common/util/TransformerTest.java       | 75 ++++++++++++++++++++
 11 files changed, 106 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/common/util/Transformer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/Transformer.java b/sshd-core/src/main/java/org/apache/sshd/common/util/Transformer.java
index 96adbc1..4a81afd 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/Transformer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/Transformer.java
@@ -59,18 +59,21 @@ public interface Transformer<I, O> {
     O transform(I input);
 
     final class Utils {
+        @SuppressWarnings("rawtypes")
+        private static final Transformer IDENTITY = new Transformer() {
+            @Override
+            public Object transform(Object input) {
+                return input;
+            }
+        };
 
         private Utils() {
             throw new UnsupportedOperationException("No instance allowed");
         }
 
+        @SuppressWarnings({ "cast", "unchecked" })
         public static <U extends V, V> Transformer<U, V> identity() {
-            return new Transformer<U, V>() {
-                @Override
-                public V transform(U input) {
-                    return input;
-                }
-            };
+            return (Transformer<U, V>) IDENTITY;
         }
 
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java b/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java
index 106d9cd..1595a79 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java
@@ -48,7 +48,6 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Objects;
 
 import org.apache.sshd.common.SshException;
 import org.apache.sshd.common.cipher.ECCurves;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultGroupPrincipal.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultGroupPrincipal.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultGroupPrincipal.java
index d52b385..b304f0f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultGroupPrincipal.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultGroupPrincipal.java
@@ -23,7 +23,7 @@ import java.nio.file.attribute.GroupPrincipal;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-class DefaultGroupPrincipal extends PrincipalBase implements GroupPrincipal {
+public class DefaultGroupPrincipal extends PrincipalBase implements GroupPrincipal {
 
     public DefaultGroupPrincipal(String name) {
         super(name);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultUserPrincipal.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultUserPrincipal.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultUserPrincipal.java
index 1ca17d8..4f50d7b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultUserPrincipal.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DefaultUserPrincipal.java
@@ -23,7 +23,7 @@ import java.nio.file.attribute.UserPrincipal;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-class DefaultUserPrincipal extends PrincipalBase implements UserPrincipal {
+public class DefaultUserPrincipal extends PrincipalBase implements UserPrincipal {
 
     public DefaultUserPrincipal(String name) {
         super(name);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DirectoryHandle.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DirectoryHandle.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DirectoryHandle.java
index c34d3ef..090b2cc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DirectoryHandle.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/DirectoryHandle.java
@@ -27,7 +27,7 @@ import java.util.Iterator;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-class DirectoryHandle extends Handle implements Iterator<Path> {
+public class DirectoryHandle extends Handle implements Iterator<Path> {
 
     private boolean done;
     private boolean sendDotDot;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java
index fed8805..92f9346 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/FileHandle.java
@@ -48,7 +48,7 @@ import static org.apache.sshd.common.subsystem.sftp.SftpConstants.SSH_FXF_TRUNCA
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-class FileHandle extends Handle {
+public class FileHandle extends Handle {
 
     private final int access;
     private final FileChannel fileChannel;

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/Handle.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/Handle.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/Handle.java
index ea0af1a..6faf7a4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/Handle.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/Handle.java
@@ -25,10 +25,10 @@ import java.util.Objects;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-abstract class Handle implements java.io.Closeable {
+public abstract class Handle implements java.io.Closeable {
     private Path file;
 
-    public Handle(Path file) {
+    protected Handle(Path file) {
         this.file = file;
     }
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/InvalidHandleException.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/InvalidHandleException.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/InvalidHandleException.java
index cd986d3..e952adc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/InvalidHandleException.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/InvalidHandleException.java
@@ -23,7 +23,7 @@ import java.io.IOException;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-class InvalidHandleException extends IOException {
+public class InvalidHandleException extends IOException {
     private static final long serialVersionUID = -1686077114375131889L;
 
     public InvalidHandleException(String handle, Handle h, Class<? extends Handle> expected) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/PrincipalBase.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/PrincipalBase.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/PrincipalBase.java
index e61238e..39d8fc0 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/PrincipalBase.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/PrincipalBase.java
@@ -24,7 +24,7 @@ import java.util.Objects;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-class PrincipalBase implements Principal {
+public class PrincipalBase implements Principal {
 
     private final String name;
 

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/UnixDateFormat.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/UnixDateFormat.java b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/UnixDateFormat.java
index 902556b..e4fefda 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/UnixDateFormat.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/subsystem/sftp/UnixDateFormat.java
@@ -28,13 +28,21 @@ import java.util.List;
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
-final class UnixDateFormat {
+public final class UnixDateFormat {
 
-    private static final List<String> MONTHS =
+    /**
+     * A {@link List} of <U>short</U> months names where Jan=0, Feb=1, etc.
+     */
+    public static final List<String> MONTHS =
         Collections.unmodifiableList(Arrays.asList(
             "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
         ));
 
+    /**
+     * Six months duration in msec.
+     */
+    public static final long SIX_MONTHS = 183L * 24L * 60L * 60L * 1000L;
+
     private UnixDateFormat() {
         throw new UnsupportedOperationException("No instance allowed");
     }
@@ -43,11 +51,11 @@ final class UnixDateFormat {
      * Get unix style date string.
      */
     public static String getUnixDate(FileTime time) {
-        return getUnixDate(time != null ? time.toMillis() : -1);
+        return getUnixDate((time != null) ? time.toMillis() : -1L);
     }
 
     public static String getUnixDate(long millis) {
-        if (millis < 0) {
+        if (millis < 0L) {
             return "------------";
         }
 
@@ -67,9 +75,8 @@ final class UnixDateFormat {
         sb.append(day);
         sb.append(' ');
 
-        long sixMonth = 15811200000L; // 183L * 24L * 60L * 60L * 1000L;
         long nowTime = System.currentTimeMillis();
-        if (Math.abs(nowTime - millis) > sixMonth) {
+        if (Math.abs(nowTime - millis) > SIX_MONTHS) {
 
             // year
             int year = cal.get(Calendar.YEAR);
@@ -92,6 +99,7 @@ final class UnixDateFormat {
             }
             sb.append(mm);
         }
+
         return sb.toString();
     }
 }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/84f7b623/sshd-core/src/test/java/org/apache/sshd/common/util/TransformerTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/util/TransformerTest.java b/sshd-core/src/test/java/org/apache/sshd/common/util/TransformerTest.java
new file mode 100644
index 0000000..8dcbc6b
--- /dev/null
+++ b/sshd-core/src/test/java/org/apache/sshd/common/util/TransformerTest.java
@@ -0,0 +1,75 @@
+/*
+ * 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.sshd.common.util;
+
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.sshd.util.BaseTestSupport;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runners.MethodSorters;
+
+/**
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
+ */
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TransformerTest extends BaseTestSupport {
+    public TransformerTest() {
+        super();
+    }
+
+    @Test
+    public void testToString() {
+        assertNull("Invalid null result", Transformer.TOSTRING.transform(null));
+        for (Object o : new Object[] { "", getClass(), new Date() }) {
+            String expected = o.toString();
+            String actual = Transformer.TOSTRING.transform(o);
+            assertEquals("Mismatched result for type=" + o.getClass().getSimpleName(), expected, actual);
+        }
+    }
+
+    @Test
+    public void testExtractEnumName() {
+        assertNull("Invalid null result", Transformer.ENUM_NAME_EXTRACTOR.transform(null));
+
+        for (TimeUnit u : TimeUnit.values()) {
+            String expected = u.name();
+            String actual = Transformer.ENUM_NAME_EXTRACTOR.transform(u);
+            assertEquals("Mismatched name", expected, actual);
+        }
+    }
+
+    @Test
+    public void testSingletonIdentityInstance() {
+        Transformer<Date,Date> dateTransformer = Transformer.Utils.identity();
+        Transformer<String,String> stringTransformer = Transformer.Utils.identity();
+        assertSame("Mismatched identity instance", dateTransformer, stringTransformer);
+    }
+
+    @Test
+    public void testIdentity() {
+        Transformer<Object,Object> identity = Transformer.Utils.identity();
+        for (Object expected : new Object[] { null, getClass(), getCurrentTestName() }) {
+            Object actual = identity.transform(expected);
+            assertSame("Mismatched identity result", expected, actual);
+        }
+    }
+}