Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/ThirdPartyProxyTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain
Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/TransformsTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/TransformsTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/TransformsTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,63 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +public class TransformsTest extends RestTestcase { + + private static String URL = "/testTransforms"; + + //==================================================================================================== + // test1 - Test class transform overrides parent class transform + // Should return "A2-1". + //==================================================================================================== + @Test + public void testClassTransformOverridesParentClassTransform() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + String r; + String url = URL + "/testClassTransformOverridesParentClassTransform"; + + r = client.doGet(url).getResponse(String.class); + assertEquals("A2-0", r); + + r = client.doPut(url, "A2-1").getResponse(String.class); + assertEquals("A2-1", r); + + r = client.doPut(url + "/A2-2", "").getResponse(String.class); + assertEquals("A2-2", r); + } + + //==================================================================================================== + // Test method transform overrides class transform + // Should return "A3-1". + //==================================================================================================== + @Test + public void testMethodTransformOverridesClassTransform() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + String r; + String url = URL + "/testMethodTransformOverridesClassTransform"; + + r = client.doGet(url).getResponse(String.class); + assertEquals("A3-0", r); + + r = client.doPut(url, "A3-1").getResponse(String.class); + assertEquals("A3-1", r); + + r = client.doPut(url + "/A3-2", "").getResponse(String.class); + assertEquals("A3-2", r); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/TransformsTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrisTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrisTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrisTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,432 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.*; +import org.apache.juneau.rest.client.*; +import org.junit.*; + +/** + * Verifies that all the RestRequest.getXXX() methods involving URIs work correctly. + */ +public class UrisTest extends RestTestcase { + + private static int port = TestMicroservice.getURI().getPort(); // 9443 + private static String path = TestMicroservice.getURI().getPath(); // /jazz/juneau/sample + + //==================================================================================================== + // testRoot - http://localhost:8080/sample/testuris + //==================================================================================================== + @Test + public void testRoot() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + ObjectMap r; + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris").getResponse(ObjectMap.class); + assertEquals("root.test1", r.getString("testMethod")); + assertNull(r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/foo").getResponse(ObjectMap.class); + assertEquals("root.test1", r.getString("testMethod")); + assertEquals("/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris", r.getString("requestParentURI")); + assertEquals(path + "/testuris/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/foo/bar").getResponse(ObjectMap.class); + assertEquals("root.test1", r.getString("testMethod")); + assertEquals("/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/test2 + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/test2").getResponse(ObjectMap.class); + assertEquals("root.test2", r.getString("testMethod")); + assertEquals("/test2", r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris", r.getString("requestParentURI")); + assertEquals(path + "/testuris/test2", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/test2/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/test2/foo").getResponse(ObjectMap.class); + assertEquals("root.test2", r.getString("testMethod")); + assertEquals("/test2/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/test2", r.getString("requestParentURI")); + assertEquals(path + "/testuris/test2/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2/foo")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/test2/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/test2/foo/bar").getResponse(ObjectMap.class); + assertEquals("root.test2", r.getString("testMethod")); + assertEquals("/test2/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/test2/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/test2/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test2/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/test4/test4 + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/test4/test4").getResponse(ObjectMap.class); + assertEquals("root.test4", r.getString("testMethod")); + assertEquals("/test4/test4", r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris/test4", r.getString("requestParentURI")); + assertEquals(path + "/testuris/test4/test4", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/test4/test4/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/test4/test4/foo").getResponse(ObjectMap.class); + assertEquals("root.test4", r.getString("testMethod")); + assertEquals("/test4/test4/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/test4/test4", r.getString("requestParentURI")); + assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/test4/test4/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/test4/test4/foo/bar").getResponse(ObjectMap.class); + assertEquals("root.test4", r.getString("testMethod")); + assertEquals("/test4/test4/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/test4/test4/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/test4/test4/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/test4/test4/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris", r.getString("servletURI")); + } + + //==================================================================================================== + // testChild - http://localhost:8080/sample/testuris/child + //==================================================================================================== + @Test + public void testChild() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + ObjectMap r; + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child").getResponse(ObjectMap.class); + assertEquals("child.test1", r.getString("testMethod")); + assertNull(r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/foo").getResponse(ObjectMap.class); + assertEquals("child.test1", r.getString("testMethod")); + assertEquals("/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/foo/bar").getResponse(ObjectMap.class); + assertEquals("child.test1", r.getString("testMethod")); + assertEquals("/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test2 + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/test2").getResponse(ObjectMap.class); + assertEquals("child.test2", r.getString("testMethod")); + assertEquals("/test2", r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris/child", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/test2", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test2/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/test2/foo").getResponse(ObjectMap.class); + assertEquals("child.test2", r.getString("testMethod")); + assertEquals("/test2/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/test2", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/test2/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test2/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/test2/foo/bar").getResponse(ObjectMap.class); + assertEquals("child.test2", r.getString("testMethod")); + assertEquals("/test2/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/test2/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/test2/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test2/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test4/test4 + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/test4/test4").getResponse(ObjectMap.class); + assertEquals("child.test4", r.getString("testMethod")); + assertEquals("/test4/test4", r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/test4", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/test4/test4", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test4/test4/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/test4/test4/foo").getResponse(ObjectMap.class); + assertEquals("child.test4", r.getString("testMethod")); + assertEquals("/test4/test4/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/test4/test4", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test4/test4/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/test4/test4/foo/bar").getResponse(ObjectMap.class); + assertEquals("child.test4", r.getString("testMethod")); + assertEquals("/test4/test4/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/test4/test4/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/test4/test4/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/test4/test4/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris/child", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child", r.getString("servletURI")); + } + + //==================================================================================================== + // testGrandChild - http://localhost:8080/sample/testuris/child/grandchild + //==================================================================================================== + @Test + public void testGrandChild() throws Exception { + RestClient client = TestMicroservice.DEFAULT_CLIENT; + ObjectMap r; + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild").getResponse(ObjectMap.class); + assertEquals("grandchild.test1", r.getString("testMethod")); + assertNull(r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris/child", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/foo").getResponse(ObjectMap.class); + assertEquals("grandchild.test1", r.getString("testMethod")); + assertEquals("/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/foo/bar").getResponse(ObjectMap.class); + assertEquals("grandchild.test1", r.getString("testMethod")); + assertEquals("/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test2 + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/test2").getResponse(ObjectMap.class); + assertEquals("grandchild.test2", r.getString("testMethod")); + assertEquals("/test2", r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/test2", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test2/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/test2/foo").getResponse(ObjectMap.class); + assertEquals("grandchild.test2", r.getString("testMethod")); + assertEquals("/test2/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild/test2", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test2/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/test2/foo/bar").getResponse(ObjectMap.class); + assertEquals("grandchild.test2", r.getString("testMethod")); + assertEquals("/test2/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild/test2/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/test2/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test2/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test4/test4 + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/test4/test4").getResponse(ObjectMap.class); + assertEquals("grandchild.test4", r.getString("testMethod")); + assertEquals("/test4/test4", r.getString("pathInfo")); + assertNull(r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild/test4", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/test4/test4", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test4/test4/foo + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/test4/test4/foo").getResponse(ObjectMap.class); + assertEquals("grandchild.test4", r.getString("testMethod")); + assertEquals("/test4/test4/foo", r.getString("pathInfo")); + assertEquals("foo", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild/test4/test4", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + + //-------------------------------------------------------------------------------- + // http://localhost:8080/sample/testuris/child/test4/test4/foo/bar + //-------------------------------------------------------------------------------- + r = client.doGet("/testuris/child/grandchild/test4/test4/foo/bar").getResponse(ObjectMap.class); + assertEquals("grandchild.test4", r.getString("testMethod")); + assertEquals("/test4/test4/foo/bar", r.getString("pathInfo")); + assertEquals("foo/bar", r.getString("pathRemainder")); + assertEquals(path + "/testuris/child/grandchild/test4/test4/foo", r.getString("requestParentURI")); + assertEquals(path + "/testuris/child/grandchild/test4/test4/foo/bar", r.getString("requestURI")); + assertTrue(r.getString("requestURL").endsWith(port + path + "/testuris/child/grandchild/test4/test4/foo/bar")); + // Same for servlet + assertEquals(path + "/testuris/child/grandchild", r.getString("contextPath") + r.getString("servletPath")); // App may not have context path, but combination should always equal path. + assertEquals(path + "/testuris/child/grandchild", r.getString("servletURI")); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrisTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlContentTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlContentTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlContentTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,65 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import org.apache.juneau.rest.client.*; +import org.junit.*; + +public class UrlContentTest extends RestTestcase { + + private static String URL = "/testUrlContent"; + private RestClient client = TestMicroservice.DEFAULT_CLIENT_PLAINTEXT; + + + //==================================================================================================== + // Test URL &Body parameter containing a String + //==================================================================================================== + @Test + public void testString() throws Exception { + String r; + r = client.doGet(URL + "/testString?body=\'xxx\'&Content-Type=text/json").getResponseAsString(); + assertEquals("class=java.lang.String, value=xxx", r); + } + + //==================================================================================================== + // Test URL &Body parameter containing an Enum + //==================================================================================================== + @Test + public void testEnum() throws Exception { + String r; + r = client.doGet(URL + "/testEnum?body='X1'&Content-Type=text/json").getResponseAsString(); + assertEquals("class=org.apache.juneau.rest.test.UrlContentResource$TestEnum, value=X1", r); + } + + //==================================================================================================== + // Test URL &Body parameter containing a Bean + //==================================================================================================== + @Test + public void testBean() throws Exception { + String r; + r = client.doGet(URL + "/testBean?body=%7Bf1:1,f2:'foobar'%7D&Content-Type=text/json").getResponseAsString(); + assertEquals("class=org.apache.juneau.rest.test.UrlContentResource$TestBean, value={f1:1,f2:'foobar'}", r); + } + + //==================================================================================================== + // Test URL &Body parameter containing an int + //==================================================================================================== + @Test + public void testInt() throws Exception { + String r; + r = client.doGet(URL + "/testInt?body=123&Content-Type=text/json").getResponseAsString(); + assertEquals("class=java.lang.Integer, value=123", r); + } +} \ No newline at end of file Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlContentTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlPathPatternTest.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlPathPatternTest.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlPathPatternTest.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,40 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import static org.junit.Assert.*; + +import java.util.*; + +import org.apache.juneau.json.*; +import org.apache.juneau.rest.*; +import org.junit.*; + +public class UrlPathPatternTest { + @Test + public void testComparison() throws Exception { + List<UrlPathPattern> l = new LinkedList<UrlPathPattern>(); + + l.add(new UrlPathPattern("/foo")); + l.add(new UrlPathPattern("/foo/*")); + l.add(new UrlPathPattern("/foo/bar")); + l.add(new UrlPathPattern("/foo/bar/*")); + l.add(new UrlPathPattern("/foo/{id}")); + l.add(new UrlPathPattern("/foo/{id}/*")); + l.add(new UrlPathPattern("/foo/{id}/bar")); + l.add(new UrlPathPattern("/foo/{id}/bar/*")); + + Collections.sort(l); + assertEquals("[{patternString:'/foo/bar',vars:[]},{patternString:'/foo/bar/*',vars:[]},{patternString:'/foo/{id}/bar',vars:['id']},{patternString:'/foo/{id}/bar/*',vars:['id']},{patternString:'/foo/{id}',vars:['id']},{patternString:'/foo/{id}/*',vars:['id']},{patternString:'/foo',vars:[]},{patternString:'/foo/*',vars:[]}]", JsonSerializer.DEFAULT_LAX.builder().sortProperties(true).build().serialize(l)); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/UrlPathPatternTest.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java ============================================================================== --- release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java (added) +++ release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java Fri Sep 8 23:21:12 2017 @@ -0,0 +1,84 @@ +// *************************************************************************************************************************** +// * 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.juneau.rest.test; + +import org.junit.*; +import org.junit.runner.*; +import org.junit.runners.*; +import org.junit.runners.Suite.*; + +/** + * Runs all the testcases in this project. + * Starts a REST service running org.apache.juneau.rest.test.Root on port 10001. + * Stops the REST service after running the tests. + */ +@RunWith(Suite.class) +@SuiteClasses({ + AcceptCharsetTest.class, + BeanContextPropertiesTest.class, + CallbackStringsTest.class, + CharsetEncodingsTest.class, + ClientFuturesTest.class, + ClientVersionTest.class, + ConfigTest.class, + ContentTest.class, + DefaultContentTypesTest.class, + ErrorConditionsTest.class, + FormDataTest.class, + GroupsTest.class, + GzipTest.class, + HeadersTest.class, + HtmlDocTest.class, + HtmlDocLinksTest.class, + InheritanceTest.class, + InterfaceProxyTest.class, + JacocoDummyTest.class, + LargePojosTest.class, + MessagesTest.class, + NlsPropertyTest.class, + NlsTest.class, + NoParserInputTest.class, + OnPostCallTest.class, + OnPreCallTest.class, + OptionsWithoutNlsTest.class, + OverlappingMethodsTest.class, + ParamsTest.class, + ParsersTest.class, + PathsTest.class, + PathTest.class, + PathVariableTest.class, + PropertiesTest.class, + QueryTest.class, + RequestBeanProxyTest.class, + RestClientTest.class, + RestUtilsTest.class, + SerializersTest.class, + StaticFilesTest.class, + ThirdPartyProxyTest.class, + TransformsTest.class, + UrisTest.class, + UrlContentTest.class, + UrlPathPatternTest.class +}) +public class _TestSuite { + + @BeforeClass + public static void setUp() { + TestMicroservice.startMicroservice(); + } + + @AfterClass + public static void tearDown() { + TestMicroservice.stopMicroservice(); + } +} Propchange: release/incubator/juneau/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/_TestSuite.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: release/incubator/juneau/juneau-microservice-test/target/.plxarc ============================================================================== --- release/incubator/juneau/juneau-microservice-test/target/.plxarc (added) +++ release/incubator/juneau/juneau-microservice-test/target/.plxarc Fri Sep 8 23:21:12 2017 @@ -0,0 +1 @@ +maven-shared-archive-resources \ No newline at end of file Added: release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/DEPENDENCIES ============================================================================== --- release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/DEPENDENCIES (added) +++ release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/DEPENDENCIES Fri Sep 8 23:21:12 2017 @@ -0,0 +1,99 @@ +// ------------------------------------------------------------------ +// Transitive dependencies of this project determined from the +// maven pom organized by organization. +// ------------------------------------------------------------------ + +Apache Juneau Microservice Tests + + +From: 'an unknown organization' + - Hamcrest Core (https://github.com/hamcrest/JavaHamcrest/hamcrest-core) org.hamcrest:hamcrest-core:jar:1.3 + License: New BSD License (http://www.opensource.org/licenses/bsd-license.php) + - Xerces2-j (https://xerces.apache.org/xerces2-j/) xerces:xercesImpl:jar:2.10.0 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - XML Commons External Components XML APIs (http://xml.apache.org/commons/components/external/) xml-apis:xml-apis:jar:1.4.01 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) License: The SAX License (http://www.saxproject.org/copying.html) License: The W3C License (http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/java-binding.zip) + +From: 'Apache' (http://www.apache.org/) + - Apache Juneau Config File API (http://juneau.incubator.apache.org/juneau-core/juneau-config) org.apache.juneau:juneau-config:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau Data Transfer Objects (http://juneau.incubator.apache.org/juneau-core/juneau-dto) org.apache.juneau:juneau-dto:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau REST Examples (http://juneau.incubator.apache.org/juneau-examples/juneau-examples-rest) org.apache.juneau:juneau-examples-rest:jar:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau Marshall (http://juneau.incubator.apache.org/juneau-core/juneau-marshall) org.apache.juneau:juneau-marshall:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau Marshal RDF (http://juneau.incubator.apache.org/juneau-core/juneau-marshall-rdf) org.apache.juneau:juneau-marshall-rdf:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau Microservice Server (http://juneau.incubator.apache.org/juneau-rest/juneau-microservice-server) org.apache.juneau:juneau-microservice-server:jar:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau REST Client API (http://juneau.incubator.apache.org/juneau-rest/juneau-rest-client) org.apache.juneau:juneau-rest-client:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau REST Servlet API (http://juneau.incubator.apache.org/juneau-rest/juneau-rest-server) org.apache.juneau:juneau-rest-server:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau REST JAX/RS API (http://juneau.incubator.apache.org/juneau-rest/juneau-rest-server-jaxrs) org.apache.juneau:juneau-rest-server-jaxrs:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Juneau Core (http://juneau.incubator.apache.org/juneau-core/juneau-svl) org.apache.juneau:juneau-svl:bundle:6.3.2-incubating-SNAPSHOT + License: Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt) + +From: 'Apache Software Foundation' (http://db.apache.org/) + - Apache Derby Database Engine and Embedded JDBC Driver (http://db.apache.org/derby/derby/) org.apache.derby:derby:jar:10.10.2.0 + License: Apache 2 (http://www.apache.org/licenses/LICENSE-2.0.txt) + +From: 'Apache Software Foundation' (http://www.apache.org) + - Apache Log4j (http://logging.apache.org/log4j/1.2/) log4j:log4j:bundle:1.2.16 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + +From: 'JUnit' (http://www.junit.org) + - JUnit (http://junit.org) junit:junit:jar:4.11 + License: Common Public License Version 1.0 (http://www.opensource.org/licenses/cpl1.0.txt) + +From: 'QOS.ch' (http://www.qos.ch) + - SLF4J API Module (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.6.4 + License: MIT License (http://www.opensource.org/licenses/mit-license.php) + - SLF4J LOG4J-12 Binding (http://www.slf4j.org) org.slf4j:slf4j-log4j12:jar:1.6.4 + License: MIT License (http://www.opensource.org/licenses/mit-license.php) + +From: 'Sun Microsystems, Inc' (http://www.sun.com/) + - jsr311-api (https://jsr311.dev.java.net) javax.ws.rs:jsr311-api:jar:1.1.1 + License: CDDL License (http://www.opensource.org/licenses/cddl1.php) + +From: 'The Apache Software Foundation' (http://www.apache.org/) + - Apache Commons Codec (http://commons.apache.org/proper/commons-codec/) commons-codec:commons-codec:jar:1.9 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Commons FileUpload (http://commons.apache.org/proper/commons-fileupload/) commons-fileupload:commons-fileupload:jar:1.3.1 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - Commons IO (http://commons.apache.org/io/) commons-io:commons-io:jar:2.2 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache Commons Logging (http://commons.apache.org/proper/commons-logging/) commons-logging:commons-logging:jar:1.2 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache HttpClient (http://hc.apache.org/httpcomponents-client) org.apache.httpcomponents:httpclient:jar:4.5 + License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache HttpCore (http://hc.apache.org/httpcomponents-core-ga) org.apache.httpcomponents:httpcore:jar:4.4.1 + License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - Apache HttpClient Mime (http://hc.apache.org/httpcomponents-client) org.apache.httpcomponents:httpmime:jar:4.5 + License: Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - jena-core (http://jena.apache.org/jena-core/) org.apache.jena:jena-core:jar:2.7.1 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + - jena-iri (http://jena.apache.org/jena-iri/) org.apache.jena:jena-iri:jar:0.9.1 + License: The Apache Software License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt) + +From: 'Webtide' (https://webtide.com) + - Jetty :: Http Utility (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + - Jetty :: IO Utility (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-io:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + - Jetty :: Security (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + - Jetty :: Server Core (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-server:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + - Jetty :: Servlet Handling (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-servlet:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + - Jetty :: Utilities (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-util:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + - Jetty :: XML utilities (http://www.eclipse.org/jetty) org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 + License: Apache Software License - Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) License: Eclipse Public License - Version 1.0 (http://www.eclipse.org/org/documents/epl-v10.php) + + + + Added: release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/LICENSE ============================================================================== --- release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/LICENSE (added) +++ release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/LICENSE Fri Sep 8 23:21:12 2017 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. Added: release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/NOTICE ============================================================================== --- release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/NOTICE (added) +++ release/incubator/juneau/juneau-microservice-test/target/classes/META-INF/NOTICE Fri Sep 8 23:21:12 2017 @@ -0,0 +1,8 @@ + +Apache Juneau Microservice Tests +Copyright 2017 Apache + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). + + Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestParser$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestParser$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestParser.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestParser.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestSerializer$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestSerializer$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestSerializer.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource$TestSerializer.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/AcceptCharsetResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BeanContextPropertiesResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BeanContextPropertiesResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BpiResource$MyBeanA.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BpiResource$MyBeanA.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BpiResource$MyBeanB.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BpiResource$MyBeanB.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BpiResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/BpiResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CallbackStringsResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CallbackStringsResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$ASerializer$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$ASerializer$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$ASerializer.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$ASerializer.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$CtParser$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$CtParser$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$CtParser.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource$CtParser.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/CharsetEncodingsResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientFuturesResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientFuturesResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientVersionResource$CustomHeader.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientVersionResource$CustomHeader.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientVersionResource$DefaultHeader.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientVersionResource$DefaultHeader.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientVersionResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ClientVersionResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ConfigResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ConfigResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ContentResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ContentResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s$A.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s$A.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s$B.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s$B.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s$C.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s$C.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DTO2s.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummyParser$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummyParser$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummyParser.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummyParser.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummySerializer$1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummySerializer$1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummySerializer.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$DummySerializer.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$P1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$P1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$P2.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$P2.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$P3.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$P3.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$S1.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$S1.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$S2.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$S2.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$S3.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource$S3.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource.class ============================================================================== Binary file - no diff available. Propchange: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/DefaultContentTypesResource.class ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: release/incubator/juneau/juneau-microservice-test/target/classes/org/apache/juneau/rest/test/ErrorConditionsResource$NeverMatcher.class ============================================================================== Binary file - no diff available.