Skip to content

Commit

Permalink
DOL module vs. technical debt and generics
Browse files Browse the repository at this point in the history
- I tried to narrow generics in this packages, which made visible some weird
  constructions, maybe from some unfinished former refactoring.
- sometimes I inverted some conditions to make them more readable too, etc.

Signed-off-by: David Matějček <david.matejcek@omnifish.ee>
  • Loading branch information
dmatej committed Sep 18, 2022
1 parent a05ab44 commit e0da2ee
Show file tree
Hide file tree
Showing 92 changed files with 4,483 additions and 4,246 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand Down Expand Up @@ -63,9 +64,8 @@ public class AnnotationInfo {
* @param element the annotated element
* @param annotation the annotation
*/
public AnnotationInfo(ProcessingContext context, AnnotatedElement element,
Annotation annotation, ElementType type) {

public AnnotationInfo(ProcessingContext context, AnnotatedElement element, Annotation annotation,
ElementType type) {
this.context = context;
this.annotatedElement = element;
this.annotation = annotation;
Expand Down Expand Up @@ -101,6 +101,7 @@ public ElementType getElementType() {
return type;
}

@Override
public String toString() {
return localStrings.getLocalString("annotatedinfo.string", "annotation [{0}] on annotated element [{1}] of type [{2}]", annotation, annotatedElement, type);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,39 @@

package com.sun.enterprise.container.common.impl;

import static com.sun.appserv.connectors.internal.api.ConnectorsUtil.getPMJndiName;
import static com.sun.enterprise.deployment.util.DOLUtils.getApplicationFromEnv;
import static com.sun.enterprise.deployment.util.DOLUtils.getApplicationName;
import static com.sun.enterprise.deployment.util.DOLUtils.getModuleName;
import static com.sun.enterprise.deployment.util.DOLUtils.getTreatComponentAsModule;
import static java.util.logging.Level.FINE;
import static java.util.logging.Level.SEVERE;
import static org.glassfish.deployment.common.JavaEEResourceType.AODD;
import static org.glassfish.deployment.common.JavaEEResourceType.CFD;
import static org.glassfish.deployment.common.JavaEEResourceType.CSDD;
import static org.glassfish.deployment.common.JavaEEResourceType.DSD;
import static org.glassfish.deployment.common.JavaEEResourceType.JMSCFDD;
import static org.glassfish.deployment.common.JavaEEResourceType.JMSDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MEDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MSEDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MTFDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MSD;
import com.sun.enterprise.container.common.spi.EjbNamingReferenceManager;
import com.sun.enterprise.container.common.spi.WebServiceReferenceManager;
import com.sun.enterprise.container.common.spi.util.CallFlowAgent;
import com.sun.enterprise.container.common.spi.util.ComponentEnvManager;
import com.sun.enterprise.deployment.AdministeredObjectDefinitionDescriptor;
import com.sun.enterprise.deployment.Application;
import com.sun.enterprise.deployment.ApplicationClientDescriptor;
import com.sun.enterprise.deployment.ConnectionFactoryDefinitionDescriptor;
import com.sun.enterprise.deployment.DataSourceDefinitionDescriptor;
import com.sun.enterprise.deployment.EjbReferenceDescriptor;
import com.sun.enterprise.deployment.EntityManagerFactoryReferenceDescriptor;
import com.sun.enterprise.deployment.EntityManagerReferenceDescriptor;
import com.sun.enterprise.deployment.EnvironmentProperty;
import com.sun.enterprise.deployment.JMSConnectionFactoryDefinitionDescriptor;
import com.sun.enterprise.deployment.JndiNameEnvironment;
import com.sun.enterprise.deployment.MailSessionDescriptor;
import com.sun.enterprise.deployment.ManagedBeanDescriptor;
import com.sun.enterprise.deployment.MessageDestinationReferenceDescriptor;
import com.sun.enterprise.deployment.ResourceEnvReferenceDescriptor;
import com.sun.enterprise.deployment.ResourceReferenceDescriptor;
import com.sun.enterprise.deployment.ServiceReferenceDescriptor;
import com.sun.enterprise.deployment.core.ResourceDescriptor;
import com.sun.enterprise.deployment.util.DOLUtils;
import com.sun.enterprise.naming.spi.NamingObjectFactory;
import com.sun.enterprise.naming.spi.NamingUtils;

import jakarta.inject.Inject;
import jakarta.transaction.TransactionManager;
import jakarta.validation.Validation;
import jakarta.validation.ValidationException;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorContext;
import jakarta.validation.ValidatorFactory;

import java.net.MalformedURLException;
import java.net.URL;
Expand Down Expand Up @@ -69,39 +85,23 @@
import org.glassfish.resourcebase.resources.util.ResourceManagerFactory;
import org.jvnet.hk2.annotations.Service;

import com.sun.enterprise.container.common.spi.EjbNamingReferenceManager;
import com.sun.enterprise.container.common.spi.WebServiceReferenceManager;
import com.sun.enterprise.container.common.spi.util.CallFlowAgent;
import com.sun.enterprise.container.common.spi.util.ComponentEnvManager;
import com.sun.enterprise.deployment.AdministeredObjectDefinitionDescriptor;
import com.sun.enterprise.deployment.Application;
import com.sun.enterprise.deployment.ApplicationClientDescriptor;
import com.sun.enterprise.deployment.ConnectionFactoryDefinitionDescriptor;
import com.sun.enterprise.deployment.DataSourceDefinitionDescriptor;
import com.sun.enterprise.deployment.EjbReferenceDescriptor;
import com.sun.enterprise.deployment.EntityManagerFactoryReferenceDescriptor;
import com.sun.enterprise.deployment.EntityManagerReferenceDescriptor;
import com.sun.enterprise.deployment.EnvironmentProperty;
import com.sun.enterprise.deployment.JMSConnectionFactoryDefinitionDescriptor;
import com.sun.enterprise.deployment.JndiNameEnvironment;
import com.sun.enterprise.deployment.MailSessionDescriptor;
import com.sun.enterprise.deployment.ManagedBeanDescriptor;
import com.sun.enterprise.deployment.MessageDestinationReferenceDescriptor;
import com.sun.enterprise.deployment.ResourceEnvReferenceDescriptor;
import com.sun.enterprise.deployment.ResourceReferenceDescriptor;
import com.sun.enterprise.deployment.ServiceReferenceDescriptor;
import com.sun.enterprise.deployment.core.ResourceDescriptor;
import com.sun.enterprise.deployment.util.DOLUtils;
import com.sun.enterprise.naming.spi.NamingObjectFactory;
import com.sun.enterprise.naming.spi.NamingUtils;

import jakarta.inject.Inject;
import jakarta.transaction.TransactionManager;
import jakarta.validation.Validation;
import jakarta.validation.ValidationException;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorContext;
import jakarta.validation.ValidatorFactory;
import static com.sun.appserv.connectors.internal.api.ConnectorsUtil.getPMJndiName;
import static com.sun.enterprise.deployment.util.DOLUtils.getApplicationFromEnv;
import static com.sun.enterprise.deployment.util.DOLUtils.getApplicationName;
import static com.sun.enterprise.deployment.util.DOLUtils.getModuleName;
import static com.sun.enterprise.deployment.util.DOLUtils.getTreatComponentAsModule;
import static java.util.logging.Level.FINE;
import static java.util.logging.Level.SEVERE;
import static org.glassfish.deployment.common.JavaEEResourceType.AODD;
import static org.glassfish.deployment.common.JavaEEResourceType.CFD;
import static org.glassfish.deployment.common.JavaEEResourceType.CSDD;
import static org.glassfish.deployment.common.JavaEEResourceType.DSD;
import static org.glassfish.deployment.common.JavaEEResourceType.JMSCFDD;
import static org.glassfish.deployment.common.JavaEEResourceType.JMSDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MEDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MSD;
import static org.glassfish.deployment.common.JavaEEResourceType.MSEDD;
import static org.glassfish.deployment.common.JavaEEResourceType.MTFDD;

@Service
public class ComponentEnvManagerImpl implements ComponentEnvManager {
Expand Down Expand Up @@ -142,7 +142,7 @@ public class ComponentEnvManagerImpl implements ComponentEnvManager {
@Inject
private InvocationManager invocationManager;

private ConcurrentMap<String, RefCountJndiNameEnvironment> compId2Env = new ConcurrentHashMap<String, RefCountJndiNameEnvironment>();
private final ConcurrentMap<String, RefCountJndiNameEnvironment> compId2Env = new ConcurrentHashMap<>();

/*
* Keep track of number of components using the same component ID so that we can match register calls with unregister
Expand Down Expand Up @@ -210,7 +210,7 @@ public JndiNameEnvironment getCurrentJndiNameEnvironment() {
public String bindToComponentNamespace(JndiNameEnvironment jndiEnvironment) throws NamingException {
String componentEnvId = getComponentEnvId(jndiEnvironment);

Collection<JNDIBinding> bindings = new ArrayList<JNDIBinding>();
Collection<JNDIBinding> bindings = new ArrayList<>();

// Add all java:comp, java:module, and java:app(except for app clients) dependencies
// for the specified environment
Expand Down Expand Up @@ -332,7 +332,7 @@ private String getResourceId(JndiNameEnvironment env, Descriptor desc) {
}

private void addAllDescriptorBindings(JndiNameEnvironment JndiEnvironment, ScopeType scope, Collection<JNDIBinding> jndiBindings) {
Set<ResourceDescriptor> allDescriptors = new HashSet<ResourceDescriptor>();
Set<ResourceDescriptor> allDescriptors = new HashSet<>();
Set<ResourceDescriptor> dataSourceDefinitions = JndiEnvironment.getResourceDescriptors(DSD);
Set<ResourceDescriptor> messagingConnectionFactoryDefinitions = JndiEnvironment.getResourceDescriptors(JMSCFDD);
Set<ResourceDescriptor> mailSessionDefinitions = JndiEnvironment.getResourceDescriptors(MSD);
Expand Down Expand Up @@ -596,9 +596,7 @@ private void addJNDIBindings(JndiNameEnvironment env, ScopeType scope, Collectio

addEnvironmentProperties(scope, env.getEnvironmentProperties().iterator(), jndiBindings);

for (Iterator itr = env.getResourceEnvReferenceDescriptors().iterator(); itr.hasNext();) {
ResourceEnvReferenceDescriptor next = (ResourceEnvReferenceDescriptor) itr.next();

for (ResourceEnvReferenceDescriptor next : env.getResourceEnvReferenceDescriptors()) {
if (!dependencyAppliesToScope(next, scope)) {
continue;
}
Expand All @@ -608,25 +606,19 @@ private void addJNDIBindings(JndiNameEnvironment env, ScopeType scope, Collectio

addAllDescriptorBindings(env, scope, jndiBindings);

for (Iterator itr = env.getEjbReferenceDescriptors().iterator(); itr.hasNext();) {
EjbReferenceDescriptor next = (EjbReferenceDescriptor) itr.next();

for (EjbReferenceDescriptor next : env.getEjbReferenceDescriptors()) {
if (!dependencyAppliesToScope(next, scope)) {
continue;
}

String name = descriptorToLogicalJndiName(next);
EjbReferenceProxy proxy = new EjbReferenceProxy(next);
jndiBindings.add(new CompEnvBinding(name, proxy));
}

for (Iterator itr = env.getMessageDestinationReferenceDescriptors().iterator(); itr.hasNext();) {
MessageDestinationReferenceDescriptor next = (MessageDestinationReferenceDescriptor) itr.next();

for (MessageDestinationReferenceDescriptor next : env.getMessageDestinationReferenceDescriptors()) {
if (!dependencyAppliesToScope(next, scope)) {
continue;
}

jndiBindings.add(getCompEnvBinding(next));
}

Expand All @@ -643,8 +635,8 @@ private void addJNDIBindings(JndiNameEnvironment env, ScopeType scope, Collectio
jndiBindings.add(new CompEnvBinding(name, value));
}

for (Iterator itr = env.getServiceReferenceDescriptors().iterator(); itr.hasNext();) {
ServiceReferenceDescriptor next = (ServiceReferenceDescriptor) itr.next();
for (ServiceReferenceDescriptor serviceReferenceDescriptor : env.getServiceReferenceDescriptors()) {
ServiceReferenceDescriptor next = serviceReferenceDescriptor;

if (!dependencyAppliesToScope(next, scope)) {
continue;
Expand Down Expand Up @@ -675,22 +667,18 @@ private void addJNDIBindings(JndiNameEnvironment env, ScopeType scope, Collectio
}

for (EntityManagerReferenceDescriptor next : env.getEntityManagerReferenceDescriptors()) {

if (!dependencyAppliesToScope(next, scope)) {
continue;
}

String name = descriptorToLogicalJndiName(next);
FactoryForEntityManagerWrapper value = new FactoryForEntityManagerWrapper(next, this);
jndiBindings.add(new CompEnvBinding(name, value));
}

return;
}

private CompEnvBinding getCompEnvBinding(final ResourceEnvReferenceDescriptor next) {
final String name = descriptorToLogicalJndiName(next);
Object value = null;
final Object value;
if (next.isEJBContext()) {
value = new EjbContextProxy(next.getRefType());
} else if (next.isValidator()) {
Expand Down Expand Up @@ -729,8 +717,8 @@ public Object create(Context ic) throws NamingException {
}

private CompEnvBinding getCompEnvBinding(MessageDestinationReferenceDescriptor messageDestinationRef) {
String name = descriptorToLogicalJndiName(messageDestinationRef);
String physicalJndiName = null;
final String name = descriptorToLogicalJndiName(messageDestinationRef);
final String physicalJndiName;
if (messageDestinationRef.isLinkedToMessageDestination()) {
physicalJndiName = messageDestinationRef.getMessageDestination().getJndiName();
} else {
Expand All @@ -747,27 +735,19 @@ private boolean dependencyAppliesToScope(Descriptor descriptor, ScopeType scope)
}

private boolean dependencyAppliesToScope(String name, ScopeType scope) {
boolean appliesToScope = false;

switch (scope) {
case COMPONENT:
// Env names without an explicit java: prefix default to java:comp
appliesToScope = name.startsWith(JAVA_COMP_PREFIX) || !name.startsWith(JAVA_COLON);
break;
return name.startsWith(JAVA_COMP_PREFIX) || !name.startsWith(JAVA_COLON);
case MODULE:
appliesToScope = name.startsWith(JAVA_MODULE_PREFIX);
break;
return name.startsWith(JAVA_MODULE_PREFIX);
case APP:
appliesToScope = name.startsWith(JAVA_APP_PREFIX);
break;
return name.startsWith(JAVA_APP_PREFIX);
case GLOBAL:
appliesToScope = name.startsWith(JAVA_GLOBAL_PREFIX);
break;
return name.startsWith(JAVA_GLOBAL_PREFIX);
default:
break;
return false;
}

return appliesToScope;
}

/**
Expand Down Expand Up @@ -825,7 +805,7 @@ public Object create(Context ctx) {
private class EjbContextProxy implements NamingObjectProxy {

private volatile EjbNamingReferenceManager ejbNamingRefManager;
private String contextType;
private final String contextType;

EjbContextProxy(String contextType) {
this.contextType = contextType;
Expand Down Expand Up @@ -925,7 +905,7 @@ public Object create(Context ctx) throws NamingException {
private class WebServiceRefProxy implements NamingObjectProxy {

private WebServiceReferenceManager webServiceRefManager;
private ServiceReferenceDescriptor serviceRef;
private final ServiceReferenceDescriptor serviceRef;

WebServiceRefProxy(ServiceReferenceDescriptor servRef) {
this.serviceRef = servRef;
Expand Down Expand Up @@ -956,7 +936,7 @@ public Object create(Context ctx) throws NamingException {

private class EjbReferenceProxy implements NamingObjectProxy {

private EjbReferenceDescriptor ejbRef;
private final EjbReferenceDescriptor ejbRef;

private volatile EjbNamingReferenceManager ejbRefMgr;
private volatile Object cachedResult;
Expand Down Expand Up @@ -1007,8 +987,8 @@ public Object create(Context ctx) throws NamingException {

private static class CompEnvBinding implements JNDIBinding {

private String name;
private Object value;
private final String name;
private final Object value;

CompEnvBinding(String name, Object value) {
this.name = name;
Expand Down

0 comments on commit e0da2ee

Please sign in to comment.