You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/05/29 22:22:02 UTC
[5/5] incubator-juneau git commit: Improved support for resolution of
URIs.
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 <ja...@apache.org>
Authored: Mon May 29 18:21:47 2017 -0400
Committer: JamesBognar <ja...@apache.org>
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