You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2022/02/19 17:22:41 UTC
[juneau] branch master updated: Collections usage optimizations.
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 59ddb1d Collections usage optimizations.
59ddb1d is described below
commit 59ddb1d6bb5ac6863020e94540a0da13b3512059
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sat Feb 19 12:22:15 2022 -0500
Collections usage optimizations.
---
.../main/ConfigurablePropertyCodeGenerator.java | 2 +-
.../main/java/org/apache/juneau/config/Config.java | 17 ++-
.../apache/juneau/config/event/ConfigEvents.java | 10 +-
.../apache/juneau/config/internal/ConfigMap.java | 106 +++++++------------
.../apache/juneau/config/store/ConfigStore.java | 4 +-
.../org/apache/juneau/dto/html5/HtmlElement.java | 15 +--
.../apache/juneau/dto/jsonschema/JsonSchema.java | 9 +-
.../org/apache/juneau/dto/swagger/Operation.java | 10 +-
.../apache/juneau/dto/swagger/ParameterInfo.java | 5 +-
.../apache/juneau/dto/swagger/ResponseInfo.java | 7 +-
.../org/apache/juneau/dto/swagger/SchemaInfo.java | 2 +-
.../apache/juneau/dto/swagger/SecurityScheme.java | 2 +-
.../org/apache/juneau/dto/swagger/Swagger.java | 20 ++--
.../apache/juneau/dto/swagger/SwaggerElement.java | 4 +-
.../apache/juneau/dto/swagger/ui/SwaggerUI.java | 2 +-
.../java/org/apache/juneau/jena/RdfClassMeta.java | 6 +-
.../org/apache/juneau/jena/RdfParserSession.java | 4 +-
.../java/org/apache/juneau/jena/RdfSerializer.java | 2 +-
.../apache/juneau/jena/RdfSerializerSession.java | 4 +-
.../main/java/org/apache/juneau/BeanContext.java | 30 +++---
.../main/java/org/apache/juneau/BeanFilter.java | 10 +-
.../src/main/java/org/apache/juneau/BeanMap.java | 7 +-
.../src/main/java/org/apache/juneau/BeanMeta.java | 35 +++----
.../java/org/apache/juneau/BeanPropertyMeta.java | 10 +-
.../main/java/org/apache/juneau/BeanSession.java | 2 +-
.../src/main/java/org/apache/juneau/ClassMeta.java | 4 +-
.../src/main/java/org/apache/juneau/Context.java | 8 +-
.../assertions/FluentThrowableAssertion.java | 5 +-
.../java/org/apache/juneau/collections/OMap.java | 3 +-
.../main/java/org/apache/juneau/cp/BeanStore.java | 4 +-
.../org/apache/juneau/cp/DefaultClassList.java | 4 +-
.../org/apache/juneau/cp/DefaultSettingsMap.java | 4 +-
.../main/java/org/apache/juneau/cp/FileFinder.java | 2 +-
.../main/java/org/apache/juneau/cp/Messages.java | 7 +-
.../org/apache/juneau/encoders/EncoderSet.java | 4 +-
.../org/apache/juneau/html/HtmlDocSerializer.java | 28 ++---
.../org/apache/juneau/html/HtmlParserSession.java | 6 +-
.../apache/juneau/html/HtmlSerializerSession.java | 2 +-
.../juneau/http/header/BasicCsvArrayHeader.java | 6 +-
.../http/header/BasicEntityTagArrayHeader.java | 7 +-
.../org/apache/juneau/http/header/HeaderList.java | 18 ++--
.../org/apache/juneau/http/header/MediaRange.java | 2 +-
.../org/apache/juneau/http/header/MediaRanges.java | 2 +-
.../org/apache/juneau/http/header/MediaType.java | 5 +-
.../org/apache/juneau/http/header/StringRange.java | 2 +-
.../apache/juneau/http/header/StringRanges.java | 2 +-
.../java/org/apache/juneau/http/header/Thrown.java | 7 +-
.../java/org/apache/juneau/http/part/PartList.java | 20 ++--
.../org/apache/juneau/httppart/HttpPartSchema.java | 12 +--
.../juneau/httppart/bean/RequestBeanMeta.java | 6 +-
.../juneau/httppart/bean/ResponseBeanMeta.java | 10 +-
.../apache/juneau/internal/CollectionUtils.java | 115 +++++++++++++++++++++
.../apache/juneau/internal/DelegateBeanMap.java | 6 +-
.../org/apache/juneau/internal/ListBuilder.java | 3 +-
.../org/apache/juneau/internal/SetBuilder.java | 3 +-
.../org/apache/juneau/json/JsonParserSession.java | 2 +-
.../juneau/jsonschema/JsonSchemaGenerator.java | 3 +-
.../jsonschema/JsonSchemaGeneratorSession.java | 3 +-
.../juneau/msgpack/MsgPackSerializerSession.java | 5 +-
.../java/org/apache/juneau/parser/ParserSet.java | 4 +-
.../java/org/apache/juneau/parser/Position.java | 4 +-
.../org/apache/juneau/pojotools/PojoSearcher.java | 5 +-
.../org/apache/juneau/pojotools/PojoSorter.java | 13 +--
.../org/apache/juneau/pojotools/PojoViewer.java | 6 +-
.../org/apache/juneau/pojotools/SearchArgs.java | 3 +-
.../java/org/apache/juneau/pojotools/SortArgs.java | 6 +-
.../java/org/apache/juneau/pojotools/ViewArgs.java | 4 +-
.../java/org/apache/juneau/reflect/ClassInfo.java | 28 ++---
.../java/org/apache/juneau/reflect/MethodInfo.java | 3 +-
.../apache/juneau/serializer/SerializerSet.java | 7 +-
.../org/apache/juneau/swaps/MatchResultSwap.java | 4 +-
.../org/apache/juneau/uon/UonParserSession.java | 4 +-
.../java/org/apache/juneau/utils/PojoQuery.java | 5 +-
.../org/apache/juneau/utils/ReflectionMap.java | 22 ++--
.../java/org/apache/juneau/utils/SearchArgs.java | 14 +--
.../juneau/utils/StringExpressionMatcher.java | 5 +-
.../java/org/apache/juneau/xml/XmlClassMeta.java | 6 +-
.../org/apache/juneau/xml/XmlParserSession.java | 4 +-
.../java/org/apache/juneau/xml/XmlSerializer.java | 2 +-
.../juneau/examples/rest/ContentComboTestBase.java | 3 +-
.../org/apache/juneau/microservice/LogConfig.java | 6 +-
.../apache/juneau/microservice/Microservice.java | 5 +-
.../microservice/resources/DirectoryResource.java | 3 +-
.../microservice/resources/LogsResource.java | 3 +-
.../org/apache/juneau/rest/test/RestTestcase.java | 6 +-
.../microservice/jetty/JettyMicroservice.java | 11 +-
.../org/apache/juneau/rest/client/RestClient.java | 2 +-
.../org/apache/juneau/rest/client/RestRequest.java | 4 +-
.../apache/juneau/rest/mock/MockHttpSession.java | 4 +-
.../org/apache/juneau/rest/mock/MockLogger.java | 3 +-
.../apache/juneau/rest/mock/MockRestRequest.java | 6 +-
.../juneau/rest/mock/MockServletRequest.java | 11 +-
.../juneau/rest/mock/MockServletResponse.java | 4 +-
.../java/org/apache/juneau/rest/RestChildren.java | 4 +-
.../java/org/apache/juneau/rest/RestContext.java | 14 +--
.../java/org/apache/juneau/rest/RestOpContext.java | 10 +-
.../org/apache/juneau/rest/RestOperations.java | 6 +-
.../java/org/apache/juneau/rest/RestSession.java | 4 +-
.../org/apache/juneau/rest/arg/FormDataArg.java | 2 +-
.../java/org/apache/juneau/rest/arg/HeaderArg.java | 2 +-
.../java/org/apache/juneau/rest/arg/QueryArg.java | 2 +-
.../org/apache/juneau/rest/guard/RoleMatcher.java | 5 +-
.../juneau/rest/httppart/NamedAttributeList.java | 8 +-
.../juneau/rest/httppart/RequestAttributes.java | 3 +-
.../juneau/rest/httppart/RequestFormParams.java | 2 +-
.../juneau/rest/httppart/RequestHeaders.java | 2 +-
.../juneau/rest/httppart/RequestQueryParams.java | 2 +-
.../org/apache/juneau/rest/remote/RrpcServlet.java | 3 +-
.../org/apache/juneau/rest/stats/ThrownStore.java | 3 +-
.../rest/swagger/BasicSwaggerProviderSession.java | 14 +--
.../org/apache/juneau/rest/util/RestUtils.java | 2 +-
.../apache/juneau/rest/util/UrlPathMatcher.java | 3 +-
.../apache/juneau/pojotools/PojoSearcherTest.java | 1 -
113 files changed, 538 insertions(+), 419 deletions(-)
diff --git a/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java b/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
index f2c3ae9..3b58119 100644
--- a/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
+++ b/juneau-all/src/java/main/ConfigurablePropertyCodeGenerator.java
@@ -45,7 +45,7 @@ public class ConfigurablePropertyCodeGenerator {
public static void main(String[] args) throws Exception {
Map<Class<?>, Set<Method>> configMethods = new HashMap<>();
- Map<Class<?>,File> classMap = new LinkedHashMap<>();
+ Map<Class<?>,File> classMap = map();
for (String sp : SOURCE_PATHS) {
File f = new File("../"+sp+"/src/main/java");
Path p = f.toPath();
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
index cb2f6c5..6eb746e 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
@@ -17,7 +17,6 @@ import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
-import static java.util.Collections.*;
import java.io.*;
import java.lang.annotation.*;
@@ -115,7 +114,7 @@ public final class Config extends Context implements ConfigEventListener {
* <br>Each call constructs a new list.
*/
public synchronized static List<String> getCandidateSystemDefaultConfigNames() {
- List<String> l = new ArrayList<>();
+ List<String> l = list();
String s = System.getProperty("juneau.configFile");
if (s != null) {
@@ -204,7 +203,7 @@ public final class Config extends Context implements ConfigEventListener {
store = FileStore.DEFAULT;
serializer = SimpleJsonSerializer.DEFAULT;
parser = JsonParser.DEFAULT;
- mods = new LinkedHashMap<>();
+ mods = map();
mods(XorEncodeMod.INSTANCE);
varResolver = VarResolver.DEFAULT;
binaryLineLength = env("Config.binaryLineLength", -1);
@@ -224,7 +223,7 @@ public final class Config extends Context implements ConfigEventListener {
store = copyFrom.store;
serializer = copyFrom.serializer;
parser = copyFrom.parser;
- mods = new LinkedHashMap<>(copyFrom.mods);
+ mods = copyOf(copyFrom.mods);
varResolver = copyFrom.varResolver;
binaryLineLength = copyFrom.binaryLineLength;
binaryFormat = copyFrom.binaryFormat;
@@ -243,7 +242,7 @@ public final class Config extends Context implements ConfigEventListener {
store = copyFrom.store;
serializer = copyFrom.serializer;
parser = copyFrom.parser;
- mods = new LinkedHashMap<>(copyFrom.mods);
+ mods = copyOf(copyFrom.mods);
varResolver = copyFrom.varResolver;
binaryLineLength = copyFrom.binaryLineLength;
binaryFormat = copyFrom.binaryFormat;
@@ -544,7 +543,7 @@ public final class Config extends Context implements ConfigEventListener {
final VarResolverSession varSession;
private final ConfigMap configMap;
- private final List<ConfigEventListener> listeners = Collections.synchronizedList(new LinkedList<ConfigEventListener>());
+ private final List<ConfigEventListener> listeners = synced(linkedList());
@Override /* Context */
@@ -568,7 +567,7 @@ public final class Config extends Context implements ConfigEventListener {
serializer = builder.serializer;
parser = builder.parser;
beanSession = parser.getBeanContext().getSession();
- mods = unmodifiableMap(new LinkedHashMap<>(builder.mods));
+ mods = unmodifiable(copyOf(builder.mods));
varResolver = builder.varResolver;
varSession = varResolver
.copy()
@@ -915,7 +914,7 @@ public final class Config extends Context implements ConfigEventListener {
* @return The section names defined in this config.
*/
public Set<String> getSectionNames() {
- return Collections.unmodifiableSet(configMap.getSections());
+ return unmodifiable(configMap.getSections());
}
/**
@@ -1172,7 +1171,7 @@ public final class Config extends Context implements ConfigEventListener {
}
List<ConfigEventListener> getListeners() {
- return Collections.unmodifiableList(listeners);
+ return unmodifiable(listeners);
}
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvents.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvents.java
index 5776e08..86b79f8 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvents.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/event/ConfigEvents.java
@@ -35,10 +35,7 @@ public class ConfigEvents extends ArrayList<ConfigEvent> {
* @return <jk>true</jk> if the specified section was modified in this list of events.
*/
public boolean isSectionModified(String name) {
- for (ConfigEvent ce : this)
- if (eq(name, ce.getSection()))
- return true;
- return false;
+ return stream().anyMatch(x -> eq(name, x.getSection()));
}
/**
@@ -49,9 +46,6 @@ public class ConfigEvents extends ArrayList<ConfigEvent> {
* @return <jk>true</jk> if the specified key was modified in this list of events.
*/
public boolean isKeyModified(String section, String key) {
- for (ConfigEvent ce : this)
- if (eq(section, ce.getSection()) && eq(key, ce.getKey()))
- return true;
- return false;
+ return stream().anyMatch(x -> eq(section, x.getSection()) && eq(key, x.getKey()));
}
}
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
index ffcdd9b..a754842 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/internal/ConfigMap.java
@@ -41,16 +41,16 @@ public class ConfigMap implements ConfigStoreListener {
final String name; // The name of this object.
// Changes that have been applied since the last load.
- private final List<ConfigEvent> changes = Collections.synchronizedList(new ConfigEvents());
+ private final List<ConfigEvent> changes = synced(new ConfigEvents());
// Registered listeners listening for changes during saves or reloads.
- private final Set<ConfigEventListener> listeners = Collections.synchronizedSet(new HashSet<ConfigEventListener>());
+ private final Set<ConfigEventListener> listeners = synced(set());
// The parsed entries of this map with all changes applied.
- final Map<String,ConfigSection> entries = Collections.synchronizedMap(new LinkedHashMap<String,ConfigSection>());
+ final Map<String,ConfigSection> entries = synced(map());
// The original entries of this map before any changes were applied.
- final Map<String,ConfigSection> oentries = Collections.synchronizedMap(new LinkedHashMap<String,ConfigSection>());
+ final Map<String,ConfigSection> oentries = synced(map());
// Import statements in this config.
final List<Import> imports = new CopyOnWriteArrayList<>();
@@ -83,13 +83,12 @@ public class ConfigMap implements ConfigStoreListener {
entries.clear();
oentries.clear();
- for (Import ir : imports)
- ir.unregisterAll();
+ imports.forEach(x -> x.unregisterAll());
imports.clear();
- Map<String,ConfigMap> imports = new LinkedHashMap<>();
+ Map<String,ConfigMap> imports = map();
- List<String> lines = new LinkedList<>();
+ List<String> lines = linkedList();
try (Scanner scanner = new Scanner(contents)) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
@@ -122,7 +121,7 @@ public class ConfigMap implements ConfigStoreListener {
}
}
- List<Import> irl = new ArrayList<>(imports.size());
+ List<Import> irl = list(imports.size());
forEachReverse(listFrom(imports.values()), x -> irl.add(new Import(x).register(listeners)));
this.imports.addAll(irl);
@@ -165,13 +164,13 @@ public class ConfigMap implements ConfigStoreListener {
}
}
- lines = new ArrayList<>(lines);
+ lines = copyOf(lines);
int last = lines.size()-1;
int S1 = 1; // Looking for section.
int S2 = 2; // Found section, looking for start.
int state = S1;
- List<ConfigSection> sections = new ArrayList<>();
+ List<ConfigSection> sections = list();
for (int i = last; i >= 0; i--) {
String l = lines.get(i);
@@ -226,13 +225,8 @@ public class ConfigMap implements ConfigStoreListener {
ConfigSection cs = entries.get(section);
ConfigMapEntry ce = cs == null ? null : cs.entries.get(key);
- if (ce == null) {
- for (Import i : imports) {
- ce = i.getConfigMap().getEntry(section, key);
- if (ce != null)
- break;
- }
- }
+ if (ce == null)
+ ce = imports.stream().map(y -> y.getConfigMap().getEntry(section, key)).filter(y -> y != null).findFirst().orElse(null);
return ce;
}
@@ -266,16 +260,12 @@ public class ConfigMap implements ConfigStoreListener {
* An unmodifiable set of keys.
*/
public Set<String> getSections() {
- Set<String> s = null;
- if (imports.isEmpty()) {
- s = entries.keySet();
- } else {
- s = new LinkedHashSet<>();
- for (Import ir : imports)
- s.addAll(ir.getConfigMap().getSections());
+ Set<String> s = imports.isEmpty() ? entries.keySet() : set();
+ if (! imports.isEmpty()) {
+ imports.forEach(x -> s.addAll(x.getConfigMap().getSections()));
s.addAll(entries.keySet());
}
- return Collections.unmodifiableSet(s);
+ return unmodifiable(s);
}
/**
@@ -290,18 +280,14 @@ public class ConfigMap implements ConfigStoreListener {
*/
public Set<String> getKeys(String section) {
checkSectionName(section);
- Set<String> s = null;
ConfigSection cs = entries.get(section);
- if (imports.isEmpty()) {
- s = cs == null ? Collections.<String>emptySet() : cs.entries.keySet();
- } else {
- s = new LinkedHashSet<>();
- for (Import i : imports)
- s.addAll(i.getConfigMap().getKeys(section));
+ Set<String> s = imports.isEmpty() && cs != null ? cs.entries.keySet() : set();
+ if (! imports.isEmpty()) {
+ imports.forEach(x -> s.addAll(x.getConfigMap().getKeys(section)));
if (cs != null)
s.addAll(cs.entries.keySet());
}
- return Collections.unmodifiableSet(s);
+ return unmodifiable(s);
}
/**
@@ -315,10 +301,7 @@ public class ConfigMap implements ConfigStoreListener {
*/
public boolean hasSection(String section) {
checkSectionName(section);
- for (Import i : imports)
- if (i.getConfigMap().hasSection(section))
- return true;
- return entries.get(section) != null;
+ return entries.get(section) != null || imports.stream().anyMatch(x -> x.getConfigMap().hasSection(section));
}
//-----------------------------------------------------------------------------------------------------------------
@@ -563,8 +546,7 @@ public class ConfigMap implements ConfigStoreListener {
*/
public ConfigMap register(ConfigEventListener listener) {
listeners.add(listener);
- for (Import ir : imports)
- ir.register(listener);
+ imports.forEach(x -> x.register(listener));
return this;
}
@@ -582,8 +564,7 @@ public class ConfigMap implements ConfigStoreListener {
*/
public ConfigMap unregister(ConfigEventListener listener) {
listeners.remove(listener);
- for (Import ir : imports)
- ir.register(listener);
+ imports.forEach(x -> x.register(listener));
return this;
}
@@ -593,7 +574,7 @@ public class ConfigMap implements ConfigStoreListener {
* @return The listeners currently associated with this config map.
*/
public Set<ConfigEventListener> getListeners() {
- return Collections.unmodifiableSet(listeners);
+ return unmodifiable(listeners);
}
@Override /* ConfigStoreListener */
@@ -605,8 +586,7 @@ public class ConfigMap implements ConfigStoreListener {
load(newContents);
// Reapply our changes on top of the modifications.
- for (ConfigEvent ce : this.changes)
- applyChange(false, ce);
+ this.changes.forEach(y -> applyChange(false, y));
}
} catch (IOException e) {
throw runtimeException(e);
@@ -636,14 +616,12 @@ public class ConfigMap implements ConfigStoreListener {
public OMap asMap() {
OMap m = new OMap();
try (SimpleLock x = lock.read()) {
- for (Import i : imports)
- m.putAll(i.getConfigMap().asMap());
- for (ConfigSection cs : entries.values()) {
- Map<String,String> m2 = new LinkedHashMap<>();
- for (ConfigMapEntry ce : cs.entries.values())
- m2.put(ce.key, ce.value);
- m.put(cs.name, m2);
- }
+ imports.forEach(y -> m.putAll(y.getConfigMap().asMap()));
+ entries.values().forEach(z -> {
+ Map<String,String> m2 = map();
+ z.entries.values().forEach(y -> m2.put(y.key, y.value));
+ m.put(z.name, m2);
+ });
}
return m;
}
@@ -744,8 +722,7 @@ public class ConfigMap implements ConfigStoreListener {
private void signal(ConfigEvents changes) {
if (changes.size() > 0)
- for (ConfigEventListener l : listeners)
- l.onConfigChange(changes);
+ listeners.forEach(x -> x.onConfigChange(changes));
}
private ConfigEvents findDiffs(String updatedContents) throws IOException {
@@ -834,11 +811,11 @@ public class ConfigMap implements ConfigStoreListener {
final String name; // The config section name, or blank if the default section. Never null.
- final List<String> preLines = Collections.synchronizedList(new ArrayList<String>());
+ final List<String> preLines = synced(list());
private final String rawLine;
- final Map<String,ConfigMapEntry> oentries = Collections.synchronizedMap(new LinkedHashMap<String,ConfigMapEntry>());
- final Map<String,ConfigMapEntry> entries = Collections.synchronizedMap(new LinkedHashMap<String,ConfigMapEntry>());
+ final Map<String,ConfigMapEntry> oentries = synced(map());
+ final Map<String,ConfigMapEntry> entries = synced(map());
/**
* Constructor.
@@ -928,15 +905,14 @@ public class ConfigMap implements ConfigStoreListener {
class Import {
private final ConfigMap configMap;
- private final Map<ConfigEventListener,ConfigEventListener> listenerMap = Collections.synchronizedMap(new LinkedHashMap<>());
+ private final Map<ConfigEventListener,ConfigEventListener> listenerMap = synced(map());
Import(ConfigMap configMap) {
this.configMap = configMap;
}
synchronized Import register(Collection<ConfigEventListener> listeners) {
- for (ConfigEventListener l : listeners)
- register(l);
+ listeners.forEach(x -> register(x));
return this;
}
@@ -945,10 +921,7 @@ public class ConfigMap implements ConfigStoreListener {
@Override
public void onConfigChange(ConfigEvents events) {
ConfigEvents events2 = new ConfigEvents();
- for (ConfigEvent cev : events) {
- if (! hasEntry(cev.getSection(), cev.getKey()))
- events2.add(cev);
- }
+ events.stream().filter(x -> ! hasEntry(x.getSection(), x.getKey())).forEach(x -> events2.add(x));
if (events2.size() > 0)
listener.onConfigChange(events2);
}
@@ -964,8 +937,7 @@ public class ConfigMap implements ConfigStoreListener {
}
synchronized Import unregisterAll() {
- for (ConfigEventListener l : listenerMap.values())
- configMap.unregister(l);
+ listenerMap.values().forEach(x -> configMap.unregister(x));
listenerMap.clear();
return this;
}
diff --git a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
index c523a08..23de3ac 100644
--- a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
+++ b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.config.store;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.io.*;
import java.lang.annotation.*;
import java.lang.reflect.*;
@@ -198,7 +200,7 @@ public abstract class ConfigStore extends Context implements Closeable {
name = resolveName(name);
Set<ConfigStoreListener> s = listeners.get(name);
if (s == null) {
- s = Collections.synchronizedSet(Collections.newSetFromMap(new IdentityHashMap<ConfigStoreListener,Boolean>()));
+ s = synced(Collections.newSetFromMap(new IdentityHashMap<ConfigStoreListener,Boolean>()));
listeners.put(name, s);
}
s.add(l);
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
index 60e9d87..3ed5dc2 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/html5/HtmlElement.java
@@ -13,6 +13,7 @@
package org.apache.juneau.dto.html5;
import static org.apache.juneau.html.annotation.HtmlFormat.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.xml.annotation.XmlFormat.*;
import java.net.*;
@@ -79,14 +80,14 @@ public abstract class HtmlElement {
* @return This object.
*/
public HtmlElement attr(String key, Object val) {
- if (this.attrs == null)
- this.attrs = new LinkedHashMap<>();
+ if (attrs == null)
+ attrs = map();
if (val == null)
- this.attrs.remove(key);
+ attrs.remove(key);
else {
if ("url".equals(key) || "href".equals(key) || key.endsWith("action"))
val = StringUtils.toURI(val);
- this.attrs.put(key, val);
+ attrs.put(key, val);
}
return this;
}
@@ -110,9 +111,9 @@ public abstract class HtmlElement {
* @return This object.
*/
public HtmlElement attrUri(String key, Object val) {
- if (this.attrs == null)
- this.attrs = new LinkedHashMap<>();
- this.attrs.put(key, StringUtils.toURI(val));
+ if (attrs == null)
+ attrs = map();
+ attrs.put(key, StringUtils.toURI(val));
return this;
}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java
index 677be60..1f064f1 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/jsonschema/JsonSchema.java
@@ -13,6 +13,7 @@
package org.apache.juneau.dto.jsonschema;
import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.net.*;
@@ -345,7 +346,7 @@ public class JsonSchema {
*/
public JsonSchema addDefinition(String name, JsonSchema definition) {
if (this.definitions == null)
- this.definitions = new LinkedHashMap<>();
+ this.definitions = map();
this.definitions.put(name, definition);
setMasterOn(definition);
return this;
@@ -427,7 +428,7 @@ public class JsonSchema {
*/
public JsonSchema addProperties(JsonSchema...properties) {
if (this.properties == null)
- this.properties = new LinkedHashMap<>();
+ this.properties = map();
for (JsonSchema p : properties) {
if (p.getName() == null)
throw new BeanRuntimeException(JsonSchema.class,
@@ -478,7 +479,7 @@ public class JsonSchema {
*/
public JsonSchema addPatternProperties(JsonSchemaProperty...properties) {
if (this.patternProperties == null)
- this.patternProperties = new LinkedHashMap<>();
+ this.patternProperties = map();
for (JsonSchema p : properties) {
if (p.getName() == null)
throw new BeanRuntimeException(JsonSchema.class,
@@ -521,7 +522,7 @@ public class JsonSchema {
*/
public JsonSchema addDependency(String name, JsonSchema dependency) {
if (this.dependencies == null)
- this.dependencies = new LinkedHashMap<>();
+ this.dependencies = map();
this.dependencies.put(name, dependency);
setMasterOn(dependency);
return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
index c33eec4..dbe84cb 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Operation.java
@@ -173,7 +173,7 @@ public class Operation extends SwaggerElement {
if (copyFrom.parameters == null) {
this.parameters = null;
} else {
- this.parameters = new ArrayList<>();
+ this.parameters = list();
for (ParameterInfo p : copyFrom.parameters)
this.parameters.add(p.copy());
}
@@ -181,7 +181,7 @@ public class Operation extends SwaggerElement {
if (copyFrom.responses == null) {
this.responses = null;
} else {
- this.responses = new LinkedHashMap<>();
+ this.responses = map();
for (Map.Entry<String,ResponseInfo> e : copyFrom.responses.entrySet())
this.responses.put(e.getKey(), e.getValue().copy());
}
@@ -189,9 +189,9 @@ public class Operation extends SwaggerElement {
if (copyFrom.security == null) {
this.security = null;
} else {
- this.security = new ArrayList<>();
+ this.security = list();
for (Map<String,List<String>> m : copyFrom.security) {
- Map<String,List<String>> m2 = new LinkedHashMap<>();
+ Map<String,List<String>> m2 = map();
for (Map.Entry<String,List<String>> e : m.entrySet())
m2.put(e.getKey(), copyOf(e.getValue()));
this.security.add(m2);
@@ -1132,7 +1132,7 @@ public class Operation extends SwaggerElement {
* @return This object.
*/
public Operation security(String scheme, String...alternatives) {
- Map<String,List<String>> m = new LinkedHashMap<>();
+ Map<String,List<String>> m = map();
m.put(scheme, Arrays.asList(alternatives));
addSecurity(Collections.singletonList(m));
return this;
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
index 204f245..22176e4 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ParameterInfo.java
@@ -166,10 +166,7 @@ public class ParameterInfo extends SwaggerElement {
this.type = copyFrom.type;
this.uniqueItems = copyFrom.uniqueItems;
- if (copyFrom.examples == null)
- this.examples = null;
- else
- this.examples = new LinkedHashMap<>(copyFrom.examples);
+ this.examples = copyOf(copyFrom.examples);
}
/**
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
index 64c3a12..e9a1f3e 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ResponseInfo.java
@@ -85,15 +85,12 @@ public class ResponseInfo extends SwaggerElement {
this.description = copyFrom.description;
this.schema = copyFrom.schema == null ? null : copyFrom.schema.copy();
- if (copyFrom.examples == null)
- this.examples = null;
- else
- this.examples = new LinkedHashMap<>(copyFrom.examples);
+ this.examples = copyOf(copyFrom.examples);
if (copyFrom.headers == null) {
this.headers = null;
} else {
- this.headers = new LinkedHashMap<>();
+ this.headers = map();
for (Map.Entry<String,HeaderInfo> e : copyFrom.headers.entrySet())
this.headers.put(e.getKey(), e.getValue().copy());
}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
index 1da6bde..0aa5873 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SchemaInfo.java
@@ -148,7 +148,7 @@ public class SchemaInfo extends SwaggerElement {
if (copyFrom.properties == null) {
this.properties = null;
} else {
- this.properties = new LinkedHashMap<>();
+ this.properties = map();
for (Map.Entry<String,SchemaInfo> e : copyFrom.properties.entrySet())
this.properties.put(e.getKey(), e.getValue().copy());
}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
index 1fc443b..821f6d8 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SecurityScheme.java
@@ -94,7 +94,7 @@ public class SecurityScheme extends SwaggerElement {
this.flow = copyFrom.flow;
this.in = copyFrom.in;
this.name = copyFrom.name;
- this.scopes = copyFrom.scopes == null ? null : new LinkedHashMap<>(copyFrom.scopes);
+ this.scopes = copyOf(copyFrom.scopes);
this.tokenUrl = copyFrom.tokenUrl;
this.type = copyFrom.type;
}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
index 0bdbf6b..8bfbf85 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/Swagger.java
@@ -93,7 +93,7 @@ public class Swagger extends SwaggerElement {
if (copyFrom.definitions == null) {
this.definitions = null;
} else {
- this.definitions = new LinkedHashMap<>();
+ this.definitions = map();
for (Map.Entry<String,OMap> e : copyFrom.definitions.entrySet())
this.definitions.put(e.getKey(), new OMap(e.getValue()));
}
@@ -101,7 +101,7 @@ public class Swagger extends SwaggerElement {
if (copyFrom.paths == null) {
this.paths = null;
} else {
- this.paths = new LinkedHashMap<>();
+ this.paths = map();
for (Map.Entry<String,OperationMap> e : copyFrom.paths.entrySet()) {
OperationMap m = new OperationMap();
for (Map.Entry<String,Operation> e2 : e.getValue().entrySet())
@@ -113,7 +113,7 @@ public class Swagger extends SwaggerElement {
if (copyFrom.parameters == null) {
this.parameters = null;
} else {
- this.parameters = new LinkedHashMap<>();
+ this.parameters = map();
for (Map.Entry<String,ParameterInfo> e : copyFrom.parameters.entrySet())
this.parameters.put(e.getKey(), e.getValue().copy());
}
@@ -121,7 +121,7 @@ public class Swagger extends SwaggerElement {
if (copyFrom.responses == null) {
this.responses = null;
} else {
- this.responses = new LinkedHashMap<>();
+ this.responses = map();
for (Map.Entry<String,ResponseInfo> e : copyFrom.responses.entrySet())
this.responses.put(e.getKey(), e.getValue().copy());
}
@@ -129,9 +129,9 @@ public class Swagger extends SwaggerElement {
if (copyFrom.security == null) {
this.security = null;
} else {
- this.security = new ArrayList<>();
+ this.security = list();
for (Map<String,List<String>> m : copyFrom.security) {
- Map<String,List<String>> m2 = new LinkedHashMap<>();
+ Map<String,List<String>> m2 = map();
for (Map.Entry<String,List<String>> e : m.entrySet())
m2.put(e.getKey(), copyOf(e.getValue()));
this.security.add(m2);
@@ -141,7 +141,7 @@ public class Swagger extends SwaggerElement {
if (copyFrom.securityDefinitions == null) {
this.securityDefinitions = null;
} else {
- this.securityDefinitions = new LinkedHashMap<>();
+ this.securityDefinitions = map();
for (Map.Entry<String,SecurityScheme> e : copyFrom.securityDefinitions.entrySet())
this.securityDefinitions.put(e.getKey(), e.getValue().copy());
}
@@ -149,7 +149,7 @@ public class Swagger extends SwaggerElement {
if (copyFrom.tags == null) {
this.tags = null;
} else {
- this.tags = new LinkedHashSet<>();
+ this.tags = CollectionUtils.set();
for (Tag t : copyFrom.tags)
this.tags.add(t.copy());
}
@@ -1240,8 +1240,8 @@ public class Swagger extends SwaggerElement {
* @return This object.
*/
public Swagger security(String scheme, String...alternatives) {
- Map<String,List<String>> m = new LinkedHashMap<>();
- m.put(scheme, Arrays.asList(alternatives));
+ Map<String,List<String>> m = map();
+ m.put(scheme, alist(alternatives));
return addSecurity(Collections.singleton(m));
}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
index c7e1be9..24a89ea 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/SwaggerElement.java
@@ -38,7 +38,7 @@ public abstract class SwaggerElement {
SwaggerElement(SwaggerElement copyFrom) {
this.strict = copyFrom.strict;
- this.extra = copyFrom.extra == null ? null : new LinkedHashMap<>(copyFrom.extra);
+ this.extra = copyOf(copyFrom.extra);
}
/**
@@ -127,7 +127,7 @@ public abstract class SwaggerElement {
case "strict": return strict(value);
default:
if (extra == null)
- extra = new LinkedHashMap<>();
+ extra = map();
extra.put(property, value);
return this;
}
diff --git a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
index 7726d43..bc96801 100644
--- a/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
+++ b/juneau-core/juneau-dto/src/main/java/org/apache/juneau/dto/swagger/ui/SwaggerUI.java
@@ -396,7 +396,7 @@ public class SwaggerUI extends ObjectSwap<Swagger,Div> {
return null;
if (s.indexOf(',') == -1)
return singletonList(s);
- List<Object> l = new ArrayList<>();
+ List<Object> l = list();
String[] sa = s.split("\n");
for (int i = 0; i < sa.length; i++) {
if (i > 0)
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfClassMeta.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfClassMeta.java
index ef5bae9..7eafb5d 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfClassMeta.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfClassMeta.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.jena;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import org.apache.juneau.*;
@@ -40,8 +42,8 @@ public class RdfClassMeta extends ExtendedClassMeta {
*/
public RdfClassMeta(ClassMeta<?> cm, RdfMetaProvider mp) {
super(cm);
- List<Rdf> rdfs = new ArrayList<>();
- List<RdfSchema> schemas = new ArrayList<>();
+ List<Rdf> rdfs = list();
+ List<RdfSchema> schemas = list();
cm.forEachAnnotation(Rdf.class, x -> true, x -> rdfs.add(x));
cm.forEachAnnotation(RdfSchema.class, x -> true, x -> schemas.add(x));
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
index ca79314..9b34b5f 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
@@ -242,7 +242,7 @@ public class RdfParserSession extends ReaderParserSession {
if (isLooseCollections() && type.isCollectionOrArray()) {
Collection c = null;
if (type.isArray() || type.isArgs())
- c = new ArrayList();
+ c = list();
else
c = (
type.canCreateNewInstance(getOuter())
@@ -467,7 +467,7 @@ public class RdfParserSession extends ReaderParserSession {
o = parseIntoMap(r, m, eType.getKeyType(), eType.getValueType(), pMeta);
} else if (sType.isCollectionOrArray() || sType.isArgs()) {
if (sType.isArray() || sType.isArgs())
- o = new ArrayList();
+ o = list();
else
o = (sType.canCreateNewInstance(outer) ? (Collection<?>)sType.newInstance(outer) : new OList(this));
Resource r = n.asResource();
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 8d7111d..61b83e5 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -1111,7 +1111,7 @@ public class RdfSerializer extends WriterSerializer implements RdfMetaProvider {
@FluentSetter
public Builder namespaces(Namespace...values) {
if (namespaces == null)
- namespaces = new ArrayList<>();
+ namespaces = list();
Collections.addAll(namespaces, values);
return this;
}
diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
index b9ccbd8..7338e75 100644
--- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
+++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
@@ -468,7 +468,7 @@ public final class RdfSerializerSession extends WriterSerializerSession {
ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType();
- ArrayList<Map.Entry<Object,Object>> l = new ArrayList<>(m.entrySet());
+ ArrayList<Map.Entry<Object,Object>> l = listFrom(m.entrySet());
Collections.reverse(l);
for (Map.Entry<Object,Object> me : l) {
Object value = me.getValue();
@@ -533,7 +533,7 @@ public final class RdfSerializerSession extends WriterSerializerSession {
private RDFList serializeToList(Collection c, ClassMeta<?> type) throws IOException, SerializeException {
ClassMeta<?> elementType = type.getElementType();
- List<RDFNode> l = new ArrayList<>(c.size());
+ List<RDFNode> l = list(c.size());
for (Object e : c) {
l.add(serializeAnything(e, false, elementType, null, null, null));
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 5303994..376ff50 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -289,10 +289,10 @@ public class BeanContext extends Context {
beanConstructorVisibility = copyFrom.beanConstructorVisibility;
beanMethodVisibility = copyFrom.beanMethodVisibility;
beanFieldVisibility = copyFrom.beanFieldVisibility;
- beanDictionary = copyFrom.beanDictionary.isEmpty() ? null : new ArrayList<>(copyFrom.beanDictionary);
- swaps = copyFrom.swaps.isEmpty() ? null : new ArrayList<>(copyFrom.swaps);
- notBeanClasses = copyFrom.notBeanClasses.isEmpty() ? null : classSet(copyFrom.notBeanClasses);
- notBeanPackages = copyFrom.notBeanPackages.isEmpty() ? null : new TreeSet<>(copyFrom.notBeanPackages);
+ beanDictionary = listFrom(copyFrom.beanDictionary, true);
+ swaps = listFrom(copyFrom.swaps, true);
+ notBeanClasses = classSet(copyFrom.notBeanClasses, true);
+ notBeanPackages = sortedSetFrom(copyFrom.notBeanPackages, true);
disableBeansRequireSomeProperties = ! copyFrom.beansRequireSomeProperties;
beanMapPutReturnsOldValue = copyFrom.beanMapPutReturnsOldValue;
beansRequireDefaultConstructor = copyFrom.beansRequireDefaultConstructor;
@@ -327,10 +327,10 @@ public class BeanContext extends Context {
beanConstructorVisibility = copyFrom.beanConstructorVisibility;
beanMethodVisibility = copyFrom.beanMethodVisibility;
beanFieldVisibility = copyFrom.beanFieldVisibility;
- beanDictionary = copyFrom.beanDictionary == null ? null : new ArrayList<>(copyFrom.beanDictionary);
- swaps = copyFrom.swaps == null ? null : new ArrayList<>(copyFrom.swaps);
- notBeanClasses = copyFrom.notBeanClasses == null ? null : classSet(copyFrom.notBeanClasses);
- notBeanPackages = copyFrom.notBeanPackages == null ? null : new TreeSet<>(copyFrom.notBeanPackages);
+ beanDictionary = copyOf(copyFrom.beanDictionary);
+ swaps = copyOf(copyFrom.swaps);
+ notBeanClasses = classSet(copyFrom.notBeanClasses);
+ notBeanPackages = sortedSetFrom(copyFrom.notBeanPackages);
disableBeansRequireSomeProperties = copyFrom.disableBeansRequireSomeProperties;
beanMapPutReturnsOldValue = copyFrom.beanMapPutReturnsOldValue;
beansRequireDefaultConstructor = copyFrom.beansRequireDefaultConstructor;
@@ -1752,7 +1752,7 @@ public class BeanContext extends Context {
*/
public List<Class<?>> beanDictionary() {
if (beanDictionary == null)
- beanDictionary = new ArrayList<>();
+ beanDictionary = list();
return beanDictionary;
}
@@ -3095,7 +3095,7 @@ public class BeanContext extends Context {
*/
public List<Object> swaps() {
if (swaps == null)
- swaps = new ArrayList<>();
+ swaps = list();
return swaps;
}
@@ -3469,6 +3469,12 @@ public class BeanContext extends Context {
}
private static Set<Class<?>> classSet(Collection<Class<?>> copy) {
+ return classSet(copy, false);
+ }
+
+ private static Set<Class<?>> classSet(Collection<Class<?>> copy, boolean nullIfEmpty) {
+ if (copy == null || (nullIfEmpty && copy.isEmpty()))
+ return null;
Set<Class<?>> x = classSet();
x.addAll(copy);
return x;
@@ -4136,7 +4142,7 @@ public class BeanContext extends Context {
private final <T> ObjectSwap[] findObjectSwaps(Class<T> c) {
// Note: On first
if (c != null) {
- List<ObjectSwap> l = new ArrayList<>();
+ List<ObjectSwap> l = list();
for (ObjectSwap f : swapArray)
if (f.getNormalClass().isParentOf(c))
l.add(f);
@@ -4158,7 +4164,7 @@ public class BeanContext extends Context {
for (ObjectSwap f : swapArray) {
if (f.getNormalClass().isChildOf(c)) {
if (l == null)
- l = new ArrayList<>();
+ l = list();
l.add(f);
}
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java
index 7b3db96..c7a09f4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilter.java
@@ -642,7 +642,7 @@ public final class BeanFilter {
*/
public Builder dictionary(Class<?>...values) {
if (dictionary == null)
- dictionary = new ArrayList<>(Arrays.asList(values));
+ dictionary = list(values);
else for (Class<?> cc : values)
dictionary.add(cc);
return this;
@@ -728,10 +728,10 @@ public final class BeanFilter {
BeanFilter(Builder builder) {
this.beanClass = builder.beanClass;
this.typeName = builder.typeName;
- this.properties = new LinkedHashSet<>(builder.properties);
- this.excludeProperties = new LinkedHashSet<>(builder.excludeProperties);
- this.readOnlyProperties = new LinkedHashSet<>(builder.readOnlyProperties);
- this.writeOnlyProperties = new LinkedHashSet<>(builder.writeOnlyProperties);
+ this.properties = copyOf(builder.properties);
+ this.excludeProperties = copyOf(builder.excludeProperties);
+ this.readOnlyProperties = copyOf(builder.readOnlyProperties);
+ this.writeOnlyProperties = copyOf(builder.writeOnlyProperties);
this.example = builder.example;
this.implClass = builder.implClass;
this.interfaceClass = builder.interfaceClass;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index 631ddf4..d256259 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -13,6 +13,7 @@
package org.apache.juneau;
import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.io.*;
@@ -428,7 +429,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
public Set<String> keySet() {
if (meta.dynaProperty == null)
return meta.properties.keySet();
- Set<String> l = new LinkedHashSet<>();
+ Set<String> l = set();
for (String p : meta.properties.keySet())
if (! "*".equals(p))
l.add(p);
@@ -508,7 +509,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
public List<BeanPropertyValue> getValues(boolean keepNulls, BeanPropertyValue...prependVals) {
Collection<BeanPropertyMeta> properties = getProperties();
int capacity = ((! keepNulls) && properties.size() > 10) ? 10 : properties.size() + prependVals.length;
- List<BeanPropertyValue> l = new ArrayList<>(capacity);
+ List<BeanPropertyValue> l = list(capacity);
for (BeanPropertyValue v : prependVals)
if (v != null)
l.add(v);
@@ -573,7 +574,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> implements Delegate<T
// If this bean has a dyna-property, then we need to construct the entire set before returning.
// Otherwise, we can create an iterator without a new data structure.
if (meta.dynaProperty != null) {
- Set<Entry<String,Object>> s = new LinkedHashSet<>();
+ Set<Entry<String,Object>> s = set();
for (BeanPropertyMeta pMeta : getProperties()) {
if (pMeta.isDyna()) {
try {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index a47e74e..5b8320a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -197,7 +197,7 @@ public class BeanMeta<T> {
if (stopClass == null)
stopClass = Object.class;
- Map<String,BeanPropertyMeta.Builder> normalProps = new LinkedHashMap<>();
+ Map<String,BeanPropertyMeta.Builder> normalProps = map();
boolean hasBean = ci.hasAnnotation(ctx, Bean.class);
boolean hasBeanIgnore = ci.hasAnnotation(ctx, BeanIgnore.class);
@@ -280,13 +280,13 @@ public class BeanMeta<T> {
constructor.setAccessible();
// Explicitly defined property names in @Bean annotation.
- Set<String> fixedBeanProps = new LinkedHashSet<>();
- Set<String> bpi = new LinkedHashSet<>();
- Set<String> bpx = new LinkedHashSet<>();
- Set<String> bpro = new LinkedHashSet<>();
- Set<String> bpwo = new LinkedHashSet<>();
+ Set<String> fixedBeanProps = set();
+ Set<String> bpi = set();
+ Set<String> bpx = set();
+ Set<String> bpro = set();
+ Set<String> bpwo = set();
- Set<String> filterProps = new HashSet<>(); // Names of properties defined in @Bean(properties)
+ Set<String> filterProps = set(); // Names of properties defined in @Bean(properties)
if (beanFilter != null) {
@@ -429,10 +429,7 @@ public class BeanMeta<T> {
sortProperties = (ctx.isSortProperties() || (beanFilter != null && beanFilter.isSortProperties())) && fixedBeanProps.isEmpty();
- if (sortProperties)
- properties = new TreeMap<>();
- else
- properties = new LinkedHashMap<>();
+ properties = sortProperties ? sortedMap() : map();
if (beanFilter != null && beanFilter.getTypeName() != null)
dictionaryName = beanFilter.getTypeName();
@@ -456,7 +453,7 @@ public class BeanMeta<T> {
if (bpi.isEmpty() && ! bfbpi.isEmpty()) {
// Only include specified properties if BeanFilter.includeKeys is specified.
// Note that the order must match includeKeys.
- Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<>();
+ Map<String,BeanPropertyMeta> properties2 = map();
for (String k : bfbpi) {
if (properties.containsKey(k))
properties2.put(k, properties.remove(k));
@@ -472,7 +469,7 @@ public class BeanMeta<T> {
}
if (! bpi.isEmpty()) {
- Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<>();
+ Map<String,BeanPropertyMeta> properties2 = map();
for (String k : bpi) {
if (properties.containsKey(k))
properties2.put(k, properties.remove(k));
@@ -485,7 +482,7 @@ public class BeanMeta<T> {
hiddenProperties.put(ep, properties.remove(ep));
if (pNames != null) {
- Map<String,BeanPropertyMeta> properties2 = new LinkedHashMap<>();
+ Map<String,BeanPropertyMeta> properties2 = map();
for (String k : pNames) {
if (properties.containsKey(k))
properties2.put(k, properties.get(k));
@@ -530,8 +527,8 @@ public class BeanMeta<T> {
* Returns null if the field isn't a valid property.
*/
private String findPropertyName(Field f) {
- List<Beanp> lp = new ArrayList<>();
- List<Name> ln = new ArrayList<>();
+ List<Beanp> lp = list();
+ List<Name> ln = list();
ctx.forEachAnnotation(Beanp.class, f, x -> true, x -> lp.add(x));
ctx.forEachAnnotation(Name.class, f, x -> true, x -> ln.add(x));
String name = bpName(lp, ln);
@@ -666,8 +663,8 @@ public class BeanMeta<T> {
if (t != null && t.value())
continue;
- List<Beanp> lp = new ArrayList<>();
- List<Name> ln = new ArrayList<>();
+ List<Beanp> lp = list();
+ List<Name> ln = list();
ctx.forEachAnnotation(Beanp.class, m.inner(), x -> true, x -> lp.add(x));
ctx.forEachAnnotation(Name.class, m.inner(), x -> true, x -> ln.add(x));
if (! (m.isVisible(v) || lp.size() > 0 || ln.size() > 0))
@@ -824,7 +821,7 @@ public class BeanMeta<T> {
public Collection<BeanPropertyMeta> getPropertyMetas(final String...pNames) {
if (pNames == null)
return getPropertyMetas();
- List<BeanPropertyMeta> l = new ArrayList<>(pNames.length);
+ List<BeanPropertyMeta> l = list(pNames.length);
for (int i = 0; i < pNames.length; i++)
l.add(getPropertyMeta(pNames[i]));
return l;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 61c0d89..b57db58 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -181,7 +181,7 @@ public final class BeanPropertyMeta {
canWrite |= (field != null || setter != null);
if (innerField != null) {
- List<Beanp> lp = new ArrayList<>();
+ List<Beanp> lp = list();
bc.forEachAnnotation(Beanp.class, innerField, x -> true, x -> lp.add(x));
if (field != null || lp.size() > 0) {
// Only use field type if it's a bean property or has @Beanp annotation.
@@ -203,7 +203,7 @@ public final class BeanPropertyMeta {
}
if (getter != null) {
- List<Beanp> lp = new ArrayList<>();
+ List<Beanp> lp = list();
bc.forEachAnnotation(Beanp.class, getter, x -> true, x -> lp.add(x));
if (rawTypeMeta == null)
rawTypeMeta = bc.resolveClassMeta(last(lp), getter.getGenericReturnType(), typeVarImpls);
@@ -221,7 +221,7 @@ public final class BeanPropertyMeta {
}
if (setter != null) {
- List<Beanp> lp = new ArrayList<>();
+ List<Beanp> lp = list();
bc.forEachAnnotation(Beanp.class, setter, x -> true, x -> lp.add(x));
if (rawTypeMeta == null)
rawTypeMeta = bc.resolveClassMeta(last(lp), setter.getGenericParameterTypes()[0], typeVarImpls);
@@ -629,7 +629,7 @@ public final class BeanPropertyMeta {
return l;
} else if (rawTypeMeta.isCollection()) {
Collection c = (Collection)o;
- List l = new ArrayList(c.size());
+ List l = list(c.size());
ClassMeta childType = rawTypeMeta.getElementType();
for (Object cc : c)
l.add(applyChildPropertiesFilter(session, childType, cc));
@@ -904,7 +904,7 @@ public final class BeanPropertyMeta {
public Map<String,Object> getDynaMap(Object bean) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {
if (isDyna) {
if (extraKeys != null && getter != null && ! isDynaGetterMap) {
- Map<String,Object> m = new LinkedHashMap<>();
+ Map<String,Object> m = map();
for (String key : (Collection<String>)extraKeys.invoke(bean))
m.put(key, getter.invoke(bean, key));
return m;
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 23c992c..1e6a789 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
@@ -756,7 +756,7 @@ public class BeanSession extends ContextSession {
// Target type is some sort of Collection
if (to.isCollection()) {
try {
- Collection l = to.canCreateNewInstance(outer) ? (Collection)to.newInstance(outer) : to.isSet() ? new LinkedHashSet<>() : new OList(this);
+ Collection l = to.canCreateNewInstance(outer) ? (Collection)to.newInstance(outer) : to.isSet() ? set() : new OList(this);
ClassMeta elementType = to.getElementType();
if (from.isArray())
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index 5b3133c..61574c4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -323,7 +323,7 @@ public final class ClassMeta<T> implements Type {
stringConstructor = null;
Object primitiveDefault = null;
Map<String,Method>
- publicMethods = new LinkedHashMap<>();
+ publicMethods = map();
ClassMeta<?>
keyType = null,
valueType = null,
@@ -2106,7 +2106,7 @@ public final class ClassMeta<T> implements Type {
info.forEachAnnotation(BeanContext.DEFAULT, type, filter, action);
return this;
}
- List<A> l = new ArrayList<>();
+ List<A> l = list();
info.forEachAnnotation(beanContext, type, x-> true, x -> l.add(x));
array = (A[])Array.newInstance(type, l.size());
for (int i = 0; i < l.size(); i++)
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 501b134..1fae783 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
@@ -141,7 +141,7 @@ public abstract class Context implements AnnotationProvider {
List<Annotation> annotations;
Cache<HashKey,? extends Context> cache;
- private final List<Object> builders = new ArrayList<>();
+ private final List<Object> builders = list();
private final AnnotationWorkList applied = AnnotationWorkList.create();
/**
@@ -168,7 +168,7 @@ public abstract class Context implements AnnotationProvider {
protected Builder(Context copyFrom) {
debug = copyFrom.debug;
type = copyFrom.getClass();
- annotations = copyFrom.annotations.isEmpty() ? null : new ArrayList<>(copyFrom.annotations);
+ annotations = listFrom(copyFrom.annotations, true);
registerBuilders(this);
}
@@ -180,7 +180,7 @@ public abstract class Context implements AnnotationProvider {
protected Builder(Builder copyFrom) {
debug = copyFrom.debug;
type = copyFrom.type;
- annotations = copyFrom.annotations == null ? null : new ArrayList<>(copyFrom.annotations);
+ annotations = listFrom(copyFrom.annotations, true);
registerBuilders(this);
}
@@ -697,7 +697,7 @@ public abstract class Context implements AnnotationProvider {
@FluentSetter
public Builder annotations(Annotation...values) {
if (annotations == null)
- annotations = new ArrayList<>();
+ annotations = list();
Collections.addAll(annotations, values);
return this;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java
index 89c78be..cc68a3c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentThrowableAssertion.java
@@ -14,6 +14,7 @@ package org.apache.juneau.assertions;
import static org.apache.juneau.assertions.Assertions.*;
import static java.util.Collections.*;
+import static org.apache.juneau.internal.CollectionUtils.list;
import static org.apache.juneau.internal.ThrowableUtils.*;
import java.io.*;
@@ -180,7 +181,7 @@ public class FluentThrowableAssertion<T extends Throwable,R> extends FluentObjec
if (t.getCause() == null)
l = singletonList(t.getMessage());
else {
- l = new ArrayList<>();
+ l = list();
while (t != null) {
l.add(t.getMessage());
t = t.getCause();
@@ -223,7 +224,7 @@ public class FluentThrowableAssertion<T extends Throwable,R> extends FluentObjec
if (t.getCause() == null)
l = singletonList(t.getMessage());
else {
- l = new ArrayList<>();
+ l = list();
while (t != null) {
l.add(t.getLocalizedMessage());
t = t.getCause();
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
index f09843d..6464eaf 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/OMap.java
@@ -14,6 +14,7 @@ package org.apache.juneau.collections;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ConsumerUtils.*;
import java.io.*;
@@ -1924,7 +1925,7 @@ public class OMap extends LinkedHashMap<String,Object> {
public Set<String> keySet() {
if (inner == null)
return super.keySet();
- LinkedHashSet<String> s = new LinkedHashSet<>();
+ LinkedHashSet<String> s = set();
s.addAll(inner.keySet());
s.addAll(super.keySet());
return s;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
index 388f77f..a67bc4d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/BeanStore.java
@@ -297,8 +297,8 @@ public class BeanStore {
readOnly = builder.readOnly;
threadSafe = builder.threadSafe;
lock = threadSafe ? new SimpleReadWriteLock() : SimpleReadWriteLock.NO_OP;
- entries = threadSafe ? new ConcurrentLinkedDeque<>() : new LinkedList<>();
- unnamedEntries = threadSafe ? new ConcurrentHashMap<>() : new LinkedHashMap<>();
+ entries = threadSafe ? new ConcurrentLinkedDeque<>() : linkedList();
+ unnamedEntries = threadSafe ? new ConcurrentHashMap<>() : map();
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultClassList.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultClassList.java
index 4bd504e..d1a4d08 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultClassList.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultClassList.java
@@ -64,7 +64,7 @@ public class DefaultClassList {
* Constructor.
*/
protected DefaultClassList() {
- entries = new ArrayList<>();
+ entries = list();
}
/**
@@ -73,7 +73,7 @@ public class DefaultClassList {
* @param value The object to copy.
*/
public DefaultClassList(DefaultClassList value) {
- entries = new ArrayList<>(value.entries);
+ entries = copyOf(value.entries);
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultSettingsMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultSettingsMap.java
index 4d03d66..3af2869 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultSettingsMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/DefaultSettingsMap.java
@@ -55,7 +55,7 @@ public class DefaultSettingsMap {
* Constructor.
*/
protected DefaultSettingsMap() {
- entries = new LinkedHashMap<>();
+ entries = map();
}
/**
@@ -64,7 +64,7 @@ public class DefaultSettingsMap {
* @param value The object to copy.
*/
public DefaultSettingsMap(DefaultSettingsMap value) {
- entries = new LinkedHashMap<>(value.entries);
+ entries = copyOf(value.entries);
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
index d7d4139..024f08d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/FileFinder.java
@@ -135,7 +135,7 @@ public interface FileFinder {
*/
protected Builder(BeanStore beanStore) {
super(BasicFileFinder.class, beanStore);
- roots = new LinkedHashSet<>();
+ roots = set();
cachingLimit = -1;
include = list(Pattern.compile(".*"));
exclude = list();
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
index be05b10..b4caf6f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.java
@@ -13,6 +13,7 @@
package org.apache.juneau.cp;
import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ObjectUtils.*;
import static org.apache.juneau.internal.ResourceBundleUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
@@ -177,7 +178,7 @@ public class Messages extends ResourceBundle {
super(Messages.class, BeanStore.INSTANCE);
this.forClass = forClass;
this.name = forClass.getSimpleName();
- locations = new ArrayList<>();
+ locations = list();
locale = Locale.getDefault();
}
@@ -403,7 +404,7 @@ public class Messages extends ResourceBundle {
}
}
- this.keyMap = Collections.unmodifiableMap(new LinkedHashMap<>(keyMap));
+ this.keyMap = unmodifiable(copyOf(keyMap));
this.rbKeys = rb == null ? Collections.emptySet() : rb.keySet();
}
@@ -438,7 +439,7 @@ public class Messages extends ResourceBundle {
* @return The set of all keys in the resource bundle with the prefix.
*/
public Set<String> keySet(String prefix) {
- Set<String> set = new LinkedHashSet<>();
+ Set<String> set = set();
for (String s : keySet()) {
if (s.equals(prefix) || (s.startsWith(prefix) && s.charAt(prefix.length()) == '.'))
set.add(s);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
index ffdf693..f4bf027 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/encoders/EncoderSet.java
@@ -17,8 +17,6 @@ import static org.apache.juneau.http.HttpHeaders.*;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static java.util.stream.Collectors.*;
-import static java.util.Collections.*;
-
import java.util.*;
import java.util.concurrent.*;
@@ -329,7 +327,7 @@ public final class EncoderSet {
}
}
- this.encodings = unmodifiableList(lc);
+ this.encodings = unmodifiable(lc);
this.encodingsEncoders = l.toArray(new Encoder[l.size()]);
}
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 8d71f46..95b96bd 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
@@ -275,7 +275,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> aside() {
if (aside == null)
- aside = new ArrayList<>();
+ aside = list();
return aside;
}
@@ -353,7 +353,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> footer() {
if (footer == null)
- footer = new ArrayList<>();
+ footer = list();
return footer;
}
@@ -394,7 +394,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> head() {
if (head == null)
- head = new ArrayList<>();
+ head = list();
return head;
}
@@ -436,7 +436,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> header() {
if (header == null)
- header = new ArrayList<>();
+ header = list();
return header;
}
@@ -481,7 +481,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> nav() {
if (nav == null)
- nav = new ArrayList<>();
+ nav = list();
return nav;
}
@@ -543,7 +543,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> navlinks() {
if (navlinks == null)
- navlinks = new ArrayList<>();
+ navlinks = list();
return navlinks;
}
@@ -634,7 +634,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> script() {
if (script == null)
- script = new ArrayList<>();
+ script = list();
return script;
}
@@ -672,7 +672,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> style() {
if (style == null)
- style = new ArrayList<>();
+ style = list();
return style;
}
@@ -703,7 +703,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<String> stylesheet() {
if (stylesheet == null)
- stylesheet = new ArrayList<>();
+ stylesheet = list();
return stylesheet;
}
@@ -802,7 +802,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
*/
public List<Class<? extends HtmlWidget>> widgets() {
if (widgets == null)
- widgets = new ArrayList<>();
+ widgets = list();
return widgets;
}
@@ -1571,15 +1571,15 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
//-----------------------------------------------------------------------------------------------------------------
private static <T> List<T> copy(List<T> s) {
- return s == null || s.isEmpty() ? null : new ArrayList<>(s);
+ return s == null || s.isEmpty() ? null : copyOf(s);
}
private static <T> List<T> copy(T[] s) {
- return s.length == 0 ? null : new ArrayList<>(Arrays.asList(s));
+ return s.length == 0 ? null : list(s);
}
private List<String> merge(List<String> old, String[] newValues) {
- List<String> x = new ArrayList<>(newValues.length);
+ List<String> x = list(newValues.length);
for (String s : newValues) {
if ("NONE".equals(s)) {
if (old != null)
@@ -1595,7 +1595,7 @@ public class HtmlDocSerializer extends HtmlStrippedDocSerializer {
}
private List<String> mergeNavLinks(List<String> old, String[] newValues) {
- List<String> x = new ArrayList<>(newValues.length);
+ List<String> x = list(newValues.length);
for (String s : newValues) {
if ("NONE".equals(s)) {
if (old != null)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
index c511356..800ab56 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlParserSession.java
@@ -398,7 +398,7 @@ public final class HtmlParserSession extends XmlParserSession {
o = parseTableIntoCollection(r, (Collection)(sType.canCreateNewInstance(outer)
? sType.newInstance(outer) : new OList(this)), sType, pMeta);
else if (sType.isArray() || sType.isArgs()) {
- ArrayList l = (ArrayList)parseTableIntoCollection(r, new ArrayList(), sType, pMeta);
+ ArrayList l = (ArrayList)parseTableIntoCollection(r, list(), sType, pMeta);
o = toArray(sType, l);
}
else
@@ -421,7 +421,7 @@ public final class HtmlParserSession extends XmlParserSession {
o = parseIntoCollection(r, (Collection)(sType.canCreateNewInstance(outer)
? sType.newInstance(outer) : new OList(this)), sType, pMeta);
else if (sType.isArray() || sType.isArgs())
- o = toArray(sType, parseIntoCollection(r, new ArrayList(), sType, pMeta));
+ o = toArray(sType, parseIntoCollection(r, list(), sType, pMeta));
else
isValid = false;
skipTag(r, xUL);
@@ -555,7 +555,7 @@ public final class HtmlParserSession extends XmlParserSession {
ClassMeta<E> type, BeanPropertyMeta pMeta) throws IOException, ParseException, ExecutableException, XMLStreamException {
HtmlTag tag = nextTag(r, TR);
- List<String> keys = new ArrayList<>();
+ List<String> keys = list();
while (true) {
tag = nextTag(r, TH, xTR);
if (tag == xTR)
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 04a27ac..9d0353b 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
@@ -920,7 +920,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
// If it's a non-bean map, only use table if all entries are also maps.
if (cm1.isMap() && ! cm1.isBeanMap()) {
- Set<Object> set = new LinkedHashSet<>();
+ Set<Object> set = CollectionUtils.set();
for (Object o : c) {
o = swap(swap, o);
if (! canIgnoreValue(cm1, null, o)) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java
index 151825d..dc2f570 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicCsvArrayHeader.java
@@ -14,8 +14,6 @@ package org.apache.juneau.http.header;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
-import static java.util.Collections.*;
-
import java.util.*;
import java.util.function.*;
@@ -121,7 +119,7 @@ public class BasicCsvArrayHeader extends BasicHeader {
*/
public BasicCsvArrayHeader(String name, List<String> value) {
super(name, serialize(value));
- this.value = value == null ? null : unmodifiableList(value);
+ this.value = unmodifiable(value);
this.supplier = null;
}
@@ -211,6 +209,6 @@ public class BasicCsvArrayHeader extends BasicHeader {
}
private List<String> parse(String value) {
- return value == null ? null : unmodifiableList(Arrays.asList(split(value)));
+ return value == null ? null : unmodifiable(Arrays.asList(split(value)));
}
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java
index 86535b2..bbed240 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/BasicEntityTagArrayHeader.java
@@ -14,8 +14,6 @@ package org.apache.juneau.http.header;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
-import static java.util.Collections.*;
-
import java.util.*;
import java.util.function.*;
@@ -121,7 +119,8 @@ public class BasicEntityTagArrayHeader extends BasicHeader {
*/
public BasicEntityTagArrayHeader(String name, List<EntityTag> value) {
super(name, serialize(value));
- this.value = value == null ? null : unmodifiableList(value);
+ int todo; // Replace with arrays.
+ this.value = unmodifiable(value);
this.supplier = null;
}
@@ -165,7 +164,7 @@ public class BasicEntityTagArrayHeader extends BasicHeader {
private List<EntityTag> parse(String value) {
if (value == null)
return null;
- List<EntityTag> list = new ArrayList<>();
+ List<EntityTag> list = list();
split(value, x -> list.add(EntityTag.of(x)));
return list;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
index 8d060c2..eb6db7e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/HeaderList.java
@@ -265,7 +265,7 @@ public class HeaderList {
*/
protected Builder() {
super(HeaderList.class, BeanStore.INSTANCE);
- entries = new ArrayList<>();
+ entries = list();
}
/**
@@ -275,9 +275,7 @@ public class HeaderList {
*/
protected Builder(HeaderList copyFrom) {
super(copyFrom.getClass(), BeanStore.INSTANCE);
- entries = new ArrayList<>(copyFrom.entries.length);
- for (int i = 0; i < copyFrom.entries.length; i++)
- entries.add(copyFrom.entries[i]);
+ entries = list(copyFrom.entries);
caseSensitive = copyFrom.caseSensitive;
}
@@ -288,8 +286,8 @@ public class HeaderList {
*/
protected Builder(Builder copyFrom) {
super(copyFrom);
- entries = new ArrayList<>(copyFrom.entries);
- defaultEntries = copyFrom.defaultEntries == null ? null : new ArrayList<>(copyFrom.defaultEntries);
+ entries = copyOf(copyFrom.entries);
+ defaultEntries = copyOf(copyFrom.defaultEntries);
varResolver = copyFrom.varResolver;
caseSensitive = copyFrom.caseSensitive;
}
@@ -772,7 +770,7 @@ public class HeaderList {
if (value != null) {
boolean replaced = false;
if (defaultEntries == null)
- defaultEntries = new ArrayList<>();
+ defaultEntries = list();
for (int i = 0, j = defaultEntries.size(); i < j; i++) {
Header x = defaultEntries.get(i);
if (eq(x.getName(), value.getName())) {
@@ -845,7 +843,7 @@ public class HeaderList {
if (values != null) {
if (defaultEntries == null)
- defaultEntries = new ArrayList<>();
+ defaultEntries = list();
for (int i1 = 0, j1 = values.size(); i1 < j1; i1++) {
Header h = values.get(i1);
if (h != null) {
@@ -1300,7 +1298,7 @@ public class HeaderList {
first = x;
else {
if (rest == null)
- rest = new ArrayList<>();
+ rest = list();
rest.add(x);
}
}
@@ -1359,7 +1357,7 @@ public class HeaderList {
first = x;
else {
if (rest == null)
- rest = new ArrayList<>();
+ rest = list();
rest.add(x);
}
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRange.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRange.java
index 3ed1d7e..b3d7303 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRange.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRange.java
@@ -104,7 +104,7 @@ public class MediaRange extends MediaType {
* @return The optional list of extensions, never <jk>null</jk>.
*/
public List<NameValuePair> getExtensions() {
- return Collections.unmodifiableList(Arrays.asList(extensions));
+ return unmodifiable(alist(extensions));
}
@Override /* Object */
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRanges.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRanges.java
index f80e08c..d9ce777 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRanges.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaRanges.java
@@ -218,7 +218,7 @@ public class MediaRanges {
* @return The media ranges that make up this object.
*/
public List<MediaRange> getRanges() {
- return Collections.unmodifiableList(Arrays.asList(ranges));
+ return unmodifiable(alist(ranges));
}
private static HeaderElement[] parse(String value) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaType.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaType.java
index 22a6cc0..4c477e9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaType.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/MediaType.java
@@ -13,6 +13,7 @@
package org.apache.juneau.http.header;
import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ObjectUtils.*;
import static org.apache.juneau.http.HttpParts.*;
@@ -251,7 +252,7 @@ public class MediaType implements Comparable<MediaType> {
* @return An unmodifiable list of subtype fragments. Never <jk>null</jk>.
*/
public final List<String> getSubTypes() {
- return Collections.unmodifiableList(Arrays.asList(subTypes));
+ return unmodifiable(alist(subTypes));
}
/**
@@ -363,7 +364,7 @@ public class MediaType implements Comparable<MediaType> {
* @return The map of additional parameters, or an empty map if there are no parameters.
*/
public List<NameValuePair> getParameters() {
- return Collections.unmodifiableList(Arrays.asList(parameters));
+ return unmodifiable(alist(parameters));
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRange.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRange.java
index 6c3fc8c..238c09d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRange.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRange.java
@@ -137,7 +137,7 @@ public class StringRange {
* @return The optional list of extensions, never <jk>null</jk>.
*/
public List<NameValuePair> getExtensions() {
- return Collections.unmodifiableList(Arrays.asList(extensions));
+ return unmodifiable(alist(extensions));
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRanges.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRanges.java
index 88ec4e6..f2e4938 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRanges.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/StringRanges.java
@@ -200,7 +200,7 @@ public class StringRanges {
* @return The string ranges that make up this object.
*/
public List<StringRange> getRanges() {
- return Collections.unmodifiableList(Arrays.asList(ranges));
+ return unmodifiable(alist(ranges));
}
private static HeaderElement[] parse(String value) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java
index 0644d21..bd8027f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Thrown.java
@@ -15,7 +15,6 @@ package org.apache.juneau.http.header;
import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.internal.ClassUtils.*;
import static org.apache.juneau.internal.CollectionUtils.*;
-import static java.util.Collections.*;
import static java.util.stream.Collectors.*;
import java.util.*;
@@ -110,9 +109,9 @@ public class Thrown extends BasicCsvArrayHeader {
*/
public Thrown(String value) {
super(NAME, value);
- List<Part> l = new ArrayList<>();
+ List<Part> l = list();
split(value, x -> l.add(new Part(x)));
- this.value = value == null ? null : unmodifiableList(l);
+ this.value = value == null ? null : unmodifiable(l);
}
/**
@@ -123,7 +122,7 @@ public class Thrown extends BasicCsvArrayHeader {
*/
public Thrown(List<Part> value) {
super(NAME, join(value, ", "));
- this.value = value == null ? null : unmodifiableList(value);
+ this.value = unmodifiable(value);
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
index d21bb2a..4bd7c95 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/part/PartList.java
@@ -252,7 +252,7 @@ public class PartList {
*/
protected Builder() {
super(PartList.class);
- entries = new ArrayList<>();
+ entries = list();
}
/**
@@ -262,9 +262,7 @@ public class PartList {
*/
protected Builder(PartList copyFrom) {
super(copyFrom.getClass());
- entries = new ArrayList<>(copyFrom.entries.length);
- for (int i = 0; i < copyFrom.entries.length; i++)
- entries.add(copyFrom.entries[i]);
+ entries = list(copyFrom.entries);
caseInsensitive = copyFrom.caseInsensitive;
}
@@ -275,8 +273,8 @@ public class PartList {
*/
protected Builder(Builder copyFrom) {
super(copyFrom);
- entries = new ArrayList<>(copyFrom.entries);
- defaultEntries = copyFrom.defaultEntries == null ? null : new ArrayList<>(copyFrom.defaultEntries);
+ entries = copyOf(copyFrom.entries);
+ defaultEntries = copyOf(copyFrom.defaultEntries);
varResolver = copyFrom.varResolver;
caseInsensitive = copyFrom.caseInsensitive;
}
@@ -759,7 +757,7 @@ public class PartList {
if (value != null) {
boolean replaced = false;
if (defaultEntries == null)
- defaultEntries = new ArrayList<>();
+ defaultEntries = list();
for (int i = 0, j = defaultEntries.size(); i < j; i++) {
NameValuePair x = defaultEntries.get(i);
if (eq(x.getName(), value.getName())) {
@@ -832,7 +830,7 @@ public class PartList {
if (values != null) {
if (defaultEntries == null)
- defaultEntries = new ArrayList<>();
+ defaultEntries = list();
for (int i1 = 0, j1 = values.size(); i1 < j1; i1++) {
NameValuePair p = values.get(i1);
if (p != null) {
@@ -1281,7 +1279,7 @@ public class PartList {
first = x;
else {
if (rest == null)
- rest = new ArrayList<>();
+ rest = list();
rest.add(x);
}
}
@@ -1340,7 +1338,7 @@ public class PartList {
first = x;
else {
if (rest == null)
- rest = new ArrayList<>();
+ rest = list();
rest.add(x);
}
}
@@ -1613,7 +1611,7 @@ public class PartList {
* @return The contents of this list as an unmodifiable list of {@link NameValuePair} objects.
*/
public List<NameValuePair> asNameValuePairs() {
- return Collections.unmodifiableList(Arrays.asList(entries));
+ return unmodifiable(alist(entries));
}
private boolean eq(String s1, String s2) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
index 3341272..4b44105 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSchema.java
@@ -2960,7 +2960,7 @@ public class HttpPartSchema {
public Builder property(String key, Builder value) {
if ( key != null && value != null) {
if (properties == null)
- properties = new LinkedHashMap<>();
+ properties = map();
properties.put(key, value);
}
return this;
@@ -2985,7 +2985,7 @@ public class HttpPartSchema {
public Builder property(String key, HttpPartSchema value) {
if ( key != null && value != null) {
if (properties == null)
- properties = new LinkedHashMap<>();
+ properties = map();
properties.put(key, value);
}
return this;
@@ -3291,7 +3291,7 @@ public class HttpPartSchema {
return;
// Validation.
- List<String> errors = new ArrayList<>();
+ List<String> errors = list();
ListBuilder<String> notAllowed = listBuilder(String.class);
boolean invalidFormat = false;
switch (type) {
@@ -4017,18 +4017,18 @@ public class HttpPartSchema {
}
private static <T> Set<T> copy(Set<T> in) {
- return in == null ? Collections.emptySet() : unmodifiableSet(new LinkedHashSet<>(in));
+ return in == null ? emptySet() : unmodifiable(copyOf(in));
}
private static Map<String,HttpPartSchema> build(Map<String,Object> in, boolean noValidate) {
if (in == null)
return null;
- Map<String,HttpPartSchema> m = new LinkedHashMap<>();
+ Map<String,HttpPartSchema> m = map();
for (Map.Entry<String,Object> e : in.entrySet()) {
Object v = e.getValue();
m.put(e.getKey(), build(v, noValidate));
}
- return unmodifiableMap(m);
+ return unmodifiable(m);
}
private static HttpPartSchema build(Object in, boolean noValidate) {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
index df343c3..2f0149c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/RequestBeanMeta.java
@@ -75,10 +75,10 @@ public class RequestBeanMeta {
this.cm = b.cm;
this.serializer = b.serializer.orElse(null);
this.parser = b.parser.orElse(null);
- Map<String,RequestBeanPropertyMeta> properties = new LinkedHashMap<>();
+ Map<String,RequestBeanPropertyMeta> properties = map();
for (Map.Entry<String,RequestBeanPropertyMeta.Builder> e : b.properties.entrySet())
properties.put(e.getKey(), e.getValue().build(serializer, parser));
- this.properties = Collections.unmodifiableMap(properties);
+ this.properties = unmodifiable(properties);
}
static class Builder {
@@ -86,7 +86,7 @@ public class RequestBeanMeta {
AnnotationWorkList annotations;
BeanCreator<HttpPartSerializer> serializer = BeanCreator.of(HttpPartSerializer.class);
BeanCreator<HttpPartParser> parser = BeanCreator.of(HttpPartParser.class);
- Map<String,RequestBeanPropertyMeta.Builder> properties = new LinkedHashMap<>();
+ Map<String,RequestBeanPropertyMeta.Builder> properties = map();
Builder(AnnotationWorkList annotations) {
this.annotations = annotations;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
index 557b9d8..16c450d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/ResponseBeanMeta.java
@@ -115,15 +115,15 @@ public class ResponseBeanMeta {
this.partParser = optional(b.partParser).map(x -> HttpPartParser.creator().type(x).apply(b.annotations).create());
this.schema = b.schema.build();
- Map<String,ResponseBeanPropertyMeta> properties = new LinkedHashMap<>();
+ Map<String,ResponseBeanPropertyMeta> properties = map();
- Map<String,ResponseBeanPropertyMeta> hm = new LinkedHashMap<>();
+ Map<String,ResponseBeanPropertyMeta> hm = map();
for (Map.Entry<String,ResponseBeanPropertyMeta.Builder> e : b.headerMethods.entrySet()) {
ResponseBeanPropertyMeta pm = e.getValue().build(partSerializer, partParser);
hm.put(e.getKey(), pm);
properties.put(pm.getGetter().getName(), pm);
}
- this.headerMethods = Collections.unmodifiableMap(hm);
+ this.headerMethods = unmodifiable(hm);
this.bodyMethod = b.bodyMethod == null ? null : b.bodyMethod.schema(schema).build(partSerializer, partParser);
this.statusMethod = b.statusMethod == null ? null : b.statusMethod.build(empty(), empty());
@@ -133,7 +133,7 @@ public class ResponseBeanMeta {
if (statusMethod != null)
properties.put(statusMethod.getGetter().getName(), statusMethod);
- this.properties = Collections.unmodifiableMap(properties);
+ this.properties = unmodifiable(properties);
}
static class Builder {
@@ -144,7 +144,7 @@ public class ResponseBeanMeta {
Class<? extends HttpPartParser> partParser;
HttpPartSchema.Builder schema = HttpPartSchema.create();
- Map<String,ResponseBeanPropertyMeta.Builder> headerMethods = new LinkedHashMap<>();
+ Map<String,ResponseBeanPropertyMeta.Builder> headerMethods = map();
ResponseBeanPropertyMeta.Builder bodyMethod;
ResponseBeanPropertyMeta.Builder statusMethod;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
index 87bbd6c..f552407 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/CollectionUtils.java
@@ -143,6 +143,30 @@ public final class CollectionUtils {
}
/**
+ * Convenience method for creating an {@link ArrayList} of the specified size.
+ *
+ * @param size The initial size of the list.
+ * @return A new modifiable list.
+ */
+ public static <T> ArrayList<T> list(int size) {
+ return new ArrayList<>(size);
+ }
+
+ /**
+ * Convenience method for creating a {@link LinkedList}.
+ *
+ * @param values The values to initialize the list with.
+ * @return A new modifiable list.
+ */
+ @SafeVarargs
+ public static <T> LinkedList<T> linkedList(T...values) {
+ LinkedList<T> l = new LinkedList<>();
+ for (T v : values)
+ l.add(v);
+ return l;
+ }
+
+ /**
* Convenience method for creating an array-backed list by calling {@link Arrays#asList(Object...)}.
*
* @param values The values to initialize the list with.
@@ -160,8 +184,31 @@ public final class CollectionUtils {
* @return A new modifiable list.
*/
public static <T> ArrayList<T> listFrom(Collection<T> value) {
+ return listFrom(value, false);
+ }
+
+ /**
+ * Creates an {@link ArrayList} copy from a collection.
+ *
+ * @param value The collection to copy from.
+ * @return A new modifiable list.
+ */
+ public static <K,V> LinkedHashMap<K,V> mapFrom(Map<K,V> value) {
if (value == null)
return null;
+ return new LinkedHashMap<>(value);
+ }
+
+ /**
+ * Creates an {@link ArrayList} copy from a collection.
+ *
+ * @param value The collection to copy from.
+ * @param nullIfEmpty If <jk>true</jk> will return <jk>null</jk> if the collection is empty.
+ * @return A new modifiable list.
+ */
+ public static <T> ArrayList<T> listFrom(Collection<T> value, boolean nullIfEmpty) {
+ if (value == null || (nullIfEmpty && value.isEmpty()))
+ return null;
ArrayList<T> l = new ArrayList<>();
value.forEach(x -> l.add(x));
return l;
@@ -218,6 +265,35 @@ public final class CollectionUtils {
}
/**
+ * Creates a new {@link TreeSet} from the specified collection.
+ *
+ * @param value The value to copy from.
+ * @return A new {@link TreeSet}, or <jk>null</jk> if the input was null.
+ */
+ public static <T> TreeSet<T> sortedSetFrom(Collection<T> value) {
+ if (value == null)
+ return null;
+ TreeSet<T> l = new TreeSet<>();
+ value.forEach(x -> l.add(x));
+ return l;
+ }
+
+ /**
+ * Creates a new {@link TreeSet} from the specified collection.
+ *
+ * @param value The value to copy from.
+ * @param nullIfEmpty If <jk>true</jk> returns <jk>null</jk> if the collection is empty.
+ * @return A new {@link TreeSet}, or <jk>null</jk> if the input was null.
+ */
+ public static <T> TreeSet<T> sortedSetFrom(Collection<T> value, boolean nullIfEmpty) {
+ if (value == null || (nullIfEmpty && value.isEmpty()))
+ return null;
+ TreeSet<T> l = new TreeSet<>();
+ value.forEach(x -> l.add(x));
+ return l;
+ }
+
+ /**
* Convenience method for creating a {@link LinkedHashMap}.
*
* @return A new modifiable map.
@@ -276,6 +352,15 @@ public final class CollectionUtils {
}
/**
+ * Convenience method for creating a {@link TreeMap}.
+ *
+ * @return A new modifiable set.
+ */
+ public static <K,V> TreeMap<K,V> sortedMap() {
+ return new TreeMap<>();
+ }
+
+ /**
* Convenience method for copying a list.
*
* @param value The list to copy.
@@ -356,6 +441,36 @@ public final class CollectionUtils {
}
/**
+ * Wraps the specified list in {@link Collections#unmodifiableList(List)}.
+ *
+ * @param value The list to wrap.
+ * @return The wrapped list.
+ */
+ public static <T> List<T> synced(List<T> value) {
+ return value == null ? null: Collections.synchronizedList(value);
+ }
+
+ /**
+ * Wraps the specified set in {@link Collections#unmodifiableSet(Set)}.
+ *
+ * @param value The set to wrap.
+ * @return The wrapped set.
+ */
+ public static <T> Set<T> synced(Set<T> value) {
+ return value == null ? null: Collections.synchronizedSet(value);
+ }
+
+ /**
+ * Wraps the specified map in {@link Collections#unmodifiableMap(Map)}.
+ *
+ * @param value The map to wrap.
+ * @return The wrapped map.
+ */
+ public static <K,V> Map<K,V> synced(Map<K,V> value) {
+ return value == null ? null: Collections.synchronizedMap(value);
+ }
+
+ /**
* Converts the specified collection to an array.
*
* @param value The collection to convert.
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
index eb62b45..6aeb785 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/DelegateBeanMap.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.internal;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import org.apache.juneau.*;
@@ -33,7 +35,7 @@ import org.apache.juneau.collections.*;
*/
public class DelegateBeanMap<T> extends BeanMap<T> {
- private Set<String> keys = new LinkedHashSet<>();
+ private Set<String> keys = set();
private OMap overrideValues = new OMap();
/**
@@ -104,7 +106,7 @@ public class DelegateBeanMap<T> extends BeanMap<T> {
@Override /* Map */
public synchronized Set<Entry<String,Object>> entrySet() {
- Set<Entry<String,Object>> s = Collections.newSetFromMap(new LinkedHashMap<Map.Entry<String,Object>,Boolean>());
+ Set<Entry<String,Object>> s = set();
for (final String key : keys) {
BeanMapEntry bme;
if (overrideValues.containsKey(key))
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ListBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ListBuilder.java
index edc738b..f3a36af 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ListBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ListBuilder.java
@@ -15,6 +15,7 @@ package org.apache.juneau.internal;
import static org.apache.juneau.internal.ConverterUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
+import static java.util.Collections.*;
import java.lang.reflect.*;
import java.util.*;
@@ -96,7 +97,7 @@ public final class ListBuilder<E> {
if (comparator != null)
Collections.sort(list, comparator);
if (unmodifiable)
- list = Collections.unmodifiableList(list);
+ list = unmodifiableList(list);
}
return list;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SetBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SetBuilder.java
index 624254d..74a6631 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SetBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/SetBuilder.java
@@ -15,6 +15,7 @@ package org.apache.juneau.internal;
import static org.apache.juneau.internal.ConverterUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
+import static java.util.Collections.*;
import java.lang.reflect.*;
import java.util.*;
@@ -79,7 +80,7 @@ public final class SetBuilder<E> {
set = s;
}
if (unmodifiable)
- set = Collections.unmodifiableSet(set);
+ set = unmodifiableSet(set);
}
return set;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
index 03e44cf..7a527e9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParserSession.java
@@ -361,7 +361,7 @@ public final class JsonParserSession extends ReaderParserSession {
parseIntoMap2(r, m, string(), object(), pMeta);
o = cast(m, pMeta, eType);
} else {
- ArrayList l = (ArrayList)parseIntoCollection2(r, new ArrayList(), sType, pMeta);
+ ArrayList l = (ArrayList)parseIntoCollection2(r, list(), sType, pMeta);
o = toArray(sType, l);
}
} else if (c == '{') {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index cbafc6f..69a8089 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -14,6 +14,7 @@ package org.apache.juneau.jsonschema;
import static org.apache.juneau.collections.OMap.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import static java.util.Collections.*;
@@ -879,7 +880,7 @@ public class JsonSchemaGenerator extends BeanTraverseContext implements JsonSche
addDescriptionsTo = builder.addDescriptionsTo == null ? emptySet() : new TreeSet<>(builder.addDescriptionsTo);
ignoreTypes = builder.ignoreTypes == null ? emptySet() : new TreeSet<>(builder.ignoreTypes);
- Set<Pattern> ignoreTypePatterns = new LinkedHashSet<>();
+ Set<Pattern> ignoreTypePatterns = set();
ignoreTypes.forEach(y -> split(y, x -> ignoreTypePatterns.add(Pattern.compile(x.replace(".", "\\.").replace("*", ".*")))));
this.ignoreTypePatterns = ignoreTypePatterns;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 3fe83d1..df6190c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.jsonschema;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.jsonschema.TypeCategory.*;
import java.lang.reflect.*;
@@ -377,7 +378,7 @@ public class JsonSchemaGeneratorSession extends BeanTraverseSession {
@SuppressWarnings("unchecked")
private List<String> getEnums(ClassMeta<?> cm) {
- List<String> l = new ArrayList<>();
+ List<String> l = list();
for (Enum<?> e : ((Class<Enum<?>>)cm.getInnerClass()).getEnumConstants())
l.add(cm.toString(e));
return l;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
index b9b7b16..1941d26 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.msgpack;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
import java.io.*;
@@ -310,7 +311,7 @@ public final class MsgPackSerializerSession extends OutputStreamSerializerSessio
// The map size may change as we're iterating over it, so
// grab a snapshot of the entries in a separate list.
- List<SimpleMapEntry> entries = new ArrayList<>(m.size());
+ List<SimpleMapEntry> entries = list(m.size());
for (Map.Entry e : (Set<Map.Entry>)m.entrySet())
entries.add(new SimpleMapEntry(e.getKey(), e.getValue()));
@@ -380,7 +381,7 @@ public final class MsgPackSerializerSession extends OutputStreamSerializerSessio
private void serializeCollection(MsgPackOutputStream out, Collection c, ClassMeta<?> type) throws IOException, SerializeException {
ClassMeta<?> elementType = type.getElementType();
- List<Object> l = new ArrayList<>(c.size());
+ List<Object> l = list(c.size());
c = sort(c);
l.addAll(c);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
index 590f012..48bb5eb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSet.java
@@ -264,7 +264,7 @@ public final class ParserSet {
* @throws IllegalArgumentException If one or more values do not extend from {@link Parser}.
*/
public Builder add(Class<?>...values) {
- List<Object> l = new ArrayList<>();
+ List<Object> l = list();
for (Class<?> v : values)
if (v.getSimpleName().equals("NoInherit"))
clear();
@@ -304,7 +304,7 @@ public final class ParserSet {
* @throws IllegalArgumentException If one or more values do not extend from {@link Parser} or named <js>"Inherit"</js>.
*/
public Builder set(Class<?>...values) {
- List<Object> l = new ArrayList<>();
+ List<Object> l = list();
for (Class<?> v : values) {
if (v.getSimpleName().equals("Inherit")) {
l.addAll(entries);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Position.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Position.java
index e4dace3..29a73ad 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Position.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Position.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.parser;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import org.apache.juneau.internal.*;
@@ -55,7 +57,7 @@ public class Position {
@Override /* Object */
public String toString() {
- List<String> l = new ArrayList<>();
+ List<String> l = list();
if (line != -1)
l.add("line " + line);
if (column != -1)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSearcher.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSearcher.java
index 157acfc..2849ea9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSearcher.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSearcher.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.pojotools;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.lang.reflect.*;
@@ -71,7 +72,7 @@ public final class PojoSearcher implements PojoTool<SearchArgs> {
if (type.isCollection()) {
Collection c = (Collection)input;
- l = new ArrayList<>(c.size());
+ l = list(c.size());
for (Object o : c) {
if (rowMatcher.matches(o))
l.add(o);
@@ -79,7 +80,7 @@ public final class PojoSearcher implements PojoTool<SearchArgs> {
} else /* isArray */ {
int size = Array.getLength(input);
- l = new ArrayList<>(size);
+ l = list(size);
for (int i = 0; i < size; i++) {
Object o = Array.get(input, i);
if (rowMatcher.matches(o))
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSorter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSorter.java
index 1e39364..4a42af2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSorter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoSorter.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.pojotools;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.lang.reflect.*;
import java.util.*;
@@ -51,18 +53,18 @@ public final class PojoSorter implements PojoTool<SortArgs> {
if (type.isArray()) {
int size = Array.getLength(input);
- l = new ArrayList<>(size);
+ l = list(size);
for (int i = 0; i < size; i++)
l.add(new SortEntry(session, Array.get(input, i)));
} else /* isCollection() */ {
Collection c = (Collection)input;
- l = new ArrayList<>(c.size());
+ l = list(c.size());
for (Object o : c)
l.add(new SortEntry(session, o));
}
// We reverse the list and sort last to first.
- List<String> columns = new ArrayList<>(sort.keySet());
+ List<String> columns = listFrom(sort.keySet());
Collections.reverse(columns);
for (final String c : columns) {
@@ -72,9 +74,8 @@ public final class PojoSorter implements PojoTool<SortArgs> {
Collections.sort(l);
}
- ArrayList<Object> l2 = new ArrayList<>(l.size());
- for (SortEntry se : l)
- l2.add(se.o);
+ List<Object> l2 = list(l.size());
+ l.forEach(x -> l2.add(x.o));
return l2;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoViewer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoViewer.java
index e147174..739d640 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoViewer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/PojoViewer.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.pojotools;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.lang.reflect.*;
import java.util.*;
@@ -53,12 +55,12 @@ public final class PojoViewer implements PojoTool<ViewArgs> {
if (type.isArray()) {
int size = Array.getLength(input);
- l = new ArrayList<>(size);
+ l = list(size);
for (int i = 0; i < size; i++)
l.add(Array.get(input, i));
} else if (type.isCollection()) {
Collection c = (Collection)input;
- l = new ArrayList<>(c.size());
+ l = list(c.size());
for (Object o : c)
l.add(o);
} else {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SearchArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SearchArgs.java
index 79d95b9..80540bb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SearchArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SearchArgs.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.pojotools;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.util.*;
@@ -29,7 +30,7 @@ import org.apache.juneau.internal.*;
*/
public class SearchArgs {
- private final Map<String,String> search = new LinkedHashMap<>();
+ private final Map<String,String> search = map();
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SortArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SortArgs.java
index 8f4996a..25816df 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SortArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/SortArgs.java
@@ -12,7 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.pojotools;
-import static java.util.Collections.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.util.*;
@@ -59,7 +59,7 @@ public class SortArgs {
* </ul>
*/
public SortArgs(Collection<String> sortArgs) {
- Map<String,Boolean> sort = new LinkedHashMap<>();
+ Map<String,Boolean> sort = map();
for (String s : sortArgs) {
boolean isDesc = false;
if (endsWith(s, '-', '+')) {
@@ -68,7 +68,7 @@ public class SortArgs {
}
sort.put(s, isDesc);
}
- this.sort = unmodifiableMap(sort);
+ this.sort = unmodifiable(sort);
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/ViewArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/ViewArgs.java
index e9149e7..2aeaedf 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/ViewArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/pojotools/ViewArgs.java
@@ -12,7 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.pojotools;
-import static java.util.Collections.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import java.util.*;
@@ -48,7 +48,7 @@ public class ViewArgs {
* <br>Values are column names.
*/
public ViewArgs(Collection<String> viewArgs) {
- this.view = unmodifiableList(new ArrayList<>(viewArgs));
+ this.view = unmodifiable(listFrom(viewArgs));
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
index f7cef84..153d7b1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/ClassInfo.java
@@ -366,7 +366,7 @@ public final class ClassInfo {
/** Results are in child-to-parent order. */
synchronized ClassInfo[] _getInterfaces() {
if (interfaces == null) {
- Set<ClassInfo> s = new LinkedHashSet<>();
+ Set<ClassInfo> s = set();
for (ClassInfo ci : _getParents())
for (ClassInfo ci2 : ci._getDeclaredInterfaces()) {
s.add(ci2);
@@ -393,7 +393,7 @@ public final class ClassInfo {
/** Results are in child-to-parent order. */
synchronized ClassInfo[] _getParents() {
if (parents == null) {
- List<ClassInfo> l = new ArrayList<>();
+ List<ClassInfo> l = list();
Class<?> pc = c;
while (pc != null && pc != Object.class) {
l.add(of(pc));
@@ -567,7 +567,7 @@ public final class ClassInfo {
if (publicMethods == null) {
synchronized(this) {
Method[] mm = c == null ? new Method[0] : c.getMethods();
- List<MethodInfo> l = new ArrayList<>(mm.length);
+ List<MethodInfo> l = list(mm.length);
for (Method m : mm)
if (m.getDeclaringClass() != Object.class)
l.add(getMethodInfo(m));
@@ -582,7 +582,7 @@ public final class ClassInfo {
if (declaredMethods == null) {
synchronized(this) {
Method[] mm = c == null ? new Method[0] : c.getDeclaredMethods();
- List<MethodInfo> l = new ArrayList<>(mm.length);
+ List<MethodInfo> l = list(mm.length);
for (Method m : mm)
if (! "$jacocoInit".equals(m.getName())) // Jacoco adds its own simulated methods.
l.add(getMethodInfo(m));
@@ -596,7 +596,7 @@ public final class ClassInfo {
private synchronized MethodInfo[] _getAllMethods() {
if (allMethods == null) {
synchronized(this) {
- List<MethodInfo> l = new ArrayList<>();
+ List<MethodInfo> l = list();
for (ClassInfo c : _getAllParents())
c._appendDeclaredMethods(l);
allMethods = l.toArray(new MethodInfo[l.size()]);
@@ -608,7 +608,7 @@ public final class ClassInfo {
private synchronized MethodInfo[] _getAllMethodsParentFirst() {
if (allMethodsParentFirst == null) {
synchronized(this) {
- List<MethodInfo> l = new ArrayList<>();
+ List<MethodInfo> l = list();
ClassInfo[] parents = _getAllParents();
for (int i = parents.length-1; i >=0; i--)
parents[i]._appendDeclaredMethods(l);
@@ -704,7 +704,7 @@ public final class ClassInfo {
if (publicConstructors == null) {
synchronized(this) {
Constructor<?>[] cc = c == null ? new Constructor[0] : c.getConstructors();
- List<ConstructorInfo> l = new ArrayList<>(cc.length);
+ List<ConstructorInfo> l = list(cc.length);
for (Constructor<?> ccc : cc)
l.add(getConstructorInfo(ccc));
l.sort(null);
@@ -718,7 +718,7 @@ public final class ClassInfo {
if (declaredConstructors == null) {
synchronized(this) {
Constructor<?>[] cc = c == null ? new Constructor[0] : c.getDeclaredConstructors();
- List<ConstructorInfo> l = new ArrayList<>(cc.length);
+ List<ConstructorInfo> l = list(cc.length);
for (Constructor<?> ccc : cc)
l.add(getConstructorInfo(ccc));
l.sort(null);
@@ -869,7 +869,7 @@ public final class ClassInfo {
private FieldInfo[] _getPublicFields() {
if (publicFields == null) {
synchronized(this) {
- Map<String,FieldInfo> m = new LinkedHashMap<>();
+ Map<String,FieldInfo> m = map();
for (ClassInfo c : _getParents()) {
for (FieldInfo f : c._getDeclaredFields()) {
String fn = f.getName();
@@ -877,7 +877,7 @@ public final class ClassInfo {
m.put(f.getName(), f);
}
}
- List<FieldInfo> l = new ArrayList<>(m.values());
+ List<FieldInfo> l = listFrom(m.values());
l.sort(null);
publicFields = l.toArray(new FieldInfo[l.size()]);
}
@@ -889,7 +889,7 @@ public final class ClassInfo {
if (declaredFields == null) {
synchronized(this) {
Field[] ff = c == null ? new Field[0] : c.getDeclaredFields();
- List<FieldInfo> l = new ArrayList<>(ff.length);
+ List<FieldInfo> l = list(ff.length);
for (Field f : ff)
if (! "$jacocoData".equals(f.getName()))
l.add(getFieldInfo(f));
@@ -903,7 +903,7 @@ public final class ClassInfo {
private synchronized FieldInfo[] _getAllFields() {
if (allFields == null) {
synchronized(this) {
- List<FieldInfo> l = new ArrayList<>();
+ List<FieldInfo> l = list();
ClassInfo[] parents = _getAllParents();
for (int i = parents.length-1; i >=0; i--)
for (FieldInfo f : parents[i]._getDeclaredFields())
@@ -939,7 +939,7 @@ public final class ClassInfo {
* @return The matching annotations.
*/
public <A extends Annotation> List<A> getAnnotations(AnnotationProvider annotationProvider, Class<A> type) {
- List<A> l = new ArrayList<>();
+ List<A> l = list();
forEachAnnotation(annotationProvider, type, x-> true, x -> l.add(x));
return l;
}
@@ -1608,7 +1608,7 @@ public final class ClassInfo {
}
@SuppressWarnings("rawtypes")
- private static final Map<Class,Object> primitiveDefaultMap =
+ private static final Map<Class,Object> primitiveDefaultMap =
mapBuilder(Class.class,Object.class).unmodifiable()
.add(Boolean.TYPE, false)
.add(Character.TYPE, (char)0)
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
index a078dd0..1a88a43 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflect/MethodInfo.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.reflect;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ConsumerUtils.*;
import java.beans.*;
@@ -199,7 +200,7 @@ public final class MethodInfo extends ExecutableInfo implements Comparable<Metho
private MethodInfo[] _getMatching() {
if (matching == null) {
synchronized(this) {
- List<MethodInfo> l = findMatching(new ArrayList<>(), m, m.getDeclaringClass());
+ List<MethodInfo> l = findMatching(list(), m, m.getDeclaringClass());
matching = l.toArray(new MethodInfo[l.size()]);
}
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
index 5e10fbe..5f4b90c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSet.java
@@ -15,7 +15,6 @@ package org.apache.juneau.serializer;
import static org.apache.juneau.http.HttpHeaders.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static java.util.Arrays.*;
-import static java.util.Collections.*;
import static java.util.stream.Collectors.*;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ObjectUtils.*;
@@ -263,7 +262,7 @@ public final class SerializerSet {
* @throws IllegalArgumentException If one or more values do not extend from {@link Serializer}.
*/
public Builder add(Class<?>...values) {
- List<Object> l = new ArrayList<>();
+ List<Object> l = list();
for (Class<?> e : values) {
if (Serializer.class.isAssignableFrom(e)) {
l.add(createBuilder(e));
@@ -300,7 +299,7 @@ public final class SerializerSet {
* @throws IllegalArgumentException If one or more values do not extend from {@link Serializer} or named <js>"Inherit"</js>.
*/
public Builder set(Class<?>...values) {
- List<Object> l = new ArrayList<>();
+ List<Object> l = list();
for (Class<?> e : values) {
if (e.getSimpleName().equals("Inherit")) {
l.addAll(entries);
@@ -663,7 +662,7 @@ public final class SerializerSet {
* @return An unmodifiable list of serializers in this group.
*/
public List<Serializer> getSerializers() {
- return unmodifiableList(asList(entries));
+ return unmodifiable(alist(entries));
}
/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/MatchResultSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/MatchResultSwap.java
index fcf6835..13ee1b2 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/MatchResultSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/MatchResultSwap.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.swaps;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import java.util.regex.*;
@@ -36,7 +38,7 @@ public class MatchResultSwap extends ObjectSwap<MatchResult,List<String>> {
*/
@Override /* ObjectSwap */
public List<String> swap(BeanSession session, MatchResult o) {
- List<String> l = new ArrayList<>(o.groupCount());
+ List<String> l = list(o.groupCount());
for (int i = 0; i <= o.groupCount(); i++)
l.add(o.group(i));
return l;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
index 7daeb7b..1d34ce1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserSession.java
@@ -414,12 +414,12 @@ public class UonParserSession extends ReaderParserSession implements HttpPartPar
o = cast(m, pMeta, eType);
// Handle case where it's an array, but only a single value was specified.
else {
- ArrayList l = new ArrayList(1);
+ ArrayList l = list(1);
l.add(m.cast(sType.getElementType()));
o = toArray(sType, l);
}
} else {
- ArrayList l = (ArrayList)parseIntoCollection(r, new ArrayList(), sType, isUrlParamValue, pMeta);
+ ArrayList l = (ArrayList)parseIntoCollection(r, list(), sType, isUrlParamValue, pMeta);
o = toArray(sType, l);
}
} else if (c == '(') {
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
index 5859dc0..0f6f88c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/PojoQuery.java
@@ -14,6 +14,7 @@ package org.apache.juneau.utils;
import static java.util.Calendar.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.lang.reflect.*;
@@ -312,7 +313,7 @@ public final class PojoQuery {
private static void doSort(List list, Map<String,Boolean> sortList) {
// We reverse the list and sort last to first.
- List<String> columns = new ArrayList<>(sortList.keySet());
+ List<String> columns = listFrom(sortList.keySet());
Collections.reverse(columns);
for (final String c : columns) {
@@ -1036,7 +1037,7 @@ public final class PojoQuery {
s = s.replace('\u9998', '-');
String[] sa = splitQuoted(s, ' ');
- List<String> l = new ArrayList<>(sa.length);
+ List<String> l = list(sa.length);
int numOrs = 0;
for (int i = 0; i < sa.length; i++) {
String token = sa[i];
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ReflectionMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ReflectionMap.java
index 53d324d..26e2f12 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ReflectionMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ReflectionMap.java
@@ -159,10 +159,10 @@ public class ReflectionMap<V> {
* Constructor.
*/
protected Builder() {
- classEntries = new ArrayList<>();
- methodEntries = new ArrayList<>();
- fieldEntries = new ArrayList<>();
- constructorEntries = new ArrayList<>();
+ classEntries = list();
+ methodEntries = list();
+ fieldEntries = list();
+ constructorEntries = list();
}
/**
@@ -171,10 +171,10 @@ public class ReflectionMap<V> {
* @param copyFrom The builder being copied.
*/
protected Builder(Builder<V> copyFrom) {
- classEntries = new ArrayList<>(copyFrom.classEntries);
- methodEntries = new ArrayList<>(copyFrom.methodEntries);
- fieldEntries = new ArrayList<>(copyFrom.fieldEntries);
- constructorEntries = new ArrayList<>(copyFrom.constructorEntries);
+ classEntries = copyOf(copyFrom.classEntries);
+ methodEntries = copyOf(copyFrom.methodEntries);
+ fieldEntries = copyOf(copyFrom.fieldEntries);
+ constructorEntries = copyOf(copyFrom.constructorEntries);
}
/**
@@ -269,7 +269,7 @@ public class ReflectionMap<V> {
static List<String> splitNames(String key) {
if (key.indexOf(',') == -1)
return Collections.singletonList(key.trim());
- List<String> l = new ArrayList<>();
+ List<String> l = list();
int m = 0;
boolean escaped = false;
@@ -363,7 +363,7 @@ public class ReflectionMap<V> {
private static <V> List<V> lazyAdd(List<V> list, V v) {
if (list == null)
- list = new ArrayList<>();
+ list = list();
list.add(v);
return list;
}
@@ -805,7 +805,7 @@ public class ReflectionMap<V> {
private static <V> List<V> lazyAdd(V[] array, List<V> list, V v) {
if (list == null)
- list = new ArrayList<>(Arrays.asList(array));
+ list = list(array);
list.add(v);
return list;
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
index 5f616fb..48c60cc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/SearchArgs.java
@@ -12,8 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.utils;
-import static java.util.Collections.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.util.*;
@@ -41,9 +41,9 @@ public class SearchArgs {
private final boolean ignoreCase;
SearchArgs(Builder b) {
- this.search = unmodifiableMap(new LinkedHashMap<>(b.search));
- this.view = unmodifiableList(new ArrayList<>(b.view));
- this.sort = unmodifiableMap(new LinkedHashMap<>(b.sort));
+ this.search = unmodifiable(copyOf(b.search));
+ this.view = unmodifiable(copyOf(b.view));
+ this.sort = unmodifiable(copyOf(b.sort));
this.position = b.position;
this.limit = b.limit;
this.ignoreCase = b.ignoreCase;
@@ -62,9 +62,9 @@ public class SearchArgs {
* Builder for {@link SearchArgs} class.
*/
public static final class Builder {
- Map<String,String> search = new LinkedHashMap<>();
- List<String> view = new ArrayList<>();
- Map<String,Boolean> sort = new LinkedHashMap<>();
+ Map<String,String> search = map();
+ List<String> view = list();
+ Map<String,Boolean> sort = map();
int position, limit;
boolean ignoreCase;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
index 370a46e..b7483e8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/StringExpressionMatcher.java
@@ -18,6 +18,7 @@ import java.util.regex.*;
import org.apache.juneau.internal.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StateMachineState.*;
/**
@@ -98,8 +99,8 @@ public class StringExpressionMatcher {
expression = expression.trim();
- List<Exp> ors = new ArrayList<>();
- List<Exp> ands = new ArrayList<>();
+ List<Exp> ors = list();
+ List<Exp> ands = list();
StateMachineState state = S01;
int i = 0, mark = -1;
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
index 5ab9c17..d69cf82 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlClassMeta.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.xml;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import org.apache.juneau.*;
@@ -40,8 +42,8 @@ public class XmlClassMeta extends ExtendedClassMeta {
*/
public XmlClassMeta(ClassMeta<?> cm, XmlMetaProvider mp) {
super(cm);
- List<Xml> xmls = new ArrayList<>();
- List<XmlSchema> schemas = new ArrayList<>();
+ List<Xml> xmls = list();
+ List<XmlSchema> schemas = list();
if (cm != null) {
cm.forEachAnnotation(Xml.class, x -> true, x -> xmls.add(x));
cm.forEachAnnotation(XmlSchema.class, x -> true, x -> schemas.add(x));
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
index 52a1e8e..26f3eac 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserSession.java
@@ -541,7 +541,7 @@ public class XmlParserSession extends ReaderParserSession {
o = builder != null ? builder.build(this, m.getBean(), eType) : m.getBean();
}
} else if (sType.isArray() || sType.isArgs()) {
- ArrayList l = (ArrayList)parseIntoCollection(r, new ArrayList(), sType, pMeta);
+ ArrayList l = (ArrayList)parseIntoCollection(r, list(), sType, pMeta);
o = toArray(sType, l);
} else if (sType.canCreateNewInstanceFromString(outer)) {
o = sType.newInstanceFromString(outer, getElementText(r));
@@ -795,7 +795,7 @@ public class XmlParserSession extends ReaderParserSession {
else if (cpcm.isCollectionOrArray()) {
Object o = cp.get(m, null);
if (o == null)
- cp.set(m, cp.getName(), new ArrayList<>());
+ cp.set(m, cp.getName(), list());
}
}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index be07da0..e6f0b7b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -511,7 +511,7 @@ public class XmlSerializer extends WriterSerializer implements XmlMetaProvider {
@FluentSetter
public Builder namespaces(Namespace...values) {
if (namespaces == null)
- namespaces = new ArrayList<>();
+ namespaces = list();
Collections.addAll(namespaces, values);
return this;
}
diff --git a/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java b/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java
index ddb0cb8..1791bee 100644
--- a/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java
+++ b/juneau-examples/juneau-examples-rest-jetty-ftest/src/test/java/org/apache/juneau/examples/rest/ContentComboTestBase.java
@@ -13,6 +13,7 @@
package org.apache.juneau.examples.rest;
import static org.apache.juneau.examples.rest.TestUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.junit.runners.MethodSorters.*;
@@ -40,7 +41,7 @@ import org.junit.*;
public class ContentComboTestBase extends RestTestcase {
// Reusable RestClients keyed by label that live for the duration of a testcase class.
- private static Map<String,RestClient> clients = new LinkedHashMap<>();
+ private static Map<String,RestClient> clients = map();
protected RestClient getClient(MediaType mediaType) {
String mt = mediaType.toString();
diff --git a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/LogConfig.java b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/LogConfig.java
index 3170680..5221f8b 100644
--- a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/LogConfig.java
+++ b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/LogConfig.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.microservice;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import java.util.logging.*;
import java.util.logging.Formatter;
@@ -39,7 +41,7 @@ public class LogConfig {
Boolean append;
Integer limit, count;
Level fileLevel, consoleLevel;
- Map<String,Level> levels = new LinkedHashMap<>();
+ Map<String,Level> levels = map();
Formatter formatter;
LogConfig() {}
@@ -57,7 +59,7 @@ public class LogConfig {
this.count = copyFrom.count;
this.fileLevel = copyFrom.fileLevel;
this.consoleLevel = copyFrom.consoleLevel;
- this.levels = new LinkedHashMap<>(copyFrom.levels);
+ this.levels = copyOf(copyFrom.levels);
this.formatter = copyFrom.formatter;
}
diff --git a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
index 6e493d6..72fa903 100755
--- a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
+++ b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/Microservice.java
@@ -13,6 +13,7 @@
package org.apache.juneau.microservice;
import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.FileUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
import static org.apache.juneau.internal.ObjectUtils.*;
@@ -150,7 +151,7 @@ public class Microservice implements ConfigEventListener {
ConfigStore configStore;
Config.Builder configBuilder = Config.create();
Boolean consoleEnabled;
- List<ConsoleCommand> consoleCommands = new ArrayList<>();
+ List<ConsoleCommand> consoleCommands = list();
VarResolver.Builder varResolver = VarResolver.create().defaultVars().vars(ConfigVar.class);
Scanner consoleReader;
PrintWriter consoleWriter;
@@ -1074,7 +1075,7 @@ public class Microservice implements ConfigEventListener {
*/
public String executeCommand(String command, String input, Object...args) {
StringWriter sw = new StringWriter();
- List<String> l = new ArrayList<>();
+ List<String> l = list();
l.add(command);
for (Object a : args)
l.add(stringify(a));
diff --git a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index 8f5a2a1..d0ca7c4 100755
--- a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.microservice.resources;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
@@ -259,7 +260,7 @@ public class DirectoryResource extends BasicRestServlet implements BasicUniversa
@Html(format=HtmlFormat.HTML_CDC)
public List<Action> getActions() throws Exception {
- List<Action> l = new ArrayList<>();
+ List<Action> l = list();
if (allowViews && f.canRead() && ! f.isDirectory()) {
l.add(new Action("view", uri + "?method=VIEW"));
l.add(new Action("download", uri + "?method=DOWNLOAD"));
diff --git a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index 41b284b..bc1a366 100755
--- a/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ b/juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.microservice.resources;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.io.*;
@@ -291,7 +292,7 @@ public class LogsResource extends BasicRestServlet implements BasicUniversalConf
@Html(format=HtmlFormat.HTML_CDC)
public List<Action> getActions() throws Exception {
- List<Action> l = new ArrayList<>();
+ List<Action> l = list();
if (f.canRead() && ! f.isDirectory()) {
l.add(new Action("view", uri + "?method=VIEW"));
l.add(new Action("highlighted", uri + "?method=VIEW&highlight=true"));
diff --git a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java
index ee1faa2..d5827b5 100644
--- a/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java
+++ b/juneau-microservice/juneau-microservice-ftest/src/test/java/org/apache/juneau/rest/test/RestTestcase.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest.test;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.io.*;
import java.util.*;
@@ -30,10 +32,10 @@ public class RestTestcase {
private static boolean microserviceStarted;
// Reusable RestClients keyed by label that live for the duration of a testcase class.
- private static Map<String,RestClient> clients = new LinkedHashMap<>();
+ private static Map<String,RestClient> clients = map();
// Reusable object cache that lives for the duration of a testcase class.
- private static Map<String,Object> cache = new LinkedHashMap<>();
+ private static Map<String,Object> cache = map();
@BeforeClass
public static void setUp() {
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 e7c7a65..2a031f8 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,7 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.microservice.jetty;
-import static org.apache.juneau.internal.ClassUtils.className;
+import static org.apache.juneau.internal.ClassUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.IOUtils.read;
import static org.apache.juneau.internal.StringUtils.*;
@@ -124,8 +125,8 @@ public class JettyMicroservice extends Microservice {
String jettyXml;
int[] ports;
Boolean jettyXmlResolveVars;
- Map<String,Servlet> servlets = new LinkedHashMap<>();
- Map<String,Object> servletAttributes = new LinkedHashMap<>();
+ Map<String,Servlet> servlets = map();
+ Map<String,Object> servletAttributes = map();
JettyMicroserviceListener listener;
JettyServerFactory factory;
@@ -144,8 +145,8 @@ public class JettyMicroservice extends Microservice {
this.jettyXml = copyFrom.jettyXml;
this.ports = copyFrom.ports;
this.jettyXmlResolveVars = copyFrom.jettyXmlResolveVars;
- this.servlets = new LinkedHashMap<>(copyFrom.servlets);
- this.servletAttributes = new LinkedHashMap<>(copyFrom.servletAttributes);
+ this.servlets = copyOf(copyFrom.servlets);
+ this.servletAttributes = copyOf(copyFrom.servletAttributes);
this.listener = copyFrom.listener;
}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 4e10eb2..566e710 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -4131,7 +4131,7 @@ public class RestClient extends BeanContextable implements HttpClient, Closeable
*/
@FluentSetter
public Builder interceptors(Object...value) {
- List<RestCallInterceptor> l = new ArrayList<>();
+ List<RestCallInterceptor> l = list();
for (Object o : value) {
ClassInfo ci = ClassInfo.of(o);
if (ci != null) {
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index 8c0d3c8..c0af53c 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -88,7 +88,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
final RestClient client; // The client that created this call.
private final HttpRequestBase request; // The request.
private RestResponse response; // The response.
- List<RestCallInterceptor> interceptors = new ArrayList<>(); // Used for intercepting and altering requests.
+ List<RestCallInterceptor> interceptors = list(); // Used for intercepting and altering requests.
private final HeaderList.Builder headerDataBuilder;
private final PartList.Builder queryDataBuilder, formDataBuilder, pathDataBuilder;
@@ -672,7 +672,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
@SuppressWarnings("unchecked")
public RestRequest rethrow(Class<?>...values) {
if (rethrow == null)
- rethrow = new ArrayList<>();
+ rethrow = list();
for (Class<?> v : values) {
if (v != null && Throwable.class.isAssignableFrom(v))
rethrow.add((Class<? extends Throwable>)v);
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java
index 1dd8818..932baf1 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockHttpSession.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest.mock;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import javax.servlet.*;
@@ -31,7 +33,7 @@ import javax.servlet.http.*;
*/
public class MockHttpSession implements HttpSession {
- private Map<String,Object> attributes = new LinkedHashMap<>(), values = new LinkedHashMap<>();
+ private Map<String,Object> attributes = map(), values = map();
private long creationTime, lastAccessedTime;
private int maxInactiveInterval;
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
index 055a43b..9dea5ab 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockLogger.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest.mock;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import java.io.*;
@@ -71,7 +72,7 @@ public class MockLogger extends Logger {
private static final String FORMAT_PROPERTY = "java.util.logging.SimpleFormatter.format";
- private final List<LogRecord> logRecords = new ArrayList<>();
+ private final List<LogRecord> logRecords = list();
private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
private volatile Formatter formatter;
private volatile String format = "%4$s: %5$s%6$s%n";
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java
index f0e0e89..61de61f 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockRestRequest.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest.mock;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.net.*;
import java.security.*;
import java.util.*;
@@ -42,8 +44,8 @@ public class MockRestRequest extends org.apache.juneau.rest.client.RestRequest {
//------------------------------------------------------------------------------------------------------------------
// Servlet request override values.
//------------------------------------------------------------------------------------------------------------------
- private Map<String,Object> attributeMap = new LinkedHashMap<>();
- private Map<String,RequestDispatcher> requestDispatcherMap = new LinkedHashMap<>();
+ private Map<String,Object> attributeMap = map();
+ private Map<String,RequestDispatcher> requestDispatcherMap = map();
private String characterEncoding, protocol, scheme, serverName, remoteAddr, remoteHost, localName, localAddr,
pathInfo, pathTranslated, contextPath, queryString, remoteUser, requestedSessionId, requestURI, servletPath, authType;
private Integer serverPort, remotePort, localPort;
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
index f6f7e8d..f1486bf 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.java
@@ -17,6 +17,7 @@ import static org.apache.juneau.internal.StringUtils.*;
import static org.apache.juneau.internal.ThrowableUtils.*;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.IOUtils.*;
+import static java.util.Collections.*;
import java.io.*;
import java.security.*;
@@ -42,10 +43,10 @@ import org.apache.juneau.urlencoding.*;
public class MockServletRequest implements HttpServletRequest {
private String method = "GET";
- private Map<String,String[]> queryDataMap = new LinkedHashMap<>();
+ private Map<String,String[]> queryDataMap = map();
private Map<String,String[]> formDataMap;
private Map<String,String[]> headerMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
- private Map<String,Object> attributeMap = new LinkedHashMap<>();
+ private Map<String,Object> attributeMap = map();
private String characterEncoding = "UTF-8";
private byte[] body = new byte[0];
private String protocol = "HTTP/1.1";
@@ -59,7 +60,7 @@ public class MockServletRequest implements HttpServletRequest {
private String localName;
private String localAddr;
private int localPort;
- private Map<String,RequestDispatcher> requestDispatcher = new LinkedHashMap<>();
+ private Map<String,RequestDispatcher> requestDispatcher = map();
private ServletContext servletContext;
private DispatcherType dispatcherType;
private String authType;
@@ -75,7 +76,7 @@ public class MockServletRequest implements HttpServletRequest {
private String servletPath = "";
private HttpSession httpSession = MockHttpSession.create();
private String uri = "";
- private Set<String> roles = new LinkedHashSet<>();
+ private Set<String> roles = set();
/**
* Creates a new servlet request.
@@ -545,7 +546,7 @@ public class MockServletRequest implements HttpServletRequest {
@Override /* HttpServletRequest */
public Enumeration<String> getParameterNames() {
- return Collections.enumeration(new ArrayList<>(getParameterMap().keySet()));
+ return enumeration(listFrom(getParameterMap().keySet()));
}
@Override /* HttpServletRequest */
diff --git a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
index 9aab46a..5829188 100644
--- a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
+++ b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletResponse.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest.mock;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.io.*;
import java.util.*;
@@ -37,7 +39,7 @@ public class MockServletResponse implements HttpServletResponse {
private Locale locale;
private int sc;
private String msg;
- private Map<String,String[]> headerMap = new LinkedHashMap<>();
+ private Map<String,String[]> headerMap = map();
/**
* Creates a new servlet response.
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
index 9f3322f..5a31b7d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestChildren.java
@@ -121,7 +121,7 @@ public class RestChildren {
// Instance
//-----------------------------------------------------------------------------------------------------------------
- private final Map<String,RestContext> children = Collections.synchronizedMap(new LinkedHashMap<String,RestContext>());
+ private final Map<String,RestContext> children = synced(map());
/**
* Constructor.
@@ -162,7 +162,7 @@ public class RestChildren {
* @return The children as an unmodifiable map.
*/
public Map<String,RestContext> asMap() {
- return Collections.unmodifiableMap(children);
+ return unmodifiable(children);
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 97af85c..f51d56b 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -142,7 +142,7 @@ public class RestContext extends Context {
* @return An unmodifiable map of resource classes to {@link RestContext} objects.
*/
public static final Map<Class<?>, RestContext> getGlobalRegistry() {
- return Collections.unmodifiableMap(REGISTRY);
+ return unmodifiable(REGISTRY);
}
/**
@@ -271,7 +271,7 @@ public class RestContext extends Context {
Class<? extends RestOpContext> opContextClass = RestOpContext.class;
Class<? extends RestOperations> operationsClass = RestOperations.class;
- List<Object> children = new ArrayList<>();
+ List<Object> children = list();
/**
* Constructor.
@@ -367,7 +367,7 @@ public class RestContext extends Context {
Object r = resource.get();
- Map<String,MethodInfo> map = new LinkedHashMap<>();
+ Map<String,MethodInfo> map = map();
ClassInfo.ofProxy(r).forEachAllMethodParentFirst(
y -> y.hasAnnotation(RestHook.class) && y.getAnnotation(RestHook.class).value() == HookEvent.INIT,
y -> {
@@ -5564,7 +5564,7 @@ public class RestContext extends Context {
@FluentSetter
public Builder produces(MediaType...values) {
if (produces == null)
- produces = new ArrayList<>(Arrays.asList(values));
+ produces = list(values);
else
produces.addAll(Arrays.asList(values));
return this;
@@ -5627,7 +5627,7 @@ public class RestContext extends Context {
@FluentSetter
public Builder consumes(MediaType...values) {
if (consumes == null)
- consumes = new ArrayList<>(Arrays.asList(values));
+ consumes = list(values);
else
consumes.addAll(Arrays.asList(values));
return this;
@@ -5944,14 +5944,14 @@ public class RestContext extends Context {
produces = builder.produces().orElseGet(
()->{
- Set<MediaType> s = opContexts.isEmpty() ? emptySet() : new LinkedHashSet<>(opContexts.get(0).getSerializers().getSupportedMediaTypes());
+ Set<MediaType> s = opContexts.isEmpty() ? emptySet() : setFrom(opContexts.get(0).getSerializers().getSupportedMediaTypes());
opContexts.forEach(x -> s.retainAll(x.getSerializers().getSupportedMediaTypes()));
return unmodifiable(listFrom(s));
}
);
consumes = builder.consumes().orElseGet(
()->{
- Set<MediaType> s = opContexts.isEmpty() ? emptySet() : new LinkedHashSet<>(opContexts.get(0).getParsers().getSupportedMediaTypes());
+ Set<MediaType> s = opContexts.isEmpty() ? emptySet() : setFrom(opContexts.get(0).getParsers().getSupportedMediaTypes());
opContexts.forEach(x -> s.retainAll(x.getParsers().getSupportedMediaTypes()));
return unmodifiable(listFrom(s));
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index 0b54cd3..fc1f35c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -24,8 +24,6 @@ import static org.apache.juneau.httppart.HttpPartType.*;
import static org.apache.juneau.rest.HttpRuntimeException.*;
import static org.apache.juneau.rest.util.RestUtils.*;
import static java.util.Arrays.*;
-import static java.util.Collections.*;
-
import java.lang.annotation.*;
import java.lang.reflect.Method;
import java.nio.charset.*;
@@ -1962,7 +1960,7 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
@FluentSetter
public Builder path(String...values) {
if (path == null)
- path = new ArrayList<>(Arrays.asList(values));
+ path = list(values);
else
path.addAll(0, Arrays.asList(values));
return this;
@@ -1997,7 +1995,7 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
@FluentSetter
public Builder produces(MediaType...values) {
if (produces == null)
- produces = new ArrayList<>(Arrays.asList(values));
+ produces = list(values);
else
produces.addAll(Arrays.asList(values));
return this;
@@ -2275,8 +2273,8 @@ public class RestOpContext extends Context implements Comparable<RestOpContext>
pathMatchers = bs.add(UrlPathMatcher[].class, builder.getPathMatchers().asArray());
bs.addBean(UrlPathMatcher.class, pathMatchers.length > 0 ? pathMatchers[0] : null);
- supportedAcceptTypes = unmodifiableList(optional(builder.produces).orElseGet(()->serializers.getSupportedMediaTypes()));
- supportedContentTypes = unmodifiableList(optional(builder.consumes).orElseGet(()->parsers.getSupportedMediaTypes()));
+ supportedAcceptTypes = unmodifiable(optional(builder.produces).orElseGet(()->serializers.getSupportedMediaTypes()));
+ supportedContentTypes = unmodifiable(optional(builder.consumes).orElseGet(()->parsers.getSupportedMediaTypes()));
defaultRequestHeaders = builder.defaultRequestHeaders().build();
defaultResponseHeaders = builder.defaultResponseHeaders().build();
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
index 82da355..130cff6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOperations.java
@@ -138,7 +138,7 @@ public class RestOperations {
//-----------------------------------------------------------------------------------------------------------------
private final Map<String,List<RestOpContext>> map;
- private List<RestOpContext> list;
+ private RestOpContext[] list;
/**
* Constructor.
@@ -150,7 +150,7 @@ public class RestOperations {
for (Map.Entry<String,TreeSet<RestOpContext>> e : builder.map.entrySet())
m.put(e.getKey(), listFrom(e.getValue()));
this.map = m;
- this.list = listFrom(builder.set);
+ this.list = array(builder.set, RestOpContext.class);
}
/**
@@ -209,6 +209,6 @@ public class RestOperations {
* @return An unmodifiable list of method contexts in this object.
*/
public List<RestOpContext> getOpContexts() {
- return Collections.unmodifiableList(list);
+ return unmodifiable(alist(list));
}
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
index 2b502ca..fd5b0a5 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.io.*;
import java.util.*;
@@ -454,7 +456,7 @@ public class RestSession extends ContextSession {
public Map<String,String[]> getQueryParams() {
if (queryParams == null) {
if (req.getMethod().equalsIgnoreCase("POST"))
- queryParams = RestUtils.parseQuery(req.getQueryString(), new LinkedHashMap<>());
+ queryParams = RestUtils.parseQuery(req.getQueryString(), map());
else
queryParams = req.getParameterMap();
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
index e757ee6..faa2032 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/FormDataArg.java
@@ -99,7 +99,7 @@ public class FormDataArg implements RestOpArg {
ClassMeta<?> cm = bs.getClassMeta(type.innerType());
if (multi) {
- Collection c = cm.isArray() ? new ArrayList<>() : (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new OList());
+ Collection c = cm.isArray() ? list() : (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new OList());
rh.getAll(name).stream().map(x -> x.parser(ps).schema(schema).as(cm.getElementType()).orElse(null)).forEach(x -> c.add(x));
return cm.isArray() ? ArrayUtils.toArray(c, cm.getElementType().getInnerClass()) : c;
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
index c911d3f..f26b6e7 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/HeaderArg.java
@@ -140,7 +140,7 @@ public class HeaderArg implements RestOpArg {
ClassMeta<?> cm = bs.getClassMeta(type.innerType());
if (multi) {
- Collection c = cm.isArray() ? new ArrayList<>() : (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new OList());
+ Collection c = cm.isArray() ? list() : (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new OList());
rh.getAll(name).stream().map(x -> x.parser(ps).schema(schema).as(cm.getElementType()).orElse(null)).forEach(x -> c.add(x));
return cm.isArray() ? ArrayUtils.toArray(c, cm.getElementType().getInnerClass()) : c;
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
index d5d86fd..5ff446b 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/arg/QueryArg.java
@@ -98,7 +98,7 @@ public class QueryArg implements RestOpArg {
ClassMeta<?> cm = bs.getClassMeta(type.innerType());
if (multi) {
- Collection c = cm.isArray() ? new ArrayList<>() : (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new OList());
+ Collection c = cm.isArray() ? list() : (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new OList());
rh.getAll(name).stream().map(x -> x.parser(ps).schema(schema).as(cm.getElementType()).orElse(null)).forEach(x -> c.add(x));
return cm.isArray() ? ArrayUtils.toArray(c, cm.getElementType().getInnerClass()) : c;
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
index 7f2d00f..d93f02c 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/guard/RoleMatcher.java
@@ -18,6 +18,7 @@ import java.util.regex.*;
import org.apache.juneau.internal.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StateMachineState.*;
/**
@@ -99,8 +100,8 @@ public class RoleMatcher {
expression = expression.trim();
- List<Exp> ors = new ArrayList<>();
- List<Exp> ands = new ArrayList<>();
+ List<Exp> ors = list();
+ List<Exp> ands = list();
StateMachineState state = S01;
int i = 0, mark = -1;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/NamedAttributeList.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/NamedAttributeList.java
index e8f147a..fff0c40 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/NamedAttributeList.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/NamedAttributeList.java
@@ -12,6 +12,8 @@
// ***************************************************************************************************************************
package org.apache.juneau.rest.httppart;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
import java.util.*;
import org.apache.juneau.*;
@@ -61,14 +63,14 @@ public class NamedAttributeList {
@FluentSetters
public static class Builder extends BeanBuilder<NamedAttributeList> {
- LinkedHashMap<String,NamedAttribute> entries;
+ Map<String,NamedAttribute> entries;
/**
* Constructor.
*/
protected Builder() {
super(NamedAttributeList.class, BeanStore.INSTANCE);
- entries = new LinkedHashMap<>();
+ entries = map();
}
/**
@@ -78,7 +80,7 @@ public class NamedAttributeList {
*/
protected Builder(Builder copyFrom) {
super(copyFrom);
- entries = new LinkedHashMap<>(copyFrom.entries);
+ entries = copyOf(copyFrom.entries);
}
@Override /* BeanBuilder */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestAttributes.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestAttributes.java
index ee86a74..54dc90d 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestAttributes.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestAttributes.java
@@ -13,6 +13,7 @@
package org.apache.juneau.rest.httppart;
import static org.apache.juneau.assertions.Assertions.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import java.util.*;
@@ -180,7 +181,7 @@ public class RequestAttributes {
* @return All the attribute on this request.
*/
public List<RequestAttribute> getAll() {
- ArrayList<RequestAttribute> l = new ArrayList<>();
+ List<RequestAttribute> l = list();
Enumeration<String> e = sreq.getAttributeNames();
while (e.hasMoreElements()) {
String n = e.nextElement();
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParams.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParams.java
index df670d8..865b857 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParams.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParams.java
@@ -150,7 +150,7 @@ public class RequestFormParams {
for (Map.Entry<String,String[]> e : m.entrySet()) {
String name = e.getKey();
String key = key(name);
- List<RequestFormParam> l = new ArrayList<>();
+ List<RequestFormParam> l = list();
String[] values = e.getValue();
if (values == null)
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeaders.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeaders.java
index 6ddc739..8c70f56 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeaders.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeaders.java
@@ -135,7 +135,7 @@ public class RequestHeaders {
for (Enumeration<String> e = req.getHttpServletRequest().getHeaderNames(); e.hasMoreElements();) {
String name = e.nextElement();
String key = key(name);
- List<RequestHeader> l = new ArrayList<>();
+ List<RequestHeader> l = list();
for (Enumeration<String> ve = req.getHttpServletRequest().getHeaders(name); ve.hasMoreElements();) {
RequestHeader h = new RequestHeader(req, name, ve.nextElement());
list.add(h);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParams.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParams.java
index f35213a..54c0087 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParams.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParams.java
@@ -139,7 +139,7 @@ public class RequestQueryParams {
for (Map.Entry<String,String[]> e : query.entrySet()) {
String name = e.getKey();
String key = key(name);
- List<RequestQueryParam> l = new ArrayList<>();
+ List<RequestQueryParam> l = list();
String[] values = e.getValue();
if (values == null)
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
index 2094573..2f8b074 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/remote/RrpcServlet.java
@@ -14,6 +14,7 @@ package org.apache.juneau.rest.remote;
import static org.apache.juneau.dto.html5.HtmlBuilder.*;
import static org.apache.juneau.http.HttpMethod.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.StringUtils.*;
import java.io.*;
@@ -98,7 +99,7 @@ public abstract class RrpcServlet extends BasicRestServlet {
@Path("javaInterface") @Schema(description="Java interface name") String javaInterface
) throws Exception {
- List<LinkString> l = new ArrayList<>();
+ List<LinkString> l = list();
for (String s : getMethods(javaInterface).keySet())
l.add(new LinkString(s, "servlet:/{0}/{1}", urlEncode(javaInterface), urlEncode(s)));
return l;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
index 900bcda..fbd98bb 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/stats/ThrownStore.java
@@ -13,7 +13,6 @@
package org.apache.juneau.rest.stats;
import static java.util.stream.Collectors.*;
-import static java.util.Collections.*;
import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.ObjectUtils.*;
import static java.util.Comparator.*;
@@ -188,7 +187,7 @@ public class ThrownStore {
s = parent.get().ignoreClasses;
if (s == null)
s = Collections.emptySet();
- this.ignoreClasses = unmodifiableSet(s);
+ this.ignoreClasses = unmodifiable(s);
}
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
index 0165052..4c7a282 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/swagger/BasicSwaggerProviderSession.java
@@ -185,7 +185,7 @@ public class BasicSwaggerProviderSession {
if (produces.isEmpty())
produces.addAll(context.getProduces());
- Map<String,OMap> tagMap = new LinkedHashMap<>();
+ Map<String,OMap> tagMap = map();
if (omSwagger.containsKey("tags")) {
for (OMap om : omSwagger.getList("tags").elements(OMap.class)) {
String name = om.getString("name");
@@ -412,9 +412,9 @@ public class BasicSwaggerProviderSession {
}
if (mi.hasAnnotation(Response.class) || mi.getReturnType().unwrap(Value.class,Optional.class).hasAnnotation(Response.class)) {
- List<Response> la = new ArrayList<>();
+ List<Response> la = list();
mi.forEachAnnotation(context, Response.class, x -> true, x -> la.add(x));
- List<StatusCode> la2 = new ArrayList<>();
+ List<StatusCode> la2 = list();
mi.forEachAnnotation(context, StatusCode.class, x -> true, x -> la2.add(x));
Set<Integer> codes = getCodes(la2, 200);
for (Response a : la) {
@@ -463,10 +463,10 @@ public class BasicSwaggerProviderSession {
ClassInfo pt = mpi.getParameterType();
if (pt.is(Value.class) && (mpi.hasAnnotation(Header.class) || pt.hasAnnotation(Header.class))) {
- List<Header> la = new ArrayList<>();
+ List<Header> la = list();
mpi.forEachAnnotation(Header.class, x -> true, x -> la.add(x));
pt.forEachAnnotation(Header.class, x -> true, x -> la.add(x));
- List<StatusCode> la2 = new ArrayList<>();
+ List<StatusCode> la2 = list();
mpi.forEachAnnotation(StatusCode.class, x -> true, x -> la2.add(x));
pt.forEachAnnotation(StatusCode.class, x -> true, x -> la2.add(x));
Set<Integer> codes = getCodes(la2, 200);
@@ -484,10 +484,10 @@ public class BasicSwaggerProviderSession {
}
} else if (mpi.hasAnnotation(Response.class) || pt.hasAnnotation(Response.class)) {
- List<Response> la = new ArrayList<>();
+ List<Response> la = list();
mpi.forEachAnnotation(Response.class, x -> true, x -> la.add(x));
pt.forEachAnnotation(Response.class, x -> true, x -> la.add(x));
- List<StatusCode> la2 = new ArrayList<>();
+ List<StatusCode> la2 = list();
mpi.forEachAnnotation(StatusCode.class, x -> true, x -> la2.add(x));
pt.forEachAnnotation(StatusCode.class, x -> true, x -> la2.add(x));
Set<Integer> codes = getCodes(la2, 200);
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
index 50d86b7..9fe40f8 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java
@@ -289,7 +289,7 @@ public final class RestUtils {
try {
Map<String,String[]> m = map;
if (m == null)
- m = new LinkedHashMap<>();
+ m = map();
if (qs == null || ((qs instanceof CharSequence) && isEmpty(qs)))
return m;
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
index c09349d..8133e59 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java
@@ -13,6 +13,7 @@
package org.apache.juneau.rest.util;
import static org.apache.juneau.internal.StringUtils.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
import static org.apache.juneau.internal.FileUtils.*;
import java.util.*;
@@ -112,7 +113,7 @@ public abstract class UrlPathMatcher implements Comparable<UrlPathMatcher> {
this.parts = parts;
this.vars = new String[parts.length];
- List<String> vars = new ArrayList<>();
+ List<String> vars = list();
for (int i = 0; i < parts.length; i++) {
Matcher m = VAR_PATTERN.matcher(parts[i]);
diff --git a/juneau-utest/src/test/java/org/apache/juneau/pojotools/PojoSearcherTest.java b/juneau-utest/src/test/java/org/apache/juneau/pojotools/PojoSearcherTest.java
index 195378a..660ec0f 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/pojotools/PojoSearcherTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/pojotools/PojoSearcherTest.java
@@ -901,7 +901,6 @@ public class PojoSearcherTest {
list(map("quux",null)),
list(map(null,null)),
list("xxx"),
- list(123),
null
);
assertObject(run(in, "f=foo")).asJson().is("[[{f:'foo'}]]");