Skip to content

Commit

Permalink
JNDI: web-glue vs. SimpleJndiName
Browse files Browse the repository at this point in the history
Signed-off-by: David Matějček <david.matejcek@omnifish.ee>
  • Loading branch information
dmatej committed Nov 14, 2022
1 parent 6f906c6 commit cc06b31
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import java.text.MessageFormat;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Set;
Expand All @@ -50,6 +49,7 @@
import org.apache.catalina.deploy.LoginConfig;
import org.apache.catalina.startup.ContextConfig;
import org.glassfish.api.admin.ServerEnvironment;
import org.glassfish.api.naming.SimpleJndiName;
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.web.LogFacade;
import org.glassfish.web.deployment.descriptor.WebBundleDescriptorImpl;
Expand All @@ -61,7 +61,6 @@
*
* @author Jean-Francois Arcand
*/

public class WebModuleContextConfig extends ContextConfig {

private static final String DEFAULT_DIGEST_ALGORITHM = "default-digest-algorithm";
Expand Down Expand Up @@ -132,9 +131,7 @@ protected synchronized void configureResource() throws LifecycleException {
List<ApplicationParameter> appParams = context.findApplicationParameters();
ContextParameter contextParam;
synchronized (appParams) {
Iterator<ApplicationParameter> i = appParams.iterator();
while (i.hasNext()) {
ApplicationParameter appParam = i.next();
for (ApplicationParameter appParam : appParams) {
contextParam = new EnvironmentProperty(appParam.getName(), appParam.getValue(),
appParam.getDescription());
webBundleDescriptor.addContextParameter(contextParam);
Expand All @@ -154,26 +151,23 @@ protected synchronized void configureResource() throws LifecycleException {
}

ContextResource[] resources = context.findResources();
ResourceReferenceDescriptor resourceReference;
Set<ResourceReferenceDescriptor> rrs = webBundleDescriptor.getResourceReferenceDescriptors();
ResourcePrincipalDescriptor rp;

for (ContextResource element : resources) {
resourceReference = new ResourceReferenceDescriptor(element.getName(), element.getDescription(),
element.getType());
resourceReference.setJndiName(element.getName());
for (ContextResource resource : resources) {
ResourceReferenceDescriptor descriptor = new ResourceReferenceDescriptor(resource.getName(),
resource.getDescription(), resource.getType());
descriptor.setJndiName(new SimpleJndiName(resource.getName()));
for (ResourceReferenceDescriptor rr : rrs) {
if (element.getName().equals(rr.getName())) {
resourceReference.setJndiName(rr.getJndiName());
rp = rr.getResourcePrincipal();
if (resource.getName().equals(rr.getName())) {
descriptor.setJndiName(rr.getJndiName());
ResourcePrincipalDescriptor rp = rr.getResourcePrincipal();
if (rp != null) {
resourceReference.setResourcePrincipal(new ResourcePrincipalDescriptor(rp.getName(), rp.getPassword()));
descriptor.setResourcePrincipal(new ResourcePrincipalDescriptor(rp.getName(), rp.getPassword()));
}
}
}
resourceReference.setAuthorization(element.getAuth());
webBundleDescriptor.addResourceReferenceDescriptor(resourceReference);
resRefs.add(resourceReference);
descriptor.setAuthorization(resource.getAuth());
webBundleDescriptor.addResourceReferenceDescriptor(descriptor);
resRefs.add(descriptor);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,17 @@

package com.sun.enterprise.web;

import static java.util.logging.Level.FINE;
import static java.util.logging.Level.FINER;
import static java.util.logging.Level.WARNING;
import static org.glassfish.web.LogFacade.CLASS_CAST_EXCEPTION;
import com.sun.appserv.web.cache.CacheManager;
import com.sun.enterprise.container.common.spi.CDIService;
import com.sun.enterprise.deployment.WebBundleDescriptor;
import com.sun.enterprise.deployment.WebComponentDescriptor;
import com.sun.enterprise.deployment.runtime.web.SunWebApp;
import com.sun.enterprise.deployment.web.InitializationParameter;
import com.sun.enterprise.util.net.JarURIPattern;
import com.sun.enterprise.web.jsp.JspProbeEmitterImpl;
import com.sun.enterprise.web.jsp.ResourceInjectorImpl;

import jakarta.servlet.ServletContext;

import java.net.URI;
import java.util.ArrayList;
Expand All @@ -32,9 +39,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Pattern;
//import com.sun.enterprise.server.PersistenceUnitLoaderImpl;
//import com.sun.enterprise.server.PersistenceUnitLoader;
//import com.sun.enterprise.config.ConfigException;

import javax.naming.NamingException;

Expand All @@ -53,17 +57,10 @@
import org.glassfish.web.deployment.runtime.WebProperty;
import org.glassfish.web.deployment.util.WebValidatorWithCL;

import com.sun.appserv.web.cache.CacheManager;
import com.sun.enterprise.container.common.spi.CDIService;
import com.sun.enterprise.deployment.WebBundleDescriptor;
import com.sun.enterprise.deployment.WebComponentDescriptor;
import com.sun.enterprise.deployment.runtime.web.SunWebApp;
import com.sun.enterprise.deployment.web.InitializationParameter;
import com.sun.enterprise.util.net.JarURIPattern;
import com.sun.enterprise.web.jsp.JspProbeEmitterImpl;
import com.sun.enterprise.web.jsp.ResourceInjectorImpl;

import jakarta.servlet.ServletContext;
import static java.util.logging.Level.FINE;
import static java.util.logging.Level.FINER;
import static java.util.logging.Level.WARNING;
import static org.glassfish.web.LogFacade.CLASS_CAST_EXCEPTION;

/**
* Startup event listener for a <b>Context</b> that configures the properties of that Jsp Servlet from sun-web.xml
Expand All @@ -79,8 +76,8 @@ final class WebModuleListener implements LifecycleListener {
/**
* Descriptor object associated with this web application. Used for loading persistence units.
*/
private WebBundleDescriptor webBundleDescriptor;
private WebContainer webContainer;
private final WebBundleDescriptor webBundleDescriptor;
private final WebContainer webContainer;

/**
* Constructor.
Expand Down Expand Up @@ -203,9 +200,9 @@ private void configureJsp(WebModule webModule) {
}
if (bean != null && bean.getJspConfig() != null) {
WebProperty[] props = bean.getJspConfig().getWebProperty();
for (int i = 0; i < props.length; i++) {
String pname = props[i].getAttributeValue("name");
String pvalue = props[i].getAttributeValue("value");
for (WebProperty prop : props) {
String pname = prop.getAttributeValue("name");
String pvalue = prop.getAttributeValue("value");
if (_logger.isLoggable(FINE)) {
_logger.log(FINE, LogFacade.JSP_CONFIG_PROPERTY, "[" + webModule.getID() + "] is [" + pname + "] = [" + pvalue + "]");
}
Expand Down Expand Up @@ -261,7 +258,7 @@ private void configureJsp(WebModule webModule) {
cdiService.setELResolver(servletContext);
}
} catch (NamingException e) {
// Ignore
_logger.log(Level.CONFIG, "Setting the ELResolver failed. Ignoring the exception.", e);
} finally {
invocationManager.postInvoke(webComponentInvocation);
}
Expand Down Expand Up @@ -376,9 +373,7 @@ private void startCacheManager(WebModule webModule) {
try {
// first start the CacheManager, if enabled
cm.start();
if (_logger.isLoggable(FINE)) {
_logger.log(FINE, LogFacade.CACHE_MANAGER_STARTED);
}
_logger.log(FINE, LogFacade.CACHE_MANAGER_STARTED);
// set this manager as a context attribute so that
// caching filters/tags can find it
ServletContext ctxt = webModule.getServletContext();
Expand All @@ -397,9 +392,7 @@ private void stopCacheManager(WebModule webModule) {
if (cm != null) {
try {
cm.stop();
if (_logger.isLoggable(FINE)) {
_logger.log(FINE, LogFacade.CACHE_MANAGER_STOPPED);
}
_logger.log(FINE, LogFacade.CACHE_MANAGER_STOPPED);
ctxt.removeAttribute(CacheManager.CACHE_MANAGER_ATTR_NAME);
} catch (LifecycleException ee) {
_logger.log(WARNING, ee.getMessage(), ee.getCause());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import static org.apache.catalina.ContainerEvent.AFTER_FILTER_DESTROYED;
import static org.apache.catalina.ContainerEvent.BEFORE_CONTEXT_DESTROYED;
import static org.apache.catalina.ContainerEvent.PRE_DESTROY;
import static org.glassfish.api.naming.SimpleJndiName.JNDI_CTX_JAVA_COMPONENT;
import static org.glassfish.web.LogFacade.EXCEPTION_DURING_DESTROY_MANAGED_OBJECT;
import static org.glassfish.web.LogFacade.EXCEPTION_DURING_HANDLE_EVENT;
import static org.glassfish.web.LogFacade.EXCEPTION_GETTING_VALIDATOR_FACTORY;
Expand Down Expand Up @@ -59,8 +60,8 @@ public final class WebContainerListener implements ContainerListener {
private static final Logger _logger = LogFacade.getLogger();
private static final ResourceBundle rb = _logger.getResourceBundle();

private static Set<String> beforeEvents = new HashSet<String>();
private static Set<String> afterEvents = new HashSet<String>();
private static Set<String> beforeEvents = new HashSet<>();
private static Set<String> afterEvents = new HashSet<>();

static {

Expand Down Expand Up @@ -126,9 +127,9 @@ public final class WebContainerListener implements ContainerListener {
afterEvents.add(ContainerEvent.AFTER_LOGOUT);
}

private InvocationManager invocationManager;
private InjectionManager injectionManager;
private NamedNamingObjectProxy validationNamingProxy;
private final InvocationManager invocationManager;
private final InjectionManager injectionManager;
private final NamedNamingObjectProxy validationNamingProxy;

public WebContainerListener(InvocationManager invocationMgr, InjectionManager injectionMgr, NamedNamingObjectProxy validationNamingProxy) {
this.invocationManager = invocationMgr;
Expand All @@ -153,7 +154,8 @@ public void containerEvent(ContainerEvent event) {
try {
// Must close the validator factory
if (validationNamingProxy != null) {
Object validatorFactory = validationNamingProxy.handle("java:comp/ValidatorFactory");
Object validatorFactory = validationNamingProxy
.handle(JNDI_CTX_JAVA_COMPONENT + "ValidatorFactory");
if (validatorFactory != null) {
((ValidatorFactory) validatorFactory).close();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1697,8 +1697,7 @@ protected void combineEnvironmentEntries(JndiNameEnvironment env) {
EnvironmentProperty envProp = _getEnvironmentPropertyByName(enve.getName());
if (envProp != null) {
combineInjectionTargets(envProp, enve);
EnvironmentProperty envP = enve;
if (!envProp.hasInjectionTargetFromXml() && (!envProp.isSetValueCalled()) && envP.isSetValueCalled()) {
if (enve.isSetValueCalled() && !envProp.hasInjectionTargetFromXml() && !envProp.isSetValueCalled()) {
envProp.setValue(enve.getValue());
}
} else {
Expand Down

0 comments on commit cc06b31

Please sign in to comment.