Improved support for resolution of URIs. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/c4952d2c Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/c4952d2c Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/c4952d2c
Branch: refs/heads/master Commit: c4952d2cf412c827c11ac001753d01ad00279635 Parents: d28634b Author: JamesBognar <[email protected]> Authored: Mon May 29 18:21:47 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Mon May 29 18:21:47 2017 -0400 ---------------------------------------------------------------------- .../org/apache/juneau/jena/RdfSerializer.java | 17 +- .../juneau/jena/RdfSerializerBuilder.java | 14 +- .../juneau/jena/RdfSerializerSession.java | 4 +- .../java/org/apache/juneau/jena/package.html | 6 +- .../java/org/apache/juneau/html/CommonTest.java | 191 ------ .../java/org/apache/juneau/html/HtmlTest.java | 156 ++--- .../java/org/apache/juneau/jena/CommonTest.java | 144 ---- .../java/org/apache/juneau/json/CommonTest.java | 130 ---- .../org/apache/juneau/serializer/TestURI.java | 92 +++ .../juneau/serializer/UriResolutionTest.java | 671 +++++++++++++++++++ .../juneau/urlencoding/Common_UonTest.java | 136 ---- .../urlencoding/Common_UrlEncodingTest.java | 126 ---- .../utils/UriContextResolutionComboTest.java | 145 ++-- .../juneau/utils/UriContextUriComboTest.java | 2 +- .../java/org/apache/juneau/xml/CommonTest.java | 131 ---- .../main/java/org/apache/juneau/UriContext.java | 155 +---- .../java/org/apache/juneau/UriRelativity.java | 4 +- .../java/org/apache/juneau/UriResolver.java | 273 ++++++++ .../java/org/apache/juneau/annotation/URI.java | 10 +- .../apache/juneau/csv/CsvSerializerBuilder.java | 14 +- .../apache/juneau/html/HtmlDocSerializer.java | 19 +- .../juneau/html/HtmlDocSerializerSession.java | 2 +- .../org/apache/juneau/html/HtmlSerializer.java | 10 +- .../juneau/html/HtmlSerializerBuilder.java | 14 +- .../juneau/html/HtmlSerializerSession.java | 48 +- .../java/org/apache/juneau/html/HtmlWriter.java | 17 +- .../apache/juneau/html/SimpleHtmlWriter.java | 2 +- .../org/apache/juneau/internal/AsciiMap.java | 82 +++ .../apache/juneau/jso/JsoSerializerBuilder.java | 14 +- .../json/JsonSchemaSerializerBuilder.java | 14 +- .../org/apache/juneau/json/JsonSerializer.java | 2 +- .../juneau/json/JsonSerializerBuilder.java | 14 +- .../juneau/json/JsonSerializerSession.java | 2 +- .../java/org/apache/juneau/json/JsonWriter.java | 19 +- .../msgpack/MsgPackSerializerBuilder.java | 14 +- .../plaintext/PlainTextSerializerBuilder.java | 14 +- .../juneau/serializer/SerializerBuilder.java | 136 ++-- .../juneau/serializer/SerializerContext.java | 147 ++-- .../serializer/SerializerGroupBuilder.java | 27 +- .../juneau/serializer/SerializerSession.java | 119 ++-- .../juneau/serializer/SerializerWriter.java | 49 +- .../juneau/soap/SoapXmlSerializerBuilder.java | 14 +- .../apache/juneau/uon/UonSerializerBuilder.java | 14 +- .../apache/juneau/uon/UonSerializerSession.java | 2 +- .../java/org/apache/juneau/uon/UonWriter.java | 24 +- .../UrlEncodingSerializerBuilder.java | 14 +- .../apache/juneau/xml/XmlSchemaSerializer.java | 4 +- .../juneau/xml/XmlSchemaSerializerBuilder.java | 14 +- .../org/apache/juneau/xml/XmlSerializer.java | 2 +- .../apache/juneau/xml/XmlSerializerBuilder.java | 14 +- .../apache/juneau/xml/XmlSerializerSession.java | 2 +- .../java/org/apache/juneau/xml/XmlUtils.java | 440 +++++++----- .../java/org/apache/juneau/xml/XmlWriter.java | 54 +- juneau-core/src/main/javadoc/overview.html | 123 +++- .../juneau/examples/addressbook/Person.java | 2 +- .../juneau/examples/rest/AtomFeedResource.java | 2 +- .../juneau/examples/rest/DirectoryResource.java | 2 +- .../examples/rest/DockerRegistryResource.java | 2 +- .../juneau/examples/rest/FileSpaceResource.java | 15 +- .../examples/rest/HelloWorldResource.java | 2 +- .../examples/rest/JsonSchemaResource.java | 2 +- .../examples/rest/MethodExampleResource.java | 4 +- .../juneau/examples/rest/PhotosResource.java | 7 +- .../examples/rest/RequestEchoResource.java | 2 +- .../examples/rest/SampleRemoteableServlet.java | 2 +- .../juneau/examples/rest/SqlQueryResource.java | 2 +- .../examples/rest/SystemPropertiesResource.java | 18 +- .../juneau/examples/rest/TempDirResource.java | 2 +- .../examples/rest/TumblrParserResource.java | 2 +- .../examples/rest/UrlEncodedFormResource.java | 2 +- .../rest/addressbook/AddressBookResource.java | 37 +- .../apache/juneau/microservice/Resource.java | 6 +- .../juneau/microservice/ResourceGroup.java | 2 +- .../juneau/microservice/ResourceJena.java | 2 +- .../microservice/resources/ConfigResource.java | 2 +- .../resources/DirectoryResource.java | 2 +- .../juneau/rest/client/RestClientBuilder.java | 27 +- .../java/org/apache/juneau/rest/CallMethod.java | 6 - .../java/org/apache/juneau/rest/RestConfig.java | 11 +- .../org/apache/juneau/rest/RestContext.java | 2 +- .../org/apache/juneau/rest/RestRequest.java | 13 +- .../juneau/rest/annotation/RestResource.java | 4 +- .../java/org/apache/juneau/rest/package.html | 68 +- 83 files changed, 2258 insertions(+), 1899 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java index 734f38a..05dc92e 100644 --- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java +++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java @@ -21,7 +21,6 @@ import java.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; import org.apache.juneau.http.*; -import org.apache.juneau.internal.*; import org.apache.juneau.serializer.*; import org.apache.juneau.transform.*; import org.apache.juneau.xml.*; @@ -330,21 +329,7 @@ public class RdfSerializer extends WriterSerializer { s = uri2.toString(); if (s == null) return null; - if (s.indexOf("://") == -1) { - String aUri = session.getAbsolutePathUriBase(); - String rUri = session.getRelativeUriBase(); - if (StringUtils.startsWith(s, '/')) { - if (aUri != null) - return aUri + s; - } else { - if (rUri != null) { - if (rUri.equals("/")) - return '/' + s; - return rUri + '/' + s; - } - } - } - return s; + return session.getUriResolver().resolve(s); } private void serializeMap(RdfSerializerSession session, Map m, Resource r, ClassMeta<?> type) throws SerializeException { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java index da3b59a..91957a3 100644 --- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java +++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java @@ -489,14 +489,20 @@ public class RdfSerializerBuilder extends SerializerBuilder { } @Override /* SerializerBuilder */ - public RdfSerializerBuilder relativeUriBase(String value) { - super.relativeUriBase(value); + public RdfSerializerBuilder uriContext(UriContext value) { + super.uriContext(value); return this; } @Override /* SerializerBuilder */ - public RdfSerializerBuilder absolutePathUriBase(String value) { - super.absolutePathUriBase(value); + public RdfSerializerBuilder uriResolution(UriResolution value) { + super.uriResolution(value); + return this; + } + + @Override /* SerializerBuilder */ + public RdfSerializerBuilder uriRelativity(UriRelativity value) { + super.uriRelativity(value); return this; } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java index 55060ef..79691fe 100644 --- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java +++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java @@ -269,7 +269,7 @@ public final class RdfSerializerSession extends SerializerSession { } /** - * XML-encodes the specified string using the {@link XmlUtils#encodeInvalidCharsForText(Object)} method. + * XML-encodes the specified string using the {@link XmlUtils#escapeText(Object)} method. * * @param o The string being encoded. * @return The encoded string, or <jk>null</jk> if the input was <jk>null</jk>. @@ -278,7 +278,7 @@ public final class RdfSerializerSession extends SerializerSession { if (o == null) return null; String s = toString(o); - return XmlUtils.encodeInvalidCharsForText(s); + return XmlUtils.escapeText(s); } /** http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html ---------------------------------------------------------------------- diff --git a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html index 095dc7e..c3073ec 100644 --- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html +++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/package.html @@ -431,8 +431,10 @@ <ja>@URI</ja> <jk>public</jk> String <jf>addressBookUri</jf>; </p> <p> - Also take note of the {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_relativeUriBase} and {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_absolutePathUriBase} - settings that can be specified on the serializer to resolve relative and context-root-relative URIs to fully-qualfied URIs. + Also take note of the {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_uriResolution}, + {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_uriRelativity}, and + and {@link org.apache.juneau.serializer.SerializerContext#SERIALIZER_uriContext} + settings that can be specified on the serializer to resolve relative and context-root-relative URIs to fully-qualified URIs. </p> <p> This can be useful if you want to keep the URI authority and context root information out of the bean logic layer. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java index ab82065..e83900e 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/html/CommonTest.java @@ -13,7 +13,6 @@ package org.apache.juneau.html; import static org.apache.juneau.TestUtils.*; -import static org.apache.juneau.html.HtmlSerializerContext.*; import static org.junit.Assert.*; import java.net.*; @@ -23,7 +22,6 @@ import java.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; import org.apache.juneau.serializer.*; -import org.apache.juneau.testbeans.*; import org.apache.juneau.utils.*; import org.junit.*; @@ -343,195 +341,6 @@ public class CommonTest { public URL f2; } - //==================================================================================================== - // Test URIs with URI_CONTEXT and URI_AUTHORITY - //==================================================================================================== - @Test - public void testUris() throws Exception { - HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().uriAnchorText(PROPERTY_NAME).useWhitespace(false).addKeyValueTableHeaders(true); - TestURI t = new TestURI(); - String r; - String expected; - - s.relativeUriBase(null); - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='f0/x0'>f0</a>" - +"\n[f1]=<a href='f1/x1'>f1</a>" - +"\n[f2]=<a href='/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='f4/x4'>f4</a>" - +"\n[f5]=<a href='/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='f8/x8'>f8</a>" - +"\n[f9]=<a href='f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.relativeUriBase(""); // Same as null. - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='f0/x0'>f0</a>" - +"\n[f1]=<a href='f1/x1'>f1</a>" - +"\n[f2]=<a href='/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='f4/x4'>f4</a>" - +"\n[f5]=<a href='/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='f8/x8'>f8</a>" - +"\n[f9]=<a href='f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.relativeUriBase("/cr"); - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1</a>" - +"\n[f2]=<a href='/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4</a>" - +"\n[f5]=<a href='/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.relativeUriBase("/cr/"); // Same as above - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1</a>" - +"\n[f2]=<a href='/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4</a>" - +"\n[f5]=<a href='/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.relativeUriBase("/"); - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='/f0/x0'>f0</a>" - +"\n[f1]=<a href='/f1/x1'>f1</a>" - +"\n[f2]=<a href='/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='/f4/x4'>f4</a>" - +"\n[f5]=<a href='/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='/f8/x8'>f8</a>" - +"\n[f9]=<a href='/f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.relativeUriBase(null); - - s.absolutePathUriBase("http://foo"); - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='f0/x0'>f0</a>" - +"\n[f1]=<a href='f1/x1'>f1</a>" - +"\n[f2]=<a href='http://foo/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='f4/x4'>f4</a>" - +"\n[f5]=<a href='http://foo/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='f8/x8'>f8</a>" - +"\n[f9]=<a href='f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.absolutePathUriBase("http://foo/"); - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='f0/x0'>f0</a>" - +"\n[f1]=<a href='f1/x1'>f1</a>" - +"\n[f2]=<a href='http://foo/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='f4/x4'>f4</a>" - +"\n[f5]=<a href='http://foo/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='f8/x8'>f8</a>" - +"\n[f9]=<a href='f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - - s.absolutePathUriBase(""); // Same as null. - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='f0/x0'>f0</a>" - +"\n[f1]=<a href='f1/x1'>f1</a>" - +"\n[f2]=<a href='/f2/x2'>f2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>f3</a>" - +"\n[f4]=<a href='f4/x4'>f4</a>" - +"\n[f5]=<a href='/f5/x5'>f5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>f6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>f7</a>" - +"\n[f8]=<a href='f8/x8'>f8</a>" - +"\n[f9]=<a href='f9/x9'>f9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>fa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>fd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>fe</a>" - ; - assertEquals(expected, r); - } - - private String strip(String html) { - return html - .replace("<table><tr><th>key</th><th>value</th></tr>", "") - .replace("</table>", "") - .replace("<tr><td>", "\n[") - .replace("</td><td>", "]=") - .replace("</td></tr>", ""); - } //==================================================================================================== // Recursion http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java index 5a48716..9d76201 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/html/HtmlTest.java @@ -49,7 +49,7 @@ public class HtmlTest { //==================================================================================================== @Test public void testAnchorTextOptions() throws Exception { - HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true); + HtmlSerializerBuilder s = new HtmlSerializerBuilder().sq().addKeyValueTableHeaders(true).uriResolution(UriResolution.NONE); TestURI t = new TestURI(); String r; String expected = null; @@ -68,127 +68,105 @@ public class HtmlTest { +"\n[f8]=<a href='f8/x8'>f8/x8</a>" +"\n[f9]=<a href='f9/x9'>f9/x9</a>" +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>http://www.apache.org/fa/xa#MY_LABEL</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; - assertEquals(expected, r); - - s.absolutePathUriBase("http://myhost"); - s.relativeUriBase("/cr"); - s.uriAnchorText(TO_STRING); - r = strip(s.build().serialize(t)); - expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0/x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1/x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>/f2/x2</a>" - +"\n[f3]=<a href='http://www.apache.org/f3/x3'>http://www.apache.org/f3/x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4/x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>/f5/x5</a>" - +"\n[f6]=<a href='http://www.apache.org/f6/x6'>http://www.apache.org/f6/x6</a>" - +"\n[f7]=<a href='http://www.apache.org/f7/x7'>http://www.apache.org/f7/x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8/x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9/x9</a>" - +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>http://www.apache.org/fa/xa#MY_LABEL</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; + +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" + +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" + +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" + +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; assertEquals(expected, r); s.uriAnchorText(URI); r = strip(s.build().serialize(t)); expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>/cr/f0/x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>/cr/f1/x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>http://myhost/f2/x2</a>" + +"\n[f0]=<a href='f0/x0'>f0/x0</a>" + +"\n[f1]=<a href='f1/x1'>f1/x1</a>" + +"\n[f2]=<a href='/f2/x2'>/f2/x2</a>" +"\n[f3]=<a href='http://www.apache.org/f3/x3'>http://www.apache.org/f3/x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>/cr/f4/x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>http://myhost/f5/x5</a>" + +"\n[f4]=<a href='f4/x4'>f4/x4</a>" + +"\n[f5]=<a href='/f5/x5'>/f5/x5</a>" +"\n[f6]=<a href='http://www.apache.org/f6/x6'>http://www.apache.org/f6/x6</a>" +"\n[f7]=<a href='http://www.apache.org/f7/x7'>http://www.apache.org/f7/x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>/cr/f8/x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>/cr/f9/x9</a>" + +"\n[f8]=<a href='f8/x8'>f8/x8</a>" + +"\n[f9]=<a href='f9/x9'>f9/x9</a>" +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>http://www.apache.org/fa/xa#MY_LABEL</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; + +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" + +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" + +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" + +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; assertEquals(expected, r); s.uriAnchorText(LAST_TOKEN); r = strip(s.build().serialize(t)); expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>x2</a>" + +"\n[f0]=<a href='f0/x0'>x0</a>" + +"\n[f1]=<a href='f1/x1'>x1</a>" + +"\n[f2]=<a href='/f2/x2'>x2</a>" +"\n[f3]=<a href='http://www.apache.org/f3/x3'>x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>x5</a>" + +"\n[f4]=<a href='f4/x4'>x4</a>" + +"\n[f5]=<a href='/f5/x5'>x5</a>" +"\n[f6]=<a href='http://www.apache.org/f6/x6'>x6</a>" +"\n[f7]=<a href='http://www.apache.org/f7/x7'>x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>x9</a>" + +"\n[f8]=<a href='f8/x8'>x8</a>" + +"\n[f9]=<a href='f9/x9'>x9</a>" +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>xa</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>xd</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>xe</a>"; + +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" + +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" + +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>xd</a>" + +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>xe</a>"; assertEquals(expected, r); s.uriAnchorText(URI_ANCHOR); r = strip(s.build().serialize(t)); expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0/x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1/x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>/f2/x2</a>" + +"\n[f0]=<a href='f0/x0'>f0/x0</a>" + +"\n[f1]=<a href='f1/x1'>f1/x1</a>" + +"\n[f2]=<a href='/f2/x2'>/f2/x2</a>" +"\n[f3]=<a href='http://www.apache.org/f3/x3'>http://www.apache.org/f3/x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4/x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>/f5/x5</a>" + +"\n[f4]=<a href='f4/x4'>f4/x4</a>" + +"\n[f5]=<a href='/f5/x5'>/f5/x5</a>" +"\n[f6]=<a href='http://www.apache.org/f6/x6'>http://www.apache.org/f6/x6</a>" +"\n[f7]=<a href='http://www.apache.org/f7/x7'>http://www.apache.org/f7/x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8/x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9/x9</a>" + +"\n[f8]=<a href='f8/x8'>f8/x8</a>" + +"\n[f9]=<a href='f9/x9'>f9/x9</a>" +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>MY_LABEL</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; + +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>MY_LABEL</a>" + +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>MY_LABEL</a>" + +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" + +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; assertEquals(expected, r); s.labelParameter("label2"); r = strip(s.build().serialize(t)); expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0/x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1/x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>/f2/x2</a>" + +"\n[f0]=<a href='f0/x0'>f0/x0</a>" + +"\n[f1]=<a href='f1/x1'>f1/x1</a>" + +"\n[f2]=<a href='/f2/x2'>/f2/x2</a>" +"\n[f3]=<a href='http://www.apache.org/f3/x3'>http://www.apache.org/f3/x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4/x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>/f5/x5</a>" + +"\n[f4]=<a href='f4/x4'>f4/x4</a>" + +"\n[f5]=<a href='/f5/x5'>/f5/x5</a>" +"\n[f6]=<a href='http://www.apache.org/f6/x6'>http://www.apache.org/f6/x6</a>" +"\n[f7]=<a href='http://www.apache.org/f7/x7'>http://www.apache.org/f7/x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8/x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9/x9</a>" + +"\n[f8]=<a href='f8/x8'>f8/x8</a>" + +"\n[f9]=<a href='f9/x9'>f9/x9</a>" +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>MY_LABEL</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>MY_LABEL</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>MY_LABEL</a>"; + +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</a>" + +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</a>" + +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>MY_LABEL</a>" + +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>MY_LABEL</a>"; assertEquals(expected, r); s.detectLinksInStrings(false); r = strip(s.build().serialize(t)); expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0/x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1/x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>/f2/x2</a>" + +"\n[f0]=<a href='f0/x0'>f0/x0</a>" + +"\n[f1]=<a href='f1/x1'>f1/x1</a>" + +"\n[f2]=<a href='/f2/x2'>/f2/x2</a>" +"\n[f3]=<a href='http://www.apache.org/f3/x3'>http://www.apache.org/f3/x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4/x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>/f5/x5</a>" + +"\n[f4]=<a href='f4/x4'>f4/x4</a>" + +"\n[f5]=<a href='/f5/x5'>/f5/x5</a>" +"\n[f6]=<a href='http://www.apache.org/f6/x6'>http://www.apache.org/f6/x6</a>" +"\n[f7]=<a href='http://www.apache.org/f7/x7'>http://www.apache.org/f7/x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8/x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9/x9</a>" + +"\n[f8]=<a href='f8/x8'>f8/x8</a>" + +"\n[f9]=<a href='f9/x9'>f9/x9</a>" +"\n[fa]=http://www.apache.org/fa/xa#MY_LABEL" +"\n[fb]=http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar" +"\n[fc]=http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL" @@ -200,21 +178,21 @@ public class HtmlTest { s.lookForLabelParameters(false); r = strip(s.build().serialize(t)); expected = "" - +"\n[f0]=<a href='/cr/f0/x0'>f0/x0</a>" - +"\n[f1]=<a href='/cr/f1/x1'>f1/x1</a>" - +"\n[f2]=<a href='http://myhost/f2/x2'>/f2/x2</a>" + +"\n[f0]=<a href='f0/x0'>f0/x0</a>" + +"\n[f1]=<a href='f1/x1'>f1/x1</a>" + +"\n[f2]=<a href='/f2/x2'>/f2/x2</a>" +"\n[f3]=<a href='http://www.apache.org/f3/x3'>http://www.apache.org/f3/x3</a>" - +"\n[f4]=<a href='/cr/f4/x4'>f4/x4</a>" - +"\n[f5]=<a href='http://myhost/f5/x5'>/f5/x5</a>" + +"\n[f4]=<a href='f4/x4'>f4/x4</a>" + +"\n[f5]=<a href='/f5/x5'>/f5/x5</a>" +"\n[f6]=<a href='http://www.apache.org/f6/x6'>http://www.apache.org/f6/x6</a>" +"\n[f7]=<a href='http://www.apache.org/f7/x7'>http://www.apache.org/f7/x7</a>" - +"\n[f8]=<a href='/cr/f8/x8'>f8/x8</a>" - +"\n[f9]=<a href='/cr/f9/x9'>f9/x9</a>" + +"\n[f8]=<a href='f8/x8'>f8/x8</a>" + +"\n[f9]=<a href='f9/x9'>f9/x9</a>" +"\n[fa]=<a href='http://www.apache.org/fa/xa#MY_LABEL'>MY_LABEL</a>" - +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</a>" - +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</a>" - +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" - +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; + +"\n[fb]=<a href='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</a>" + +"\n[fc]=<a href='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</a>" + +"\n[fd]=<a href='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</a>" + +"\n[fe]=<a href='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</a>"; assertEquals(expected, r); } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java index 7bde736..adbf317 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/jena/CommonTest.java @@ -22,9 +22,7 @@ import java.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; -import org.apache.juneau.internal.*; import org.apache.juneau.jena.annotation.*; -import org.apache.juneau.testbeans.*; import org.apache.juneau.utils.*; import org.junit.*; @@ -276,148 +274,6 @@ public class CommonTest { public URL f2; } - //==================================================================================================== - // Test URIs with URI_CONTEXT and URI_AUTHORITY - //==================================================================================================== - @Test - public void testUris() throws Exception { - RdfSerializerBuilder s = getBasicSerializer(); - TestURI t = new TestURI(); - String r; - String expected = ""; - - s.relativeUriBase(null); - r = stripAndSort(s.build().serialize(t)); - expected = "" - +"</rdf:Description>>" - +"\n<<rdf:Description rdf:about='f0/x0'>" - +"\n<jp:f1 rdf:resource='f1/x1'/>" - +"\n<jp:f2 rdf:resource='/f2/x2'/>" - +"\n<jp:f3 rdf:resource='http://www.apache.org/f3/x3'/>" - +"\n<jp:f4 rdf:resource='f4/x4'/>" - +"\n<jp:f5 rdf:resource='/f5/x5'/>" - +"\n<jp:f6 rdf:resource='http://www.apache.org/f6/x6'/>" - +"\n<jp:f7 rdf:resource='http://www.apache.org/f7/x7'/>" - +"\n<jp:f8 rdf:resource='f8/x8'/>" - +"\n<jp:f9 rdf:resource='f9/x9'/>" - +"\n<jp:fa>http://www.apache.org/fa/xa#MY_LABEL</jp:fa>" - +"\n<jp:fb>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</jp:fb>" - +"\n<jp:fc>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</jp:fc>" - +"\n<jp:fd>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</jp:fd>" - +"\n<jp:fe>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</jp:fe>" - ; - assertEquals(expected, r); - - s.relativeUriBase(""); // Same as null. - r = stripAndSort(s.build().serialize(t)); - assertEquals(expected, r); - - s.relativeUriBase("/cr"); - r = stripAndSort(s.build().serialize(t)); - expected = "" - +"</rdf:Description>>" - +"\n<<rdf:Description rdf:about='/cr/f0/x0'>" - +"\n<jp:f1 rdf:resource='/cr/f1/x1'/>" - +"\n<jp:f2 rdf:resource='/f2/x2'/>" - +"\n<jp:f3 rdf:resource='http://www.apache.org/f3/x3'/>" - +"\n<jp:f4 rdf:resource='/cr/f4/x4'/>" - +"\n<jp:f5 rdf:resource='/f5/x5'/>" - +"\n<jp:f6 rdf:resource='http://www.apache.org/f6/x6'/>" - +"\n<jp:f7 rdf:resource='http://www.apache.org/f7/x7'/>" - +"\n<jp:f8 rdf:resource='/cr/f8/x8'/>" - +"\n<jp:f9 rdf:resource='/cr/f9/x9'/>" - +"\n<jp:fa>http://www.apache.org/fa/xa#MY_LABEL</jp:fa>" - +"\n<jp:fb>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</jp:fb>" - +"\n<jp:fc>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</jp:fc>" - +"\n<jp:fd>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</jp:fd>" - +"\n<jp:fe>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</jp:fe>" - ; - assertEquals(expected, r); - - s.relativeUriBase("/cr/"); // Same as above - r = stripAndSort(s.build().serialize(t)); - assertEquals(expected, r); - - s.relativeUriBase("/"); - r = stripAndSort(s.build().serialize(t)); - expected = "" - +"</rdf:Description>>" - +"\n<<rdf:Description rdf:about='/f0/x0'>" - +"\n<jp:f1 rdf:resource='/f1/x1'/>" - +"\n<jp:f2 rdf:resource='/f2/x2'/>" - +"\n<jp:f3 rdf:resource='http://www.apache.org/f3/x3'/>" - +"\n<jp:f4 rdf:resource='/f4/x4'/>" - +"\n<jp:f5 rdf:resource='/f5/x5'/>" - +"\n<jp:f6 rdf:resource='http://www.apache.org/f6/x6'/>" - +"\n<jp:f7 rdf:resource='http://www.apache.org/f7/x7'/>" - +"\n<jp:f8 rdf:resource='/f8/x8'/>" - +"\n<jp:f9 rdf:resource='/f9/x9'/>" - +"\n<jp:fa>http://www.apache.org/fa/xa#MY_LABEL</jp:fa>" - +"\n<jp:fb>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</jp:fb>" - +"\n<jp:fc>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</jp:fc>" - +"\n<jp:fd>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</jp:fd>" - +"\n<jp:fe>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</jp:fe>" - ; - assertEquals(expected, r); - - s.relativeUriBase(null); - - s.absolutePathUriBase("http://foo"); - r = stripAndSort(s.build().serialize(t)); - expected = "" - +"</rdf:Description>>" - +"\n<<rdf:Description rdf:about='f0/x0'>" - +"\n<jp:f1 rdf:resource='f1/x1'/>" - +"\n<jp:f2 rdf:resource='http://foo/f2/x2'/>" - +"\n<jp:f3 rdf:resource='http://www.apache.org/f3/x3'/>" - +"\n<jp:f4 rdf:resource='f4/x4'/>" - +"\n<jp:f5 rdf:resource='http://foo/f5/x5'/>" - +"\n<jp:f6 rdf:resource='http://www.apache.org/f6/x6'/>" - +"\n<jp:f7 rdf:resource='http://www.apache.org/f7/x7'/>" - +"\n<jp:f8 rdf:resource='f8/x8'/>" - +"\n<jp:f9 rdf:resource='f9/x9'/>" - +"\n<jp:fa>http://www.apache.org/fa/xa#MY_LABEL</jp:fa>" - +"\n<jp:fb>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</jp:fb>" - +"\n<jp:fc>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</jp:fc>" - +"\n<jp:fd>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</jp:fd>" - +"\n<jp:fe>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</jp:fe>" - ; - assertEquals(expected, r); - - s.absolutePathUriBase("http://foo/"); - r = stripAndSort(s.build().serialize(t)); - assertEquals(expected, r); - - s.absolutePathUriBase(""); // Same as null. - r = stripAndSort(s.build().serialize(t)); - expected = "" - +"</rdf:Description>>" - +"\n<<rdf:Description rdf:about='f0/x0'>" - +"\n<jp:f1 rdf:resource='f1/x1'/>" - +"\n<jp:f2 rdf:resource='/f2/x2'/>" - +"\n<jp:f3 rdf:resource='http://www.apache.org/f3/x3'/>" - +"\n<jp:f4 rdf:resource='f4/x4'/>" - +"\n<jp:f5 rdf:resource='/f5/x5'/>" - +"\n<jp:f6 rdf:resource='http://www.apache.org/f6/x6'/>" - +"\n<jp:f7 rdf:resource='http://www.apache.org/f7/x7'/>" - +"\n<jp:f8 rdf:resource='f8/x8'/>" - +"\n<jp:f9 rdf:resource='f9/x9'/>" - +"\n<jp:fa>http://www.apache.org/fa/xa#MY_LABEL</jp:fa>" - +"\n<jp:fb>http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar</jp:fb>" - +"\n<jp:fc>http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL</jp:fc>" - +"\n<jp:fd>http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar</jp:fd>" - +"\n<jp:fe>http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL</jp:fe>" - ; - assertEquals(expected, r); - } - - private String stripAndSort(String s) { - s = strip(s); - Set<String> set = new TreeSet<String>(); - for (String s2 : s.split("><")) - set.add('<' + s2 + '>'); - return StringUtils.join(set, "\n"); - } //==================================================================================================== // Recursion http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java index ac09b1f..cd2cb22 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/json/CommonTest.java @@ -21,7 +21,6 @@ import java.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; -import org.apache.juneau.testbeans.*; import org.apache.juneau.utils.*; import org.junit.*; @@ -236,135 +235,6 @@ public class CommonTest { public URL f2; } - //==================================================================================================== - // Test URIs with URI_CONTEXT and URI_AUTHORITY - //==================================================================================================== - @Test - public void testUris() throws Exception { - JsonSerializerBuilder s = new JsonSerializerBuilder().simple(); - TestURI t = new TestURI(); - String r; - String expected = ""; - - s.relativeUriBase(null); - r = s.build().serialize(t); - expected = "{" - +"f0:'f0/x0'," - +"f1:'f1/x1'," - +"f2:'/f2/x2'," - +"f3:'http://www.apache.org/f3/x3'," - +"f4:'f4/x4'," - +"f5:'/f5/x5'," - +"f6:'http://www.apache.org/f6/x6'," - +"f7:'http://www.apache.org/f7/x7'," - +"f8:'f8/x8'," - +"f9:'f9/x9'," - +"fa:'http://www.apache.org/fa/xa#MY_LABEL'," - +"fb:'http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," - +"fc:'http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," - +"fd:'http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," - +"fe:'http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" - +"}"; - assertEquals(expected, r); - - s.relativeUriBase(""); // Same as null. - r = s.build().serialize(t); - assertEquals(expected, r); - - s.relativeUriBase("/cr"); - r = s.build().serialize(t); - expected = "{" - +"f0:'/cr/f0/x0'," - +"f1:'/cr/f1/x1'," - +"f2:'/f2/x2'," - +"f3:'http://www.apache.org/f3/x3'," - +"f4:'/cr/f4/x4'," - +"f5:'/f5/x5'," - +"f6:'http://www.apache.org/f6/x6'," - +"f7:'http://www.apache.org/f7/x7'," - +"f8:'/cr/f8/x8'," - +"f9:'/cr/f9/x9'," - +"fa:'http://www.apache.org/fa/xa#MY_LABEL'," - +"fb:'http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," - +"fc:'http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," - +"fd:'http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," - +"fe:'http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" - +"}"; - assertEquals(expected, r); - - s.relativeUriBase("/cr/"); // Same as above - r = s.build().serialize(t); - assertEquals(expected, r); - - s.relativeUriBase("/"); - r = s.build().serialize(t); - expected = "{" - +"f0:'/f0/x0'," - +"f1:'/f1/x1'," - +"f2:'/f2/x2'," - +"f3:'http://www.apache.org/f3/x3'," - +"f4:'/f4/x4'," - +"f5:'/f5/x5'," - +"f6:'http://www.apache.org/f6/x6'," - +"f7:'http://www.apache.org/f7/x7'," - +"f8:'/f8/x8'," - +"f9:'/f9/x9'," - +"fa:'http://www.apache.org/fa/xa#MY_LABEL'," - +"fb:'http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," - +"fc:'http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," - +"fd:'http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," - +"fe:'http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" - +"}"; - assertEquals(expected, r); - - s.relativeUriBase(null); - - s.absolutePathUriBase("http://foo"); - r = s.build().serialize(t); - expected = "{" - +"f0:'f0/x0'," - +"f1:'f1/x1'," - +"f2:'http://foo/f2/x2'," - +"f3:'http://www.apache.org/f3/x3'," - +"f4:'f4/x4'," - +"f5:'http://foo/f5/x5'," - +"f6:'http://www.apache.org/f6/x6'," - +"f7:'http://www.apache.org/f7/x7'," - +"f8:'f8/x8'," - +"f9:'f9/x9'," - +"fa:'http://www.apache.org/fa/xa#MY_LABEL'," - +"fb:'http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," - +"fc:'http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," - +"fd:'http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," - +"fe:'http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" - +"}"; - assertEquals(expected, r); - - s.absolutePathUriBase("http://foo/"); - r = s.build().serialize(t); - assertEquals(expected, r); - - s.absolutePathUriBase(""); // Same as null. - r = s.build().serialize(t); - expected = "{" - +"f0:'f0/x0'," - +"f1:'f1/x1'," - +"f2:'/f2/x2'," - +"f3:'http://www.apache.org/f3/x3'," - +"f4:'f4/x4'," - +"f5:'/f5/x5'," - +"f6:'http://www.apache.org/f6/x6'," - +"f7:'http://www.apache.org/f7/x7'," - +"f8:'f8/x8'," - +"f9:'f9/x9'," - +"fa:'http://www.apache.org/fa/xa#MY_LABEL'," - +"fb:'http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," - +"fc:'http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," - +"fd:'http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," - +"fe:'http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" - +"}"; - assertEquals(expected, r); - } //==================================================================================================== // Recursion http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/c4952d2c/juneau-core-test/src/test/java/org/apache/juneau/serializer/TestURI.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/serializer/TestURI.java b/juneau-core-test/src/test/java/org/apache/juneau/serializer/TestURI.java new file mode 100755 index 0000000..eb48e99 --- /dev/null +++ b/juneau-core-test/src/test/java/org/apache/juneau/serializer/TestURI.java @@ -0,0 +1,92 @@ +// *************************************************************************************************************************** +// * 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.serializer; + +import java.net.URI; + +import org.apache.juneau.annotation.*; +import org.apache.juneau.jena.annotation.*; +import org.apache.juneau.xml.*; +import org.apache.juneau.xml.annotation.*; + +@SuppressWarnings("javadoc") +@Bean(sort=true) +public class TestURI { + + // String annotated as a URI + @org.apache.juneau.annotation.URI + @Rdf(beanUri=true) + @Xml(format=XmlFormat.ATTR) + public String f0 = "f0/x0"; + + // URI properties + public URI + f1a = URI.create("http://www.apache.org/f1a"), + f1b = URI.create("/f1b"), + f1c = URI.create("/f1c/x/y"), + f1d = URI.create("f1d"), + f1e = URI.create("f1e/x/y"), + f1f = URI.create(""), + f1g = URI.create("servlet:/f1g/x"), + f1h = URI.create("servlet:/f1h"), + f1i = URI.create("servlet:/"), + f1j = URI.create("servlet:/.."), + f1k = URI.create("context:/f1j/x"), + f1l = URI.create("context:/f1k"), + f1m = URI.create("context:/"), + f1n = URI.create("context:/.."), + fio = null; + + // Strings annotated with @URI properties + @org.apache.juneau.annotation.URI + public String + f2a = "http://www.apache.org/f2a", + f2b = "/f2b", + f2c = "/f2c/x/y", + f2d = "f2d", + f2e = "f2e/x/y", + f2f = "", + f2g = "servlet:/f2g/x", + f2h = "servlet:/f2h", + f2i = "servlet:/", + f2j = "servlet:/..", + f2k = "context:/f2j/x", + f2l = "context:/f2k", + f2m = "context:/", + f2n = "context:/..", + f2o = null; + + // Strings with labels + @org.apache.juneau.annotation.URI + public String + f3a = "http://www.apache.org/f3a/x?label=MY_LABEL&foo=bar", + f3b = XmlUtils.urlEncode("<>&'\""), + f3c = "<>&'\""; // Invalid URI, but should produce parsable output. + + // @URI on bean + public TestURIb f4 = new TestURIb(); + + // @URI on bean property method. + @org.apache.juneau.annotation.URI + public String getF5() { + return "f5/x"; + } + + @org.apache.juneau.annotation.URI + public static class TestURIb { + @Override /* Object */ + public String toString() { + return "test/uri/b"; + } + } +} \ No newline at end of file
