Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve performance using Collections in TomEE container #235

Merged
merged 5 commits into from Dec 6, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -211,8 +211,7 @@ public void mergeOWBAndOpenEJBInfo() {
if (timeout != null) {
final AnnotatedType annotatedType = cdiEjbBean.getAnnotatedType();
final AnnotationManager annotationManager = getWebBeansContext().getAnnotationManager();
final Collection<Annotation> annotations = new HashSet<>();
annotations.addAll(annotationManager.getInterceptorAnnotations(annotatedType.getAnnotations()));
final Collection<Annotation> annotations = new HashSet<>(annotationManager.getInterceptorAnnotations(annotatedType.getAnnotations()));
final Set<AnnotatedMethod<?>> methods = annotatedType.getMethods();
for (final AnnotatedMethod<?> m : methods) {
if (timeout.equals(m.getJavaMember())) {
Expand Down Expand Up @@ -692,13 +691,9 @@ private void initDefaultLock() {

final ArrayList<Class> classes = new ArrayList<>();

for (final Class local : businessRemotes) {
classes.add(local);
}
classes.addAll(businessRemotes);

for (final Class local : businessLocals) {
classes.add(local);
}
classes.addAll(businessLocals);

classes.add(this.beanClass);

Expand Down
Expand Up @@ -334,8 +334,7 @@ public static URLClassLoader createTempClassLoader(final String appId, final URL
urls = rawUrls;
} else {
final CompositeClassLoaderConfigurer configurer = new CompositeClassLoaderConfigurer(configurer1, configurer2, configurer3);
final Collection<URL> list = new ArrayList<>();
list.addAll(Arrays.asList(rawUrls));
final Collection<URL> list = new ArrayList<>(Arrays.asList(rawUrls));
ClassLoaderConfigurer.Helper.configure(list, configurer);
urls = list.toArray(new URL[list.size()]);
}
Expand Down
Expand Up @@ -278,8 +278,7 @@ public EJBContainer createEJBContainer(Map<?, ?> map) {

final Set<String> callers;
if (map.containsKey(OPENEJB_ADDITIONNAL_CALLERS_KEY)) {
callers = new LinkedHashSet<>();
callers.addAll(Arrays.asList(((String) map.get(OPENEJB_ADDITIONNAL_CALLERS_KEY)).split(",")));
callers = new LinkedHashSet<>(Arrays.asList(((String) map.get(OPENEJB_ADDITIONNAL_CALLERS_KEY)).split(",")));
} else {
callers = NewLoaderLogic.callers();
}
Expand Down
Expand Up @@ -611,10 +611,9 @@ public void buildContainerSystem(final OpenEjbConfiguration configInfo) throws E
containerInfos.add(serviceInfo);
}

final Set<String> apps = appContainers.keySet();
for (final String app : apps) {
final List<ContainerInfo> containerInfos = appContainers.get(app);
final ClassLoader classLoader = appClassLoaders.get(app);
for (final Entry<String, List<ContainerInfo>> stringListEntry : appContainers.entrySet()) {
final List<ContainerInfo> containerInfos = stringListEntry.getValue();
final ClassLoader classLoader = appClassLoaders.get(stringListEntry.getKey());

final ClassLoader oldCl = Thread.currentThread().getContextClassLoader();

Expand Down Expand Up @@ -1416,18 +1415,10 @@ private static List<CommonInfoObject> listCommonInfoObjectsForAppInfo(final AppI
final List<CommonInfoObject> vfs = new ArrayList<>(
appInfo.clients.size() + appInfo.connectors.size() +
appInfo.ejbJars.size() + appInfo.webApps.size());
for (final ClientInfo clientInfo : appInfo.clients) {
vfs.add(clientInfo);
}
for (final ConnectorInfo connectorInfo : appInfo.connectors) {
vfs.add(connectorInfo);
}
for (final EjbJarInfo ejbJarInfo : appInfo.ejbJars) {
vfs.add(ejbJarInfo);
}
for (final WebAppInfo webAppInfo : appInfo.webApps) {
vfs.add(webAppInfo);
}
vfs.addAll(appInfo.clients);
vfs.addAll(appInfo.connectors);
vfs.addAll(appInfo.ejbJars);
vfs.addAll(appInfo.webApps);
return vfs;
}

Expand Down Expand Up @@ -2422,12 +2413,8 @@ public void destroyApplication(final AppInfo appInfo) throws UndeployException {
final List<String> clientIds = new ArrayList<>();
for (final ClientInfo clientInfo : appInfo.clients) {
clientIds.add(clientInfo.moduleId);
for (final String className : clientInfo.localClients) {
clientIds.add(className);
}
for (final String className : clientInfo.remoteClients) {
clientIds.add(className);
}
clientIds.addAll(clientInfo.localClients);
clientIds.addAll(clientInfo.remoteClients);
}

for (final WebContext webContext : appContext.getWebContexts()) {
Expand Down
Expand Up @@ -40,6 +40,7 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -387,7 +388,7 @@ private Method getTimeout(final Class ejbClass, final NamedMethodInfo info) {
candidateInfo.className = info.className;
candidateInfo.id = info.id;
candidateInfo.methodName = info.methodName;
candidateInfo.methodParams = Arrays.asList(Timer.class.getName());
candidateInfo.methodParams = Collections.singletonList(Timer.class.getName());
timeout = MethodInfoUtil.toMethod(ejbClass, candidateInfo);
}
}
Expand Down
Expand Up @@ -30,8 +30,8 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -206,7 +206,7 @@ private List<InterceptorBindingInfo> processBindings(final Method method, final
// - Any addition for current level and/or exclusion for a lower level
// (lowest)
//
final Set<Level> excludes = new HashSet<>();
final Set<Level> excludes = EnumSet.noneOf(Level.class);
for (final InterceptorBindingInfo info : bindings) {
final Level level = level(info);

Expand Down
Expand Up @@ -432,10 +432,9 @@ private static boolean containerMethod(final Method method) {
}

private static List<Method> getWildCardView(final BeanContext info) {
final List<Method> methods = new ArrayList<>();

final List<Method> beanMethods = asList(info.getBeanClass().getMethods());
methods.addAll(beanMethods);
final List<Method> methods = new ArrayList<>(beanMethods);

if (info.getRemoteInterface() != null) {
methods.addAll(exclude(beanMethods, info.getRemoteInterface().getMethods()));
Expand Down
Expand Up @@ -50,6 +50,7 @@
import java.io.InputStream;
import java.io.Serializable;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
Expand Down Expand Up @@ -96,9 +97,7 @@ public static ValidationInfo getInfo(final ValidationConfigType config) {
for (final PropertyType p : config.getProperty()) {
info.propertyTypes.put(p.getName(), p.getValue());
}
for (final String element : config.getConstraintMapping()) {
info.constraintMappings.add(element);
}
info.constraintMappings.addAll(config.getConstraintMapping());
}
return info;
}
Expand Down Expand Up @@ -163,7 +162,7 @@ private static Configuration<?> getConfig(final ValidationInfo info) {
thread.setContextClassLoader(classLoader);
}

final Set<ExecutableType> types = new HashSet<>();
final Set<ExecutableType> types = EnumSet.noneOf(ExecutableType.class);
for (final String type : info.validatedTypes) {
types.add(ExecutableType.valueOf(type));
}
Expand Down
Expand Up @@ -90,8 +90,7 @@ public List<Interceptor<?>> resolveInterceptors(InterceptionType type, Annotatio

@Override
public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(final T event, final EventMetadataImpl metadata) {
final Set<ObserverMethod<? super T>> set = new HashSet<>();
set.addAll(super.resolveObserverMethods(event, metadata));
final Set<ObserverMethod<? super T>> set = new HashSet<>(super.resolveObserverMethods(event, metadata));

if (isEvent(event)) {
final BeanManagerImpl parentBm = getParentBm();
Expand Down
Expand Up @@ -3127,7 +3127,7 @@ private void processSessionInterfaces(final SessionBean sessionBean, final Class
all.local.addAll(xml.local);
all.remote.addAll(xml.remote);

final List<Class<?>> classes = strict ? new ArrayList(Arrays.asList(beanClass)) : Classes.ancestors(beanClass);
final List<Class<?>> classes = strict ? new ArrayList(Collections.singletonList(beanClass)) : Classes.ancestors(beanClass);

for (final Class<?> clazz : classes) {

Expand Down
Expand Up @@ -2287,19 +2287,19 @@ public void dump() {
for (final String s : resourceAdapterIds) {
logger.debug(appId + " module contains resource adapter id: " + s);
}
for (final String s : resourceIdsByType.keySet()) {
for (final String value : resourceIdsByType.get(s)) {
logger.debug(appId + " module contains resource type: " + s + " --> " + value);
for (final Map.Entry<String, List<String>> stringListEntry : resourceIdsByType.entrySet()) {
for (final String value : stringListEntry.getValue()) {
logger.debug(appId + " module contains resource type: " + stringListEntry.getKey() + " --> " + value);
}
}
for (final String s : resourceEnvIdsByType.keySet()) {
for (final String value : resourceEnvIdsByType.get(s)) {
logger.debug(appId + " module contains resource env type: " + s + " --> " + value);
for (final Map.Entry<String, List<String>> stringListEntry : resourceEnvIdsByType.entrySet()) {
for (final String value : stringListEntry.getValue()) {
logger.debug(appId + " module contains resource env type: " + stringListEntry.getKey() + " --> " + value);
}
}
for (final String s : containerIdsByType.keySet()) {
for (final String value : containerIdsByType.get(s)) {
logger.debug(appId + " module contains container type: " + s + " --> " + value);
for (final Map.Entry<String, List<String>> stringListEntry : containerIdsByType.entrySet()) {
for (final String value : stringListEntry.getValue()) {
logger.debug(appId + " module contains container type: " + stringListEntry.getKey() + " --> " + value);
}
}
}
Expand Down
Expand Up @@ -34,6 +34,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand All @@ -56,7 +57,7 @@ public ConfigurableClasspathArchive(final ClassLoader loader, final boolean forc
}

public ConfigurableClasspathArchive(final ClassLoader loader, final URL url) {
this(new FakeModule(loader), Arrays.asList(url));
this(new FakeModule(loader), Collections.singletonList(url));
}

public ConfigurableClasspathArchive(final Module module, final boolean forceDescriptor, final Iterable<URL> urls) {
Expand Down
Expand Up @@ -1711,15 +1711,11 @@ protected List<ContainerInfo> getContainerInfos() {

final OpenEjbConfiguration runningConfig = getRunningConfig();
if (runningConfig != null) {
for (final ContainerInfo containerInfo : runningConfig.containerSystem.containers) {
containers.add(containerInfo);
}
containers.addAll(runningConfig.containerSystem.containers);
}

if (sys != null) {
for (final ContainerInfo containerInfo : sys.containerSystem.containers) {
containers.add(containerInfo);
}
containers.addAll(sys.containerSystem.containers);
}
return containers;
}
Expand Down