Seam SVN: r10665 - modules/trunk/el/src/main/java/org/jboss/seam/el.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-04-27 22:45:45 -0400 (Mon, 27 Apr 2009)
New Revision: 10665
Added:
modules/trunk/el/src/main/java/org/jboss/seam/el/Interpolator.java
Log:
add Interpolator to el module
Added: modules/trunk/el/src/main/java/org/jboss/seam/el/Interpolator.java
===================================================================
--- modules/trunk/el/src/main/java/org/jboss/seam/el/Interpolator.java (rev 0)
+++ modules/trunk/el/src/main/java/…
[View More]org/jboss/seam/el/Interpolator.java 2009-04-28 02:45:45 UTC (rev 10665)
@@ -0,0 +1,171 @@
+package org.jboss.seam.el;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.StringTokenizer;
+
+import javax.context.Dependent;
+import javax.inject.Current;
+
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+
+/**
+ * Interpolates EL expressions in Strings
+ *
+ * @author Gavin King
+ */
+@Dependent
+public class Interpolator
+{
+ private static final LogProvider log = Logging.getLogProvider(Interpolator.class);
+
+ @Current Expressions expressions;
+ @Current Locale locale;
+
+ /**
+ * Replace all EL expressions in the form #{...} with their evaluated values.
+ *
+ * @param string
+ * a template
+ * @return the interpolated string
+ */
+ public String interpolate(String string, Object... params)
+ {
+ if (params == null)
+ {
+ params = new Object[0];
+ }
+
+ if (params.length > 10)
+ {
+ throw new IllegalArgumentException("more than 10 parameters");
+ }
+
+ if (string.indexOf('#') >= 0 || string.indexOf('{') >= 0)
+ {
+ string = interpolateExpressions(string, params);
+ }
+
+ return string;
+ }
+
+ private String interpolateExpressions(String string, Object... params)
+ {
+ StringTokenizer tokens = new StringTokenizer(string, "#{}", true);
+ StringBuilder builder = new StringBuilder(string.length());
+ try
+ {
+ while (tokens.hasMoreTokens())
+ {
+ String tok = tokens.nextToken();
+
+ if ("#".equals(tok) && tokens.hasMoreTokens())
+ {
+ String nextTok = tokens.nextToken();
+
+ while (nextTok.equals("#") && tokens.hasMoreTokens())
+ {
+ builder.append(tok);
+ nextTok = tokens.nextToken();
+ }
+
+ if ("{".equals(nextTok))
+ {
+ String expression = "#{" + tokens.nextToken() + "}";
+ try
+ {
+ Object value = expressions.createValueExpression(expression).getValue();
+ if (value != null)
+ builder.append(value);
+ } catch (Exception e)
+ {
+ log.warn("exception interpolating string: " + string, e);
+ }
+ tokens.nextToken(); // the trailing "}"
+
+ } else if (nextTok.equals("#"))
+ {
+ // could be trailing #
+ builder.append("#");
+
+ } else
+ {
+ int index;
+ try
+ {
+ index = Integer.parseInt(nextTok.substring(0, 1));
+ if (index >= params.length)
+ {
+ // log.warn("parameter index out of bounds: " + index +
+ // " in: " + string);
+ builder.append("#").append(nextTok);
+ } else
+ {
+ builder.append(params[index]).append(
+ nextTok.substring(1));
+ }
+ } catch (NumberFormatException nfe)
+ {
+ builder.append("#").append(nextTok);
+ }
+ }
+ } else if ("{".equals(tok))
+ {
+ StringBuilder expr = new StringBuilder();
+
+ expr.append(tok);
+ int level = 1;
+
+ while (tokens.hasMoreTokens())
+ {
+ String nextTok = tokens.nextToken();
+ expr.append(nextTok);
+
+ if (nextTok.equals("{"))
+ {
+ ++level;
+ } else if (nextTok.equals("}"))
+ {
+ if (--level == 0)
+ {
+ try
+ {
+ if (params.length == 0)
+ {
+ builder.append(expr.toString());
+ } else
+ {
+ String value = new MessageFormat(expr.toString(),
+ locale).format(params);
+ builder.append(value);
+ }
+ } catch (Exception e)
+ {
+ // if it is a bad message, use the expression itself
+ builder.append(expr);
+ }
+ expr = null;
+ break;
+ }
+ }
+ }
+
+ if (expr != null)
+ {
+ builder.append(expr);
+ }
+ } else
+ {
+ builder.append(tok);
+ }
+ }
+ } catch (Exception e)
+ {
+ log.warn("exception interpolating string: " + string, e);
+ }
+
+ return builder.toString();
+ }
+
+}
[View Less]
15 years, 10 months
Seam SVN: r10664 - in modules/trunk/security: src/main/java/org/jboss/seam/security and 3 other directories.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-04-27 22:45:16 -0400 (Mon, 27 Apr 2009)
New Revision: 10664
Added:
modules/trunk/security/src/main/java/org/jboss/seam/security/events/DefaultResolverChainCreatedEvent.java
Modified:
modules/trunk/security/pom.xml
modules/trunk/security/src/main/java/org/jboss/seam/security/EntityPermissionChecker.java
modules/trunk/security/src/main/java/org/jboss/seam/security/JpaTokenStore.java
modules/trunk/security/src/main/java/org/jboss/seam/…
[View More]security/permission/EntityIdentifierStrategy.java
modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java
modules/trunk/security/src/main/java/org/jboss/seam/security/permission/PermissionMapper.java
modules/trunk/security/src/main/java/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java
modules/trunk/security/src/main/java/org/jboss/seam/security/permission/action/PermissionSearch.java
Log:
convert more security components
Modified: modules/trunk/security/pom.xml
===================================================================
--- modules/trunk/security/pom.xml 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/pom.xml 2009-04-28 02:45:16 UTC (rev 10664)
@@ -32,10 +32,29 @@
<artifactId>jsf-api</artifactId>
</dependency>
<dependency>
+ <groupId>javax.ejb</groupId>
+ <artifactId>ejb-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-core</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>seam-drools</artifactId>
</dependency>
-
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>seam-el</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>seam-persistence</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ </dependency>
</dependencies>
</project>
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/EntityPermissionChecker.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/EntityPermissionChecker.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/EntityPermissionChecker.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -3,12 +3,13 @@
import java.lang.reflect.Method;
import javax.context.ApplicationScoped;
+import javax.inject.Current;
+import javax.inject.manager.Manager;
import javax.persistence.EntityManager;
-import org.jboss.seam.annotations.security.Restrict;
-import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.security.annotations.Restrict;
import org.jboss.seam.persistence.PersistenceProvider;
-import org.jboss.seam.util.Strings;
+import org.jboss.seam.security.util.Strings;
/**
* Entity permission checks
@@ -19,6 +20,8 @@
public class EntityPermissionChecker
{
private String entityManagerName = "entityManager";
+
+ @Current Manager manager;
private EntityManager getEntityManager()
{
@@ -35,35 +38,15 @@
this.entityManagerName = name;
}
- public static EntityPermissionChecker instance()
- {
- if ( !Contexts.isApplicationContextActive() )
- {
- throw new IllegalStateException("No active application context");
- }
-
- EntityPermissionChecker instance = (EntityPermissionChecker) Component.getInstance(
- EntityPermissionChecker.class, ScopeType.APPLICATION);
-
- if (instance == null)
- {
- throw new IllegalStateException("No EntityPermissionChecker could be created");
- }
-
- return instance;
- }
-
public void checkEntityPermission(Object entity, EntityAction action)
{
if (!Identity.isSecurityEnabled()) return;
- if (!Contexts.isSessionContextActive()) return;
-
- Identity identity = Identity.instance();
-
+ Identity identity = manager.getInstanceByType(Identity.class);
identity.tryLogin();
- PersistenceProvider provider = PersistenceProvider.instance();
+ PersistenceProvider provider = manager.getInstanceByType(PersistenceProvider.class);
+
Class beanClass = provider.getBeanClass(entity);
if (beanClass != null)
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/JpaTokenStore.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/JpaTokenStore.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/JpaTokenStore.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -1,37 +1,28 @@
package org.jboss.seam.security;
-import static org.jboss.seam.ScopeType.APPLICATION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
import java.io.Serializable;
+import javax.context.ApplicationScoped;
+import javax.inject.Initializer;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-import org.jboss.seam.annotations.security.TokenUsername;
-import org.jboss.seam.annotations.security.TokenValue;
-import org.jboss.seam.core.Expressions;
-import org.jboss.seam.core.Expressions.ValueExpression;
+import org.jboss.seam.security.annotations.TokenUsername;
+import org.jboss.seam.security.annotations.TokenValue;
import org.jboss.seam.security.management.IdentityManagementException;
-import org.jboss.seam.util.AnnotatedBeanProperty;
+import org.jboss.seam.security.util.AnnotatedBeanProperty;
/**
* A TokenStore implementation, stores tokens inside a database table.
*
* @author Shane Bryzak
*/
-@Name("org.jboss.seam.security.tokenStore")
-@Install(precedence = BUILT_IN, value=false)
-@Scope(APPLICATION)
-@BypassInterceptors
+@ApplicationScoped
public class JpaTokenStore implements TokenStore, Serializable
{
+ private static final long serialVersionUID = -1984227349549914828L;
+
private Class tokenClass;
private ValueExpression<EntityManager> entityManager;
@@ -39,7 +30,7 @@
private AnnotatedBeanProperty<TokenUsername> tokenUsernameProperty;
private AnnotatedBeanProperty<TokenValue> tokenValueProperty;
- @Create
+ @Initializer
public void create()
{
if (entityManager == null)
Added: modules/trunk/security/src/main/java/org/jboss/seam/security/events/DefaultResolverChainCreatedEvent.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/events/DefaultResolverChainCreatedEvent.java (rev 0)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/events/DefaultResolverChainCreatedEvent.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -0,0 +1,23 @@
+package org.jboss.seam.security.events;
+
+import org.jboss.seam.security.permission.ResolverChain;
+
+/**
+ * This event is raised when the default permission resolver chain is created
+ *
+ * @author Shane Bryzak
+ */
+public class DefaultResolverChainCreatedEvent
+{
+ private ResolverChain chain;
+
+ public DefaultResolverChainCreatedEvent(ResolverChain chain)
+ {
+ this.chain = chain;
+ }
+
+ public ResolverChain getChain()
+ {
+ return chain;
+ }
+}
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/permission/EntityIdentifierStrategy.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/permission/EntityIdentifierStrategy.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/permission/EntityIdentifierStrategy.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -22,15 +22,13 @@
public class EntityIdentifierStrategy implements IdentifierStrategy
{
private ValueExpression<EntityManager> entityManager;
-
- private PersistenceProvider persistenceProvider;
-
+
private Map<Class,String> identifierNames = new ConcurrentHashMap<Class,String>();
+ @Current PersistenceProvider persistenceProvider;
+
public EntityIdentifierStrategy()
- {
- persistenceProvider = (PersistenceProvider) Component.getInstance(PersistenceProvider.class, true);
-
+ {
if (entityManager == null)
{
entityManager = Expressions.instance().createValueExpression("#{entityManager}",
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -1,8 +1,5 @@
package org.jboss.seam.security.permission;
-import static org.jboss.seam.ScopeType.APPLICATION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
import java.io.Serializable;
import java.security.Principal;
import java.util.ArrayList;
@@ -12,41 +9,36 @@
import java.util.Map;
import java.util.Set;
+import javax.context.ApplicationScoped;
+import javax.inject.Current;
+import javax.inject.Initializer;
+import javax.inject.manager.Manager;
import javax.persistence.EntityManager;
import javax.persistence.Query;
-import org.jboss.seam.Component;
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-import org.jboss.seam.annotations.security.permission.PermissionAction;
-import org.jboss.seam.annotations.security.permission.PermissionDiscriminator;
-import org.jboss.seam.annotations.security.permission.PermissionRole;
-import org.jboss.seam.annotations.security.permission.PermissionTarget;
-import org.jboss.seam.annotations.security.permission.PermissionUser;
-import org.jboss.seam.core.Expressions;
-import org.jboss.seam.core.Expressions.ValueExpression;
-import org.jboss.seam.log.LogProvider;
-import org.jboss.seam.log.Logging;
+import org.jboss.seam.security.annotations.permission.PermissionAction;
+import org.jboss.seam.security.annotations.permission.PermissionDiscriminator;
+import org.jboss.seam.security.annotations.permission.PermissionRole;
+import org.jboss.seam.security.annotations.permission.PermissionTarget;
+import org.jboss.seam.security.annotations.permission.PermissionUser;
+import org.jboss.seam.el.Expressions;
+import org.jboss.seam.el.Expressions.ValueExpression;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
import org.jboss.seam.security.Role;
import org.jboss.seam.security.SimplePrincipal;
import org.jboss.seam.security.management.IdentityManager;
import org.jboss.seam.security.management.IdentityStore;
import org.jboss.seam.security.management.JpaIdentityStore;
import org.jboss.seam.security.permission.PermissionMetadata.ActionSet;
-import org.jboss.seam.util.AnnotatedBeanProperty;
+import org.jboss.seam.security.util.AnnotatedBeanProperty;
/**
* A permission store implementation that uses JPA as its persistence mechanism.
*
* @author Shane Bryzak
*/
-@Name("org.jboss.seam.security.jpaPermissionStore")
-@Install(precedence = BUILT_IN, value=false)
-@Scope(APPLICATION)
-@BypassInterceptors
+@ApplicationScoped
public class JpaPermissionStore implements PermissionStore, Serializable
{
private static final LogProvider log = Logging.getLogProvider(JpaPermissionStore.class);
@@ -69,12 +61,14 @@
private AnnotatedBeanProperty<PermissionAction> roleActionProperty;
private Map<Integer,String> queryCache = new HashMap<Integer,String>();
+
+ private PermissionMetadata metadata;
- private IdentifierPolicy identifierPolicy;
+ @Current IdentifierPolicy identifierPolicy;
+ @Current Manager manager;
+ @Current IdentityManager identityManager;
- private PermissionMetadata metadata;
-
- @Create
+ @Initializer
public void init()
{
metadata = new PermissionMetadata();
@@ -93,8 +87,6 @@
}
initProperties();
-
- identifierPolicy = (IdentifierPolicy) Component.getInstance(IdentifierPolicy.class, true);
}
protected void initProperties()
@@ -543,7 +535,7 @@
{
boolean recipientIsRole = recipient instanceof Role;
- JpaIdentityStore identityStore = (JpaIdentityStore) Component.getInstance(JpaIdentityStore.class, true);
+ JpaIdentityStore identityStore = manager.getInstanceByType(JpaIdentityStore.class);
if (identityStore != null)
{
@@ -562,11 +554,9 @@
protected Principal resolvePrincipal(Object principal, boolean isUser)
{
- IdentityStore ids = IdentityManager.instance().getRoleIdentityStore();
- JpaIdentityStore identityStore = null;
+ identityManager.getRoleIdentityStore();
+ JpaIdentityStore identityStore = null;
- if (ids instanceof JpaIdentityStore) identityStore = (JpaIdentityStore) ids;
-
if (principal instanceof String)
{
return isUser ? new SimplePrincipal((String) principal) : new Role((String) principal,
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/permission/PermissionMapper.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/permission/PermissionMapper.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/permission/PermissionMapper.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -8,7 +8,12 @@
import java.util.Set;
import javax.context.ApplicationScoped;
+import javax.inject.Current;
+import javax.inject.manager.Bean;
+import javax.inject.manager.Manager;
+import org.jboss.seam.security.events.DefaultResolverChainCreatedEvent;
+
/**
* Maps permission checks to resolver chains
*
@@ -25,6 +30,8 @@
private static final String DEFAULT_RESOLVER_CHAIN = "org.jboss.seam.security.defaultResolverChain";
+ @Current Manager manager;
+
private ResolverChain getResolverChain(Object target, String action)
{
Class targetClass = null;
@@ -44,13 +51,13 @@
Map<String,String> chains = resolverChains.get(target);
if (chains != null && chains.containsKey(action))
{
- return (ResolverChain) Component.getInstance(chains.get(action), true);
+ return (ResolverChain) manager.getInstanceByName(chains.get(action));
}
}
if (defaultResolverChain != null && !"".equals(defaultResolverChain))
{
- return (ResolverChain) Component.getInstance(defaultResolverChain, true);
+ return (ResolverChain) manager.getInstanceByName(defaultResolverChain);
}
return createDefaultResolverChain();
@@ -141,13 +148,15 @@
{
chain = new ResolverChain();
- for (String resolverName : Init.instance().getPermissionResolvers())
+ Set<Bean<PermissionResolver>> resolvers = manager.resolveByType(PermissionResolver.class);
+ for (Bean<PermissionResolver> resolverBean : resolvers)
{
- chain.getResolvers().add((PermissionResolver) Component.getInstance(resolverName, true));
+ chain.getResolvers().add((PermissionResolver) manager.getInstance(resolverBean));
}
Contexts.getSessionContext().set(DEFAULT_RESOLVER_CHAIN, chain);
- if (Events.exists()) Events.instance().raiseEvent(DEFAULT_RESOLVER_CHAIN_CREATED, chain);
+
+ manager.fireEvent(new DefaultResolverChainCreatedEvent(chain));
}
return chain;
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/permission/RuleBasedPermissionResolver.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -1,8 +1,5 @@
package org.jboss.seam.security.permission;
-import static org.jboss.seam.ScopeType.SESSION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
import java.io.Serializable;
import java.security.Principal;
import java.security.acl.Group;
@@ -14,6 +11,8 @@
import javax.context.SessionScoped;
import javax.event.Observes;
+import javax.inject.Current;
+import javax.inject.Initializer;
import javax.inject.manager.Initialized;
import org.drools.FactHandle;
@@ -48,7 +47,7 @@
@Current Identity identity;
- @Initialized
+ @Initializer
public boolean create()
{
initSecurityContext();
@@ -280,24 +279,6 @@
this.securityRules = securityRules;
}
- public static RuleBasedPermissionResolver instance()
- {
- if ( !Contexts.isSessionContextActive() )
- {
- throw new IllegalStateException("No active session context");
- }
-
- RuleBasedPermissionResolver instance = (RuleBasedPermissionResolver) Component.getInstance(
- RuleBasedPermissionResolver.class, ScopeType.SESSION);
-
- if (instance == null)
- {
- throw new IllegalStateException("No RuleBasedPermissionResolver could be created");
- }
-
- return instance;
- }
-
/**
* Post-authentication event observer
*/
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/permission/action/PermissionSearch.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/permission/action/PermissionSearch.java 2009-04-28 02:43:30 UTC (rev 10663)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/permission/action/PermissionSearch.java 2009-04-28 02:45:16 UTC (rev 10664)
@@ -1,8 +1,5 @@
package org.jboss.seam.security.permission.action;
-import static org.jboss.seam.ScopeType.CONVERSATION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
import java.io.Serializable;
import java.security.Principal;
import java.util.ArrayList;
@@ -10,20 +7,19 @@
import java.util.List;
import java.util.Map;
-import org.jboss.seam.annotations.Begin;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
+import javax.annotation.Named;
+import javax.context.Conversation;
+import javax.context.ConversationScoped;
+import javax.inject.Current;
+
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.security.management.IdentityManager;
import org.jboss.seam.security.permission.Permission;
import org.jboss.seam.security.permission.PermissionManager;
-@Scope(CONVERSATION)
-@Name("org.jboss.seam.security.permission.permissionSearch")
-@Install(precedence = BUILT_IN)
+@Named
+@ConversationScoped
public class PermissionSearch implements Serializable
{
private Map<Principal,List<Permission>> groupedPermissions = new HashMap<Principal,List<Permission>>();
@@ -34,15 +30,17 @@
@DataModelSelection
Principal selectedRecipient;
- @In IdentityManager identityManager;
+ @Current IdentityManager identityManager;
- @In PermissionManager permissionManager;
+ @Current PermissionManager permissionManager;
+ @Current Conversation conversation;
+
private Object target;
- @Begin
public void search(Object target)
{
+ conversation.begin();
this.target = target;
}
[View Less]
15 years, 10 months
Seam SVN: r10663 - in modules/trunk/international: src/main/java/org/jboss/seam/international and 2 other directories.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-04-27 22:43:30 -0400 (Mon, 27 Apr 2009)
New Revision: 10663
Added:
modules/trunk/international/src/main/java/org/jboss/seam/international/ResourceLoader.java
modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundle.java
modules/trunk/international/src/main/java/org/jboss/seam/international/events/TimeZoneSelectedEvent.java
modules/trunk/international/src/main/java/org/jboss/seam/international/util/…
[View More]Resources.java
Modified:
modules/trunk/international/pom.xml
modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleSelector.java
modules/trunk/international/src/main/java/org/jboss/seam/international/MessagesProducer.java
modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java
modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZoneSelector.java
Log:
add event class, util classes, component conversion
Modified: modules/trunk/international/pom.xml
===================================================================
--- modules/trunk/international/pom.xml 2009-04-28 01:07:37 UTC (rev 10662)
+++ modules/trunk/international/pom.xml 2009-04-28 02:43:30 UTC (rev 10663)
@@ -35,6 +35,14 @@
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-logging</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>seam-faces</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.seam</groupId>
+ <artifactId>seam-el</artifactId>
+ </dependency>
</dependencies>
</project>
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleSelector.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleSelector.java 2009-04-28 01:07:37 UTC (rev 10662)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleSelector.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -16,12 +16,11 @@
import javax.inject.Produces;
import javax.inject.manager.Manager;
import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
-import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.faces.Selector;
import org.jboss.seam.international.events.LocaleSelectedEvent;
import org.jboss.seam.international.util.Strings;
-import org.jboss.seam.web.ServletContexts;
/**
* Selects the current user's locale
@@ -35,6 +34,7 @@
private static final long serialVersionUID = -6087667065688208261L;
@Current Manager manager;
+ @Current HttpServletRequest request;
private String language;
private String country;
@@ -150,28 +150,14 @@
return facesContext.getApplication().getViewHandler().calculateLocale(facesContext);
}
- ServletContexts servletContexts = ServletContexts.getInstance();
- if (servletContexts!=null)
+ if (request!=null)
{
- ServletRequest request = servletContexts.getRequest();
- if (request!=null)
- {
- return calculateLocale( request.getLocale() );
- }
+ return calculateLocale( request.getLocale() );
}
return calculateLocale( Locale.getDefault() );
}
- public static LocaleSelector instance()
- {
- if ( !Contexts.isSessionContextActive() )
- {
- throw new IllegalStateException("No active session context");
- }
- return (LocaleSelector) Component.getInstance(LocaleSelector.class, ScopeType.SESSION);
- }
-
public String getCountry()
{
if (country==null) return getLocale().getCountry();
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/MessagesProducer.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/MessagesProducer.java 2009-04-28 01:07:37 UTC (rev 10662)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/MessagesProducer.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -7,16 +7,13 @@
import java.util.HashSet;
import java.util.Map;
import java.util.MissingResourceException;
+import java.util.ResourceBundle;
import java.util.Set;
import javax.context.RequestScoped;
+import javax.inject.Current;
import javax.inject.Produces;
-import org.jboss.seam.Component;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.contexts.Contexts;
-import org.jboss.seam.core.SeamResourceBundle;
-
/**
* Factory for a Map that contains interpolated messages defined in the
* Seam ResourceBundle.
@@ -28,15 +25,15 @@
public class MessagesProducer
{
//TODO: now we have ELResolver, it doesn't *have* to be a Map...
+
+ @Current ResourceBundle bundle;
protected Map createMap()
{
// AbstractMap uses the implementation of entrySet to perform all its
// operations - for a resource bundle this is very inefficient for keys
return new AbstractMap<String, String>()
- {
- private java.util.ResourceBundle bundle = SeamResourceBundle.getBundle();
-
+ {
@Override
public String get(Object key)
{
@@ -108,16 +105,4 @@
{
return createMap();
}
-
- /**
- * @return the message Map instance
- */
- public static Map<String, String> instance()
- {
- if ( !Contexts.isSessionContextActive() )
- {
- throw new IllegalStateException("no event context active");
- }
- return (Map<String, String>) Component.getInstance("org.jboss.seam.international.messages", true);
- }
}
Added: modules/trunk/international/src/main/java/org/jboss/seam/international/ResourceLoader.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/ResourceLoader.java (rev 0)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/ResourceLoader.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -0,0 +1,89 @@
+package org.jboss.seam.international;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Locale;
+import java.util.MissingResourceException;
+
+import javax.context.Dependent;
+import javax.inject.Current;
+import javax.servlet.ServletContext;
+
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+import org.jboss.seam.international.util.Resources;
+import org.jboss.seam.international.util.Strings;
+
+/**
+ * Access to application resources and resource bundles.
+ *
+ * @author Gavin King
+ *
+ */
+@Dependent
+public class ResourceLoader
+{
+ private static final LogProvider log = Logging.getLogProvider(ResourceLoader.class);
+
+ private String[] bundleNames = {"messages"};
+
+ @Current ServletContext servletContext;
+ @Current Locale locale;
+
+ /**
+ * The configurable list of delegate resource bundle names
+ *
+ * @return an array of resource bundle names
+ */
+ public String[] getBundleNames()
+ {
+ return bundleNames;
+ }
+
+ public void setBundleNames(String[] bundleNames)
+ {
+ this.bundleNames = bundleNames;
+ }
+
+ public InputStream getResourceAsStream(String resource)
+ {
+ return Resources.getResourceAsStream( resource, servletContext );
+ }
+
+ public URL getResource(String resource)
+ {
+ return Resources.getResource( resource, servletContext );
+ }
+
+ /**
+ * Load a resource bundle by name (may be overridden by subclasses
+ * who want to use non-standard resource bundle types).
+ *
+ * @param bundleName the name of the resource bundle
+ * @return an instance of java.util.ResourceBundle
+ */
+ public java.util.ResourceBundle loadBundle(String bundleName)
+ {
+ try
+ {
+ java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle(
+ bundleName, locale,
+ Thread.currentThread().getContextClassLoader()
+ );
+ log.debug("loaded resource bundle: " + bundleName);
+ return bundle;
+ }
+ catch (MissingResourceException mre)
+ {
+ log.debug("resource bundle missing: " + bundleName);
+ return null;
+ }
+ }
+
+ @Override
+ public String toString()
+ {
+ String concat = bundleNames==null ? "" : Strings.toString( ", ", (Object[]) bundleNames );
+ return "ResourceBundle(" + concat + ")";
+ }
+}
Added: modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundle.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundle.java (rev 0)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/SeamResourceBundle.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -0,0 +1,158 @@
+package org.jboss.seam.international;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.inject.Current;
+
+import org.jboss.seam.el.Interpolator;
+
+/**
+ * The Seam resource bundle which searches for resources in delegate resource
+ * bundles specified in pages.xml, and a configurable list of delegate resource
+ * bundles specified in components.xml.
+ *
+ * @see ResourceLoader
+ * @author Gavin King
+ *
+ */
+public class SeamResourceBundle extends java.util.ResourceBundle
+{
+ private Map<Locale, List<ResourceBundle>> bundleCache = new ConcurrentHashMap<Locale, List<ResourceBundle>>();
+
+ @Current Locale locale;
+ @Current Interpolator interpolator;
+ @Current ResourceLoader resourceLoader;
+
+ /**
+ * Get an instance for the current Seam Locale
+ *
+ * @see Locale
+ *
+ * @return a SeamResourceBundle
+ */
+ public java.util.ResourceBundle getBundle()
+ {
+ return java.util.ResourceBundle.getBundle(SeamResourceBundle.class.getName(), locale);
+ }
+
+
+ public java.util.ResourceBundle getBundleNamed(String bundleName)
+ {
+ return java.util.ResourceBundle.getBundle(bundleName, locale);
+ }
+
+
+ private List<java.util.ResourceBundle> getBundlesForCurrentLocale()
+ {
+ List<ResourceBundle> bundles = bundleCache.get(locale);
+ if ( bundles==null )
+ {
+ bundles = loadBundlesForCurrentLocale();
+ bundleCache.put(locale, bundles);
+ }
+ return bundles;
+
+ }
+
+ private List<ResourceBundle> loadBundlesForCurrentLocale()
+ {
+ List<ResourceBundle> bundles = new ArrayList<ResourceBundle>();
+ for (String bundleName : resourceLoader.getBundleNames())
+ {
+ ResourceBundle bundle = resourceLoader.loadBundle(bundleName);
+ if (bundle != null) bundles.add(bundle);
+ }
+ ResourceBundle bundle = resourceLoader.loadBundle("ValidatorMessages");
+ if (bundle != null)
+ {
+ bundles.add(bundle);
+ }
+ bundle = resourceLoader.loadBundle("org/hibernate/validator/resources/DefaultValidatorMessages");
+ if (bundle != null) bundles.add(bundle);
+ bundle = resourceLoader.loadBundle("javax.faces.Messages");
+ if (bundle != null) bundles.add(bundle);
+ return Collections.unmodifiableList(bundles);
+ }
+
+ @Override
+ public Enumeration<String> getKeys()
+ {
+ List<java.util.ResourceBundle> pageBundles = getPageResourceBundles();
+ List<ResourceBundle> bundles = getBundlesForCurrentLocale();
+ Enumeration<String>[] enumerations = new Enumeration[bundles.size() + pageBundles.size()];
+
+ int i = 0;
+ for (java.util.ResourceBundle bundle: pageBundles) {
+ enumerations[i++] = bundle.getKeys();
+ }
+
+ for (ResourceBundle bundle: bundles) {
+ enumerations[i++] = bundle.getKeys();
+ }
+
+ return new EnumerationEnumeration<String>(enumerations);
+ }
+
+ @Override
+ protected Object handleGetObject(String key)
+ {
+ List<java.util.ResourceBundle> pageBundles = getPageResourceBundles();
+ for (java.util.ResourceBundle pageBundle : pageBundles)
+ {
+ try
+ {
+ return interpolate(pageBundle.getObject(key));
+ }
+ catch (MissingResourceException mre) {}
+ }
+
+ for (java.util.ResourceBundle littleBundle : getBundlesForCurrentLocale())
+ {
+ try
+ {
+ return interpolate( littleBundle.getObject(key) );
+ }
+ catch (MissingResourceException mre) {}
+ }
+
+ return null; // superclass is responsible for throwing MRE
+ }
+
+ private Object interpolate(Object message)
+ {
+ return message!=null && message instanceof String ?
+ interpolator.interpolate( (String) message ) :
+ message;
+ }
+
+ private List<java.util.ResourceBundle> getPageResourceBundles()
+ {
+ // TODO: oops! A hard dependency to JSF!
+ String viewId = Pages.getCurrentViewId();
+ if (viewId != null)
+ {
+ // we can't cache these bundles, since the viewId
+ // may change in the middle of a request
+ return Pages.instance().getResourceBundles(viewId);
+ }
+ else
+ {
+ return Collections.EMPTY_LIST;
+ }
+ }
+
+ @Override
+ public Locale getLocale()
+ {
+ return locale;
+ }
+
+}
\ No newline at end of file
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java 2009-04-28 01:07:37 UTC (rev 10662)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessage.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -4,7 +4,9 @@
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import org.jboss.seam.core.Interpolator;
+import javax.inject.Current;
+
+import org.jboss.seam.el.Interpolator;
import org.jboss.seam.core.SeamResourceBundle;
import org.jboss.seam.international.util.Strings;
@@ -17,6 +19,7 @@
*/
public class StatusMessage implements Serializable
{
+ @Current Interpolator interpolator;
/**
* The severity of the status message
@@ -61,11 +64,11 @@
{
if (!Strings.isEmpty(summaryTemplate))
{
- this.summary = Interpolator.instance().interpolate(summaryTemplate, params);
+ this.summary = interpolator.interpolate(summaryTemplate, params);
}
if (!Strings.isEmpty(detailTemplate))
{
- this.detail = Interpolator.instance().interpolate(detailTemplate, params);
+ this.detail = interpolator.interpolate(detailTemplate, params);
}
}
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZoneSelector.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZoneSelector.java 2009-04-28 01:07:37 UTC (rev 10662)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZoneSelector.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -3,10 +3,13 @@
import javax.annotation.Named;
import javax.context.SessionScoped;
import javax.faces.event.ValueChangeEvent;
+import javax.inject.Current;
import javax.inject.Initializer;
import javax.inject.Produces;
+import javax.inject.manager.Manager;
import org.jboss.seam.faces.Selector;
+import org.jboss.seam.international.events.TimeZoneSelectedEvent;
/**
* Selects the current user's time zone, defaulting
@@ -21,6 +24,8 @@
private String id;
+ @Current Manager manager;
+
@Initializer
public void initTimeZone()
{
@@ -42,10 +47,7 @@
{
setCookieValueIfEnabled( getTimeZoneId() );
- if ( Events.exists() )
- {
- Events.instance().raiseEvent( "org.jboss.seam.timeZoneSelected", getTimeZoneId() );
- }
+ manager.fireEvent(new TimeZoneSelectedEvent(getTimeZoneId()));
}
public void select(ValueChangeEvent event)
Added: modules/trunk/international/src/main/java/org/jboss/seam/international/events/TimeZoneSelectedEvent.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/events/TimeZoneSelectedEvent.java (rev 0)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/events/TimeZoneSelectedEvent.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -0,0 +1,21 @@
+package org.jboss.seam.international.events;
+
+/**
+ * This event is raised when a time zone is selected
+ *
+ * @author Shane Bryzak
+ */
+public class TimeZoneSelectedEvent
+{
+ private String timeZoneId;
+
+ public TimeZoneSelectedEvent(String timeZoneId)
+ {
+ this.timeZoneId = timeZoneId;
+ }
+
+ public String getTimeZoneId()
+ {
+ return timeZoneId;
+ }
+}
Added: modules/trunk/international/src/main/java/org/jboss/seam/international/util/Resources.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/util/Resources.java (rev 0)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/util/Resources.java 2009-04-28 02:43:30 UTC (rev 10663)
@@ -0,0 +1,177 @@
+package org.jboss.seam.international.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.servlet.ServletContext;
+
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
+
+public class Resources
+{
+ private static final LogProvider log = Logging.getLogProvider(Resources.class);
+
+ public static InputStream getResourceAsStream(String resource, ServletContext servletContext)
+ {
+ String stripped = resource.startsWith("/") ?
+ resource.substring(1) : resource;
+
+ InputStream stream = null;
+
+ if (servletContext!=null) {
+ try {
+ stream = servletContext.getResourceAsStream(resource);
+ if (stream!=null) {
+ log.debug("Loaded resource from servlet context: " + resource);
+ }
+ } catch (Exception e) {
+ //
+ }
+ }
+
+ if (stream==null) {
+ stream = getResourceAsStream(resource, stripped);
+ }
+
+ return stream;
+ }
+
+ public static URL getResource(String resource, ServletContext servletContext)
+ {
+ if (!resource.startsWith("/"))
+ {
+ resource = "/" + resource;
+ }
+
+ String stripped = resource.startsWith("/") ?
+ resource.substring(1) : resource;
+
+ URL url = null;
+
+ if (servletContext!=null)
+ {
+ try {
+ url = servletContext.getResource(resource);
+ log.debug("Loaded resource from servlet context: " + url);
+ } catch (Exception e) {
+ //
+ }
+ }
+
+ if (url==null)
+ {
+ url = getResource(resource, stripped);
+ }
+
+ return url;
+ }
+
+ static InputStream getResourceAsStream(String resource, String stripped)
+ {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ InputStream stream = null;
+ if (classLoader!=null) {
+ stream = classLoader.getResourceAsStream(stripped);
+ if (stream !=null) {
+ log.debug("Loaded resource from context classloader: " + stripped);
+ }
+ }
+
+ if (stream == null) {
+ stream = Resources.class.getResourceAsStream(resource);
+ if (stream !=null) {
+ log.debug("Loaded resource from Seam classloader: " + resource);
+ }
+ }
+
+ if (stream == null) {
+ stream = Resources.class.getClassLoader().getResourceAsStream(stripped);
+ if (stream!=null) {
+ log.debug("Loaded resource from Seam classloader: " + stripped);
+ }
+ }
+
+ return stream;
+ }
+
+ static URL getResource(String resource, String stripped)
+ {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ URL url = null;
+ if (classLoader!=null) {
+ url = classLoader.getResource(stripped);
+ if (url!=null) {
+ log.debug("Loaded resource from context classloader: " + url);
+ }
+ }
+
+ if (url == null) {
+ url = Resources.class.getResource(resource);
+ if (url!=null) {
+ log.debug("Loaded resource from Seam classloader: " + url);
+ }
+ }
+
+ if (url == null) {
+ url = Resources.class.getClassLoader().getResource(stripped);
+ if (url!=null) {
+ log.debug("Loaded resource from Seam classloader: " + url);
+ }
+ }
+
+ return url;
+ }
+
+ public static void closeStream(InputStream inputStream) {
+ if (inputStream == null) {
+ return;
+ }
+
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ //
+ }
+ }
+
+ public static File getRealFile(ServletContext servletContext, String path)
+ {
+ String realPath = servletContext.getRealPath(path);
+ if (realPath==null) //WebLogic!
+ {
+ try
+ {
+ URL resourcePath = servletContext.getResource(path);
+ if ((resourcePath != null) && (resourcePath.getProtocol().equals("file")))
+ {
+ realPath = resourcePath.getPath();
+ }
+ else
+ {
+ log.warn("Unable to determine real path from servlet context for \"" + path + "\" path does not exist.");
+ }
+ }
+ catch (MalformedURLException e)
+ {
+ log.warn("Unable to determine real path from servlet context for : " + path);
+ log.debug("Caused by MalformedURLException", e);
+ }
+
+ }
+
+ if (realPath != null)
+ {
+ File file = new File(realPath);
+ if (file.exists())
+ {
+ return file;
+ }
+ }
+ return null;
+ }
+
+}
\ No newline at end of file
[View Less]
15 years, 10 months
Seam SVN: r10662 - in modules/trunk/transaction: src/main/java/org/jboss/seam/transaction and 1 other directories.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-04-27 21:07:37 -0400 (Mon, 27 Apr 2009)
New Revision: 10662
Added:
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/AfterTransactionCompletionEvent.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/BeforeTransactionCompletionEvent.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/…
[View More]TransactionFailedEvent.java
Modified:
modules/trunk/transaction/pom.xml
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/AbstractUserTransaction.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/CMTTransaction.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/EntityTransaction.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/FacesTransactionEvents.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/HibernateTransaction.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/NoTransaction.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/RollbackInterceptor.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SeSynchronizations.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SynchronizationRegistry.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/Transaction.java
modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/UTTransaction.java
Log:
dependencies, component converstion, introduced event classes
Modified: modules/trunk/transaction/pom.xml
===================================================================
--- modules/trunk/transaction/pom.xml 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/pom.xml 2009-04-28 01:07:37 UTC (rev 10662)
@@ -36,6 +36,10 @@
<artifactId>ejb-api</artifactId>
</dependency>
<dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>seam-el</artifactId>
</dependency>
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/AbstractUserTransaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/AbstractUserTransaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/AbstractUserTransaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -6,13 +6,11 @@
import static javax.transaction.Status.STATUS_COMMITTED;
import static javax.transaction.Status.STATUS_NO_TRANSACTION;
+import javax.inject.Current;
import javax.persistence.EntityManager;
import javax.transaction.Synchronization;
import javax.transaction.SystemException;
-import org.jboss.seam.Component;
-import org.jboss.seam.ScopeType;
-
/**
* Base implementation of UserTransaction
*
@@ -21,6 +19,7 @@
*/
public abstract class AbstractUserTransaction implements UserTransaction
{
+ @Current Synchronizations synchronizations;
public boolean isActive() throws SystemException
{
@@ -73,10 +72,5 @@
entityManager.joinTransaction();
}
}
-
- public static Synchronizations getSynchronizations()
- {
- return (Synchronizations) Component.getInstance("org.jboss.seam.transaction.synchronizations", ScopeType.EVENT);
- }
}
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/CMTTransaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/CMTTransaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/CMTTransaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -1,6 +1,7 @@
package org.jboss.seam.transaction;
import javax.ejb.EJBContext;
+import javax.inject.Current;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.NotSupportedException;
@@ -22,10 +23,9 @@
*
*/
public class CMTTransaction extends AbstractUserTransaction
-{
-
+{
private final EJBContext ejbContext;
-
+
public CMTTransaction(EJBContext ejbContext)
{
this.ejbContext = ejbContext;
@@ -38,7 +38,7 @@
public void begin() throws NotSupportedException, SystemException
{
ejbContext.getUserTransaction().begin();
- getSynchronizations().afterTransactionBegin();
+ synchronizations.afterTransactionBegin();
}
public void commit() throws RollbackException, HeuristicMixedException,
@@ -46,7 +46,6 @@
{
UserTransaction userTransaction = ejbContext.getUserTransaction();
boolean success = false;
- Synchronizations synchronizations = getSynchronizations();
synchronizations.beforeTransactionCommit();
try
{
@@ -68,7 +67,7 @@
}
finally
{
- getSynchronizations().afterTransactionRollback();
+ synchronizations.afterTransactionRollback();
}
}
@@ -112,7 +111,6 @@
@Override
public void registerSynchronization(Synchronization sync)
{
- Synchronizations synchronizations = getSynchronizations();
if ( synchronizations.isAwareOfContainerTransactions() )
{
synchronizations.registerSynchronization(sync);
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/EntityTransaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/EntityTransaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/EntityTransaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -37,7 +37,8 @@
private ValueExpression<EntityManager> entityManager;
private EntityManager currentEntityManager;
- @Current Expressions expressions;
+ @Current Expressions expressions;
+ @Current PersistenceProvider persistenceProvider;
@Initializer
public void validate()
@@ -76,7 +77,7 @@
try
{
getDelegate().begin();
- getSynchronizations().afterTransactionBegin();
+ synchronizations.afterTransactionBegin();
}
catch (RuntimeException re)
{
@@ -102,14 +103,14 @@
}
else
{
- getSynchronizations().beforeTransactionCommit();
+ synchronizations.beforeTransactionCommit();
delegate.commit();
success = true;
}
}
finally
{
- getSynchronizations().afterTransactionCommit(success);
+ synchronizations.afterTransactionCommit(success);
}
}
@@ -126,7 +127,7 @@
}
finally
{
- getSynchronizations().afterTransactionRollback();
+ synchronizations.afterTransactionRollback();
}
}
@@ -191,13 +192,14 @@
{
log.debug("registering synchronization: " + sync);
}
+
assertActive();
//try to register the synchronization directly with the
//persistence provider, but if this fails, just hold
//on to it myself
- if ( !PersistenceProvider.instance().registerSynchronization(sync, currentEntityManager) )
+ if ( !persistenceProvider.registerSynchronization(sync, currentEntityManager) )
{
- getSynchronizations().registerSynchronization(sync);
+ synchronizations.registerSynchronization(sync);
}
}
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/FacesTransactionEvents.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/FacesTransactionEvents.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/FacesTransactionEvents.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -1,16 +1,11 @@
package org.jboss.seam.transaction;
-import static org.jboss.seam.ScopeType.APPLICATION;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
+import javax.context.ApplicationScoped;
+import javax.event.Observes;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Observer;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.Startup;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.international.StatusMessages;
import org.jboss.seam.international.StatusMessage.Severity;
+import org.jboss.seam.transaction.events.TransactionFailedEvent;
/**
* Produces StatusMessages for JSF in response of certain transaction events.
@@ -19,17 +14,12 @@
*
* @author Dan Allen
*/
-@Name("org.jboss.seam.transaction.facesTransactionEvents")
-@Scope(APPLICATION)
-@Install(precedence = BUILT_IN, classDependencies = "javax.faces.context.FacesContext")
-@BypassInterceptors
-@Startup
+@ApplicationScoped
public class FacesTransactionEvents
{
- private boolean transactionFailedMessageEnabled = true;
+ private boolean transactionFailedMessageEnabled = true;
- @Observer(Transaction.TRANSACTION_FAILED)
- public void addTransactionFailedMessage(int status)
+ public void addTransactionFailedMessage(@Observes TransactionFailedEvent event)
{
if (transactionFailedMessageEnabled) {
StatusMessages.instance().addFromResourceBundleOrDefault(
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/HibernateTransaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/HibernateTransaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/HibernateTransaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -1,7 +1,7 @@
package org.jboss.seam.transaction;
-import static org.jboss.seam.annotations.Install.FRAMEWORK;
-
+import javax.context.RequestScoped;
+import javax.inject.Initializer;
import javax.persistence.EntityManager;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -13,16 +13,10 @@
import org.hibernate.Session;
import org.hibernate.Transaction;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.Create;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.core.Expressions;
import org.jboss.seam.core.Expressions.ValueExpression;
-import org.jboss.seam.log.LogProvider;
-import org.jboss.seam.log.Logging;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
/**
* Support for the Hibernate Transaction API.
@@ -33,10 +27,7 @@
* @author Gavin King
*
*/
-@Name("org.jboss.seam.transaction.transaction")
-(a)Scope(ScopeType.EVENT)
-@Install(value=false, precedence=FRAMEWORK)
-@BypassInterceptors
+@RequestScoped
public class HibernateTransaction extends AbstractUserTransaction
{
private static final LogProvider log = Logging.getLogProvider(HibernateTransaction.class);
@@ -45,7 +36,7 @@
private Session currentSession;
private boolean rollbackOnly; //Hibernate Transaction doesn't have a "rollback only" state
- @Create
+ @Initializer
public void validate()
{
if (session==null)
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/NoTransaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/NoTransaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/NoTransaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -1,7 +1,6 @@
package org.jboss.seam.transaction;
-import static org.jboss.seam.annotations.Install.FRAMEWORK;
-
+import javax.context.RequestScoped;
import javax.persistence.EntityManager;
import javax.transaction.HeuristicMixedException;
import javax.transaction.HeuristicRollbackException;
@@ -11,12 +10,6 @@
import javax.transaction.Synchronization;
import javax.transaction.SystemException;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-
/**
* When no kind of transaction management exists.
*
@@ -24,13 +17,9 @@
* @author Gavin King
*
*/
-@Name("org.jboss.seam.transaction.transaction")
-(a)Scope(ScopeType.EVENT)
-@Install(value = false, precedence = FRAMEWORK)
-@BypassInterceptors
+@RequestScoped
public class NoTransaction extends AbstractUserTransaction
{
-
public void begin() throws NotSupportedException, SystemException
{
throw new UnsupportedOperationException("no transaction");
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/RollbackInterceptor.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/RollbackInterceptor.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/RollbackInterceptor.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -2,7 +2,6 @@
package org.jboss.seam.transaction;
import static org.jboss.seam.ComponentType.JAVA_BEAN;
-import static org.jboss.seam.util.Work.isRollbackRequired;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.annotations.intercept.Interceptor;
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SeSynchronizations.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SeSynchronizations.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SeSynchronizations.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -1,17 +1,10 @@
package org.jboss.seam.transaction;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
import java.util.Stack;
+import javax.context.RequestScoped;
import javax.transaction.Synchronization;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
-
/**
* This implementation does not have access
* to the JTA TransactionManager, so it is not fully aware
@@ -22,10 +15,7 @@
* @author Gavin King
*
*/
-@Name("org.jboss.seam.transaction.synchronizations")
-(a)Scope(ScopeType.EVENT)
-@Install(precedence=BUILT_IN)
-@BypassInterceptors
+@RequestScoped
public class SeSynchronizations implements Synchronizations
{
protected Stack<SynchronizationRegistry> synchronizations = new Stack<SynchronizationRegistry>();
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SynchronizationRegistry.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SynchronizationRegistry.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/SynchronizationRegistry.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -3,12 +3,15 @@
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Current;
+import javax.inject.manager.Manager;
import javax.transaction.Status;
import javax.transaction.Synchronization;
-import org.jboss.seam.core.Events;
-import org.jboss.seam.log.LogProvider;
-import org.jboss.seam.log.Logging;
+import org.jboss.seam.transaction.events.AfterTransactionCompletionEvent;
+import org.jboss.seam.transaction.events.BeforeTransactionCompletionEvent;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
/**
* A list of Synchronizations to be invoked before and after transaction
@@ -21,6 +24,8 @@
class SynchronizationRegistry
{
private static final LogProvider log = Logging.getLogProvider(SynchronizationRegistry.class);
+
+ @Current Manager manager;
private List<Synchronization> synchronizations = new ArrayList<Synchronization>();
@@ -31,10 +36,8 @@
void afterTransactionCompletion(boolean success)
{
- if ( Events.exists() )
- {
- Events.instance().raiseEvent("org.jboss.seam.afterTransactionCompletion", success);
- }
+ manager.fireEvent(new AfterTransactionCompletionEvent(success));
+
for (Synchronization sync: synchronizations)
{
try
@@ -50,11 +53,8 @@
}
void beforeTransactionCompletion()
- {
- if ( Events.exists() )
- {
- Events.instance().raiseEvent("org.jboss.seam.beforeTransactionCompletion");
- }
+ {
+ manager.fireEvent(new BeforeTransactionCompletionEvent());
for (Synchronization sync: synchronizations)
{
try
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/Transaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/Transaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/Transaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -1,18 +1,11 @@
package org.jboss.seam.transaction;
-import static org.jboss.seam.annotations.Install.BUILT_IN;
-
+import javax.context.RequestScoped;
+import javax.inject.Produces;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
-import org.jboss.seam.Component;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.Install;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.Unwrap;
-import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.util.EJB;
import org.jboss.seam.util.Naming;
@@ -25,21 +18,9 @@
* @author Gavin King
*
*/
-@Name("org.jboss.seam.transaction.transaction")
-(a)Scope(ScopeType.EVENT)
-@Install(precedence=BUILT_IN)
-@BypassInterceptors
public class Transaction
-{
- // Event keys
- public static final String TRANSACTION_FAILED = "org.jboss.seam.transaction.transactionFailed";
-
- public static UserTransaction instance()
- {
- return (UserTransaction) Component.getInstance(Transaction.class, ScopeType.EVENT);
- }
-
- @Unwrap
+{
+ @Produces @RequestScoped
public UserTransaction getTransaction() throws NamingException
{
try
Modified: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/UTTransaction.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/UTTransaction.java 2009-04-27 20:14:56 UTC (rev 10661)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/UTTransaction.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -7,8 +7,8 @@
import javax.transaction.Synchronization;
import javax.transaction.SystemException;
-import org.jboss.seam.log.LogProvider;
-import org.jboss.seam.log.Logging;
+import org.jboss.webbeans.log.LogProvider;
+import org.jboss.webbeans.log.Logging;
/**
* Wraps JTA transaction management in a Seam UserTransaction
@@ -37,7 +37,7 @@
{
log.debug("beginning JTA transaction");
delegate.begin();
- getSynchronizations().afterTransactionBegin();
+ synchronizations.afterTransactionBegin();
}
public void commit() throws RollbackException, HeuristicMixedException,
@@ -45,7 +45,6 @@
{
log.debug("committing JTA transaction");
boolean success = false;
- Synchronizations synchronizations = getSynchronizations();
synchronizations.beforeTransactionCommit();
try
{
@@ -67,7 +66,7 @@
}
finally
{
- getSynchronizations().afterTransactionRollback();
+ synchronizations.afterTransactionRollback();
}
}
@@ -89,7 +88,6 @@
@Override
public void registerSynchronization(Synchronization sync)
{
- getSynchronizations().registerSynchronization(sync);
+ synchronizations.registerSynchronization(sync);
}
-
}
Added: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/AfterTransactionCompletionEvent.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/AfterTransactionCompletionEvent.java (rev 0)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/AfterTransactionCompletionEvent.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -0,0 +1,22 @@
+package org.jboss.seam.transaction.events;
+
+/**
+ * This event is raised just after transaction completion
+ *
+ * @author Shane Bryzak
+ *
+ */
+public class AfterTransactionCompletionEvent
+{
+ private boolean successful;
+
+ public AfterTransactionCompletionEvent(boolean successful)
+ {
+ this.successful = successful;
+ }
+
+ public boolean isSuccessful()
+ {
+ return successful;
+ }
+}
Added: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/BeforeTransactionCompletionEvent.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/BeforeTransactionCompletionEvent.java (rev 0)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/BeforeTransactionCompletionEvent.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -0,0 +1,11 @@
+package org.jboss.seam.transaction.events;
+
+/**
+ * This event is raised just before transaction completion
+ *
+ * @author Shane Bryzak
+ */
+public class BeforeTransactionCompletionEvent
+{
+
+}
Added: modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/TransactionFailedEvent.java
===================================================================
--- modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/TransactionFailedEvent.java (rev 0)
+++ modules/trunk/transaction/src/main/java/org/jboss/seam/transaction/events/TransactionFailedEvent.java 2009-04-28 01:07:37 UTC (rev 10662)
@@ -0,0 +1,21 @@
+package org.jboss.seam.transaction.events;
+
+/**
+ * This event is raised when a transaction fails
+ *
+ * @author Shane Bryzak
+ */
+public class TransactionFailedEvent
+{
+ private int status;
+
+ public TransactionFailedEvent(int status)
+ {
+ this.status = status;
+ }
+
+ public int getStatus()
+ {
+ return status;
+ }
+}
[View Less]
15 years, 10 months
Seam SVN: r10661 - branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy.
by seam-commits@lists.jboss.org
Author: jharting
Date: 2009-04-27 16:14:56 -0400 (Mon, 27 Apr 2009)
New Revision: 10661
Modified:
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd
Log:
JBSEAM-4153
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd 2009-04-27 20:07:00 UTC (rev 10660)
+++ branches/…
[View More]community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd 2009-04-27 20:14:56 UTC (rev 10661)
@@ -30,7 +30,7 @@
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1"
- name="media-type-mappings" type="components:multiValuedProperty">
+ name="media-type-mappings" type="components:mapProperty">
<xs:annotation>
<xs:documentation>
Maps media type URI extensions to Accept header, see RESTEasy documentation and JAX-RS (JSR 311).
@@ -38,7 +38,7 @@
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1"
- name="language-mappings" type="components:multiValuedProperty">
+ name="language-mappings" type="components:mapProperty">
<xs:annotation>
<xs:documentation>
Maps language URI extension to Accept header, see RESTEasy documentation and JAX-RS (JSR 311).
[View Less]
15 years, 10 months
Seam SVN: r10660 - branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy.
by seam-commits@lists.jboss.org
Author: jharting
Date: 2009-04-27 16:07:00 -0400 (Mon, 27 Apr 2009)
New Revision: 10660
Modified:
branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd
Log:
JBSEAM-3987
Modified: branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd
===================================================================
--- branches/community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd 2009-04-27 19:08:27 UTC (rev 10659)
+++ branches/…
[View More]community/Seam_2_1/src/resteasy/org/jboss/seam/resteasy/resteasy-2.1.xsd 2009-04-27 20:07:00 UTC (rev 10660)
@@ -59,6 +59,9 @@
</xs:documentation>
</xs:annotation>
<xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="media-types" type="components:multiValuedProperty"/>
+ </xs:sequence>
<xs:attributeGroup ref="components:attlist.component" />
<xs:attributeGroup ref="resteasy:attlist.resourceHome" />
<xs:attributeGroup ref="resteasy:attlist.abstractResource" />
@@ -73,6 +76,9 @@
</xs:documentation>
</xs:annotation>
<xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1" name="media-types" type="components:multiValuedProperty"/>
+ </xs:sequence>
<xs:attributeGroup ref="components:attlist.component" />
<xs:attributeGroup ref="resteasy:attlist.resourceQuery" />
<xs:attributeGroup ref="resteasy:attlist.abstractResource" />
[View Less]
15 years, 10 months
Seam SVN: r10659 - branches/community/Seam_2_1.
by seam-commits@lists.jboss.org
Author: jharting
Date: 2009-04-27 15:08:27 -0400 (Mon, 27 Apr 2009)
New Revision: 10659
Modified:
branches/community/Seam_2_1/build.xml
Log:
JBSEAM-4097
Modified: branches/community/Seam_2_1/build.xml
===================================================================
--- branches/community/Seam_2_1/build.xml 2009-04-27 16:37:24 UTC (rev 10658)
+++ branches/community/Seam_2_1/build.xml 2009-04-27 19:08:27 UTC (rev 10659)
@@ -144,6 +144,7 @@
<!-- include everything we want in the src …
[View More]directory
that we didn't want in the jar itself -->
<include name="**/*.java" />
+ <include name="**/*.sql" />
</patternset>
<patternset id="refdoc.files">
[View Less]
15 years, 10 months
Seam SVN: r10658 - modules/trunk/el/src/main/java/org/jboss/seam/el.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-27 12:37:24 -0400 (Mon, 27 Apr 2009)
New Revision: 10658
Removed:
modules/trunk/el/src/main/java/org/jboss/seam/el/OptionalParameterMethodExpression.java
Modified:
modules/trunk/el/src/main/java/org/jboss/seam/el/EL.java
modules/trunk/el/src/main/java/org/jboss/seam/el/SeamExpressionFactory.java
Log:
don't need optional method expression any longer (default in JSF 2)
Modified: modules/trunk/el/src/main/java/org/jboss/seam/el/EL.java
=================…
[View More]==================================================
--- modules/trunk/el/src/main/java/org/jboss/seam/el/EL.java 2009-04-27 16:37:06 UTC (rev 10657)
+++ modules/trunk/el/src/main/java/org/jboss/seam/el/EL.java 2009-04-27 16:37:24 UTC (rev 10658)
@@ -1,143 +1,147 @@
-package org.jboss.seam.el;
-
-import java.util.Locale;
-
-import javax.el.ArrayELResolver;
-import javax.el.BeanELResolver;
-import javax.el.CompositeELResolver;
-import javax.el.ELContext;
-import javax.el.ELResolver;
-import javax.el.ExpressionFactory;
-import javax.el.FunctionMapper;
-import javax.el.ListELResolver;
-import javax.el.MapELResolver;
-import javax.el.ResourceBundleELResolver;
-import javax.el.VariableMapper;
-
-import org.jboss.el.ExpressionFactoryImpl;
-import org.jboss.el.lang.FunctionMapperImpl;
-import org.jboss.el.lang.VariableMapperImpl;
-
-/**
- * An instance of JBoss EL.
- *
- * @author Gavin King
- *
- */
-public class EL
-{
- public static final ELResolver EL_RESOLVER = createELResolver();
- //ELContext instances should not be shared between threads
- //public static final ELContext EL_CONTEXT = createELContext( EL_RESOLVER, new FunctionMapperImpl() );
-
- public static final ExpressionFactory EXPRESSION_FACTORY = new ExpressionFactoryImpl();
-
- private static ELResolver createELResolver()
- {
- CompositeELResolver resolver = new CompositeELResolver();
- resolver.add( new SeamELResolver() );
- resolver.add( new MapELResolver() );
- resolver.add( new ListELResolver() );
- resolver.add( new ArrayELResolver() );
- resolver.add( new ResourceBundleELResolver() );
- resolver.add( new BeanELResolver() );
- return resolver;
- }
-
- public static ELContext createELContext() {
- return createELContext( EL_RESOLVER, new FunctionMapperImpl() );
- }
-
- public static ELContext createELContext(final ELResolver resolver, final FunctionMapper functionMapper)
- {
- return new ELContext()
- {
- final VariableMapperImpl variableMapper = new VariableMapperImpl();
-
- @Override
- public ELResolver getELResolver()
- {
- return resolver;
- }
-
- @Override
- public FunctionMapper getFunctionMapper()
- {
- return functionMapper;
- }
-
- @Override
- public VariableMapper getVariableMapper()
- {
- return variableMapper;
- }
-
- };
- }
-
- public static ELContext createELContext(final ELContext context, final ELResolver resolver)
- {
- return new ELContext()
- {
-
- @Override
- public Locale getLocale()
- {
- return context.getLocale();
- }
-
- @Override
- public void setPropertyResolved(boolean value)
- {
- super.setPropertyResolved(value);
- context.setPropertyResolved(value);
- }
-
- /*@Override
- public boolean isPropertyResolved()
- {
- return super.isPropertyResolved();
- }*/
-
- @Override
- public void putContext(Class clazz, Object object)
- {
- super.putContext(clazz, object);
- context.putContext(clazz, object);
- }
-
- @Override
- public Object getContext(Class clazz)
- {
- return context.getContext(clazz);
- }
-
- @Override
- public void setLocale(Locale locale)
- {
- super.setLocale(locale);
- context.setLocale(locale);
- }
-
- @Override
- public ELResolver getELResolver()
- {
- return resolver;
- }
-
- @Override
- public FunctionMapper getFunctionMapper()
- {
- return context.getFunctionMapper();
- }
-
- @Override
- public VariableMapper getVariableMapper()
- {
- return context.getVariableMapper();
- }
-
- };
- }
-
-}
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Id$
+ */
+package org.jboss.seam.el;
+
+import java.util.Locale;
+
+import javax.el.ArrayELResolver;
+import javax.el.BeanELResolver;
+import javax.el.CompositeELResolver;
+import javax.el.ELContext;
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+import javax.el.FunctionMapper;
+import javax.el.ListELResolver;
+import javax.el.MapELResolver;
+import javax.el.ResourceBundleELResolver;
+import javax.el.VariableMapper;
+
+import org.jboss.el.ExpressionFactoryImpl;
+import org.jboss.el.lang.FunctionMapperImpl;
+import org.jboss.el.lang.VariableMapperImpl;
+
+/**
+ * An instance of JBoss EL.
+ *
+ * @author Gavin King
+ */
+public class EL
+{
+ public static final ELResolver EL_RESOLVER = createELResolver();
+ public static final ExpressionFactory EXPRESSION_FACTORY = new ExpressionFactoryImpl();
+
+ private static ELResolver createELResolver()
+ {
+ CompositeELResolver resolver = new CompositeELResolver();
+ resolver.add(new MapELResolver());
+ resolver.add(new ListELResolver());
+ resolver.add(new ArrayELResolver());
+ resolver.add(new ResourceBundleELResolver());
+ resolver.add(new BeanELResolver());
+ return resolver;
+ }
+
+ public static ELContext createELContext()
+ {
+ return createELContext(EL_RESOLVER, new FunctionMapperImpl());
+ }
+
+ public static ELContext createELContext(final ELResolver resolver, final FunctionMapper functionMapper)
+ {
+ return new ELContext()
+ {
+ final VariableMapperImpl variableMapper = new VariableMapperImpl();
+
+ @Override
+ public ELResolver getELResolver()
+ {
+ return resolver;
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper()
+ {
+ return functionMapper;
+ }
+
+ @Override
+ public VariableMapper getVariableMapper()
+ {
+ return variableMapper;
+ }
+ };
+ }
+
+ public static ELContext createELContext(final ELContext context, final ELResolver resolver)
+ {
+ return new ELContext()
+ {
+ @Override
+ public Locale getLocale()
+ {
+ return context.getLocale();
+ }
+
+ @Override
+ public void setPropertyResolved(boolean value)
+ {
+ super.setPropertyResolved(value);
+ context.setPropertyResolved(value);
+ }
+
+ @Override
+ public void putContext(Class clazz, Object object)
+ {
+ super.putContext(clazz, object);
+ context.putContext(clazz, object);
+ }
+
+ @Override
+ public Object getContext(Class clazz)
+ {
+ return context.getContext(clazz);
+ }
+
+ @Override
+ public void setLocale(Locale locale)
+ {
+ super.setLocale(locale);
+ context.setLocale(locale);
+ }
+
+ @Override
+ public ELResolver getELResolver()
+ {
+ return resolver;
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper()
+ {
+ return context.getFunctionMapper();
+ }
+
+ @Override
+ public VariableMapper getVariableMapper()
+ {
+ return context.getVariableMapper();
+ }
+ };
+ }
+}
Deleted: modules/trunk/el/src/main/java/org/jboss/seam/el/OptionalParameterMethodExpression.java
===================================================================
--- modules/trunk/el/src/main/java/org/jboss/seam/el/OptionalParameterMethodExpression.java 2009-04-27 16:37:06 UTC (rev 10657)
+++ modules/trunk/el/src/main/java/org/jboss/seam/el/OptionalParameterMethodExpression.java 2009-04-27 16:37:24 UTC (rev 10658)
@@ -1,80 +0,0 @@
-/**
- *
- */
-package org.jboss.seam.el;
-
-import javax.el.ELContext;
-import javax.el.MethodExpression;
-import javax.el.MethodInfo;
-import javax.el.MethodNotFoundException;
-
-/**
- *
- * @author Gavin King
- *
- */
-class OptionalParameterMethodExpression extends MethodExpression
-{
-
- private MethodExpression withParam;
- private MethodExpression withNoParam;
-
- public OptionalParameterMethodExpression(MethodExpression withParam, MethodExpression withNoParam)
- {
- this.withParam = withParam;
- this.withNoParam = withNoParam;
- }
-
- @Override
- public MethodInfo getMethodInfo(ELContext ctx)
- {
- return withParam.getMethodInfo(ctx);
- }
-
- @Override
- public Object invoke(ELContext ctx, Object[] args)
- {
- try
- {
- return withParam.invoke(ctx, args);
- }
- catch (MethodNotFoundException mnfe)
- {
- try
- {
- return withNoParam.invoke(ctx, new Object[0]);
- }
- catch (MethodNotFoundException mnfe2)
- {
- throw mnfe;
- }
- }
- }
-
- @Override
- public String getExpressionString()
- {
- return withParam.getExpressionString();
- }
-
- @Override
- public boolean isLiteralText()
- {
- return withParam.isLiteralText();
- }
-
- @Override
- public boolean equals(Object object)
- {
- if ( !(object instanceof OptionalParameterMethodExpression) ) return false;
- OptionalParameterMethodExpression other = (OptionalParameterMethodExpression) object;
- return withParam.equals(other.withParam);
- }
-
- @Override
- public int hashCode()
- {
- return withParam.hashCode();
- }
-
- }
\ No newline at end of file
Modified: modules/trunk/el/src/main/java/org/jboss/seam/el/SeamExpressionFactory.java
===================================================================
--- modules/trunk/el/src/main/java/org/jboss/seam/el/SeamExpressionFactory.java 2009-04-27 16:37:06 UTC (rev 10657)
+++ modules/trunk/el/src/main/java/org/jboss/seam/el/SeamExpressionFactory.java 2009-04-27 16:37:24 UTC (rev 10658)
@@ -1,101 +1,65 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.seam.el;
-
-import javax.el.ELContext;
-import javax.el.ExpressionFactory;
-import javax.el.MethodExpression;
-import javax.el.ValueExpression;
-
-import org.jboss.el.lang.EvaluationContext;
-import org.jboss.seam.util.JSF;
-
-/**
- * Allows JSF action listener methods to not declare the
- * totally useless ActionEvent parameter if they don't
- * want to.
- *
- * @author Gavin King
- */
-public class SeamExpressionFactory extends ExpressionFactory
-{
- public static final ExpressionFactory INSTANCE = new SeamExpressionFactory(EL.EXPRESSION_FACTORY);
-
- private static final Class[] NO_CLASSES = {};
-
- private final ExpressionFactory expressionFactory;
-
- SeamExpressionFactory(ExpressionFactory expressionFactory)
- {
- this.expressionFactory = expressionFactory;
- }
-
- /**
- * Wrap the base ELContext, adding Seam's FunctionMapper.
- *
- * Thus, any expressions with s:hasRole, s:hasPermission
- * must be evaluated either via Facelets/JSP (since they
- * are declared in the tld/taglib.xml or via the
- * Expressions component.
- *
- * @param context the JSF ELContext
- */
- private static EvaluationContext decorateELContext(ELContext context)
- {
- return new EvaluationContext( context, new SeamFunctionMapper( context.getFunctionMapper() ), context.getVariableMapper() );
- }
-
- @Override
- public Object coerceToType(Object obj, Class targetType)
- {
- return expressionFactory.coerceToType(obj, targetType);
- }
-
- @Override
- public MethodExpression createMethodExpression(ELContext elContext, String expression, Class returnType, Class[] paramTypes)
- {
- if ( paramTypes.length==1 && JSF.FACES_EVENT.isAssignableFrom( paramTypes[0] ) )
- {
- return new OptionalParameterMethodExpression(
- expressionFactory.createMethodExpression( decorateELContext(elContext), expression, returnType, paramTypes ),
- expressionFactory.createMethodExpression( decorateELContext(elContext), expression, returnType, NO_CLASSES )
- );
- }
- else
- {
- return expressionFactory.createMethodExpression( decorateELContext(elContext), expression, returnType, paramTypes );
- }
- }
-
- @Override
- public ValueExpression createValueExpression(Object instance, Class expectedType)
- {
- return expressionFactory.createValueExpression(instance, expectedType);
- }
-
- @Override
- public ValueExpression createValueExpression(ELContext elContext, String expression, Class expectedType)
- {
- return expressionFactory.createValueExpression( decorateELContext(elContext), expression, expectedType );
- }
-
-}
\ No newline at end of file
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Id$
+ */
+package org.jboss.seam.el;
+
+import javax.el.ELContext;
+import javax.el.ExpressionFactory;
+import javax.el.MethodExpression;
+import javax.el.ValueExpression;
+
+/**
+ * Provides integration with the JBoss EL.
+ *
+ * @author Gavin King
+ */
+public class SeamExpressionFactory extends ExpressionFactory
+{
+ public static final ExpressionFactory INSTANCE = new SeamExpressionFactory(EL.EXPRESSION_FACTORY);
+
+ private final ExpressionFactory expressionFactory;
+
+ SeamExpressionFactory(ExpressionFactory expressionFactory)
+ {
+ this.expressionFactory = expressionFactory;
+ }
+
+ @Override
+ public Object coerceToType(Object obj, Class targetType)
+ {
+ return expressionFactory.coerceToType(obj, targetType);
+ }
+
+ @Override
+ public MethodExpression createMethodExpression(ELContext elContext, String expression, Class returnType, Class[] paramTypes)
+ {
+ return expressionFactory.createMethodExpression(elContext, expression, returnType, paramTypes);
+ }
+
+ @Override
+ public ValueExpression createValueExpression(Object instance, Class expectedType)
+ {
+ return expressionFactory.createValueExpression(instance, expectedType);
+ }
+
+ @Override
+ public ValueExpression createValueExpression(ELContext elContext, String expression, Class expectedType)
+ {
+ return expressionFactory.createValueExpression(elContext, expression, expectedType);
+ }
+}
[View Less]
15 years, 10 months
Seam SVN: r10657 - modules/trunk/el.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-27 12:37:06 -0400 (Mon, 27 Apr 2009)
New Revision: 10657
Modified:
modules/trunk/el/pom.xml
Log:
cleanup pom
Modified: modules/trunk/el/pom.xml
===================================================================
--- modules/trunk/el/pom.xml 2009-04-27 15:48:54 UTC (rev 10656)
+++ modules/trunk/el/pom.xml 2009-04-27 16:37:06 UTC (rev 10657)
@@ -1,14 +1,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/…
[View More]XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
<parent>
<artifactId>seam-parent</artifactId>
<groupId>org.jboss.seam</groupId>
<version>3.0.0-SNAPSHOT</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.seam</groupId>
<artifactId>seam-el</artifactId>
<packaging>jar</packaging>
<version>3.0.0-SNAPSHOT</version>
@@ -16,6 +16,14 @@
<dependencies>
<dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.el</groupId>
+ <artifactId>jboss-el</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>jsr299-api</artifactId>
</dependency>
@@ -23,14 +31,6 @@
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-logging</artifactId>
</dependency>
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>el-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.el</groupId>
- <artifactId>jboss-el</artifactId>
- </dependency>
</dependencies>
</project>
[View Less]
15 years, 10 months
Seam SVN: r10656 - in modules/trunk/international: src/main/java/org/jboss/seam/international and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-27 11:48:54 -0400 (Mon, 27 Apr 2009)
New Revision: 10656
Modified:
modules/trunk/international/pom.xml
modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleConfig.java
modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java
modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZones.java
modules/trunk/international/src/main/java/org/jboss/seam/international/…
[View More]TimeZonesProducer.java
Log:
get us closer to compiling
Modified: modules/trunk/international/pom.xml
===================================================================
--- modules/trunk/international/pom.xml 2009-04-27 15:34:36 UTC (rev 10655)
+++ modules/trunk/international/pom.xml 2009-04-27 15:48:54 UTC (rev 10656)
@@ -24,6 +24,10 @@
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>jsr299-api</artifactId>
</dependency>
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleConfig.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleConfig.java 2009-04-27 15:34:36 UTC (rev 10655)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/LocaleConfig.java 2009-04-27 15:48:54 UTC (rev 10656)
@@ -10,6 +10,7 @@
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
import javax.inject.Initializer;
+import org.jboss.seam.international.util.Strings;
/**
* Configures the JSF locale support from the Seam container.
@@ -94,11 +95,11 @@
String language = tokens.hasMoreTokens() ? tokens.nextToken() : null;
String country = tokens.hasMoreTokens() ? tokens.nextToken() : null;
String variant = tokens.hasMoreTokens() ? tokens.nextToken() : null;
- if (!Strings.isEmpty(variant))
+ if (Strings.isEmpty(variant))
{
return new java.util.Locale(language, country, variant);
}
- else if (!Strings.isEmpty(country))
+ else if (Strings.isEmpty(country))
{
return new java.util.Locale(language, country);
}
@@ -123,4 +124,5 @@
return null;
}
}
+
}
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java 2009-04-27 15:34:36 UTC (rev 10655)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/StatusMessages.java 2009-04-27 15:48:54 UTC (rev 10656)
@@ -9,7 +9,7 @@
import java.util.List;
import java.util.Map;
-import org.hibernate.validator.InvalidValue;
+import javax.validation.ConstraintViolation;
import org.jboss.seam.international.StatusMessage.Severity;
/**
@@ -301,60 +301,61 @@
}
/**
- * Add an array of InvalidValues from Hibernate Validator. Each message will
+ * Add an array of {@link ConstraintViolation} objects from Bean Validation. Each message will
* be added with a severity of WARN.
*/
- public void add(InvalidValue[] ivs)
+ public void add(ConstraintViolation[] cvs)
{
- for (InvalidValue iv: ivs)
+ for (ConstraintViolation cv: cvs)
{
- add(iv);
+ add(cv);
}
}
/**
- * Add an array of InvalidValues from Hibernate Validator. Each message will
+ * Add an array of {@link ConstraintViolation} objects from Bean Validation. Each message will
* be added with a severity of WARN.
*
* The name of the property that was validated will be used as the widget ID
*/
- public void addToControls(InvalidValue[] ivs)
+ public void addToControls(ConstraintViolation[] cvs)
{
- for (InvalidValue iv: ivs)
+ for (ConstraintViolation cv: cvs)
{
- addToControl(iv);
+ addToControl(cv);
}
}
/**
- * Add an InvalidValue from Hibernate Validator. The message will
+ * Add a {@link ConstraintViolation} from Bean Validation. The message will
* be added with a severity of WARN.
*/
- public void add(InvalidValue iv)
+ public void add(ConstraintViolation cv)
{
- add( WARN, iv.getMessage() );
+ add( WARN, cv.getMessage() );
}
/**
- * Add an InvalidValue from Hibernate Validator. The message will
+ * Add a {@link ConstraintViolation} from Bean Validation. The message will
* be added with a severity of WARN.
*
* The name of the property that was validated will be used as the widget ID
*/
- public void addToControl(InvalidValue iv)
+ public void addToControl(ConstraintViolation cv)
{
- addToControl( iv.getPropertyName(), iv );
+ String propertyName = cv.getPropertyPath().substring(cv.getPropertyPath().lastIndexOf(".") + 1);
+ addToControl( propertyName, cv );
}
/**
- * Add an InvalidValue from Hibernate Validator. The message will
+ * Add a {@link ConstraintViolation} from Bean Validation. The message will
* be added with a severity of WARN.
*
* You can also specify the id of the widget to add the message to
*/
- public void addToControl(String id, InvalidValue iv)
+ public void addToControl(String id, ConstraintViolation cv)
{
- addToControl( id, WARN, iv.getMessage() );
+ addToControl( id, WARN, cv.getMessage() );
}
private List<Runnable> getTasks()
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZones.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZones.java 2009-04-27 15:34:36 UTC (rev 10655)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZones.java 2009-04-27 15:48:54 UTC (rev 10656)
@@ -23,7 +23,6 @@
@Documented
@BindingType
@Inherited
-public @interface Timezones
+public @interface TimeZones
{
-
}
Modified: modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZonesProducer.java
===================================================================
--- modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZonesProducer.java 2009-04-27 15:34:36 UTC (rev 10655)
+++ modules/trunk/international/src/main/java/org/jboss/seam/international/TimeZonesProducer.java 2009-04-27 15:48:54 UTC (rev 10656)
@@ -52,7 +52,7 @@
});
}
- @Produces @ApplicationScoped @Timezones public List<TimeZone> getTimeZones() {
+ @Produces @ApplicationScoped @TimeZones public List<TimeZone> getTimeZones() {
return timeZones;
}
[View Less]
15 years, 10 months