You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2011/08/08 01:16:47 UTC
svn commit: r1154790 - in /myfaces/extensions/cdi/trunk:
core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/
core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/
jee-modules/jsf-module/impl/src/main/java...
Author: gpetracek
Date: Sun Aug 7 23:16:46 2011
New Revision: 1154790
URL: http://svn.apache.org/viewvc?rev=1154790&view=rev
Log:
EXTCDI-204 and EXTCDI-211 injectable resource-bundle and resource-bundle-key
Added:
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/resource/
myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/resource/JsfAwareResourceBundleProducer.java
Modified:
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/Bundle.java
myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/ResourceBundleKey.java
myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/ResourceBundleProducer.java
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/Bundle.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/Bundle.java?rev=1154790&r1=1154789&r2=1154790&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/Bundle.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/Bundle.java Sun Aug 7 23:16:46 2011
@@ -18,8 +18,6 @@
*/
package org.apache.myfaces.extensions.cdi.core.api.resource;
-import javax.enterprise.util.Nonbinding;
-import javax.inject.Qualifier;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@@ -34,17 +32,14 @@ import static java.lang.annotation.Reten
*/
@Documented
@Retention(RUNTIME)
-@Target({TYPE, CONSTRUCTOR, METHOD, FIELD})
+@Target({TYPE, CONSTRUCTOR, METHOD, FIELD, PARAMETER})
-//cdi annotations
-@Qualifier
public @interface Bundle
{
/**
* Allows to specify the class which is mapped to the resource-bundle
* @return class which represents the resource-bundle
*/
- @Nonbinding
Class<?> value() default Class.class;
/**
@@ -52,6 +47,5 @@ public @interface Bundle
* and can't be mapped to the bundle via convention. #name allows to explicitly specify the name of the bundle.
* @return the overridden name which should be used to identify the resource-bundle
*/
- @Nonbinding
String name() default "";
}
Modified: myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/ResourceBundleKey.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/ResourceBundleKey.java?rev=1154790&r1=1154789&r2=1154790&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/ResourceBundleKey.java (original)
+++ myfaces/extensions/cdi/trunk/core/api/src/main/java/org/apache/myfaces/extensions/cdi/core/api/resource/ResourceBundleKey.java Sun Aug 7 23:16:46 2011
@@ -21,6 +21,8 @@ package org.apache.myfaces.extensions.cd
import org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProvider;
import org.apache.myfaces.extensions.cdi.core.api.tools.DefaultAnnotation;
+import java.lang.annotation.Annotation;
+
/**
* Base class which has to be extended if a key should be injected.
*
@@ -30,6 +32,21 @@ public abstract class ResourceBundleKey
{
private transient ResourceBundle resourceBundle;
+ private static Class<? extends Annotation> qualifierClass;
+
+ static
+ {
+ try
+ {
+ qualifierClass = (Class<? extends Annotation>)
+ Class.forName("org.apache.myfaces.extensions.cdi.jsf.api.Jsf");
+ }
+ catch (Exception e)
+ {
+ qualifierClass = null;
+ }
+ }
+
/**
* Returns the value of the resource-bundle represented by this key
*
@@ -66,8 +83,16 @@ public abstract class ResourceBundleKey
"which is annotated with @" + Bundle.class.getName());
}
- this.resourceBundle = BeanManagerProvider.getInstance()
- .getContextualReference(ResourceBundle.class, DefaultAnnotation.of(Bundle.class));
+ if(qualifierClass != null)
+ {
+ this.resourceBundle = BeanManagerProvider.getInstance()
+ .getContextualReference(ResourceBundle.class, DefaultAnnotation.of(qualifierClass));
+ }
+ else
+ {
+ this.resourceBundle = BeanManagerProvider.getInstance()
+ .getContextualReference(ResourceBundle.class);
+ }
this.resourceBundle.useBundle(bundleClass);
}
return resourceBundle;
Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/ResourceBundleProducer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/ResourceBundleProducer.java?rev=1154790&r1=1154789&r2=1154790&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/ResourceBundleProducer.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/ResourceBundleProducer.java Sun Aug 7 23:16:46 2011
@@ -35,11 +35,10 @@ import java.util.Set;
public class ResourceBundleProducer
{
@Produces
- @Bundle
@Dependent
protected ResourceBundle injectableResourceBundle(InjectionPoint injectionPoint)
{
- Bundle bundle = getBundleClass(injectionPoint.getQualifiers());
+ Bundle bundle = getBundleClass(injectionPoint.getAnnotated().getAnnotations());
if(bundle != null)
{
Added: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/resource/JsfAwareResourceBundleProducer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/resource/JsfAwareResourceBundleProducer.java?rev=1154790&view=auto
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/resource/JsfAwareResourceBundleProducer.java (added)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jsf/impl/resource/JsfAwareResourceBundleProducer.java Sun Aug 7 23:16:46 2011
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.myfaces.extensions.cdi.jsf.impl.resource;
+
+import org.apache.myfaces.extensions.cdi.core.api.resource.ResourceBundle;
+import org.apache.myfaces.extensions.cdi.core.impl.resource.ResourceBundleProducer;
+import org.apache.myfaces.extensions.cdi.jsf.api.Jsf;
+import org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareLocaleResolver;
+
+import javax.enterprise.context.Dependent;
+import javax.enterprise.inject.Produces;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+/**
+ * @author Gerhard Petracek
+ */
+@Dependent
+public class JsfAwareResourceBundleProducer extends ResourceBundleProducer
+{
+ @Produces
+ @Jsf
+ @Dependent
+ protected ResourceBundle jsfAwareResourceBundle(InjectionPoint injectionPoint)
+ {
+ ResourceBundle resourceBundle = injectableResourceBundle(injectionPoint);
+ return resourceBundle.useLocale(new JsfAwareLocaleResolver().getLocale());
+ }
+}