Seam SVN: r10107 - tags.
by seam-commits@lists.jboss.org
Author: manaRH
Date: 2009-03-03 05:14:25 -0500 (Tue, 03 Mar 2009)
New Revision: 10107
Removed:
tags/JBPAPP_4_3_CP03_FP_CR1/
tags/JBPAPP_4_3_CP03_FP_CR1a/
tags/JBPAPP_4_3_CP03_FP_CR2/
Log:
clean up the unusefull FP tags
15 years, 10 months
Seam SVN: r10106 - trunk/src/main/org/jboss/seam/el.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2009-03-02 18:48:05 -0500 (Mon, 02 Mar 2009)
New Revision: 10106
Modified:
trunk/src/main/org/jboss/seam/el/SeamELResolver.java
Log:
JBSEAM-3916
Modified: trunk/src/main/org/jboss/seam/el/SeamELResolver.java
===================================================================
--- trunk/src/main/org/jboss/seam/el/SeamELResolver.java 2009-03-02 18:47:07 UTC (rev 10105)
+++ trunk/src/main/org/jboss/seam/el/SeamELResolver.java 2009-03-02 23:48:05 UTC (rev 10106)
@@ -1,7 +1,6 @@
package org.jboss.seam.el;
-import static org.jboss.seam.util.JSF.DATA_MODEL;
-import static org.jboss.seam.util.JSF.getRowCount;
+import org.jboss.seam.util.JSF;
import java.util.Collection;
import java.util.Iterator;
@@ -46,170 +45,142 @@
}
@Override
- public Object getValue(ELContext context, Object base, Object property)
+ public Object getValue(ELContext context, Object base, Object property)
{
- if (base==null)
- {
- return resolveBase(context, property);
- }
- else if ( base instanceof Namespace )
- {
- return resolveInNamespace(context, base, property);
- }
- else if ( DATA_MODEL.isInstance(base) )
- {
- return resolveInDataModel(context, base, property);
- }
- else if (base instanceof Collection)
- {
- return resolveInCollection(context, base, property);
- }
- else if (base instanceof Map)
- {
- return resolveInMap(context, base, property);
- }
- else if (base instanceof Context)
- {
- return resolveInContextObject(context, base, property);
- }
- else
- {
- return null;
- }
- }
+ if (base == null) {
+ return resolveBase(context, property);
+
+ } else if (base instanceof Namespace) {
+ return resolveInNamespace(context, (Namespace) base, property);
+
+ } else if (JSF.DATA_MODEL.isInstance(base)) {
+ return resolveInDataModel(context, base, property);
+
+ } else if (base instanceof Collection) {
+ return resolveInCollection(context, (Collection) base, property);
+
+ } else if (base instanceof Map) {
+ return resolveInMap(context, (Map) base, property);
+
+ } else if (base instanceof Context) {
+ return resolveInContextObject(context, (Context) base, property);
+
+ } else {
+ return null;
+ }
+ }
- private Object resolveInContextObject(ELContext context, Object base, Object property)
+ private Object resolveInContextObject(ELContext context, Context seamContext, Object property)
{
- Context seamContext = (Context) base;
- if ( seamContext.isSet( (String) property ) )
- {
- context.setPropertyResolved(true);
- return seamContext.get( (String) property );
- }
- else
- {
- return null;
- }
- }
+ if (seamContext.isSet((String) property)) {
+ context.setPropertyResolved(true);
+ return seamContext.get((String) property);
+ } else {
+ return null;
+ }
+ }
- private Object resolveInMap(ELContext context, Object base, Object property)
- {
- if ( "size".equals(property) )
- {
- context.setPropertyResolved(true);
- return ( (Map) base ).size();
- }
- else if ( "values".equals(property) )
- {
- context.setPropertyResolved(true);
- return ( (Map) base ).values();
- }
- else if ( "keySet".equals(property) )
- {
- context.setPropertyResolved(true);
- return ( (Map) base ).keySet();
- }
- else if ( "entrySet".equals(property) )
- {
- context.setPropertyResolved(true);
- return ( (Map) base ).entrySet();
- }
- else
- {
- return null;
- }
- }
+ private Object resolveInMap(ELContext context, Map map, Object property) {
+ if (map.containsKey(property)) {
+ return null;
+ }
+
+ if ("size".equals(property)) {
+ context.setPropertyResolved(true);
+ return map.size();
+
+ } else if ("values".equals(property)) {
+ context.setPropertyResolved(true);
+ return map.values();
+
+ } else if ("keySet".equals(property)) {
+ context.setPropertyResolved(true);
+ return map.keySet();
+
+ } else if ("entrySet".equals(property)) {
+ context.setPropertyResolved(true);
+ return map.entrySet();
+
+ } else {
+ return null;
+ }
+ }
- private Object resolveInCollection(ELContext context, Object base, Object property)
+ private Object resolveInCollection(ELContext context, Collection collection, Object property)
{
- if ( "size".equals(property) )
- {
- context.setPropertyResolved(true);
- return ( (Collection) base ).size();
- }
- else
- {
- return null;
- }
- }
+ if ("size".equals(property)) {
+ context.setPropertyResolved(true);
+ return collection.size();
+ } else {
+ return null;
+ }
+ }
private Object resolveInDataModel(ELContext context, Object base, Object property)
{
- if ( "size".equals(property) )
- {
- context.setPropertyResolved(true);
- return getRowCount(base);
- }
- else if ( "empty".equals(property) )
- {
- context.setPropertyResolved(true);
- return getRowCount(base)==0;
- }
- else
- {
- return null;
- }
- }
+ if ("size".equals(property)) {
+ context.setPropertyResolved(true);
+ return JSF.getRowCount(base);
+ } else if ("empty".equals(property)) {
+ context.setPropertyResolved(true);
+ return JSF.getRowCount(base) == 0;
+ } else {
+ return null;
+ }
+ }
private Object resolveBase(ELContext context, Object property)
{
- if ( !Contexts.isApplicationContextActive() )
- {
- //if no Seam contexts, bypass straight through to JSF
- return null;
- }
-
- String key = (String) property;
- Init init = Init.instance();
-
- //look for a component in the root namespace
- Object result = init.getRootNamespace().getComponentInstance(key);
- if (result!=null)
- {
- context.setPropertyResolved(true);
- return result;
- }
- else
- {
- //look for a component in the imported namespaces
- for ( Namespace ns: init.getGlobalImports() )
- {
- result = ns.getComponentInstance(key);
- if (result!=null)
- {
- context.setPropertyResolved(true);
- return result;
+ if (!Contexts.isApplicationContextActive()) {
+ // if no Seam contexts, bypass straight through to JSF
+ return null;
+ }
+
+ String key = (String) property;
+ Init init = Init.instance();
+
+ // look for a component in the root namespace
+ Object result = init.getRootNamespace().getComponentInstance(key);
+ if (result != null) {
+ context.setPropertyResolved(true);
+ return result;
+ } else {
+ // look for a component in the imported namespaces
+ for (Namespace ns : init.getGlobalImports()) {
+ result = ns.getComponentInstance(key);
+ if (result != null) {
+ context.setPropertyResolved(true);
+ return result;
+ }
}
- }
- }
-
- //look for a namespace
- Namespace namespace = init.getRootNamespace().getChild(key);
- if (namespace!=null)
- {
- context.setPropertyResolved(true);
- }
- return namespace;
- }
+ }
- private Object resolveInNamespace(ELContext context, Object base, Object property)
- {
- Object result = ( (Namespace) base ).get( (String) property );
- if (result!=null)
- {
- context.setPropertyResolved(true);
- }
- return result;
- }
+ // look for a namespace
+ Namespace namespace = init.getRootNamespace().getChild(key);
+ if (namespace != null) {
+ context.setPropertyResolved(true);
+ }
+ return namespace;
+ }
- @Override
- public boolean isReadOnly(ELContext context, Object base, Object property)
- {
- return base!=null &&
- ( DATA_MODEL.isInstance(base) || (base instanceof Collection) || (base instanceof Map) );
- }
+ private Object resolveInNamespace(ELContext context, Namespace namespace, Object property) {
+ Object result = namespace.get((String) property);
+ if (result != null) {
+ context.setPropertyResolved(true);
+ }
+ return result;
+ }
- @Override
- public void setValue(ELContext context, Object base, Object property, Object value) {}
+ @Override
+ public boolean isReadOnly(ELContext context, Object base, Object property)
+ {
+ return base != null
+ && (JSF.DATA_MODEL.isInstance(base) || (base instanceof Collection) || (base instanceof Map));
+ }
+ @Override
+ public void setValue(ELContext context, Object base, Object property, Object value)
+ {
+ }
+
}
15 years, 10 months
Seam SVN: r10105 - trunk/src/main/org/jboss/seam/async.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2009-03-02 13:47:07 -0500 (Mon, 02 Mar 2009)
New Revision: 10105
Modified:
trunk/src/main/org/jboss/seam/async/AsynchronousInterceptor.java
Log:
JBSEAM-3982
Modified: trunk/src/main/org/jboss/seam/async/AsynchronousInterceptor.java
===================================================================
--- trunk/src/main/org/jboss/seam/async/AsynchronousInterceptor.java 2009-03-02 16:31:34 UTC (rev 10104)
+++ trunk/src/main/org/jboss/seam/async/AsynchronousInterceptor.java 2009-03-02 18:47:07 UTC (rev 10105)
@@ -40,25 +40,22 @@
Object timer = dispatcher.scheduleInvocation( invocation, getComponent() );
//if the method returns a Timer, return it to the client
return timer!=null && invocation.getMethod().getReturnType().isAssignableFrom( timer.getClass() ) ? timer : null;
- }
- else
- {
- if (isExecutingAsynchronousCall())
- {
- Contexts.getEventContext().set(REENTRANT, true);
- }
- try
- {
- return invocation.proceed();
- }
- finally
- {
- if (isExecutingAsynchronousCall())
- {
- Contexts.getEventContext().remove(REENTRANT);
- }
- }
- }
+ } else {
+
+ boolean setFlag = false;
+ if (isExecutingAsynchronousCall()) {
+ Contexts.getEventContext().set(REENTRANT, true);
+ setFlag = true;
+ }
+
+ try {
+ return invocation.proceed();
+ } finally {
+ if (setFlag) {
+ Contexts.getEventContext().remove(REENTRANT);
+ }
+ }
+ }
}
private boolean isExecutingAsynchronousCall()
15 years, 10 months
Seam SVN: r10104 - branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium.
by seam-commits@lists.jboss.org
Author: manaRH
Date: 2009-03-02 11:31:34 -0500 (Mon, 02 Mar 2009)
New Revision: 10104
Modified:
branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java
branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/DiscsTest.java
branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java
Log:
JBPAPP-1700 - added fix for the seamdiscs example
Modified: branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java
===================================================================
--- branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java 2009-03-02 15:48:18 UTC (rev 10103)
+++ branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java 2009-03-02 16:31:34 UTC (rev 10104)
@@ -44,12 +44,12 @@
browser.clickAndWait(MANAGE_ARTISTS);
}
- /* @Test(dependsOnMethods = {"createWithDiscsTest"})
+ @Test(dependsOnMethods = {"createWithDiscsTest"})
public void paginationTest()
{
findAndClickArtist("Fairport Convention"); // should be on second page
checkDisc(1, "Liege and Lief", "", "The first folk-rock album ever made in the UK, this was the only studio recording of the classic line up of Sandy Denny, Richard Thompson, Dave Swarbick, Ashley Hutchings and Simon Nicol");
- }*/
+ }
@Test(dependsOnMethods = {"createWithDiscsTest"})
public void filterTest()
Modified: branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/DiscsTest.java
===================================================================
--- branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/DiscsTest.java 2009-03-02 15:48:18 UTC (rev 10103)
+++ branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/DiscsTest.java 2009-03-02 16:31:34 UTC (rev 10104)
@@ -43,14 +43,14 @@
}
@Test(dependsOnMethods = {"editDiscsTest"})
-/* public void discPaginationTest()
+ public void discPaginationTest()
{
findAndClickDisc("Rock and Roll Heart"); // should not be on the first page
checkDiscDetail("Rock and Roll Heart", "1976", "", "Lou Reed");
- }*/
+ }
- /* @Test(dependsOnMethods = {"editDiscsTest"})
+ @Test(dependsOnMethods = {"editDiscsTest"})
public void editDiscTest()
{
// correct Rock and Roll Heart description
@@ -76,7 +76,7 @@
checkDisc(1, "Sally Can't Dance", "1974", EMPTY_DISC_DESCRIPTION);
checkDisc(2, "Metal Machine Music", "1975", EMPTY_DISC_DESCRIPTION);
checkDisc(3, "Rock and Roll Heart", "1976", "A sensitive and revealing look into the prince of darkness.");
- }*/
+ }
@Test(dependsOnMethods = {"editDiscTest"})
public void addDiscTest()
Modified: branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java
===================================================================
--- branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java 2009-03-02 15:48:18 UTC (rev 10103)
+++ branches/enterprise/JBPAPP_4_3_FP01/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java 2009-03-02 16:31:34 UTC (rev 10104)
@@ -66,7 +66,7 @@
public static String ARTIST_NTH_DISC_YEAR = ARTIST_NTH_DISC + "/td[3]//input";
public static String ARTIST_NTH_DISC_DETAIL = ARTIST_NTH_DISC + "/td";
public static String ARTISTS_FIRST_ARTIST_LINK = "xpath=id(\"artists\")//table/tbody/tr/td/table/tbody/tr[2]/td[2]/a";
- public static String ARTISTS_NEXT_PAGE_LINK = "xpath=id(\"artists\")//td[1]//td[7]/a";
+ public static String ARTISTS_NEXT_PAGE_LINK = "xpath=id(\"artists\")//td[1]//td[2]//td[5]/a";
public static String ARTIST_TABLE_ROW_BY_NAME = "xpath=id(\"artists\")//tr[normalize-space(td/a/text())=\"{0}\"]";
// these locators can only be used catenated with ARTIST_TABLE_ROW_BY_NAME
public static String ARTIST_TABLE_ROW_LINK = ARTIST_TABLE_ROW_BY_NAME + "/td[2]/a";
@@ -76,13 +76,13 @@
public static String CREATE_DISC_BUTTON = "id=addDisc";
public static String DISC_DETAIL_TITLE = "xpath=id(\"disc\")//tr//tr[2]/td[2]/input";
public static String DISC_DETAIL_RELEASE_DATE = "xpath=id(\"disc\")//tr//tr[3]/td[2]//input";
- public static String DISC_DETAIL_ARTIST = "xpath=id(\"disc\")//tr//tr[5]//select";
+ public static String DISC_DETAIL_ARTIST = "xpath=id(\"disc\")//tr//tr[4]//select";
public static String DISC_DETAIL_DESCRIPTION = "id=description";
public static String DISC_DETAIL_UPDATE = "id=update";
public static String DISC_DETAIL_PERSIST = "id=persist";
public static String DISC_DETAIL_REMOVE = "id=remove";
public static String DISC_DETAIL_CANCEL = "id=cancel";
- public static String DISCS_NEXT_PAGE_LINK = "xpath=id(\"discs\")//td[1]//td[7]/a";
+ public static String DISCS_NEXT_PAGE_LINK = "xpath=id(\"discs\")//td[1]//td[2]//td[5]/a";
public static String DISC_TABLE_ROW_BY_NAME = "xpath=id(\"discs\")//tr[normalize-space(td/a/text())=\"{0}\"]";
// these locators can only be used catenated with DISC_TABLE_ROW_BY_NAME
public static String DISC_TABLE_ROW_LINK = DISC_TABLE_ROW_BY_NAME + "/td[2]/a";
15 years, 10 months
Seam SVN: r10103 - trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium.
by seam-commits@lists.jboss.org
Author: manaRH
Date: 2009-03-02 10:48:18 -0500 (Mon, 02 Mar 2009)
New Revision: 10103
Modified:
trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java
trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java
Log:
JBSEAM-3690 - fix for the seamdiscs
Modified: trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java
===================================================================
--- trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java 2009-03-02 10:27:17 UTC (rev 10102)
+++ trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/ArtistsTest.java 2009-03-02 15:48:18 UTC (rev 10103)
@@ -44,12 +44,12 @@
browser.clickAndWait(MANAGE_ARTISTS);
}
- /* @Test(dependsOnMethods = {"createWithDiscsTest"})
+ @Test(dependsOnMethods = {"createWithDiscsTest"})
public void paginationTest()
{
findAndClickArtist("Fairport Convention"); // should be on second page
checkDisc(1, "Liege and Lief", "", "The first folk-rock album ever made in the UK, this was the only studio recording of the classic line up of Sandy Denny, Richard Thompson, Dave Swarbick, Ashley Hutchings and Simon Nicol");
- }*/
+ }
@Test(dependsOnMethods = {"createWithDiscsTest"})
public void filterTest()
Modified: trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java
===================================================================
--- trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java 2009-03-02 10:27:17 UTC (rev 10102)
+++ trunk/src/test/ftest/examples/seamdiscs/src/org/jboss/seam/example/seamdiscs/test/selenium/SeleniumSeamDiscsTest.java 2009-03-02 15:48:18 UTC (rev 10103)
@@ -66,7 +66,7 @@
public static String ARTIST_NTH_DISC_YEAR = ARTIST_NTH_DISC + "/td[3]//input";
public static String ARTIST_NTH_DISC_DETAIL = ARTIST_NTH_DISC + "/td";
public static String ARTISTS_FIRST_ARTIST_LINK = "xpath=id(\"artists\")//table/tbody/tr/td/table/tbody/tr[2]/td[2]/a";
- public static String ARTISTS_NEXT_PAGE_LINK = "xpath=id(\"artists\")//td[1]//td[7]/a";
+ public static String ARTISTS_NEXT_PAGE_LINK = "xpath=id(\"artists\")//td[1]//td[2]//td[5]/a";
public static String ARTIST_TABLE_ROW_BY_NAME = "xpath=id(\"artists\")//tr[normalize-space(td/a/text())=\"{0}\"]";
// these locators can only be used catenated with ARTIST_TABLE_ROW_BY_NAME
public static String ARTIST_TABLE_ROW_LINK = ARTIST_TABLE_ROW_BY_NAME + "/td[2]/a";
@@ -76,13 +76,13 @@
public static String CREATE_DISC_BUTTON = "id=addDisc";
public static String DISC_DETAIL_TITLE = "xpath=id(\"disc\")//tr//tr[2]/td[2]/input";
public static String DISC_DETAIL_RELEASE_DATE = "xpath=id(\"disc\")//tr//tr[3]/td[2]//input";
- public static String DISC_DETAIL_ARTIST = "xpath=id(\"disc\")//tr//tr[5]//select";
+ public static String DISC_DETAIL_ARTIST = "xpath=id(\"disc\")//tr//tr[4]//select";
public static String DISC_DETAIL_DESCRIPTION = "id=description";
public static String DISC_DETAIL_UPDATE = "id=update";
public static String DISC_DETAIL_PERSIST = "id=persist";
public static String DISC_DETAIL_REMOVE = "id=remove";
public static String DISC_DETAIL_CANCEL = "id=cancel";
- public static String DISCS_NEXT_PAGE_LINK = "xpath=id(\"discs\")//td[1]//td[7]/a";
+ public static String DISCS_NEXT_PAGE_LINK = "xpath=id(\"discs\")//td[1]//td[2]//td[5]/a";
public static String DISC_TABLE_ROW_BY_NAME = "xpath=id(\"discs\")//tr[normalize-space(td/a/text())=\"{0}\"]";
// these locators can only be used catenated with DISC_TABLE_ROW_BY_NAME
public static String DISC_TABLE_ROW_LINK = DISC_TABLE_ROW_BY_NAME + "/td[2]/a";
15 years, 10 months
Seam SVN: r10102 - trunk/src/main/org/jboss/seam/security/permission.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-03-02 05:27:17 -0500 (Mon, 02 Mar 2009)
New Revision: 10102
Modified:
trunk/src/main/org/jboss/seam/security/permission/PermissionCheck.java
trunk/src/main/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java
Log:
support for multi-target permission checks
Modified: trunk/src/main/org/jboss/seam/security/permission/PermissionCheck.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/PermissionCheck.java 2009-03-01 19:15:15 UTC (rev 10101)
+++ trunk/src/main/org/jboss/seam/security/permission/PermissionCheck.java 2009-03-02 10:27:17 UTC (rev 10102)
@@ -1,5 +1,8 @@
package org.jboss.seam.security.permission;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* Used to assert permission requirements into a WorkingMemory when evaluating
* a @Restrict expression. The consequence of the rule is responsible for
@@ -16,6 +19,7 @@
private String action;
private boolean granted;
+ private Set<String> requirements;
public PermissionCheck(Object target, String action)
{
@@ -44,6 +48,16 @@
{
return action;
}
+
+ public void require(String requirement)
+ {
+ if (requirements == null)
+ {
+ requirements = new HashSet<String>();
+ }
+
+ requirements.add(requirement);
+ }
public void grant()
{
@@ -59,4 +73,14 @@
{
return granted;
}
+
+ public boolean hasRequirements()
+ {
+ return requirements != null && requirements.size() > 0;
+ }
+
+ public Set<String> getRequirements()
+ {
+ return requirements;
+ }
}
Modified: trunk/src/main/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java 2009-03-01 19:15:15 UTC (rev 10101)
+++ trunk/src/main/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java 2009-03-02 10:27:17 UTC (rev 10102)
@@ -164,6 +164,22 @@
try
{
+ handles.add( securityContext.insert(check));
+
+ // Check if there are any additional requirements
+ securityContext.fireAllRules();
+ if (check.hasRequirements())
+ {
+ for (String requirement : check.getRequirements())
+ {
+ Object value = Contexts.lookupInStatefulContexts(requirement);
+ if (value != null)
+ {
+ handles.add (securityContext.insert(value));
+ }
+ }
+ }
+
synchronizeContext();
handles.add( securityContext.insert(roleCheck));
15 years, 10 months
Seam SVN: r10101 - trunk/doc/Seam_Reference_Guide/en-US.
by seam-commits@lists.jboss.org
Author: nickarls
Date: 2009-03-01 14:15:15 -0500 (Sun, 01 Mar 2009)
New Revision: 10101
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Excel.xml
Log:
minor. remove references to cell templates
Modified: trunk/doc/Seam_Reference_Guide/en-US/Excel.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Excel.xml 2009-02-28 21:07:43 UTC (rev 10100)
+++ trunk/doc/Seam_Reference_Guide/en-US/Excel.xml 2009-03-01 19:15:15 UTC (rev 10101)
@@ -1053,7 +1053,7 @@
<section id="excel.cells.validation">
<title>Validation</title>
<para>
- Validations are nested inside cells, formulas or cell templates.
+ Validations are nested inside cells or formulas.
They add constrains for the cell data.
</para>
<informaltable>
@@ -1405,12 +1405,8 @@
<section id="excel.cells.formatmasks">
<title>Format masks</title>
<para>
- Format masks are defined in the mask attribute in cell templates,
- cells or formulas. <emphasis>Note that when using templates, the
- format mask must be placed in the first template</emphasis>
- to be cascaded since the constructor hierarchy in
- <literal>JExcelAPI</literal> used for copying cell formats makes
- it hard to change the format mask at a later stage. There are two
+ Format masks are defined in the mask attribute in
+ cells or formulas. There are two
types of format masks, one for numbers and one for dates
</para>
<section id="excel.formatmasks.numbers">
@@ -1478,17 +1474,13 @@
<programlisting role="XML">
<![CDATA[
<e:workbook>
- <e:cellTemplate name="fooTemplate">
- <e:font color="red"/>
- </e:cellTemplate>
<e:worksheet name="fooSheet">
<e:cell column="0" row="0" value="1"/>
</e:worksheet>
<e:worksheet name="barSheet">
<e:cell column="0" row="0" value="2"/>
<e:formula column="0" row="1"
- value="fooSheet!A1+barSheet1!A1"
- templates="fooTemplate">
+ value="fooSheet!A1+barSheet1!A1">
<e:font fontSize="12"/>
</e:formula>
</e:worksheet>
15 years, 10 months