Skip to content

Commit

Permalink
Reintegration of the own concurrency implementation + related things
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 Oct 11, 2022
1 parent 7bcb33a commit 8ac9eb8
Show file tree
Hide file tree
Showing 201 changed files with 6,541 additions and 2,707 deletions.
4 changes: 2 additions & 2 deletions appserver/batch/glassfish-batch-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@
<artifactId>persistence-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.omnifaces</groupId>
<dependency>
<groupId>org.glassfish.main.concurrent</groupId>
<artifactId>concurrent-connector</artifactId>
</dependency>
<dependency>
Expand Down
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 All @@ -16,21 +17,19 @@

package org.glassfish.apf.impl;

import java.util.Map;
import java.util.HashMap;
import java.lang.annotation.Annotation;
import java.util.HashMap;
import java.util.Map;

import org.glassfish.apf.ResultType;
import org.glassfish.apf.HandlerProcessingResult;
import org.glassfish.apf.AnnotationHandler;
import org.glassfish.apf.ResultType;

/**
*
* @author dochez
*/
public class HandlerProcessingResultImpl implements HandlerProcessingResult {

Map<Class<? extends Annotation>,ResultType> results;
Map<Class<? extends Annotation>, ResultType> results;
ResultType overallResult = ResultType.UNPROCESSED;

/**
Expand All @@ -40,40 +39,48 @@ public HandlerProcessingResultImpl(Map<Class<? extends Annotation>, ResultType>
this.results = results;
}


public HandlerProcessingResultImpl() {
results = new HashMap<Class<? extends Annotation>, ResultType>();
results = new HashMap<>();
}

public static HandlerProcessingResultImpl getDefaultResult(Class<? extends Annotation> annotationType, ResultType result) {

public static HandlerProcessingResultImpl getDefaultResult(Class<? extends Annotation> annotationType,
ResultType result) {
HandlerProcessingResultImpl impl = new HandlerProcessingResultImpl();
impl.results.put(annotationType, result);
impl.overallResult = result;
return impl;
}

public Map<Class<? extends Annotation>,ResultType> processedAnnotations() {

@Override
public Map<Class<? extends Annotation>, ResultType> processedAnnotations() {
return results;
}


public void addResult(Class<? extends Annotation> annotationType, ResultType result) {
if (result.compareTo(overallResult)>0) {
if (result.compareTo(overallResult) > 0) {
overallResult = result;
}
results.put(annotationType, result);
}


public void addAll(HandlerProcessingResult result) {
if (result == null) {
return;
}
if (result.getOverallResult().compareTo(overallResult)>0) {
if (result == null) {
return;
}
if (result.getOverallResult().compareTo(overallResult) > 0) {
overallResult = result.getOverallResult();
}
results.putAll(result.processedAnnotations());
}

public ResultType getOverallResult(){

@Override
public ResultType getOverallResult() {
return overallResult;
}

Expand Down
5 changes: 0 additions & 5 deletions appserver/common/container-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,6 @@
<groupId>org.glassfish.ha</groupId>
<artifactId>ha-api</artifactId>
</dependency>
<dependency>
<groupId>org.omnifaces</groupId>
<artifactId>concurrent-extras</artifactId>
</dependency>

</dependencies>

<build>
Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@
import com.sun.enterprise.deployment.MailSessionDescriptor;
import com.sun.enterprise.deployment.ManagedBeanDescriptor;
import com.sun.enterprise.deployment.MessageDestinationReferenceDescriptor;
import com.sun.enterprise.deployment.ResourceDescriptor;
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;
Expand Down Expand Up @@ -1006,6 +1006,12 @@ public Object getValue() {
return value;
}


@Override
public String toString() {
return super.toString() + "[name=" + name + ", value=" + value + "]";
}

}

private enum ScopeType {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,30 +22,31 @@
import com.sun.enterprise.deployment.BundleDescriptor;
import com.sun.enterprise.deployment.EjbDescriptor;
import com.sun.enterprise.deployment.WebBundleDescriptor;
import com.sun.enterprise.deployment.core.*;
import com.sun.logging.LogDomains;
import org.glassfish.api.invocation.ComponentInvocation;
import static org.glassfish.api.invocation.ComponentInvocation.ComponentInvocationType;
import org.glassfish.api.invocation.InvocationManager;
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.internal.api.Globals;

import jakarta.persistence.Cache;
import jakarta.persistence.EntityGraph;
import jakarta.persistence.EntityManager;
import jakarta.persistence.EntityManagerFactory;
import jakarta.persistence.Cache;
import jakarta.persistence.PersistenceUnitUtil;
import jakarta.persistence.Query;
import jakarta.persistence.SynchronizationType;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.metamodel.Metamodel;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;

import org.glassfish.api.invocation.ComponentInvocation;
import org.glassfish.api.invocation.ComponentInvocation.ComponentInvocationType;
import org.glassfish.api.invocation.InvocationManager;
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.internal.api.Globals;

/**
* Wrapper for application references to entity manager factories.
* A new instance of this class will be created for each injected
Expand All @@ -59,7 +60,7 @@ public class EntityManagerFactoryWrapper

static Logger _logger=LogDomains.getLogger(EntityManagerFactoryWrapper.class, LogDomains.UTIL_LOGGER);

private String unitName;
private final String unitName;

private transient InvocationManager invMgr;

Expand Down
Empty file.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2022 Contributors to the Eclipse Foundation
* Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand All @@ -16,46 +17,45 @@

package com.sun.enterprise.container.common.spi.util;

import com.sun.enterprise.deployment.JndiNameEnvironment;
import com.sun.enterprise.deployment.EnvironmentProperty;
import com.sun.enterprise.deployment.JndiNameEnvironment;
import com.sun.enterprise.deployment.ResourceReferenceDescriptor;

import org.glassfish.api.invocation.ApplicationEnvironment;
import org.glassfish.api.naming.JNDIBinding;
import org.jvnet.hk2.annotations.Contract;
import java.util.Collection;

import javax.naming.NamingException;
import java.util.Collection;

import org.glassfish.api.invocation.ApplicationEnvironment;
import org.jvnet.hk2.annotations.Contract;

@Contract
public interface ComponentEnvManager {

//Remove once WebContainer sets JndiNameEnvironment on every "new ComponentInvocation()"
public JndiNameEnvironment getJndiNameEnvironment(String componentId);
// Remove once WebContainer sets JndiNameEnvironment on every "new ComponentInvocation()"
JndiNameEnvironment getJndiNameEnvironment(String componentId);

//Remove once WebContainer sets JndiNameEnvironment on every "new ComponentInvocation()"
public JndiNameEnvironment getCurrentJndiNameEnvironment();
// Remove once WebContainer sets JndiNameEnvironment on every "new ComponentInvocation()"
JndiNameEnvironment getCurrentJndiNameEnvironment();

public String getComponentEnvId(JndiNameEnvironment env);
String getComponentEnvId(JndiNameEnvironment env);

public String bindToComponentNamespace(JndiNameEnvironment env)
throws NamingException;
String bindToComponentNamespace(JndiNameEnvironment env) throws NamingException;

public void addToComponentNamespace(JndiNameEnvironment origEnv,
Collection<EnvironmentProperty> envProps,
Collection<ResourceReferenceDescriptor> resRefs)
throws NamingException;
void addToComponentNamespace(
JndiNameEnvironment origEnv,
Collection<EnvironmentProperty> envProps,
Collection<ResourceReferenceDescriptor> resRefs)
throws NamingException;

public void unbindFromComponentNamespace(JndiNameEnvironment env)
throws NamingException;
void unbindFromComponentNamespace(JndiNameEnvironment env) throws NamingException;

/**
* Returns the current application environment if not running in a specified
* container
*
* @return The current application environment or null if we are not currently
* running as a specific application
* running as a specific application
*/
public ApplicationEnvironment getCurrentApplicationEnvironment();
ApplicationEnvironment getCurrentApplicationEnvironment();

}
Empty file.
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@

package org.glassfish.javaee.services;

import com.sun.enterprise.deployment.ResourceDescriptor;

import jakarta.inject.Inject;

import java.io.Serializable;

import javax.naming.Context;
Expand All @@ -29,19 +33,11 @@
import org.glassfish.resourcebase.resources.api.ResourceDeployer;
import org.glassfish.resourcebase.resources.util.ResourceManagerFactory;
import org.jvnet.hk2.annotations.Service;
import org.omnifaces.concurrent.services.JndiLookupNotifier;

import com.sun.appserv.connectors.internal.api.ConnectorsUtil;
import com.sun.enterprise.deployment.core.ResourceDescriptor;

import jakarta.inject.Inject;
import static com.sun.appserv.connectors.internal.api.ConnectorsUtil.deriveResourceName;

/**
* Created with IntelliJ IDEA.
* User: naman
* Date: 27/8/12
* Time: 2:51 PM
* To change this template use File | Settings | File Templates.
* @author naman 2012
*/
@Service
@PerLookup
Expand All @@ -55,16 +51,13 @@ public class CommonResourceProxy implements NamingObjectProxy.InitializationNami
@Override
public synchronized Object create(Context ic) throws NamingException {
if (actualResourceName == null) {

actualResourceName = ConnectorsUtil.deriveResourceName
(desc.getResourceId(), desc.getName(), desc.getResourceType());

actualResourceName = deriveResourceName(desc.getResourceId(), desc.getName(), desc.getResourceType());
try {
if (serviceLocator == null) {
serviceLocator = Globals.getDefaultHabitat();
if (serviceLocator == null) {
throw new NamingException("Unable to create resource " +
"[" + desc.getName() + " ] as habitat is null");
throw new NamingException(
"Unable to create resource " + "[" + desc.getName() + " ] as habitat is null");
}
}
getResourceDeployer(desc).deployResource(desc);
Expand All @@ -75,18 +68,16 @@ public synchronized Object create(Context ic) throws NamingException {
}
}

Object resource = ic.lookup(actualResourceName);
if (resource instanceof JndiLookupNotifier) {
((JndiLookupNotifier) resource).notifyJndiLookup();
}

return resource;
return ic.lookup(actualResourceName);
}


protected ResourceDeployer getResourceDeployer(Object resource) {
return serviceLocator.<ResourceManagerFactory>getService(ResourceManagerFactory.class).getResourceDeployer(resource);
return serviceLocator.<ResourceManagerFactory> getService(ResourceManagerFactory.class)
.getResourceDeployer(resource);
}


public synchronized void setDescriptor(ResourceDescriptor desc) {
this.desc = desc;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package org.glassfish.javaee.services;

import com.sun.appserv.connectors.internal.api.ConnectorsUtil;
import com.sun.enterprise.deployment.core.ResourceDescriptor;
import com.sun.enterprise.deployment.ResourceDescriptor;

import org.glassfish.hk2.api.PerLookup;
import org.glassfish.internal.api.Globals;
Expand Down
Empty file.

0 comments on commit 8ac9eb8

Please sign in to comment.