This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 7d34e65 Testing and minor fixes.
7d34e65 is described below
commit 7d34e6511efee3d43d9305c7986652c6c584d558
Author: JamesBognar <[email protected]>
AuthorDate: Thu Apr 9 09:52:34 2020 -0400
Testing and minor fixes.
---
.../juneau/BeanTraversePropertiesComboTest.java | 54 +++++--
.../juneau/SerializerPropertiesComboTest.java | 87 ++++++++++
.../java/org/apache/juneau/html/CommonTest.java | 2 +-
.../java/org/apache/juneau/jena/CommonTest.java | 2 +-
.../java/org/apache/juneau/json/CommonTest.java | 2 +-
.../java/org/apache/juneau/uon/Common_UonTest.java | 2 +-
.../juneau/urlencoding/Common_UrlEncodingTest.java | 2 +-
.../java/org/apache/juneau/xml/CommonTest.java | 2 +-
.../main/java/org/apache/juneau/BeanSession.java | 17 ++
.../org/apache/juneau/BeanTraverseSession.java | 17 +-
.../src/main/java/org/apache/juneau/Session.java | 19 +--
.../apache/juneau/html/HtmlSerializerSession.java | 6 +-
.../org/apache/juneau/internal/JuneauLogger.java | 23 ++-
.../juneau/serializer/SerializerSession.java | 2 +-
juneau-doc/docs/ReleaseNotes/8.1.4.html | 7 +
.../juneau/rest/client2/RestClientBuilderTest.java | 178 ++++++++++++++++-----
.../java/org/apache/juneau/rest/BasicRest.java | 43 +++--
.../java/org/apache/juneau/rest/RestRequest.java | 1 -
.../java/org/apache/juneau/rest/RestServlet.java | 67 ++++----
.../apache/juneau/rest/annotation/HookEvent.java | 2 -
20 files changed, 406 insertions(+), 129 deletions(-)
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
index 082952e..7e27ff8 100644
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/BeanTraversePropertiesComboTest.java
@@ -29,20 +29,23 @@ public class BeanTraversePropertiesComboTest extends
ComboRoundTripTest {
public static class A {
public int f;
- public static A create() {
- A b = new A();
- b.f = 1;
- return b;
+ public A init() {
+ f = 1;
+ return this;
}
}
public static class B {
public Object f;
- public static B create() {
- B b = new B();
- b.f = b;
- return b;
+ public B initRecursion() {
+ f = this;
+ return this;
+ }
+
+ public B initA() {
+ f = new A().init();
+ return this;
}
}
@@ -53,7 +56,7 @@ public class BeanTraversePropertiesComboTest extends
ComboRoundTripTest {
new ComboInput<>(
"BEANTRAVERSE_initialDepth",
A.class,
- A.create(),
+ new A().init(),
/* Json */ "{f:1}",
/* JsonT */ "{f:1}",
/* JsonR */
"\t\t{\n\t\t\tf: 1\n\t\t}",
@@ -82,7 +85,7 @@ public class BeanTraversePropertiesComboTest extends
ComboRoundTripTest {
new ComboInput<>(
"BEANTRAVERSE_detectRecursions",
B.class,
- B.create(),
+ new B().initRecursion(),
/* Json */ "x",
/* JsonT */ "x",
/* JsonR */ "x",
@@ -112,7 +115,7 @@ public class BeanTraversePropertiesComboTest extends
ComboRoundTripTest {
new ComboInput<>(
"BEANTRAVERSE_ignoreRecursions",
B.class,
- B.create(),
+ new B().initRecursion(),
/* Json */ "{}",
/* JsonT */ "{}",
/* JsonR */ "{\n}",
@@ -137,6 +140,35 @@ public class BeanTraversePropertiesComboTest extends
ComboRoundTripTest {
)
.properties(OMap.of(BEANTRAVERSE_ignoreRecursions, true))
},
+ { /* 3 */
+ new ComboInput<>(
+ "BEANTRAVERSE_maxDepth",
+ B.class,
+ new B().initA(),
+ /* Json */ "{}",
+ /* JsonT */ "{}",
+ /* JsonR */ "{\n}",
+ /* Xml */ "<object/>",
+ /* XmlT */ "<object/>",
+ /* XmlR */ "<object/>\n",
+ /* XmlNs */ "<object/>",
+ /* Html */
"<table></table>",
+ /* HtmlT */
"<table></table>",
+ /* HtmlR */
"<table>\n</table>\n",
+ /* Uon */ "()",
+ /* UonT */ "()",
+ /* UonR */ "(\n)",
+ /* UrlEnc */ "",
+ /* UrlEncT */ "",
+ /* UrlEncR */ "",
+ /* MsgPack */ "80",
+ /* MsgPackT */ "80",
+ /* RdfXml */
"<rdf:RDF>\n</rdf:RDF>\n",
+ /* RdfXmlT */
"<rdf:RDF>\n</rdf:RDF>\n",
+ /* RdfXmlR */
"<rdf:RDF>\n</rdf:RDF>\n"
+ )
+ .properties(OMap.of(BEANTRAVERSE_maxDepth, 1))
+ },
});
}
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java
index 99bc25a..d489607 100644
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/SerializerPropertiesComboTest.java
@@ -99,6 +99,93 @@ public class SerializerPropertiesComboTest extends
ComboRoundTripTest {
)
.properties(OMap.of(SERIALIZER_addRootType,
true, BEAN_beanDictionary, BeanWithType.class))
},
+ { /* 2 */
+ new ComboInput<>(
+ "SERIALIZER_sortCollections",
+ String[].class,
+ new String[]{"c","a","b"},
+ /* Json */ "['a','b','c']",
+ /* JsonT */ "['a','b','c']",
+ /* JsonR */
"[\n\t'a',\n\t'b',\n\t'c'\n]",
+ /* Xml */
"<array><string>a</string><string>b</string><string>c</string></array>",
+ /* XmlT */
"<array><string>a</string><string>b</string><string>c</string></array>",
+ /* XmlR */
"<array>\n\t<string>a</string>\n\t<string>b</string>\n\t<string>c</string>\n</array>\n",
+ /* XmlNs */
"<array><string>a</string><string>b</string><string>c</string></array>",
+ /* Html */
"<ul><li>a</li><li>b</li><li>c</li></ul>",
+ /* HtmlT */
"<ul><li>a</li><li>b</li><li>c</li></ul>",
+ /* HtmlR */
"<ul>\n\t<li>a</li>\n\t<li>b</li>\n\t<li>c</li>\n</ul>\n",
+ /* Uon */ "@(a,b,c)",
+ /* UonT */ "@(a,b,c)",
+ /* UonR */
"@(\n\ta,\n\tb,\n\tc\n)",
+ /* UrlEnc */ "0=c&1=a&2=b",
+ /* UrlEncT */ "0=c&1=a&2=b",
+ /* UrlEncR */ "0=c\n&1=a\n&2=b",
+ /* MsgPack */ "93A161A162A163",
+ /* MsgPackT */ "93A161A162A163",
+ /* RdfXml */
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>a</rdf:li>\n<rdf:li>b</rdf:li>\n<rdf:li>c</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>a</rdf:li>\n<rdf:li>b</rdf:li>\n<rdf:li>c</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n
<rdf:Seq>\n <rdf:li>a</rdf:li>\n <rdf:li>b</rdf:li>\n
<rdf:li>c</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n"
+ )
+ .properties(OMap.of(SERIALIZER_sortCollections,
true))
+ },
+ { /* 3 */
+ new ComboInput<>(
+ "SERIALIZER_sortCollections",
+ List.class,
+
Collections.unmodifiableList(AList.of("c","a","b")),
+ /* Json */ "['a','b','c']",
+ /* JsonT */ "['a','b','c']",
+ /* JsonR */
"[\n\t'a',\n\t'b',\n\t'c'\n]",
+ /* Xml */
"<array><string>a</string><string>b</string><string>c</string></array>",
+ /* XmlT */
"<array><string>a</string><string>b</string><string>c</string></array>",
+ /* XmlR */
"<array>\n\t<string>a</string>\n\t<string>b</string>\n\t<string>c</string>\n</array>\n",
+ /* XmlNs */
"<array><string>a</string><string>b</string><string>c</string></array>",
+ /* Html */
"<ul><li>a</li><li>b</li><li>c</li></ul>",
+ /* HtmlT */
"<ul><li>a</li><li>b</li><li>c</li></ul>",
+ /* HtmlR */
"<ul>\n\t<li>a</li>\n\t<li>b</li>\n\t<li>c</li>\n</ul>\n",
+ /* Uon */ "@(a,b,c)",
+ /* UonT */ "@(a,b,c)",
+ /* UonR */
"@(\n\ta,\n\tb,\n\tc\n)",
+ /* UrlEnc */ "0=c&1=a&2=b",
+ /* UrlEncT */ "0=c&1=a&2=b",
+ /* UrlEncR */ "0=c\n&1=a\n&2=b",
+ /* MsgPack */ "93A161A162A163",
+ /* MsgPackT */ "93A161A162A163",
+ /* RdfXml */
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>a</rdf:li>\n<rdf:li>b</rdf:li>\n<rdf:li>c</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlT */
"<rdf:RDF>\n<rdf:Seq>\n<rdf:li>a</rdf:li>\n<rdf:li>b</rdf:li>\n<rdf:li>c</rdf:li>\n</rdf:Seq>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n
<rdf:Seq>\n <rdf:li>a</rdf:li>\n <rdf:li>b</rdf:li>\n
<rdf:li>c</rdf:li>\n </rdf:Seq>\n</rdf:RDF>\n"
+ )
+ .properties(OMap.of(SERIALIZER_sortCollections,
true))
+ },
+ { /* 4 */
+ new ComboInput<>(
+ "SERIALIZER_sortMaps",
+ Map.class,
+
Collections.unmodifiableMap(AMap.<String,String>of("c","3","a","1","b","2")),
+ /* Json */
"{a:'1',b:'2',c:'3'}",
+ /* JsonT */
"{a:'1',b:'2',c:'3'}",
+ /* JsonR */ "{\n\ta:
'1',\n\tb: '2',\n\tc: '3'\n}",
+ /* Xml */
"<object><a>1</a><b>2</b><c>3</c></object>",
+ /* XmlT */
"<object><a>1</a><b>2</b><c>3</c></object>",
+ /* XmlR */
"<object>\n\t<a>1</a>\n\t<b>2</b>\n\t<c>3</c>\n</object>\n",
+ /* XmlNs */
"<object><a>1</a><b>2</b><c>3</c></object>",
+ /* Html */
"<table><tr><td>a</td><td>1</td></tr><tr><td>b</td><td>2</td></tr><tr><td>c</td><td>3</td></tr></table>",
+ /* HtmlT */
"<table><tr><td>a</td><td>1</td></tr><tr><td>b</td><td>2</td></tr><tr><td>c</td><td>3</td></tr></table>",
+ /* HtmlR */
"<table>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td>1</td>\n\t</tr>\n\t<tr>\n\t\t<td>b</td>\n\t\t<td>2</td>\n\t</tr>\n\t<tr>\n\t\t<td>c</td>\n\t\t<td>3</td>\n\t</tr>\n</table>\n",
+ /* Uon */
"(a='1',b='2',c='3')",
+ /* UonT */
"(a='1',b='2',c='3')",
+ /* UonR */
"(\n\ta='1',\n\tb='2',\n\tc='3'\n)",
+ /* UrlEnc */ "a='1'&b='2'&c='3'",
+ /* UrlEncT */ "a='1'&b='2'&c='3'",
+ /* UrlEncR */ "a='1'\n&b='2'\n&c='3'",
+ /* MsgPack */
"83A161A131A162A132A163A133",
+ /* MsgPackT */
"83A161A131A162A132A163A133",
+ /* RdfXml */
"<rdf:RDF>\n<rdf:Description>\n<jp:a>1</jp:a>\n<jp:b>2</jp:b>\n<jp:c>3</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlT */
"<rdf:RDF>\n<rdf:Description>\n<jp:a>1</jp:a>\n<jp:b>2</jp:b>\n<jp:c>3</jp:c>\n</rdf:Description>\n</rdf:RDF>\n",
+ /* RdfXmlR */ "<rdf:RDF>\n
<rdf:Description>\n <jp:a>1</jp:a>\n <jp:b>2</jp:b>\n <jp:c>3</jp:c>\n
</rdf:Description>\n</rdf:RDF>\n"
+ )
+ .properties(OMap.of(SERIALIZER_sortMaps, true))
+ },
});
}
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
index 345ead1..cf3df4c 100755
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/html/CommonTest.java
@@ -380,7 +380,7 @@ public class CommonTest {
//====================================================================================================
@Test
public void testRecursion() throws Exception {
- HtmlSerializerBuilder s =
HtmlSerializer.create().sq().addKeyValueTableHeaders();
+ HtmlSerializerBuilder s =
HtmlSerializer.create().sq().addKeyValueTableHeaders().maxDepth(Integer.MAX_VALUE);
R1 r1 = new R1();
R2 r2 = new R2();
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
index 16a2477..799f700 100755
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/jena/CommonTest.java
@@ -298,7 +298,7 @@ public class CommonTest {
//====================================================================================================
@Test
public void testRecursion() throws Exception {
- RdfSerializerBuilder s =
RdfSerializer.create().xmlabbrev().sq();
+ RdfSerializerBuilder s =
RdfSerializer.create().xmlabbrev().sq().maxDepth(Integer.MAX_VALUE);
R1 r1 = new R1();
R2 r2 = new R2();
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
index 1843a81..f931230 100755
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/json/CommonTest.java
@@ -258,7 +258,7 @@ public class CommonTest {
//====================================================================================================
@Test
public void testRecursion() throws Exception {
- JsonSerializerBuilder s = JsonSerializer.create().ssq();
+ JsonSerializerBuilder s =
JsonSerializer.create().ssq().maxDepth(Integer.MAX_VALUE);
R1 r1 = new R1();
R2 r2 = new R2();
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
index cb76fe0..227bff5 100755
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
@@ -250,7 +250,7 @@ public class Common_UonTest {
//====================================================================================================
@Test
public void testRecursion() throws Exception {
- UonSerializerBuilder s = UonSerializer.create();
+ UonSerializerBuilder s =
UonSerializer.create().maxDepth(Integer.MAX_VALUE);
R1 r1 = new R1();
R2 r2 = new R2();
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
index 3b48477..f67f025 100755
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
@@ -252,7 +252,7 @@ public class Common_UrlEncodingTest {
//====================================================================================================
@Test
public void testRecursion() throws Exception {
- UrlEncodingSerializerBuilder s = UrlEncodingSerializer.create();
+ UrlEncodingSerializerBuilder s =
UrlEncodingSerializer.create().maxDepth(Integer.MAX_VALUE);
R1 r1 = new R1();
R2 r2 = new R2();
diff --git
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
index 52e088c..007b804 100755
---
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
+++
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
@@ -269,7 +269,7 @@ public class CommonTest {
//====================================================================================================
@Test
public void testRecursion() throws Exception {
- XmlSerializerBuilder s =
XmlSerializer.create().enableNamespaces(false);
+ XmlSerializerBuilder s =
XmlSerializer.create().enableNamespaces(false).maxDepth(Integer.MAX_VALUE);
R1 r1 = new R1();
R2 r2 = new R2();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 4911c6d..fa5e17f 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -18,10 +18,12 @@ import static org.apache.juneau.BeanContext.*;
import java.io.*;
import java.lang.reflect.*;
+import java.text.*;
import java.time.*;
import java.util.*;
import java.util.Date;
import java.util.concurrent.atomic.*;
+import java.util.logging.*;
import org.apache.juneau.collections.*;
import org.apache.juneau.http.*;
@@ -41,6 +43,8 @@ import org.apache.juneau.transform.*;
@SuppressWarnings({"unchecked","rawtypes"})
public class BeanSession extends Session {
+ private static Logger LOG =
Logger.getLogger(BeanSession.class.getName());
+
private final BeanContext ctx;
private final Locale locale;
private final TimeZone timeZone;
@@ -1158,6 +1162,19 @@ public class BeanSession extends Session {
return ctx._class();
}
+ /**
+ * Logs a warning message.
+ *
+ * @param msg The warning message.
+ * @param args Optional {@link MessageFormat}-style arguments.
+ */
+ @Override
+ public void addWarning(String msg, Object... args) {
+ if (debug)
+ LOG.log(Level.WARNING, msg, args);
+ super.addWarning(msg, args);
+ }
+
//-----------------------------------------------------------------------------------------------------------------
// Properties
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
index e038ed9..2f03183 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
@@ -51,6 +51,8 @@ public class BeanTraverseSession extends BeanSession {
/** The current indentation depth into the model. */
public int indent;
+ private int depth;
+
/**
* Create a new session using properties specified in the context.
@@ -108,6 +110,7 @@ public class BeanTraverseSession extends BeanSession {
*/
protected final ClassMeta<?> push(String attrName, Object o,
ClassMeta<?> eType) throws BeanRecursionException {
indent++;
+ depth++;
isBottom = true;
if (o == null)
return null;
@@ -115,9 +118,9 @@ public class BeanTraverseSession extends BeanSession {
ClassMeta<?> cm = (eType != null && c == eType.getInnerClass())
? eType : ((o instanceof ClassMeta) ? (ClassMeta<?>)o : getClassMeta(c));
if (cm.isCharSequence() || cm.isNumber() || cm.isBoolean())
return cm;
+ if (depth > getMaxDepth())
+ return null;
if (isDetectRecursions() || isDebug()) {
- if (stack.size() > getMaxDepth())
- return null;
if (willRecurse(attrName, o, cm))
return null;
isBottom = false;
@@ -150,10 +153,20 @@ public class BeanTraverseSession extends BeanSession {
}
/**
+ * Returns <jk>true</jk> if we're about to exceed the max depth for the
document.
+ *
+ * @return <jk>true</jk> if we're about to exceed the max depth for the
document.
+ */
+ protected final boolean willExceedDepth() {
+ return (depth >= getMaxDepth());
+ }
+
+ /**
* Pop an object off the stack.
*/
protected final void pop() {
indent--;
+ depth--;
if ((isDetectRecursions() || isDebug()) && ! isBottom) {
Object o = stack.removeLast().o;
Object o2 = set.remove(o);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
index e514264..80973e2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Session.java
@@ -33,8 +33,6 @@ import org.apache.juneau.reflect.*;
*/
public abstract class Session {
- private JuneauLogger logger;
-
private final OMap properties;
private Map<String,Object> cache;
private List<String> warnings; // Any warnings
encountered.
@@ -258,10 +256,9 @@ public abstract class Session {
* @param msg The warning message.
* @param args Optional {@link MessageFormat}-style arguments.
*/
- public final void addWarning(String msg, Object... args) {
+ public void addWarning(String msg, Object... args) {
if (warnings == null)
warnings = new LinkedList<>();
- getLogger().warning(msg, args);
warnings.add((warnings.size() + 1) + ": " + format(msg, args));
}
@@ -284,20 +281,6 @@ public abstract class Session {
}
/**
- * Returns the logger associated with this session.
- *
- * <p>
- * Subclasses can override this method to provide their own logger.
- *
- * @return The logger associated with this session.
- */
- protected final JuneauLogger getLogger() {
- if (logger == null)
- logger = JuneauLogger.getLogger(getClass());
- return logger;
- }
-
- /**
* Throws a {@link BeanRuntimeException} if any warnings occurred in
this session.
*/
public void checkForWarnings() {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index 3c892e5..84d8b27 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -389,7 +389,7 @@ public class HtmlSerializerSession extends
XmlSerializerSession {
return cr;
}
- @SuppressWarnings({ "rawtypes" })
+ @SuppressWarnings({ "rawtypes", "unchecked" })
private void serializeMap(XmlWriter out, Map m, ClassMeta<?> sType,
ClassMeta<?> eKeyType, ClassMeta<?> eValueType, String
typeName, BeanPropertyMeta ppMeta) throws IOException, SerializeException {
@@ -413,6 +413,10 @@ public class HtmlSerializerSession extends
XmlSerializerSession {
out.sTag(i+2, "th").append("value").eTag("th").nl(i+3);
out.ie(i+1).eTag("tr").nl(i+2);
}
+
+ if (isSortMaps())
+ m = sort(m);
+
for (Map.Entry e : (Set<Map.Entry>)m.entrySet()) {
Object key = generalize(e.getKey(), keyType);
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
index 783cf8d..c86a7c9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/JuneauLogger.java
@@ -25,7 +25,10 @@ import org.apache.juneau.serializer.*;
/**
* Wraps and extends the {@link java.util.logging.Logger} class to provide
some additional convenience methods.
+ *
+ * @deprecated Methods introduced in Java 8 Logging API renders this class
obsolete.
*/
+@Deprecated
public class JuneauLogger extends java.util.logging.Logger {
private static final WriterSerializer serializer =
JsonSerializer.create().ssq().build();
@@ -39,7 +42,7 @@ public class JuneauLogger extends java.util.logging.Logger {
* Get logger for specified class.
*
* @param forClass The class to create a logger for.
- * @return A new <l>Logger</l>.
+ * @return A new <l>BasicLogger</l>.
*/
public static JuneauLogger getLogger(Class<?> forClass) {
return getLogger(forClass.getName());
@@ -49,7 +52,7 @@ public class JuneauLogger extends java.util.logging.Logger {
* Get logger for specified class.
*
* @param loggerName The logger name.
- * @return A new <l>Logger</l>.
+ * @return A new <l>BasicLogger</l>.
*/
public static JuneauLogger getLogger(String loggerName) {
return new
JuneauLogger(java.util.logging.Logger.getLogger(loggerName));
@@ -67,7 +70,7 @@ public class JuneauLogger extends java.util.logging.Logger {
* <li>A path relative to the package of the class. E.g.
<js>"nls/Messages"</js>.
* </ol>
* Both <js>'.'</js> and <js>'/'</js> can be used as path
delimiters.
- * @return A new <l>Logger</l>.
+ * @return A new <l>BasicLogger</l>.
*/
public static JuneauLogger getLogger(Class<?> forClass, String
resourceBundleName) {
return new
JuneauLogger(java.util.logging.Logger.getLogger(forClass.getName(),
resolveResourceBundleName(forClass, resourceBundleName)));
@@ -85,18 +88,28 @@ public class JuneauLogger extends java.util.logging.Logger {
* <li>A path relative to the package of the class. E.g.
<js>"nls/Messages"</js>.
* </ol>
* Both <js>'.'</js> and <js>'/'</js> can be used as path
delimiters.
- * @return A new <l>Logger</l>.
+ * @return A new <l>BasicLogger</l>.
*/
public static synchronized JuneauLogger getLogger(String name, String
resourceBundleName) {
return new
JuneauLogger(java.util.logging.Logger.getLogger(name, resourceBundleName));
}
/**
+ * Wrap the specified logger
+ *
+ * @param logger The java logger to use for logging.
+ * @return A new <l>BasicLogger</l>.
+ */
+ public static synchronized JuneauLogger
getLogger(java.util.logging.Logger logger) {
+ return new JuneauLogger(logger);
+ }
+
+ /**
* Constructor.
*
* @param innerLogger The wrapped logger.
*/
- protected JuneauLogger(java.util.logging.Logger innerLogger) {
+ public JuneauLogger(java.util.logging.Logger innerLogger) {
super(innerLogger.getName(),
innerLogger.getResourceBundleName());
this.innerLogger = innerLogger;
this.rb = getResourceBundle();
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index 5ac2445..19fc8a2 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -355,7 +355,7 @@ public abstract class SerializerSession extends
BeanTraverseSession {
}
try {
- if (isTrimNullProperties() && willRecurse(attrName,
value, cm))
+ if (isTrimNullProperties() && (willRecurse(attrName,
value, cm) || willExceedDepth()))
return true;
} catch (BeanRecursionException e) {
throw new SerializeException(e);
diff --git a/juneau-doc/docs/ReleaseNotes/8.1.4.html
b/juneau-doc/docs/ReleaseNotes/8.1.4.html
index 993ee96..ec0fba7 100644
--- a/juneau-doc/docs/ReleaseNotes/8.1.4.html
+++ b/juneau-doc/docs/ReleaseNotes/8.1.4.html
@@ -189,7 +189,14 @@
Fixed bug in JSON/UON/URL-Encoding serializers where
indentation was not correct of first line when {@link
oaj.BeanTraverseContext#BEANTRAVERSE_initialIndent}
used.
<li>
+ Fixed bug in JSON/UON/URL-Encoding serializers where properties
past the max depth were being serialized as null instead
+ of being treated as null and not being serialized at all.
+ <li>
+ Fixed bug in HTML serializer where tables of maps were not
sorted if <jsf>SERIALIZER_sortMaps</jsf> was specified.
+ <li>
HTML-Schema support is being deprecated due to low-use and
difficulty in maintaining. It will be removed in 9.0.
+ <li>
+ <c>JuneauLogger</c> class is being deprecated. Improvements in
logging in Java 8 make it obsolete.
</ul>
<h5 class='topic w800'>juneau-rest-server</h5>
diff --git
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
index b8659ec..50520cc 100644
---
a/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
+++
b/juneau-rest/juneau-rest-client-utest/src/test/java/org/apache/juneau/rest/client2/RestClientBuilderTest.java
@@ -57,10 +57,9 @@ public class RestClientBuilderTest {
public static class Bean {
public int f;
- public static Bean create() {
- Bean b = new Bean();
- b.f = 1;
- return b;
+ public Bean init() {
+ f = 1;
+ return this;
}
public void check() {
@@ -73,7 +72,7 @@ public class RestClientBuilderTest {
}
}
- public static Bean bean = Bean.create();
+ public static Bean bean = new Bean().init();
@Rest
public static class A extends BasicRest {
@@ -2066,10 +2065,9 @@ public class RestClientBuilderTest {
public static class L1 {
public Object f1;
- public static L1 create() {
- L1 l = new L1();
- l.f1 = L2.create();
- return l;
+ public L1 init() {
+ f1 = new L2().init();
+ return this;
}
}
@@ -2077,21 +2075,22 @@ public class RestClientBuilderTest {
public static class L2 {
public int f2;
- public static L2 create() {
- L2 l = new L2();
- l.f2 = 1;
- return l;
+ public L2 init() {
+ f2 = 1;
+ return this;
}
}
@Test
public void l01a_serializer_addBeanTypes() throws Exception {
+ L1 l1 = new L1().init();
+
MockRestClient
.create(A.class)
.simpleJson()
.addBeanTypes(true)
.build()
- .post("/echoBody", L1.create())
+ .post("/echoBody", l1)
.run()
.getBody().assertValue("{f1:{_type:'L',f2:1}}");
@@ -2100,7 +2099,7 @@ public class RestClientBuilderTest {
.simpleJson()
.addBeanTypes(false)
.build()
- .post("/echoBody", L1.create())
+ .post("/echoBody", l1)
.run()
.getBody().assertValue("{f1:{f2:1}}");
@@ -2109,19 +2108,21 @@ public class RestClientBuilderTest {
.simpleJson()
.addBeanTypes()
.build()
- .post("/echoBody", L1.create())
+ .post("/echoBody", l1)
.run()
.getBody().assertValue("{f1:{_type:'L',f2:1}}");
}
@Test
public void l03_serializer_addRootType() throws Exception {
+ L2 l2 = new L2().init();
+
MockRestClient
.create(A.class)
.simpleJson()
.addRootType(true)
.build()
- .post("/echoBody", L2.create())
+ .post("/echoBody", l2)
.run()
.getBody().assertValue("{f2:1}");
@@ -2131,7 +2132,7 @@ public class RestClientBuilderTest {
.addBeanTypes()
.addRootType(false)
.build()
- .post("/echoBody", L2.create())
+ .post("/echoBody", l2)
.run()
.getBody().assertValue("{f2:1}");
@@ -2141,7 +2142,7 @@ public class RestClientBuilderTest {
.addBeanTypes()
.addRootType(true)
.build()
- .post("/echoBody", L2.create())
+ .post("/echoBody", l2)
.run()
.getBody().assertValue("{_type:'L',f2:1}");
@@ -2151,7 +2152,7 @@ public class RestClientBuilderTest {
.addBeanTypes()
.addRootType()
.build()
- .post("/echoBody", L2.create())
+ .post("/echoBody", l2)
.run()
.getBody().assertValue("{_type:'L',f2:1}");
}
@@ -2223,28 +2224,123 @@ public class RestClientBuilderTest {
.getBody().assertValue("\t\t{\n\t\t\tf: 1\n\t\t}");
}
-// public RestClientBuilder initialDepth(int value) {
+ public static class L10 extends SerializerListener {
+ public static volatile Throwable T;
+ public static volatile String MSG;
+
+ @Override
+ public void onError(SerializerSession session, Throwable t,
String msg) {
+ T = t;
+ MSG = msg;
+ }
+ }
+
+ public static class L10a {
+ public int getFoo() {
+ throw new RuntimeException("Foo!");
+ }
+ }
+
+ @Test
+ public void l10_serializer_listenerSClass() throws Exception {
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .listenerS(L10.class)
+ .ws()
+ .build()
+ .post("/echoBody", new L10a())
+ .run();
+ assertTrue(L10.T.getLocalizedMessage().contains("Exception
occurred while getting property 'foo'"));
+ assertTrue(L10.MSG.contains("Exception occurred while getting
property 'foo'"));
+ }
+
+ public static class L11 {
+ public Bean f;
+
+ public L11 init() {
+ f = bean;
+ return this;
+ }
+ }
+
+ @Test
+ public void l11_serializer_maxDepth() throws Exception {
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .maxDepth(1)
+ .build()
+ .post("/echoBody", new L11().init())
+ .run()
+ .getBody().assertValue("{}");
+ }
+
+ @Test
+ public void l12_serializer_sortCollections() throws Exception {
+ String[] s = new String[]{"c","a","b"};
+
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .sortCollections(true)
+ .build()
+ .post("/echoBody", s)
+ .run()
+ .getBody().assertValue("['a','b','c']");
+
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .sortCollections()
+ .build()
+ .post("/echoBody", s)
+ .run()
+ .getBody().assertValue("['a','b','c']");
+
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .sortCollections(false)
+ .build()
+ .post("/echoBody", s)
+ .run()
+ .getBody().assertValue("['c','a','b']");
+ }
+
+ @Test
+ public void l14_serializer_sortMapsBoolean() throws Exception {
+ AMap<String,Integer> m = AMap.of("c", 3, "a", 1, "b", 2);
+
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .sortMaps(true)
+ .build()
+ .post("/echoBody", m)
+ .run()
+ .getBody().assertValue("{a:1,b:2,c:3}");
+
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .sortMaps()
+ .build()
+ .post("/echoBody", m)
+ .run()
+ .getBody().assertValue("{a:1,b:2,c:3}");
+
+ MockRestClient
+ .create(A.class)
+ .simpleJson()
+ .sortMaps(false)
+ .build()
+ .post("/echoBody", m)
+ .run()
+ .getBody().assertValue("{c:3,a:1,b:2}");
+ }
+// public RestClientBuilder sortMaps(boolean value) {
-// @Test
-// public void l10_serializer_listenerSClass() throws Exception { fail(); }
-//// public RestClientBuilder listenerS(Class<? extends SerializerListener>
value) {
-//
-// @Test
-// public void l11_serializer_maxDepth() throws Exception { fail(); }
-//// public RestClientBuilder maxDepth(int value) {
-//
-// @Test
-// public void l12_serializer_sortCollectionsBoolean() throws Exception {
fail(); }
-//// public RestClientBuilder sortCollections(boolean value) {
-//
-// @Test
-// public void l13_serializer_sortCollections() throws Exception { fail();
}
-//// public RestClientBuilder sortCollections() {
-//
-// @Test
-// public void l14_serializer_sortMapsBoolean() throws Exception { fail();
}
-//// public RestClientBuilder sortMaps(boolean value) {
-//
// @Test
// public void l15_serializer_sortMaps() throws Exception { fail(); }
//// public RestClientBuilder sortMaps() {
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
index 771888e..c045d25 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRest.java
@@ -18,6 +18,7 @@ import java.io.*;
import java.lang.reflect.Method;
import java.text.*;
import java.util.*;
+import java.util.function.*;
import java.util.logging.*;
import javax.servlet.*;
@@ -51,7 +52,7 @@ import org.apache.juneau.http.exception.*;
)
public abstract class BasicRest implements BasicRestConfig, BasicRestMethods,
RestCallHandler, RestInfoProvider, RestCallLogger, RestResourceResolver,
ClasspathResourceFinder {
- private JuneauLogger logger = JuneauLogger.getLogger(getClass());
+ private Logger logger = Logger.getLogger(getClass().getName());
private volatile RestContext context;
private RestCallHandler callHandler;
private RestInfoProvider infoProvider;
@@ -130,56 +131,74 @@ public abstract class BasicRest implements
BasicRestConfig, BasicRestMethods, Re
//-----------------------------------------------------------------------------------------------------------------
/**
- * Log a message.
+ * Log a message at {@link Level#INFO} level.
+ *
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
*
* @param msg The message to log.
*/
public void log(String msg) {
- logger.info(msg);
+ doLog(Level.INFO, null, () -> msg);
}
/**
* Log a message.
*
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
+ *
* @param msg The message to log.
* @param cause The cause.
*/
public void log(String msg, Throwable cause) {
- logger.info(cause, msg);
+ doLog(Level.INFO, null, () -> msg);
}
/**
* Log a message.
*
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
+ *
* @param level The log level.
* @param msg The message to log.
* @param args Optional {@link MessageFormat}-style arguments.
*/
public void log(Level level, String msg, Object...args) {
- logger.log(level, msg, args);
+ doLog(level, null, () -> StringUtils.format(msg, args));
}
/**
* Log a message.
*
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
+ *
* @param level The log level.
+ * @param cause The cause.
* @param msg The message to log.
* @param args Optional {@link MessageFormat}-style arguments.
*/
- public void logObjects(Level level, String msg, Object...args) {
- logger.logObjects(level, msg, args);
+ public void log(Level level, Throwable cause, String msg,
Object...args) {
+ doLog(level, cause, () -> StringUtils.format(msg, args));
}
/**
- * Log a message.
+ * Main logger method.
+ *
+ * <p>
+ * The default behavior logs a message to the Java logger of the class
name.
+ *
+ * <p>
+ * Subclasses can override this method to implement their own logger
handling.
*
* @param level The log level.
- * @param cause The cause.
+ * @param cause Optional throwable.
* @param msg The message to log.
- * @param args Optional {@link MessageFormat}-style arguments.
*/
- public void log(Level level, Throwable cause, String msg,
Object...args) {
- logger.log(level, cause, msg, args);
+ protected void doLog(Level level, Throwable cause, Supplier<String>
msg) {
+ logger.log(level, cause, msg);
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
index 4efb852..ac1cd3d 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestRequest.java
@@ -1778,7 +1778,6 @@ public final class RestRequest extends
HttpServletRequestWrapper {
* <li class='jf'>{@link
org.apache.juneau.rest.RestContext#REST_logger}
* <li class='jac'>{@link org.apache.juneau.rest.RestLogger}
* <li class='jm'>{@link
org.apache.juneau.rest.RestServlet#log(Level, String, Object...)}
- * <li class='jm'>{@link
org.apache.juneau.rest.RestServlet#logObjects(Level, String, Object...)}
* <li class='link'>{@doc juneau-rest-server.LoggingAndDebugging}
* </ul>
*
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
index 603b197..c7d4caa 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestServlet.java
@@ -22,6 +22,7 @@ import java.io.*;
import java.lang.reflect.Method;
import java.text.*;
import java.util.*;
+import java.util.function.*;
import java.util.logging.*;
import javax.servlet.*;
@@ -50,7 +51,7 @@ public abstract class RestServlet extends HttpServlet
implements RestCallHandler
private volatile Exception initException;
private boolean isInitialized = false; // Should not be volatile.
private volatile RestResourceResolver resourceResolver = new
BasicRestResourceResolver();
- private JuneauLogger logger = JuneauLogger.getLogger(getClass());
+ private Logger logger = Logger.getLogger(getClass().getName());
private RestCallHandler callHandler;
private RestInfoProvider infoProvider;
private RestCallLogger callLogger;
@@ -186,69 +187,77 @@ public abstract class RestServlet extends HttpServlet
implements RestCallHandler
// Convenience logger methods
//-----------------------------------------------------------------------------------------------------------------
- @Override /* GenericServlet */
- public void log(String msg) {
- super.log(msg);
- }
-
- @Override /* GenericServlet */
- public void log(String msg, Throwable cause) {
- super.log(msg, cause);
- }
-
/**
- * Convenience method for calling {@link #log(String)} with message
arguments.
+ * Log a message at {@link Level#INFO} level.
*
- * @param msg The message containing {@link MessageFormat}-style
arguments.
- * @param args The arguments.
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
+ *
+ * @param msg The message to log.
*/
- public void log(String msg, Object...args) {
- super.log(args.length == 0 ? msg : MessageFormat.format(msg,
args));
+ @Override /* GenericServlet */
+ public void log(String msg) {
+ doLog(Level.INFO, null, () -> msg);
}
/**
- * Convenience method for calling {@link #log(String)} with message
arguments.
+ * Log a message.
+ *
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
*
- * @param msg The message containing {@link MessageFormat}-style
arguments.
+ * @param msg The message to log.
* @param cause The cause.
- * @param args The arguments.
*/
- public void log(String msg, Throwable cause, Object...args) {
- super.log(args.length == 0 ? msg : MessageFormat.format(msg,
args), cause);
+ @Override /* GenericServlet */
+ public void log(String msg, Throwable cause) {
+ doLog(Level.INFO, null, () -> msg);
}
/**
* Log a message.
*
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
+ *
* @param level The log level.
* @param msg The message to log.
* @param args Optional {@link MessageFormat}-style arguments.
*/
public void log(Level level, String msg, Object...args) {
- logger.log(level, msg, args);
+ doLog(level, null, () -> StringUtils.format(msg, args));
}
/**
* Log a message.
*
+ * <p>
+ * Subclasses can intercept the handling of these messages by
overriding {@link #doLog(Level, Throwable, Supplier)}.
+ *
* @param level The log level.
+ * @param cause The cause.
* @param msg The message to log.
* @param args Optional {@link MessageFormat}-style arguments.
*/
- public void logObjects(Level level, String msg, Object...args) {
- logger.logObjects(level, msg, args);
+ public void log(Level level, Throwable cause, String msg,
Object...args) {
+ doLog(level, cause, () -> StringUtils.format(msg, args));
}
/**
- * Log a message.
+ * Main logger method.
+ *
+ * <p>
+ * The default behavior logs a message to the Java logger of the class
name.
+ *
+ * <p>
+ * Subclasses can override this method to implement their own logger
handling.
*
* @param level The log level.
- * @param cause The cause.
+ * @param cause Optional throwable.
* @param msg The message to log.
- * @param args Optional {@link MessageFormat}-style arguments.
*/
- public void log(Level level, Throwable cause, String msg,
Object...args) {
- logger.log(level, cause, msg, args);
+ protected void doLog(Level level, Throwable cause, Supplier<String>
msg) {
+ logger.log(level, cause, msg);
}
//-----------------------------------------------------------------------------------------------------------------
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
index 79889f7..2d9dc4c 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/annotation/HookEvent.java
@@ -24,7 +24,6 @@ import org.apache.juneau.config.*;
import org.apache.juneau.dto.swagger.*;
import org.apache.juneau.http.*;
import org.apache.juneau.http.exception.*;
-import org.apache.juneau.internal.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.utils.*;
@@ -158,7 +157,6 @@ public enum HookEvent {
* <li>{@link RequestFormData}
* <li>{@link HttpMethod}
* <li>{@link Logger}
- * <li>{@link JuneauLogger}
* <li>{@link RestContext}
* <li>{@link org.apache.juneau.parser.Parser}
* <li>{@link Locale}