[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 <[email protected]> Authored: Tue Jul 28 09:07:28 2015 +0300 Committer: Lyor Goldstein <[email protected]> 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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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:[email protected]">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); + } + } +}
