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 db6f4ee Context API refactoring.
db6f4ee is described below
commit db6f4ee4ece87b646f5fdb7dea5d80565004b2f3
Author: JamesBognar <[email protected]>
AuthorDate: Fri Oct 1 16:21:58 2021 -0400
Context API refactoring.
---
.../org/apache/juneau/config/ConfigBuilder.java | 1 +
.../config/store/ConfigFileStoreBuilder.java | 2 +
.../org/apache/juneau/jena/RdfParserBuilder.java | 2 +
.../apache/juneau/jena/RdfSerializerBuilder.java | 2 +
.../java/org/apache/juneau/BeanContextBuilder.java | 1 +
.../org/apache/juneau/BeanTraverseBuilder.java | 2 +
.../src/main/java/org/apache/juneau/Context.java | 48 +-
.../java/org/apache/juneau/ContextBuilder.java | 87 +--
.../java/org/apache/juneau/SystemProperties.java | 85 ---
.../org/apache/juneau/html/HtmlDocSerializer.java | 5 +-
.../juneau/html/HtmlSchemaDocSerializer.java | 22 +-
.../html/HtmlSchemaDocSerializerBuilder.java | 805 +++++++++++++++++++++
.../apache/juneau/html/HtmlSerializerBuilder.java | 2 +
.../java/org/apache/juneau/internal/SystemEnv.java | 89 +++
.../org/apache/juneau/internal/SystemUtils.java | 75 --
.../org/apache/juneau/json/JsonParserBuilder.java | 2 +
.../apache/juneau/json/JsonSerializerBuilder.java | 2 +
.../jsonschema/JsonSchemaGeneratorBuilder.java | 2 +
.../juneau/msgpack/MsgPackSerializerBuilder.java | 2 +
.../juneau/parser/InputStreamParserBuilder.java | 2 +
.../org/apache/juneau/parser/ParserBuilder.java | 2 +
.../apache/juneau/parser/ReaderParserBuilder.java | 2 +
.../serializer/OutputStreamSerializerBuilder.java | 2 +
.../juneau/serializer/SerializerBuilder.java | 2 +
.../juneau/serializer/WriterSerializerBuilder.java | 2 +
.../org/apache/juneau/uon/UonParserBuilder.java | 2 +
.../apache/juneau/uon/UonSerializerBuilder.java | 2 +
.../urlencoding/UrlEncodingParserBuilder.java | 2 +
.../urlencoding/UrlEncodingSerializerBuilder.java | 2 +
.../org/apache/juneau/xml/XmlParserBuilder.java | 2 +
.../apache/juneau/xml/XmlSerializerBuilder.java | 2 +
.../juneau/microservice/jetty/JettyLogger.java | 5 +-
.../microservice/jetty/JettyMicroservice.java | 9 +-
.../org/apache/juneau/rest/RestContextBuilder.java | 1 +
.../juneau/rest/logging/BasicRestLogger.java | 16 +-
.../org/apache/juneau/rest/logging/RestLogger.java | 9 +
36 files changed, 1008 insertions(+), 292 deletions(-)
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigBuilder.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigBuilder.java
index 6ec48a0..6f5118b 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigBuilder.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/ConfigBuilder.java
@@ -13,6 +13,7 @@
package org.apache.juneau.config;
import static org.apache.juneau.internal.ExceptionUtils.*;
+import static org.apache.juneau.internal.SystemEnv.*;
import java.io.*;
import java.lang.reflect.*;
diff --git
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
index 345fa8e..e1aaa4d 100644
---
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
+++
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigFileStoreBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.config.store;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.io.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
index b591fe6..01e7826 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.jena;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
index 8269960..94d3160 100644
---
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
+++
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.jena;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
index 8b910a1..29add48 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java
@@ -15,6 +15,7 @@ package org.apache.juneau;
import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.Visibility.*;
import static java.util.Arrays.*;
+import static org.apache.juneau.internal.SystemEnv.*;
import java.beans.*;
import java.io.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
index b8e93d7..d3ca6ed 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index fbab483..8570005 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -14,6 +14,7 @@ package org.apache.juneau;
import static org.apache.juneau.internal.ClassUtils.*;
import static org.apache.juneau.internal.CollectionUtils.*;
+import static org.apache.juneau.internal.ExceptionUtils.*;
import static java.util.Optional.*;
import java.lang.annotation.*;
@@ -48,6 +49,10 @@ import org.apache.juneau.utils.*;
*/
public abstract class Context implements MetaProvider {
+
//-----------------------------------------------------------------------------------------------------------------
+ // Static
+
//-----------------------------------------------------------------------------------------------------------------
+
private static final Map<Class<?>,MethodInfo> BUILDER_CREATE_METHODS =
new ConcurrentHashMap<>();
/**
@@ -66,7 +71,7 @@ public abstract class Context implements MetaProvider {
if (mi == null) {
mi =
ClassInfo.of(type).getBuilderCreateMethod();
if (mi == null)
- throw new RuntimeException("Could not
find builder create method on class " + type);
+ throw runtimeException("Could not find
builder create method on class {0}", type);
BUILDER_CREATE_METHODS.put(type, mi);
}
ContextBuilder b = (ContextBuilder)mi.invoke(null);
@@ -77,8 +82,11 @@ public abstract class Context implements MetaProvider {
}
}
+
//-----------------------------------------------------------------------------------------------------------------
+ // Instance
+
//-----------------------------------------------------------------------------------------------------------------
+
final List<Annotation> annotations;
- private final int identityCode;
final boolean debug;
private final ReflectionMap<Annotation> annotationMap;
@@ -89,7 +97,6 @@ public abstract class Context implements MetaProvider {
* @param copyFrom The context to copy from.
*/
protected Context(Context copyFrom) {
- identityCode = copyFrom.identityCode;
annotationMap = copyFrom.annotationMap;
annotations = copyFrom.annotations;
debug = copyFrom.debug;
@@ -102,7 +109,6 @@ public abstract class Context implements MetaProvider {
*/
protected Context(ContextBuilder builder) {
debug = builder.debug;
- identityCode = System.identityHashCode(this);
annotations =
ofNullable(builder.annotations).orElse(emptyList());
ReflectionMap.Builder<Annotation> rmb =
ReflectionMap.create(Annotation.class);
@@ -178,18 +184,19 @@ public abstract class Context implements MetaProvider {
*/
public abstract SessionArgs createDefaultSessionArgs();
- @Override /* Object */
- public int hashCode() {
- return identityCode;
- }
+
//-----------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-----------------------------------------------------------------------------------------------------------------
/**
- * Returns a uniqueness identity code for this context.
+ * Debug mode.
*
- * @return A uniqueness identity code.
+ * @see ContextBuilder#debug()
+ * @return
+ * <jk>true</jk> if debug mode is enabled.
*/
- public int identityCode() {
- return identityCode;
+ public boolean isDebug() {
+ return debug;
}
//-----------------------------------------------------------------------------------------------------------------
@@ -450,20 +457,6 @@ public abstract class Context implements MetaProvider {
return getAnnotations(a, c == null ? null : c.inner()).size() >
0;
}
-
//-----------------------------------------------------------------------------------------------------------------
- // Properties
-
//-----------------------------------------------------------------------------------------------------------------
-
- /**
- * Debug mode.
- *
- * @see ContextBuilder#debug()
- * @return
- * <jk>true</jk> if debug mode is enabled.
- */
- public boolean isDebug() {
- return debug;
- }
//-----------------------------------------------------------------------------------------------------------------
// Other methods
@@ -491,7 +484,8 @@ public abstract class Context implements MetaProvider {
OMap
.create()
.filtered()
- .a("identityCode", identityCode)
+ .a("annotations", annotations)
+ .a("debug", debug)
);
}
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
index 5e05f68..b23f3d3 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextBuilder.java
@@ -17,12 +17,11 @@ import static org.apache.juneau.reflect.ReflectionFilters.*;
import static org.apache.juneau.Visibility.*;
import static java.util.stream.Collectors.*;
import static java.util.Arrays.*;
+import static org.apache.juneau.internal.SystemEnv.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
-import java.nio.charset.*;
import java.util.*;
-import java.util.concurrent.*;
import java.util.function.*;
import org.apache.juneau.annotation.*;
@@ -670,90 +669,6 @@ public abstract class ContextBuilder {
// Helper methods.
//-----------------------------------------------------------------------------------------------------------------
- /**
- * Looks up a default value from the environment.
- *
- * <p>
- * First looks in system properties. Then converts the name to
env-safe and looks in the system environment.
- * Then returns the default if it can't be found.
- *
- * @param name The property name.
- * @param def The default value if not found.
- * @return The default value.
- */
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected <T> T env(String name, T def) {
- String s = System.getProperty(name);
- if (s == null)
- s = System.getenv(envName(name));
- if (s == null)
- return def;
- Class<?> c = def.getClass();
- if (c.isEnum())
- return (T)Enum.valueOf((Class<? extends Enum>) c, s);
- Function<String,T> f = (Function<String,T>)ENV_FUNCTIONS.get(c);
- if (f == null)
- throw runtimeException("Invalid env type: {0}", c);
- return f.apply(s);
- }
-
- private static final Map<Class<?>,Function<String,?>> ENV_FUNCTIONS =
new IdentityHashMap<>();
- static {
- ENV_FUNCTIONS.put(String.class, x -> x);
- ENV_FUNCTIONS.put(Boolean.class, x -> Boolean.valueOf(x));
- ENV_FUNCTIONS.put(Charset.class, x -> Charset.forName(x));
- }
-
- private static final ConcurrentHashMap<String,String> PROPERTY_TO_ENV =
new ConcurrentHashMap<>();
- private static String envName(String name) {
- String name2 = PROPERTY_TO_ENV.get(name);
- if (name2 == null) {
- name2 = name.toUpperCase().replace(".", "_");
- PROPERTY_TO_ENV.put(name, name2);
- }
- return name2;
- }
-
- /**
- * Creates a list from an array of objects.
- *
- * @param objects The objects to create a list from.
- * @return A new list not backed by the array.
- */
- @SuppressWarnings("unchecked")
- protected <T> List<T> list(T...objects) {
- return new ArrayList<>(Arrays.asList(objects));
- }
-
- /**
- * Appends to an existing list.
- *
- * @param list The list to append to.
- * @param objects The objects to append.
- * @return The same list, or a new list if the list was <jk>null</jk>.
- */
- @SuppressWarnings("unchecked")
- protected <T> List<T> append(List<T> list, T...objects) {
- if (list == null)
- return list(objects);
- list.addAll(Arrays.asList(objects));
- return list;
- }
-
- /**
- * Prepends to an existing list.
- *
- * @param list The list to prepend to.
- * @param objects The objects to prepend.
- * @return The same list, or a new list if the list was <jk>null</jk>.
- */
- @SuppressWarnings("unchecked")
- protected <T> List<T> prepend(List<T> list, T...objects) {
- if (list == null)
- return list(objects);
- list.addAll(0, Arrays.asList(objects));
- return list;
- }
// <FluentSetters>
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SystemProperties.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SystemProperties.java
deleted file mode 100644
index 53aae7c..0000000
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/SystemProperties.java
+++ /dev/null
@@ -1,85 +0,0 @@
-//
***************************************************************************************************************************
-// * 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;
-
-import org.apache.juneau.internal.*;
-import org.apache.juneau.reflect.*;
-
-/**
- * Utility class for getting system property values.
- */
-public class SystemProperties {
-
- /**
- * Returns the specified system property or environment variable value
as the specified type.
- *
- * <p>
- * First does a lookup on the system property with the specified
property name (e.g. <js>"juneau.stackTraceCacheTimeout"</js>)
- * <br>
- * If not found, then searches it as an env var (e.g.
<js>"JUNEAU_STACKTRACETIMEOUT"</js>).
- * <br>
- * If found, converts the string value using any number of string
mutaters (e.g. public string constructors, static
- * creators, etc...)
- *
- * @param <T> The type to convert the value to.
- * @param c The type to convert the value to.
- * @param propertyName The system property name.
- * @param def The default value if not found.
- * @return The converted property, or <jk>null</jk> if property not set.
- */
- public static <T> T getProperty(Class<T> c, String propertyName, T def)
{
- String p = getProperty(propertyName, null);
- if (p != null) {
- Mutater<String,T> t = Mutaters.get(String.class, c);
- return t == def ? null : t.mutate(p);
- }
- return def;
- }
-
- /**
- * Returns the specified system property or environment variable value
as the specified type.
- *
- * <p>
- * First does a lookup on the system property with the specified
property name (e.g. <js>"juneau.stackTraceCacheTimeout"</js>)
- * <br>
- * If not found, then searches it as an env var (e.g.
<js>"JUNEAU_STACKTRACETIMEOUT"</js>).
- *
- * @param propertyName The system property name.
- * @param def The default value if not found.
- * @return The converted property, or <jk>null</jk> if property not set.
- */
- public static String getProperty(String propertyName, String def) {
- propertyName = StringUtils.emptyIfNull(propertyName);
- String p = System.getProperty(propertyName);
- try {
- if (p == null)
- p = System.getenv(propertyName.replace('.',
'_').replace('-', '_').toUpperCase());
- } catch (SecurityException e) {}
- return p == null ? def : p;
- }
-
- /**
- * Returns the specified system property or environment variable value
as the specified type.
- *
- * <p>
- * First does a lookup on the system property with the specified
property name (e.g. <js>"juneau.stackTraceCacheTimeout"</js>)
- * <br>
- * If not found, then searches it as an env var (e.g.
<js>"JUNEAU_STACKTRACETIMEOUT"</js>).
- *
- * @param propertyName The system property name.
- * @return The converted property, or <jk>null</jk> if property not set.
- */
- public static String getProperty(String propertyName) {
- return getProperty(propertyName, null);
- }
-}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
index 11931e6..ee4f9a9 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
@@ -146,9 +146,8 @@ public class HtmlDocSerializer extends
HtmlStrippedDocSerializer {
@Override /* XmlSerializer */
public HtmlSerializer getSchemaSerializer() {
- int TODO;
-// if (schemaSerializer == null)
-// schemaSerializer = (HtmlSchemaDocSerializer)
HtmlDocSerializer.create().type(HtmlSchemaDocSerializer.class).beanContext(getBeanContext()).build();
+ if (schemaSerializer == null)
+ schemaSerializer =
HtmlSchemaDocSerializer.create().beanContext(getBeanContext()).build();
return schemaSerializer;
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
index 1fc905b..b6b91be 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializer.java
@@ -39,10 +39,30 @@ import org.apache.juneau.serializer.*;
public final class HtmlSchemaDocSerializer extends HtmlDocSerializer {
//-----------------------------------------------------------------------------------------------------------------
+ // Static
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * Instantiates a new clean-slate {@link HtmlSchemaDocSerializer}
object.
+ *
+ * <p>
+ * This is equivalent to simply calling <code><jk>new</jk>
HtmlSchemaDocSerializerBuilder()</code>.
+ *
+ * <p>
+ * Note that this method creates a builder initialized to all default
settings, whereas {@link #copy()} copies
+ * the settings of the object called on.
+ *
+ * @return A new {@link HtmlSchemaDocSerializerBuilder} object.
+ */
+ public static HtmlSchemaDocSerializerBuilder create() {
+ return new HtmlSchemaDocSerializerBuilder();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
// Instance
//-----------------------------------------------------------------------------------------------------------------
- private final JsonSchemaGenerator generator;
+ final JsonSchemaGenerator generator;
/**
* Constructor.
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerBuilder.java
new file mode 100644
index 0000000..49cabab
--- /dev/null
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSchemaDocSerializerBuilder.java
@@ -0,0 +1,805 @@
+//
***************************************************************************************************************************
+// * 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.html;
+
+import java.lang.annotation.*;
+import java.lang.reflect.*;
+import java.nio.charset.*;
+import java.util.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.annotation.*;
+import org.apache.juneau.collections.*;
+import org.apache.juneau.http.header.*;
+import org.apache.juneau.internal.*;
+import org.apache.juneau.json.*;
+import org.apache.juneau.jsonschema.*;
+import org.apache.juneau.jsonschema.annotation.*;
+import org.apache.juneau.xml.*;
+
+/**
+ * Builder class for building instances of HTML Doc Schema serializers.
+ */
+@FluentSetters
+public class HtmlSchemaDocSerializerBuilder extends HtmlDocSerializerBuilder {
+
+ JsonSchemaGeneratorBuilder generatorBuilder;
+
+ /**
+ * Constructor, default settings.
+ */
+ protected HtmlSchemaDocSerializerBuilder() {
+ super();
+ produces("text/html");
+ accept("text/html+schema");
+ type(HtmlSchemaDocSerializer.class);
+ generatorBuilder = (JsonSchemaGeneratorBuilder)
JsonSchemaGenerator.create().beanContext(beanContext());
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param copyFrom The bean to copy from.
+ */
+ protected HtmlSchemaDocSerializerBuilder(HtmlSchemaDocSerializer
copyFrom) {
+ super(copyFrom);
+ generatorBuilder = (JsonSchemaGeneratorBuilder)
copyFrom.generator.copy().beanContext(beanContext());
+ }
+
+ /**
+ * Copy constructor.
+ *
+ * @param copyFrom The builder to copy from.
+ */
+ protected HtmlSchemaDocSerializerBuilder(HtmlSchemaDocSerializerBuilder
copyFrom) {
+ super(copyFrom);
+ generatorBuilder = (JsonSchemaGeneratorBuilder)
copyFrom.generatorBuilder.copy().beanContext(beanContext());
+ }
+
+ @Override /* ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder copy() {
+ return new HtmlSchemaDocSerializerBuilder(this);
+ }
+
+ @Override /* ContextBuilder */
+ public HtmlSchemaDocSerializer build() {
+ return (HtmlSchemaDocSerializer)super.build();
+ }
+
+
//-----------------------------------------------------------------------------------------------------------------
+ // Properties
+
//-----------------------------------------------------------------------------------------------------------------
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Add descriptions.
+ *
+ * <p>
+ * Identifies which categories of types that descriptions should be
automatically added to generated schemas.
+ * <p>
+ * The description is the result of calling {@link
ClassMeta#getFullName()}.
+ *
+ * <ul class='seealso'>
+ * <li class='jm'>{@link
JsonSchemaGeneratorBuilder#addDescriptionsTo(TypeCategory...)}
+ * </ul>
+ *
+ * @param values
+ * The values to add to this setting.
+ * <br>The default is an empty string.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder
addDescriptionsTo(TypeCategory...values) {
+ generatorBuilder.addDescriptionsTo(values);
+ return this;
+ }
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Add examples.
+ *
+ * <p>
+ * Identifies which categories of types that examples should be
automatically added to generated schemas.
+ * <p>
+ * The examples come from calling {@link
ClassMeta#getExample(BeanSession,JsonParserSession)} which in turn gets examples
+ * from the following:
+ * <ul class='javatree'>
+ * <li class='ja'>{@link Example}
+ * <li class='ja'>{@link Marshalled#example() Marshalled(example)}
+ * </ul>
+ *
+ * <ul class='seealso'>
+ * <li class='jm'>{@link
JsonSchemaGeneratorBuilder#addExamplesTo(TypeCategory...)}
+ * </ul>
+ *
+ * @param values
+ * The values to add to this setting.
+ * <br>The default is an empty string.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder
addExamplesTo(TypeCategory...values) {
+ generatorBuilder.addExamplesTo(values);
+ return this;
+ }
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Allow nested descriptions.
+ *
+ * <p>
+ * Identifies whether nested descriptions are allowed in schema
definitions.
+ *
+ * <ul class='seealso'>
+ * <li class='jm'>{@link
JsonSchemaGeneratorBuilder#allowNestedDescriptions()}
+ * </ul>
+ *
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder allowNestedDescriptions() {
+ generatorBuilder.allowNestedDescriptions();
+ return this;
+ }
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Allow nested examples.
+ *
+ * <p>
+ * Identifies whether nested examples are allowed in schema definitions.
+ *
+ * <ul class='seealso'>
+ * <li class='jm'>{@link
JsonSchemaGeneratorBuilder#allowNestedExamples()}
+ * </ul>
+ *
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder allowNestedExamples() {
+ generatorBuilder.allowNestedExamples();
+ return this;
+ }
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Schema definition mapper.
+ *
+ * <p>
+ * Interface to use for converting Bean classes to definition IDs and
URIs.
+ * <p>
+ * Used primarily for defining common definition sections for beans in
Swagger JSON.
+ * <p>
+ * This setting is ignored if {@link
JsonSchemaGeneratorBuilder#useBeanDefs()} is not enabled.
+ *
+ * <ul class='seealso'>
+ * <li class='jm'>{@link
JsonSchemaGeneratorBuilder#beanDefMapper(Class)}
+ * </ul>
+ *
+ * @param value
+ * The new value for this property.
+ * <br>The default is {@link
org.apache.juneau.jsonschema.BasicBeanDefMapper}.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder beanDefMapper(Class<? extends
BeanDefMapper> value) {
+ generatorBuilder.beanDefMapper(value);
+ return this;
+ }
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Default schemas.
+ *
+ * <p>
+ * Allows you to override or provide custom schema information for
particular class types.
+ * <p>
+ * Keys are full class names.
+ *
+ * <ul class='seealso'>
+ * <li class='jf'>{@link Schema#value}
+ * </ul>
+ *
+ * @param c
+ * The class to define a default schema for.
+ * @param schema
+ * The schema.
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder defaultSchema(Class<?> c, OMap
schema) {
+ return
annotations(SchemaAnnotation.create(c).value(schema.toString()).build());
+ }
+
+ /**
+ * <i><l>HtmlSchemaSerializer</l> configuration property: </i>
Use bean definitions.
+ *
+ * <p>
+ * When enabled, schemas on beans will be serialized as the following:
+ * <p class='bcode w800'>
+ * {
+ * type: <js>'object'</js>,
+ * <js>'$ref'</js>: <js>'#/definitions/TypeId'</js>
+ * }
+ * </p>
+ *
+ * @return This object (for method chaining).
+ */
+ @FluentSetter
+ public HtmlSchemaDocSerializerBuilder useBeanDefs() {
+ generatorBuilder.useBeanDefs();
+ return this;
+ }
+
+ // <FluentSetters>
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanContext(BeanContext value) {
+ super.beanContext(value);
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
applyAnnotations(java.lang.Class<?>...fromClasses) {
+ super.applyAnnotations(fromClasses);
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
applyAnnotations(Method...fromMethods) {
+ super.applyAnnotations(fromMethods);
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder apply(AnnotationWorkList work) {
+ super.apply(work);
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder debug() {
+ super.debug();
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder locale(Locale value) {
+ super.locale(value);
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder mediaType(MediaType value) {
+ super.mediaType(value);
+ return this;
+ }
+
+ @Override /* GENERATED - ContextBuilder */
+ public HtmlSchemaDocSerializerBuilder timeZone(TimeZone value) {
+ super.timeZone(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder annotations(Annotation...values) {
+ super.annotations(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanClassVisibility(Visibility
value) {
+ super.beanClassVisibility(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
beanConstructorVisibility(Visibility value) {
+ super.beanConstructorVisibility(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanFieldVisibility(Visibility
value) {
+ super.beanFieldVisibility(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanInterceptor(Class<?> on,
Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) {
+ super.beanInterceptor(on, value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanMapPutReturnsOldValue() {
+ super.beanMapPutReturnsOldValue();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanMethodVisibility(Visibility
value) {
+ super.beanMethodVisibility(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanProperties(Map<String,Object>
values) {
+ super.beanProperties(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanProperties(Class<?>
beanClass, String properties) {
+ super.beanProperties(beanClass, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanProperties(String
beanClassName, String properties) {
+ super.beanProperties(beanClassName, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
beanPropertiesExcludes(Map<String,Object> values) {
+ super.beanPropertiesExcludes(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanPropertiesExcludes(Class<?>
beanClass, String properties) {
+ super.beanPropertiesExcludes(beanClass, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanPropertiesExcludes(String
beanClassName, String properties) {
+ super.beanPropertiesExcludes(beanClassName, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
beanPropertiesReadOnly(Map<String,Object> values) {
+ super.beanPropertiesReadOnly(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanPropertiesReadOnly(Class<?>
beanClass, String properties) {
+ super.beanPropertiesReadOnly(beanClass, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanPropertiesReadOnly(String
beanClassName, String properties) {
+ super.beanPropertiesReadOnly(beanClassName, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
beanPropertiesWriteOnly(Map<String,Object> values) {
+ super.beanPropertiesWriteOnly(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanPropertiesWriteOnly(Class<?>
beanClass, String properties) {
+ super.beanPropertiesWriteOnly(beanClass, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanPropertiesWriteOnly(String
beanClassName, String properties) {
+ super.beanPropertiesWriteOnly(beanClassName, properties);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beansRequireDefaultConstructor() {
+ super.beansRequireDefaultConstructor();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beansRequireSerializable() {
+ super.beansRequireSerializable();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beansRequireSettersForGetters() {
+ super.beansRequireSettersForGetters();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder beanDictionary(Class<?>...values)
{
+ super.beanDictionary(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder dictionaryOn(Class<?> on,
java.lang.Class<?>...values) {
+ super.dictionaryOn(on, values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
disableBeansRequireSomeProperties() {
+ super.disableBeansRequireSomeProperties();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder disableIgnoreMissingSetters() {
+ super.disableIgnoreMissingSetters();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder disableIgnoreTransientFields() {
+ super.disableIgnoreTransientFields();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
disableIgnoreUnknownNullBeanProperties() {
+ super.disableIgnoreUnknownNullBeanProperties();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder disableInterfaceProxies() {
+ super.disableInterfaceProxies();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public <T> HtmlSchemaDocSerializerBuilder example(Class<T> pojoClass, T
o) {
+ super.example(pojoClass, o);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public <T> HtmlSchemaDocSerializerBuilder example(Class<T> pojoClass,
String json) {
+ super.example(pojoClass, json);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder findFluentSetters() {
+ super.findFluentSetters();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder findFluentSetters(Class<?> on) {
+ super.findFluentSetters(on);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
ignoreInvocationExceptionsOnGetters() {
+ super.ignoreInvocationExceptionsOnGetters();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
ignoreInvocationExceptionsOnSetters() {
+ super.ignoreInvocationExceptionsOnSetters();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder ignoreUnknownBeanProperties() {
+ super.ignoreUnknownBeanProperties();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder implClass(Class<?>
interfaceClass, Class<?> implClass) {
+ super.implClass(interfaceClass, implClass);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
implClasses(Map<Class<?>,Class<?>> values) {
+ super.implClasses(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder interfaceClass(Class<?> on,
Class<?> value) {
+ super.interfaceClass(on, value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
interfaces(java.lang.Class<?>...value) {
+ super.interfaces(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder notBeanClasses(Class<?>...values)
{
+ super.notBeanClasses(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder notBeanPackages(String...values) {
+ super.notBeanPackages(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder propertyNamer(Class<? extends
org.apache.juneau.PropertyNamer> value) {
+ super.propertyNamer(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder propertyNamer(Class<?> on,
Class<? extends org.apache.juneau.PropertyNamer> value) {
+ super.propertyNamer(on, value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder sortProperties() {
+ super.sortProperties();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder
sortProperties(java.lang.Class<?>...on) {
+ super.sortProperties(on);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder stopClass(Class<?> on, Class<?>
value) {
+ super.stopClass(on, value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder swaps(Class<?>...values) {
+ super.swaps(values);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder typeName(Class<?> on, String
value) {
+ super.typeName(on, value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder typePropertyName(String value) {
+ super.typePropertyName(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder typePropertyName(Class<?> on,
String value) {
+ super.typePropertyName(on, value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder useEnumNames() {
+ super.useEnumNames();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanContextBuilder */
+ public HtmlSchemaDocSerializerBuilder useJavaBeanIntrospector() {
+ super.useJavaBeanIntrospector();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanTraverseBuilder */
+ public HtmlSchemaDocSerializerBuilder detectRecursions() {
+ super.detectRecursions();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanTraverseBuilder */
+ public HtmlSchemaDocSerializerBuilder ignoreRecursions() {
+ super.ignoreRecursions();
+ return this;
+ }
+
+ @Override /* GENERATED - BeanTraverseBuilder */
+ public HtmlSchemaDocSerializerBuilder initialDepth(int value) {
+ super.initialDepth(value);
+ return this;
+ }
+
+ @Override /* GENERATED - BeanTraverseBuilder */
+ public HtmlSchemaDocSerializerBuilder maxDepth(int value) {
+ super.maxDepth(value);
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder addBeanTypes() {
+ super.addBeanTypes();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder addRootType() {
+ super.addRootType();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder keepNullProperties() {
+ super.keepNullProperties();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder listener(Class<? extends
org.apache.juneau.serializer.SerializerListener> value) {
+ super.listener(value);
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder sortCollections() {
+ super.sortCollections();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder sortMaps() {
+ super.sortMaps();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder trimEmptyCollections() {
+ super.trimEmptyCollections();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder trimEmptyMaps() {
+ super.trimEmptyMaps();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder trimStrings() {
+ super.trimStrings();
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder uriContext(UriContext value) {
+ super.uriContext(value);
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder uriRelativity(UriRelativity
value) {
+ super.uriRelativity(value);
+ return this;
+ }
+
+ @Override /* GENERATED - SerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder uriResolution(UriResolution
value) {
+ super.uriResolution(value);
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder fileCharset(Charset value) {
+ super.fileCharset(value);
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder maxIndent(int value) {
+ super.maxIndent(value);
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder quoteChar(char value) {
+ super.quoteChar(value);
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder sq() {
+ super.sq();
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder streamCharset(Charset value) {
+ super.streamCharset(value);
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder useWhitespace() {
+ super.useWhitespace();
+ return this;
+ }
+
+ @Override /* GENERATED - WriterSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder ws() {
+ super.ws();
+ return this;
+ }
+
+ @Override /* GENERATED - XmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder addNamespaceUrisToRoot() {
+ super.addNamespaceUrisToRoot();
+ return this;
+ }
+
+ @Override /* GENERATED - XmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder disableAutoDetectNamespaces() {
+ super.disableAutoDetectNamespaces();
+ return this;
+ }
+
+ @Override /* GENERATED - XmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder enableNamespaces() {
+ super.enableNamespaces();
+ return this;
+ }
+
+ @Override /* GENERATED - XmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder namespaces(Namespace...values) {
+ super.namespaces(values);
+ return this;
+ }
+
+ @Override /* GENERATED - XmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder ns() {
+ super.ns();
+ return this;
+ }
+
+ @Override /* GENERATED - HtmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder addKeyValueTableHeaders() {
+ super.addKeyValueTableHeaders();
+ return this;
+ }
+
+ @Override /* GENERATED - HtmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder disableDetectLabelParameters() {
+ super.disableDetectLabelParameters();
+ return this;
+ }
+
+ @Override /* GENERATED - HtmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder disableDetectLinksInStrings() {
+ super.disableDetectLinksInStrings();
+ return this;
+ }
+
+ @Override /* GENERATED - HtmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder labelParameter(String value) {
+ super.labelParameter(value);
+ return this;
+ }
+
+ @Override /* GENERATED - HtmlSerializerBuilder */
+ public HtmlSchemaDocSerializerBuilder uriAnchorText(AnchorText value) {
+ super.uriAnchorText(value);
+ return this;
+ }
+
+ // </FluentSetters>
+}
\ No newline at end of file
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
index 406ddbe..6254e15 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.html;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemEnv.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemEnv.java
new file mode 100644
index 0000000..bc5bf89
--- /dev/null
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemEnv.java
@@ -0,0 +1,89 @@
+//
***************************************************************************************************************************
+// * 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.internal;
+
+import static org.apache.juneau.internal.ExceptionUtils.*;
+
+import java.nio.charset.*;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.*;
+
+/**
+ * Utility methods for accessing system properties and environment variables.
+ */
+public class SystemEnv {
+
+ /**
+ * Looks up a system property or environment variable.
+ *
+ * <p>
+ * First looks in system properties. Then converts the name to
env-safe and looks in the system environment.
+ * Then returns the default if it can't be found.
+ *
+ * @param name The property name.
+ * @param def The default value if not found.
+ * @return The default value.
+ */
+ public static <T> T env(String name, T def) {
+ return env(name).map(x -> toType(x, def)).orElse(def);
+ }
+
+ /**
+ * Looks up a system property or environment variable.
+ *
+ * <p>
+ * First looks in system properties. Then converts the name to
env-safe and looks in the system environment.
+ * Then returns the default if it can't be found.
+ *
+ * @param name The property name.
+ * @return The value if found.
+ */
+ public static Optional<String> env(String name) {
+ String s = System.getProperty(name);
+ if (s == null)
+ s = System.getenv(envName(name));
+ return Optional.ofNullable(s);
+ }
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ private static <T> T toType(String s, T def) {
+ if (s == null || def == null)
+ return null;
+ Class<T> c = (Class<T>)def.getClass();
+ if (c == String.class)
+ return (T)s;
+ if (c.isEnum())
+ return (T)Enum.valueOf((Class<? extends Enum>) c, s);
+ Function<String,T> f = (Function<String,T>)ENV_FUNCTIONS.get(c);
+ if (f == null)
+ throw runtimeException("Invalid env type: {0}", c);
+ return f.apply(s);
+ };
+
+ private static final Map<Class<?>,Function<String,?>> ENV_FUNCTIONS =
new IdentityHashMap<>();
+ static {
+ ENV_FUNCTIONS.put(Boolean.class, x -> Boolean.valueOf(x));
+ ENV_FUNCTIONS.put(Charset.class, x -> Charset.forName(x));
+ }
+
+ private static final ConcurrentHashMap<String,String> PROPERTY_TO_ENV =
new ConcurrentHashMap<>();
+ private static String envName(String name) {
+ String name2 = PROPERTY_TO_ENV.get(name);
+ if (name2 == null) {
+ name2 = name.toUpperCase().replace(".", "_");
+ PROPERTY_TO_ENV.put(name, name2);
+ }
+ return name2;
+ }
+}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemUtils.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemUtils.java
index b66ce15..ec83ff7 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemUtils.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SystemUtils.java
@@ -41,79 +41,4 @@ public class SystemUtils {
SHUTDOWN_MESSAGES.add(message);
}
- /**
- * Returns the first non-<jk>null</jk> system property.
- *
- * @param def
- * The default value if none are found.
- * Can be <jk>null</jk>.
- * @param keys
- * The system properties to look for.
- * @return
- * The first non-<jk>null</jk> system property, or the default
value if non were found.
- */
- public static String getFirstString(String def, String...keys) {
- for (String key : keys) {
- String v = System.getProperty(key);
- if (v != null)
- return v;
- }
- return def;
- }
-
- /**
- * Returns the first non-<jk>null</jk> boolean system property.
- *
- * @param def
- * The default value if none are found.
- * Can be <jk>null</jk>.
- * @param keys
- * The system properties to look for.
- * @return
- * The first non-<jk>null</jk> system property, or the default
value if non were found.
- */
- public static Boolean getFirstBoolean(Boolean def, String...keys) {
- String s = getFirstString(null, keys);
- return s == null ? def : Boolean.parseBoolean(s);
- }
-
- /**
- * Returns the first non-<jk>null</jk> integer system property.
- *
- * @param def
- * The default value if none are found.
- * Can be <jk>null</jk>.
- * @param keys
- * The system properties to look for.
- * @return
- * The first non-<jk>null</jk> system property, or the default
value if non were found.
- */
- public static Integer getFirstInteger(Integer def, String...keys) {
- String s = getFirstString(null, keys);
- return s == null ? def : Integer.parseInt(s);
- }
-
- /**
- * Convenience method for setting a system property value.
- *
- * @param key The system property key.
- * @param value The system property value.
- * @param overwrite Overwrite the previous value if it exists.
- */
- public static void setProperty(String key, Object value, boolean
overwrite) {
- if (value != null) {
- if (System.getProperty(key) == null || overwrite)
- System.setProperty(key,
StringUtils.stringify(value));
- }
- }
-
- /**
- * Convenience method for setting a system property value.
- *
- * @param key The system property key.
- * @param value The system property value.
- */
- public static void setProperty(String key, Object value) {
- setProperty(key, value, true);
- }
}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
index ef0d782..5269e50 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.json;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
index 18725ad..04f0e0d 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.json;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
index 6741db9..ec4f05e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.jsonschema;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
index b433fc7..bd84c0a 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.msgpack;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
index 2022f0a..1f08e15 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.parser;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
index 642e064..21afafa 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.parser;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
index 74975ac..4c85335 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.parser;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
index ee0e93f..0a87189 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.serializer;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index dd663c6..e79a604 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.serializer;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.util.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
index 483cb3f..d9a9fed 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.serializer;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
index ca6d1ca..869ea44 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.uon;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
index 39bbbd3..c127146 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.uon;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
index c2b3987..aa5858e 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.urlencoding;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
index 191fc00..d055e6a 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.urlencoding;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
index 0fbeee9..4fdc029 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.xml;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
index e787bd7..3817741 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java
@@ -12,6 +12,8 @@
//
***************************************************************************************************************************
package org.apache.juneau.xml;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.lang.annotation.*;
import java.lang.reflect.*;
import java.nio.charset.*;
diff --git
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyLogger.java
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyLogger.java
index 52c96f0..1551039 100644
---
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyLogger.java
+++
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyLogger.java
@@ -13,9 +13,10 @@
package org.apache.juneau.microservice.jetty;
import static java.util.logging.Level.*;
+import static org.apache.juneau.internal.SystemEnv.*;
+
import java.util.logging.*;
-import org.apache.juneau.internal.*;
import org.eclipse.jetty.util.log.AbstractLogger;
/**
@@ -37,7 +38,7 @@ import org.eclipse.jetty.util.log.AbstractLogger;
*
*/
public class JettyLogger extends AbstractLogger {
- private static final boolean SHOW_SOURCE =
SystemUtils.getFirstBoolean(true, "org.eclipse.jetty.util.log.SOURCE",
"org.eclipse.jetty.util.log.javautil.SOURCE");
+ private static final boolean SHOW_SOURCE =
env("org.eclipse.jetty.util.log.SOURCE",
env("org.eclipse.jetty.util.log.javautil.SOURCE", true));
private Level configuredLevel;
private Logger logger;
diff --git
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
index 8e23c59..0067d05 100644
---
a/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
+++
b/juneau-microservice/juneau-microservice-jetty/src/main/java/org/apache/juneau/microservice/jetty/JettyMicroservice.java
@@ -12,9 +12,9 @@
//
***************************************************************************************************************************
package org.apache.juneau.microservice.jetty;
-import static org.apache.juneau.internal.SystemUtils.*;
import static org.apache.juneau.internal.ExceptionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
+
import java.io.*;
import java.net.*;
import java.util.*;
@@ -323,7 +323,9 @@ public class JettyMicroservice extends Microservice {
int[] ports = ObjectUtils.firstNonNull(builder.ports,
cf.getObjectWithDefault("Jetty/port", mf.getWithDefault("Jetty-Port", new
int[]{8000}, int[].class), int[].class));
int availablePort = findOpenPort(ports);
- setProperty("availablePort", availablePort, false);
+
+ if (System.getProperty("availablePort") == null)
+ System.setProperty("availablePort",
String.valueOf(availablePort));
String jettyXml = builder.jettyXml;
String jettyConfig = cf.getString("Jetty/config",
mf.getString("Jetty-Config", "jetty.xml"));
@@ -382,7 +384,8 @@ public class JettyMicroservice extends Microservice {
for (Map.Entry<String,Object> e :
builder.servletAttributes.entrySet())
addServletAttribute(e.getKey(), e.getValue());
- setProperty("juneau.serverPort", availablePort, false);
+ if (System.getProperty("juneau.serverPort") == null)
+ System.setProperty("juneau.serverPort",
String.valueOf(availablePort));
return server;
}
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
index 840e827..9f008bf 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContextBuilder.java
@@ -22,6 +22,7 @@ import static
org.apache.juneau.rest.logging.RestLoggingDetail.*;
import static java.util.Arrays.*;
import static java.util.Optional.*;
import static java.util.logging.Level.*;
+import static org.apache.juneau.internal.SystemEnv.*;
import java.lang.annotation.*;
import java.lang.reflect.Method;
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicRestLogger.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicRestLogger.java
index f602edf..264c5b1 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicRestLogger.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/BasicRestLogger.java
@@ -15,10 +15,6 @@ package org.apache.juneau.rest.logging;
import static org.apache.juneau.internal.ObjectUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.rest.logging.RestLoggingDetail.*;
-import static org.apache.juneau.Enablement.*;
-import static org.apache.juneau.SystemProperties.*;
-import static java.util.logging.Level.*;
-
import java.util.*;
import java.util.function.*;
import java.util.logging.*;
@@ -108,15 +104,15 @@ public class BasicRestLogger implements RestLogger {
* @param builder The builder object.
*/
public BasicRestLogger(RestLogger.Builder builder) {
- this.logger = firstNonNull(builder.logger,
Logger.getLogger(getProperty(String.class, SP_logger, "global")));
+ this.logger = builder.logger;
this.thrownStore = builder.thrownStore;
this.normalRules = builder.normalRules.toArray(new
RestLoggerRule[builder.normalRules.size()]);
this.debugRules = builder.debugRules.toArray(new
RestLoggerRule[builder.debugRules.size()]);
- this.enabled = firstNonNull(builder.enabled,
getProperty(Enablement.class, SP_enabled, ALWAYS));
- this.enabledTest = firstNonNull(builder.enabledTest, x ->
false);
- this.requestDetail = firstNonNull(builder.requestDetail,
getProperty(RestLoggingDetail.class, SP_requestDetail, STATUS_LINE));
- this.responseDetail = firstNonNull(builder.responseDetail,
getProperty(RestLoggingDetail.class, SP_responseDetail, STATUS_LINE));
- this.level = firstNonNull(builder.level,
getProperty(Level.class, SP_level, OFF));
+ this.enabled = builder.enabled;
+ this.enabledTest = builder.enabledTest;
+ this.requestDetail = builder.requestDetail;
+ this.responseDetail = builder.responseDetail;
+ this.level = builder.level;
}
/**
diff --git
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
index 003f477..9c0cc48 100644
---
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
+++
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/logging/RestLogger.java
@@ -12,7 +12,10 @@
//
***************************************************************************************************************************
package org.apache.juneau.rest.logging;
+import static java.util.logging.Level.*;
import static org.apache.juneau.Enablement.*;
+import static org.apache.juneau.internal.SystemEnv.*;
+import static org.apache.juneau.rest.logging.RestLoggingDetail.*;
import java.util.*;
import java.util.function.*;
@@ -161,6 +164,12 @@ public interface RestLogger {
*/
protected Builder() {
super(BasicRestLogger.class);
+ logger = Logger.getLogger(env(SP_logger, "global"));
+ enabled = env(SP_enabled, ALWAYS);
+ enabledTest = x -> false;
+ requestDetail = env(SP_requestDetail, STATUS_LINE);
+ responseDetail = env(SP_responseDetail, STATUS_LINE);
+ level = env(SP_level).map(Level::parse).orElse(OFF);
}
/**