Seam SVN: r8781 - trunk/src/main/org/jboss/seam/core.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-08-22 12:59:59 -0400 (Fri, 22 Aug 2008)
New Revision: 8781
Modified:
trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java
Log:
JBSEAM-3295
Modified: trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java
===================================================================
--- trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java 2008-08-22 16:42:44 UTC (rev 8780)
+++ trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java 2008-08-22 16:59:59 UTC (rev 8781)
@@ -1,15 +1,11 @@
//$Id$
package org.jboss.seam.core;
-import java.util.concurrent.atomic.AtomicInteger;
-
import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.annotations.intercept.Interceptor;
import org.jboss.seam.intercept.AbstractInterceptor;
import org.jboss.seam.intercept.InvocationContext;
-import org.jboss.seam.log.LogProvider;
-import org.jboss.seam.log.Logging;
/**
* Before invoking the component, inject all dependencies. After
@@ -22,35 +18,45 @@
{
private static final long serialVersionUID = 4686458105931528659L;
- private static final LogProvider log = Logging.getLogProvider(BijectionInterceptor.class);
+ private Integer counter = 0;
- private AtomicInteger reentrantCounter = new AtomicInteger();
-
@AroundInvoke
public Object aroundInvoke(InvocationContext invocation) throws Exception
{
- Component component = getComponent();
try
{
- if ( log.isTraceEnabled() && reentrantCounter.get() > 0 )
+ synchronized (counter)
{
- log.trace("reentrant call to component: " + getComponent().getName() );
+ if (counter == 0)
+ {
+ Component component = getComponent();
+ boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
+ component.inject( invocation.getTarget(), enforceRequired );
+ }
+ counter++;
}
- reentrantCounter.incrementAndGet();
- boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
- component.inject( invocation.getTarget(), enforceRequired );
- Object result = invocation.proceed();
- component.outject( invocation.getTarget(), enforceRequired );
+ Object result = invocation.proceed();
+ if (counter == 1)
+ {
+ Component component = getComponent();
+ boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
+ component.outject( invocation.getTarget(), enforceRequired );
+ }
return result;
-
}
finally
{
- if (reentrantCounter.decrementAndGet() == 0)
+ synchronized (counter)
{
- component.disinject( invocation.getTarget() );
+ if (counter == 1)
+ {
+ Component component = getComponent();
+ component.disinject( invocation.getTarget() );
+ }
+ counter--;
+
}
}
}
16 years, 8 months
Seam SVN: r8780 - trunk/src/main/org/jboss/seam/bpm.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-08-22 12:42:44 -0400 (Fri, 22 Aug 2008)
New Revision: 8780
Removed:
trunk/src/main/org/jboss/seam/bpm/JbpmDeploymentHandler.java
Log:
Oops, wrote the same thing twice ;-)
Deleted: trunk/src/main/org/jboss/seam/bpm/JbpmDeploymentHandler.java
===================================================================
--- trunk/src/main/org/jboss/seam/bpm/JbpmDeploymentHandler.java 2008-08-22 12:53:11 UTC (rev 8779)
+++ trunk/src/main/org/jboss/seam/bpm/JbpmDeploymentHandler.java 2008-08-22 16:42:44 UTC (rev 8780)
@@ -1,46 +0,0 @@
-package org.jboss.seam.bpm;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jboss.seam.deployment.AbstractDeploymentHandler;
-
-/**
- * Handles jBPM resources discovered on scan
- *
- * TODO Hook this into the Jbpm component
- *
- * @author Pete Muir
- *
- */
-public class JbpmDeploymentHandler extends AbstractDeploymentHandler
-{
-
- private List<String> jpdlResources;
-
- public JbpmDeploymentHandler()
- {
- jpdlResources = new ArrayList<String>();
- }
-
- public static final String NAME = "org.jboss.seam.bpm.JbpmDeploymentHandler";
-
- public String getName()
- {
- return NAME;
- }
-
- public void handle(String name, ClassLoader classLoader)
- {
- if ( name.endsWith(".jpdl.xml") && !name.startsWith(".gpd") )
- {
- jpdlResources.add(name);
- }
- }
-
- public List<String> getJpdlResources()
- {
- return jpdlResources;
- }
-
-}
16 years, 8 months
Seam SVN: r8779 - trunk/src/main/org/jboss/seam/cache.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-08-22 08:53:11 -0400 (Fri, 22 Aug 2008)
New Revision: 8779
Modified:
trunk/src/main/org/jboss/seam/cache/AbstractJBossCacheProvider.java
trunk/src/main/org/jboss/seam/cache/CacheProvider.java
trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java
Log:
Use reflection to remove build errors
Modified: trunk/src/main/org/jboss/seam/cache/AbstractJBossCacheProvider.java
===================================================================
--- trunk/src/main/org/jboss/seam/cache/AbstractJBossCacheProvider.java 2008-08-22 11:34:44 UTC (rev 8778)
+++ trunk/src/main/org/jboss/seam/cache/AbstractJBossCacheProvider.java 2008-08-22 12:53:11 UTC (rev 8779)
@@ -10,7 +10,7 @@
super.setConfiguration("treecache.xml");
}
- private Fqn defaultFqn = Fqn.fromString(defaultRegion);
+ private Fqn defaultFqn;
protected Fqn getFqn(String region)
{
@@ -20,6 +20,10 @@
}
else
{
+ if (defaultFqn == null)
+ {
+ defaultFqn = Fqn.fromString(getDefaultRegion());
+ }
return defaultFqn;
}
}
Modified: trunk/src/main/org/jboss/seam/cache/CacheProvider.java
===================================================================
--- trunk/src/main/org/jboss/seam/cache/CacheProvider.java 2008-08-22 11:34:44 UTC (rev 8778)
+++ trunk/src/main/org/jboss/seam/cache/CacheProvider.java 2008-08-22 12:53:11 UTC (rev 8779)
@@ -22,7 +22,7 @@
*/
public static final String DEFAULT_REGION = "org.jboss.seam.cache.DefaultRegion";
private String configuration;
- protected String defaultRegion = DEFAULT_REGION;
+ private String defaultRegion = DEFAULT_REGION;
/**
* @return - the cache the cache provider delegates to
Modified: trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java
===================================================================
--- trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java 2008-08-22 11:34:44 UTC (rev 8778)
+++ trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java 2008-08-22 12:53:11 UTC (rev 8779)
@@ -3,9 +3,12 @@
import static org.jboss.seam.ScopeType.APPLICATION;
import static org.jboss.seam.annotations.Install.BUILT_IN;
+import java.lang.reflect.Method;
+
import org.jboss.cache.Cache;
import org.jboss.cache.CacheFactory;
import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.Fqn;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Destroy;
@@ -15,6 +18,7 @@
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
+import org.jboss.seam.util.Reflections;
/**
* Implementation of CacheProvider backed by JBoss Cache 2.x.
@@ -31,6 +35,26 @@
@AutoCreate
public class JbossCache2Provider extends AbstractJBossCacheProvider<Cache>
{
+
+ private static Method GET;
+ private static Method PUT;
+ private static Method REMOVE;
+ private static Method REMOVE_NODE;
+
+ static
+ {
+ try
+ {
+ GET = Cache.class.getDeclaredMethod("get", Fqn.class, String.class);
+ PUT = Cache.class.getDeclaredMethod("put", Fqn.class, String.class, Object.class);
+ REMOVE = Cache.class.getDeclaredMethod("remove", Fqn.class, String.class);
+ REMOVE_NODE = Cache.class.getDeclaredMethod("removeNode", Fqn.class);
+ }
+ catch (Exception e)
+ {
+ throw new IllegalStateException("Unable to use JBoss Cache 2", e);
+ }
+ }
private org.jboss.cache.Cache cache;
@@ -75,25 +99,25 @@
@Override
public Object get(String region, String key)
{
- return cache.get(getFqn(region), key);
+ return Reflections.invokeAndWrap(GET, cache, getFqn(region), key);
}
@Override
public void put(String region, String key, Object object)
{
- cache.put(getFqn(region), key, object);
+ Reflections.invokeAndWrap(PUT, cache, getFqn(region), key, object);
}
@Override
public void remove(String region, String key)
{
- cache.remove(getFqn(region), key);
+ Reflections.invokeAndWrap(REMOVE, cache, getFqn(region), key);
}
@Override
public void clear()
{
- cache.removeNode(getFqn(null));
+ Reflections.invokeAndWrap(REMOVE_NODE, cache, getFqn(null));
}
@Override
16 years, 8 months
Seam SVN: r8778 - trunk/src/main/org/jboss/seam/cache.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-08-22 07:34:44 -0400 (Fri, 22 Aug 2008)
New Revision: 8778
Modified:
trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java
trunk/src/main/org/jboss/seam/cache/JbossPojoCacheProvider.java
Log:
extra dependencies
Modified: trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java
===================================================================
--- trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java 2008-08-22 11:18:16 UTC (rev 8777)
+++ trunk/src/main/org/jboss/seam/cache/JbossCache2Provider.java 2008-08-22 11:34:44 UTC (rev 8778)
@@ -27,7 +27,7 @@
@Name("org.jboss.seam.cache.cacheProvider")
@Scope(APPLICATION)
@BypassInterceptors
-@Install(precedence = BUILT_IN, classDependencies="org.jboss.cache.Cache")
+@Install(precedence = BUILT_IN, classDependencies="org.jboss.cache.Cache,org.jgroups.MembershipListener")
@AutoCreate
public class JbossCache2Provider extends AbstractJBossCacheProvider<Cache>
{
Modified: trunk/src/main/org/jboss/seam/cache/JbossPojoCacheProvider.java
===================================================================
--- trunk/src/main/org/jboss/seam/cache/JbossPojoCacheProvider.java 2008-08-22 11:18:16 UTC (rev 8777)
+++ trunk/src/main/org/jboss/seam/cache/JbossPojoCacheProvider.java 2008-08-22 11:34:44 UTC (rev 8778)
@@ -25,7 +25,7 @@
@Name("org.jboss.seam.cache.cacheProvider")
@Scope(APPLICATION)
@BypassInterceptors
-@Install(value = false, precedence = BUILT_IN, classDependencies="org.jboss.cache.aop.PojoCache")
+@Install(value = false, precedence = BUILT_IN, classDependencies="org.jboss.cache.aop.PojoCache,org.jgroups.MembershipListener,org.jboss.aop.Dispatcher")
@AutoCreate
public class JbossPojoCacheProvider extends AbstractJBossCacheProvider<PojoCache>
{
16 years, 8 months
Seam SVN: r8777 - branches/Seam_2_0/src/main/org/jboss/seam/core.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-08-22 07:18:16 -0400 (Fri, 22 Aug 2008)
New Revision: 8777
Modified:
branches/Seam_2_0/src/main/org/jboss/seam/core/BijectionInterceptor.java
Log:
JBSEAM-3295
Modified: branches/Seam_2_0/src/main/org/jboss/seam/core/BijectionInterceptor.java
===================================================================
--- branches/Seam_2_0/src/main/org/jboss/seam/core/BijectionInterceptor.java 2008-08-22 11:13:20 UTC (rev 8776)
+++ branches/Seam_2_0/src/main/org/jboss/seam/core/BijectionInterceptor.java 2008-08-22 11:18:16 UTC (rev 8777)
@@ -1,6 +1,8 @@
//$Id$
package org.jboss.seam.core;
+import java.util.concurrent.atomic.AtomicInteger;
+
import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.annotations.intercept.Interceptor;
@@ -22,37 +24,34 @@
private static final LogProvider log = Logging.getLogProvider(BijectionInterceptor.class);
- private boolean reentrant; //OK, since all Seam components are single-threaded
+ private AtomicInteger reentrantCounter = new AtomicInteger();
@AroundInvoke
public Object aroundInvoke(InvocationContext invocation) throws Exception
{
- if (reentrant)
+ Component component = getComponent();
+ try
{
- if ( log.isTraceEnabled() )
+ if ( log.isTraceEnabled() && reentrantCounter.get() > 0 )
{
log.trace("reentrant call to component: " + getComponent().getName() );
}
- return invocation.proceed();
+
+ reentrantCounter.incrementAndGet();
+ boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
+ component.inject( invocation.getTarget(), enforceRequired );
+ Object result = invocation.proceed();
+ component.outject( invocation.getTarget(), enforceRequired );
+
+ return result;
+
}
- else
+ finally
{
- reentrant = true;
- try
+ if (reentrantCounter.decrementAndGet() == 0)
{
- Component component = getComponent();
- boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
- component.inject( invocation.getTarget(), enforceRequired );
- Object result = invocation.proceed();
- component.outject( invocation.getTarget(), enforceRequired );
component.disinject( invocation.getTarget() );
- return result;
-
}
- finally
- {
- reentrant = false;
- }
}
}
16 years, 8 months
Seam SVN: r8776 - trunk/src/test/unit/org/jboss/seam/test/unit.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-08-22 07:13:20 -0400 (Fri, 22 Aug 2008)
New Revision: 8776
Added:
trunk/src/test/unit/org/jboss/seam/test/unit/FooBar.java
Modified:
trunk/src/test/unit/org/jboss/seam/test/unit/InterceptorTest.java
Log:
unit test for JBSEAM-3295
Added: trunk/src/test/unit/org/jboss/seam/test/unit/FooBar.java
===================================================================
--- trunk/src/test/unit/org/jboss/seam/test/unit/FooBar.java (rev 0)
+++ trunk/src/test/unit/org/jboss/seam/test/unit/FooBar.java 2008-08-22 11:13:20 UTC (rev 8776)
@@ -0,0 +1,26 @@
+package org.jboss.seam.test.unit;
+
+import java.util.concurrent.CountDownLatch;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+
+@Name("fooBar")
+(a)Scope(ScopeType.APPLICATION)
+public class FooBar
+{
+ @In Foo foo;
+
+ public Foo delayedGetFoo(CountDownLatch latch)
+ {
+ try
+ {
+ latch.await();
+ }
+ catch (InterruptedException ex) {}
+
+ return foo;
+ }
+}
Property changes on: trunk/src/test/unit/org/jboss/seam/test/unit/FooBar.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/src/test/unit/org/jboss/seam/test/unit/InterceptorTest.java
===================================================================
--- trunk/src/test/unit/org/jboss/seam/test/unit/InterceptorTest.java 2008-08-22 09:44:00 UTC (rev 8775)
+++ trunk/src/test/unit/org/jboss/seam/test/unit/InterceptorTest.java 2008-08-22 11:13:20 UTC (rev 8776)
@@ -2,6 +2,7 @@
package org.jboss.seam.test.unit;
import java.lang.reflect.Method;
+import java.util.concurrent.CountDownLatch;
import javax.faces.context.ExternalContext;
import javax.faces.event.PhaseId;
@@ -25,6 +26,7 @@
import org.jboss.seam.core.Manager;
import org.jboss.seam.ejb.RemoveInterceptor;
import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.intercept.InvocationContext;
import org.jboss.seam.mock.MockApplication;
import org.jboss.seam.mock.MockExternalContext;
import org.jboss.seam.mock.MockFacesContext;
@@ -235,6 +237,104 @@
}
@Test
+ public void testReentrantBijection() throws Exception
+ {
+ MockServletContext servletContext = new MockServletContext();
+ ServletLifecycle.beginApplication(servletContext);
+ MockExternalContext externalContext = new MockExternalContext(servletContext);
+ Context appContext = new ApplicationContext( externalContext.getApplicationMap() );
+ appContext.set( Seam.getComponentName(Init.class), new Init() );
+ appContext.set( Seam.getComponentName(ConversationEntries.class) + ".component",
+ new Component(ConversationEntries.class, appContext) );
+ appContext.set( Seam.getComponentName(Manager.class) + ".component",
+ new Component(Manager.class, appContext) );
+ appContext.set( Seam.getComponentName(Foo.class) + ".component",
+ new Component(Foo.class, appContext) );
+ appContext.set( Seam.getComponentName(FooBar.class) + ".component",
+ new Component(FooBar.class, appContext) );
+
+ FacesLifecycle.beginRequest(externalContext);
+ Manager.instance().setCurrentConversationId("1");
+ FacesLifecycle.resumeConversation(externalContext);
+ FacesLifecycle.setPhaseId(PhaseId.RENDER_RESPONSE);
+
+ final Foo foo = new Foo();
+ final FooBar fooBar = new FooBar();
+
+ Contexts.getSessionContext().set("foo", foo);
+
+ final BijectionInterceptor bi = new BijectionInterceptor();
+ bi.setComponent( new Component(FooBar.class, appContext) );
+
+ final Method m = FooBar.class.getMethod("delayedGetFoo", CountDownLatch.class);
+
+ final CountDownLatch latchA = new CountDownLatch(1);
+ final CountDownLatch latchB = new CountDownLatch(1);
+ final CountDownLatch latchC = new CountDownLatch(1);
+ final CountDownLatch latchD = new CountDownLatch(1);
+
+ final InvocationContext invocationA = new MockInvocationContext() {
+ @Override public Object getTarget() { return fooBar; }
+ @Override public Method getMethod() { return m; }
+ @Override public Object[] getParameters() { return new Object[] { latchA }; }
+ };
+
+ final InvocationContext invocationB = new MockInvocationContext() {
+ @Override public Object getTarget() { return fooBar; }
+ @Override public Method getMethod() { return m; }
+ @Override public Object[] getParameters() { return new Object[] { latchB }; }
+ };
+
+ new Thread(new Runnable() {
+ public void run() {
+ try
+ {
+ Foo result = (Foo) bi.aroundInvoke( invocationA );
+ assert result == foo;
+ }
+ catch (Exception ex)
+ {
+ throw new RuntimeException(ex);
+ }
+ finally
+ {
+ latchC.countDown();
+ }
+ }
+ }).start();
+
+ new Thread(new Runnable() {
+ public void run() {
+ try
+ {
+ Foo result = (Foo) bi.aroundInvoke( invocationB );
+ assert result == foo;
+ }
+ catch (Exception ex)
+ {
+ throw new RuntimeException(ex);
+ }
+ finally
+ {
+ latchD.countDown();
+ }
+ }
+ }).start();
+
+ // Allow invocationA to complete
+ latchA.countDown();
+
+ // Wait for invocationA to finalise
+ latchC.await();
+
+ // Allow invocationB to proceed
+ latchB.countDown();
+
+ // Wait for invocationB
+ latchD.await();
+ }
+
+ @Test
public void testConversationInterceptor() throws Exception
{
MockServletContext servletContext = new MockServletContext();
16 years, 8 months
Seam SVN: r8775 - trunk/src/main/org/jboss/seam/core.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2008-08-22 05:44:00 -0400 (Fri, 22 Aug 2008)
New Revision: 8775
Modified:
trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java
Log:
JBSEAM-3295
Modified: trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java
===================================================================
--- trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java 2008-08-22 09:19:08 UTC (rev 8774)
+++ trunk/src/main/org/jboss/seam/core/BijectionInterceptor.java 2008-08-22 09:44:00 UTC (rev 8775)
@@ -1,6 +1,8 @@
//$Id$
package org.jboss.seam.core;
+import java.util.concurrent.atomic.AtomicInteger;
+
import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.annotations.intercept.Interceptor;
@@ -21,38 +23,35 @@
private static final long serialVersionUID = 4686458105931528659L;
private static final LogProvider log = Logging.getLogProvider(BijectionInterceptor.class);
+
+ private AtomicInteger reentrantCounter = new AtomicInteger();
- private boolean reentrant; //OK, since all Seam components are single-threaded
-
@AroundInvoke
public Object aroundInvoke(InvocationContext invocation) throws Exception
{
- if (reentrant)
+ Component component = getComponent();
+ try
{
- if ( log.isTraceEnabled() )
+ if ( log.isTraceEnabled() && reentrantCounter.get() > 0 )
{
log.trace("reentrant call to component: " + getComponent().getName() );
}
- return invocation.proceed();
+
+ reentrantCounter.incrementAndGet();
+ boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
+ component.inject( invocation.getTarget(), enforceRequired );
+ Object result = invocation.proceed();
+ component.outject( invocation.getTarget(), enforceRequired );
+
+ return result;
+
}
- else
+ finally
{
- reentrant = true;
- try
+ if (reentrantCounter.decrementAndGet() == 0)
{
- Component component = getComponent();
- boolean enforceRequired = !component.isLifecycleMethod( invocation.getMethod() );
- component.inject( invocation.getTarget(), enforceRequired );
- Object result = invocation.proceed();
- component.outject( invocation.getTarget(), enforceRequired );
component.disinject( invocation.getTarget() );
- return result;
-
}
- finally
- {
- reentrant = false;
- }
}
}
16 years, 8 months
Seam SVN: r8774 - tags.
by seam-commits@lists.jboss.org
Author: manaRH
Date: 2008-08-22 05:19:08 -0400 (Fri, 22 Aug 2008)
New Revision: 8774
Added:
tags/Seam_FP_CR2/
Log:
tag for CR2 build
Copied: tags/Seam_FP_CR2 (from rev 8773, branches/Seam_2_0_FP)
16 years, 8 months
Seam SVN: r8773 - branches/Seam_2_0_FP.
by seam-commits@lists.jboss.org
Author: manaRH
Date: 2008-08-22 05:01:22 -0400 (Fri, 22 Aug 2008)
New Revision: 8773
Modified:
branches/Seam_2_0_FP/changelog.txt
Log:
Updated changelog
Modified: branches/Seam_2_0_FP/changelog.txt
===================================================================
--- branches/Seam_2_0_FP/changelog.txt 2008-08-22 08:26:47 UTC (rev 8772)
+++ branches/Seam_2_0_FP/changelog.txt 2008-08-22 09:01:22 UTC (rev 8773)
@@ -3,6 +3,7 @@
Release Notes - JBoss Enterprise Platform App Edition - Version 4.3.0.GA_CP02_FP01
** Bug
+ * [JBPAPP-1087] - merge of issue: Spring example doesn't have in booking form generated checkout date field
* [JBPAPP-1009] - java.net repo should not be used
* [JBPAPP-1010] - Remove meldware
* [JBPAPP-1011] - JDK 6 docs are wrong
16 years, 8 months
Seam SVN: r8772 - branches/Seam_2_0_FP/examples/spring/resources/WEB-INF.
by seam-commits@lists.jboss.org
Author: manaRH
Date: 2008-08-22 04:26:47 -0400 (Fri, 22 Aug 2008)
New Revision: 8772
Modified:
branches/Seam_2_0_FP/examples/spring/resources/WEB-INF/pages.xml
Log:
merge of JBPAPP-1046
Modified: branches/Seam_2_0_FP/examples/spring/resources/WEB-INF/pages.xml
===================================================================
--- branches/Seam_2_0_FP/examples/spring/resources/WEB-INF/pages.xml 2008-08-22 08:06:00 UTC (rev 8771)
+++ branches/Seam_2_0_FP/examples/spring/resources/WEB-INF/pages.xml 2008-08-22 08:26:47 UTC (rev 8772)
@@ -71,7 +71,9 @@
<description>Book hotel: #{hotel.name}</description>
<navigation from-action="#{hotelBooking.setBookingDetails}">
- <redirect view-id="/confirm.xhtml"/>
+ <rule if="#{hotelBooking.bookingValid}">
+ <redirect view-id="/confirm.xhtml"/>
+ </rule>
</navigation>
</page>
16 years, 8 months