Skip to content

Commit

Permalink
Split spi out, put manager in JNDI, make Manager serializable
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@621 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Dec 20, 2008
1 parent a9f3a4c commit 925ae31
Show file tree
Hide file tree
Showing 25 changed files with 76 additions and 57 deletions.
12 changes: 0 additions & 12 deletions webbeans-ri-spi/pom.xml
Expand Up @@ -34,18 +34,6 @@

<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>

</project>
5 changes: 5 additions & 0 deletions webbeans-ri/pom.xml
Expand Up @@ -17,6 +17,11 @@
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-api</artifactId>
</dependency>

<dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-ri-spi</artifactId>
</dependency>

<dependency>
<groupId>org.testng</groupId>
Expand Down
Expand Up @@ -18,6 +18,7 @@
package org.jboss.webbeans;

import java.io.InputStream;
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
Expand Down Expand Up @@ -69,7 +70,7 @@
*
*/
@Standard
public class ManagerImpl implements Manager
public class ManagerImpl implements Manager, Serializable
{
// The JNDI key to place the manager under
public static final String JNDI_KEY = "java:comp/Manager";
Expand Down
5 changes: 3 additions & 2 deletions webbeans-ri/src/main/java/org/jboss/webbeans/Resolver.java
Expand Up @@ -17,6 +17,7 @@

package org.jboss.webbeans;

import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.Collections;
Expand Down Expand Up @@ -44,14 +45,14 @@
*
* @author Pete Muir
*/
public class Resolver
public class Resolver implements Serializable
{

/**
* Extension of an element which bases equality not only on type, but also on
* binding type
*/
private abstract class ResolvableAnnotatedItem<T, S> extends ForwardingAnnotatedItem<T, S>
private abstract class ResolvableAnnotatedItem<T, S> extends ForwardingAnnotatedItem<T, S> implements Serializable
{

@Override
Expand Down
Expand Up @@ -18,6 +18,7 @@
package org.jboss.webbeans.bean;

import java.lang.annotation.Annotation;

import javax.webbeans.Dependent;
import javax.webbeans.Production;
import javax.webbeans.Standard;
Expand Down
Expand Up @@ -39,7 +39,7 @@
*
* @see org.jboss.webbeans.bean.proxy.ProxyMethodHandler
*/
public class ProxyPool
public class ProxyPool implements Serializable
{
/**
* A container/cache for previously created proxies
Expand Down
Expand Up @@ -92,9 +92,14 @@ public class WebBeansBootstrap
public WebBeansBootstrap(ManagerImpl manager)
{
this.manager = manager;
CurrentManager.setRootManager(manager);
registerManager();
manager.addContext(DependentContext.INSTANCE);
JNDI.set(ManagerImpl.JNDI_KEY, manager);
}

protected void registerManager()
{
JNDI.bind(ManagerImpl.JNDI_KEY, manager);
CurrentManager.setRootManager(manager);
}

public WebBeansBootstrap()
Expand Down
Expand Up @@ -17,6 +17,7 @@

package org.jboss.webbeans.ejb;

import java.io.Serializable;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
Expand All @@ -30,7 +31,7 @@
* @author Pete Muir
*
*/
public class EjbDescriptorCache
public class EjbDescriptorCache implements Serializable
{

// EJB name -> EJB descriptor map
Expand Down
Expand Up @@ -17,15 +17,15 @@

package org.jboss.webbeans.event;

import javax.transaction.Status;
import javax.transaction.Synchronization;
import javax.webbeans.Observer;

import static org.jboss.webbeans.event.ObserverImpl.TransactionObservationPhase.AFTER_COMPLETION;
import static org.jboss.webbeans.event.ObserverImpl.TransactionObservationPhase.AFTER_SUCCESS;
import static org.jboss.webbeans.event.ObserverImpl.TransactionObservationPhase.AFTER_FAILURE;
import static org.jboss.webbeans.event.ObserverImpl.TransactionObservationPhase.AFTER_SUCCESS;
import static org.jboss.webbeans.event.ObserverImpl.TransactionObservationPhase.BEFORE_COMPLETION;

import javax.transaction.Status;
import javax.transaction.Synchronization;
import javax.webbeans.Observer;

/**
* A synchronization object which will deliver the event to the observer after
* the JTA transaction currently in effect is committed.
Expand Down
Expand Up @@ -17,6 +17,7 @@

package org.jboss.webbeans.event;

import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.util.HashSet;
import java.util.List;
Expand All @@ -39,16 +40,16 @@
* @author David Allen
*
*/
public class EventManager
public class EventManager implements Serializable
{
/**
* An event type -> observer list map
*/
private class RegisteredObserversMap extends ForwardingMap<Class<?>, List<EventObserver<?>>>
private class RegisteredObserversMap extends ForwardingMap<Class<?>, List<EventObserver<?>>> implements Serializable
{

// The map delegate
private Map<Class<?>, List<EventObserver<?>>> delegate;
private ConcurrentHashMap<Class<?>, List<EventObserver<?>>> delegate;

/**
* Constructor. Initializes the delegate
Expand Down
Expand Up @@ -17,10 +17,10 @@

package org.jboss.webbeans.util;

import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
Expand All @@ -32,11 +32,11 @@
*
* @author Pete Muir
*/
public class ConcurrentCache<K, V> extends ForwardingMap<K, Future<V>>
public class ConcurrentCache<K, V> extends ForwardingMap<K, Future<V>> implements Serializable
{

// The backing map with the value wrapped in a Future instance
private ConcurrentMap<K, Future<V>> map;
private ConcurrentHashMap<K, Future<V>> map;

/**
* Constructor
Expand Down
49 changes: 28 additions & 21 deletions webbeans-ri/src/main/java/org/jboss/webbeans/util/JNDI.java
Expand Up @@ -18,7 +18,9 @@
package org.jboss.webbeans.util;

import java.util.Hashtable;
import java.util.Properties;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.webbeans.ExecutionException;
Expand All @@ -36,11 +38,8 @@ public class JNDI
{

private static final LogProvider log = Logging.getLogProvider(JNDI.class);
private static Hashtable initialContextProperties;

private static InitialContext initialContext;

public static InitialContext getInitialContext(Hashtable<String, String> props) throws NamingException
public static InitialContext getInitialContext(Hashtable props) throws NamingException
{
if (props==null)
{
Expand All @@ -66,20 +65,7 @@ public static InitialContext getInitialContext(Hashtable<String, String> props)

public static InitialContext getInitialContext() throws NamingException
{
if (initialContext == null)
{
initInitialContext();
}

return initialContext;
}

private static synchronized void initInitialContext() throws NamingException
{
if (initialContext == null)
{
initialContext = getInitialContext(new Hashtable<String, String>());
}
return getInitialContext(new Properties());
}

/**
Expand All @@ -105,17 +91,38 @@ public static <T> T lookup(String name, Class<? extends T> expectedType)
{
try
{
return (T) getInitialContext().lookup(name);
Object instance = getInitialContext().lookup(name);
return (T) instance;
}
catch (NamingException e)
{
throw new ExecutionException("Error looking " + name + " up in JNDI", e);
}
}

public static void set(String key, Object value)
public static void bind(String key, Object value)
{
// TODO Implement JNDI lookup
try
{
getInitialContext().bind(key, value);
}
catch (NamingException e)
{
throw new ExecutionException("Error binding " + value + " to " + key + " in JNDI", e);
}
}

public static void bind(String env, String name, Object value)
{
try
{
Context environment = (Context) getInitialContext().lookup(env);
environment.bind(name, value);
}
catch (NamingException e)
{
throw new ExecutionException("Error binding " + value + " to " + name + " in JNDI", e);
}
}

}
Expand Up @@ -17,8 +17,8 @@
import org.jboss.webbeans.test.beans.BirdCage;
import org.jboss.webbeans.test.beans.BlueFacedParrotFinch;
import org.jboss.webbeans.test.beans.EuropeanGoldfinch;
import org.jboss.webbeans.test.beans.OrangeCheekedWaxbill;
import org.jboss.webbeans.test.beans.FinchKeeper;
import org.jboss.webbeans.test.beans.OrangeCheekedWaxbill;
import org.jboss.webbeans.test.beans.RecluseSpider;
import org.jboss.webbeans.test.beans.StarFinch;
import org.jboss.webbeans.test.beans.TeaCupPomeranian;
Expand Down
@@ -1,5 +1,7 @@
package org.jboss.webbeans.test;

import static org.jboss.webbeans.bean.BeanFactory.createSimpleBean;

import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.HashMap;
Expand Down Expand Up @@ -39,7 +41,6 @@
import org.jboss.webbeans.test.mock.MockManagerImpl;
import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
import org.testng.annotations.Test;
import static org.jboss.webbeans.bean.BeanFactory.*;

@SpecVersion("20081206")
public class SimpleBeanModelTest extends AbstractTest
Expand Down
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test.annotations;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
Expand Down
Expand Up @@ -2,6 +2,7 @@

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

Expand Down
@@ -1,7 +1,7 @@
package org.jboss.webbeans.test.annotations;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
Expand Down
Expand Up @@ -3,6 +3,7 @@
import javax.webbeans.Event;
import javax.webbeans.Initializer;
import javax.webbeans.Observable;

import org.jboss.webbeans.test.beans.StarFinch.Mess;

public class AuroraFinch
Expand Down
Expand Up @@ -6,6 +6,7 @@
import javax.webbeans.Destructor;
import javax.webbeans.Event;
import javax.webbeans.Observable;

import org.jboss.webbeans.test.beans.StarFinch.Mess;

@ConversationScoped @Stateful
Expand Down
Expand Up @@ -3,8 +3,6 @@
import javax.webbeans.Named;
import javax.webbeans.Production;

import org.jboss.webbeans.test.annotations.Whitefish;

@Production
@Named
public class Haddock implements Animal
Expand Down
@@ -1,5 +1,6 @@
package org.jboss.webbeans.test.mock;

import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.bootstrap.WebBeansBootstrap;

Expand All @@ -16,4 +17,10 @@ public void registerStandardBeans()
manager.setBeans(createStandardBeans());
}

@Override
protected void registerManager()
{
CurrentManager.setRootManager(manager);
}

}

0 comments on commit 925ae31

Please sign in to comment.