You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2012/08/05 13:36:59 UTC

[1/2] git commit: Revert "DELTASPIKE-258 ProxyUtils, use proxy to filter calls"

Updated Branches:
  refs/heads/master b3f9509cd -> 0006638cc


Revert "DELTASPIKE-258 ProxyUtils, use proxy to filter calls"

This reverts commit b3f9509cd9947026f85403ce4190a8759719556d.

We don't need that! A user can just startApplication again.
I also HATE utility classes which just wraps 1 liners.
We shall NOT overcomplicate such things!


Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/0006638c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/0006638c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/0006638c

Branch: refs/heads/master
Commit: 0006638cc39413b50c8e9dea11ffbb2218774a71
Parents: a9211aa
Author: Mark Struberg <st...@apache.org>
Authored: Sun Aug 5 13:30:30 2012 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Sun Aug 5 13:30:30 2012 +0200

----------------------------------------------------------------------
 .../deltaspike/cdise/weld/BeanStoreFilter.java     |   48 ---------
 .../deltaspike/cdise/weld/ContextController.java   |   33 ++++++-
 .../apache/deltaspike/cdise/weld/ProxyUtils.java   |   77 ---------------
 .../impl/message/TypedMessageBundleProducer.java   |   16 +++-
 .../deltaspike/core/impl/util/ProxyUtils.java      |   43 --------
 5 files changed, 44 insertions(+), 173 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
deleted file mode 100644
index 7d793f5..0000000
--- a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.deltaspike.cdise.weld;
-
-import org.jboss.weld.context.beanstore.BeanStore;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-
-/**
- * Method filter - needed to fix WELD-1072
- */
-public class BeanStoreFilter implements InvocationHandler
-{
-    private final BeanStore wrapped;
-
-    public BeanStoreFilter(BeanStore wrapped)
-    {
-        this.wrapped = wrapped;
-    }
-
-    @Override
-    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
-    {
-        if ("clear".equals(method.getName()) && method.getParameterTypes().length == 0)
-        {
-            return null;
-        }
-
-        return method.invoke(this.wrapped, args);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
index b7c0486..dec1d0c 100644
--- a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
+++ b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
@@ -100,7 +100,38 @@ public class ContextController
                 final BeanStore beanStore = beanStoreHolder.get();
                 originalBeanStore = beanStore;
 
-                beanStoreHolder.set(ProxyUtils.createProxy(BeanStore.class, new BeanStoreFilter(beanStore)));
+                beanStoreHolder.set(new BeanStore()
+                {
+                    @Override
+                    public <T> ContextualInstance<T> get(String id)
+                    {
+                        return beanStore.get(id);
+                    }
+
+                    @Override
+                    public boolean contains(String id)
+                    {
+                        return beanStore.contains(id);
+                    }
+
+                    @Override
+                    public void clear()
+                    {
+                        //do nothing
+                    }
+
+                    @Override
+                    public Iterator<String> iterator()
+                    {
+                        return beanStore.iterator();
+                    }
+
+                    @Override
+                    public <T> void put(String id, ContextualInstance<T> contextualInstance)
+                    {
+                        beanStore.put(id, contextualInstance);
+                    }
+                });
             }
             catch (Exception e)
             {

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
deleted file mode 100644
index 6b1d009..0000000
--- a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * 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.deltaspike.cdise.weld;
-
-import javax.enterprise.inject.Typed;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Proxy;
-
-/**
- * This is the internal helper class for JDK proxies
- * TODO remove it and use org.apache.deltaspike.core.impl.util.ProxyUtils instead (discussion needed)
- */
-
-@Typed()
-abstract class ProxyUtils
-{
-    private ProxyUtils()
-    {
-        // prevent instantiation
-    }
-
-    static <T> T createProxy(Class<T> type, InvocationHandler invocationHandler)
-    {
-        return type.cast(Proxy.newProxyInstance(getClassLoader(null),
-                new Class<?>[]{type}, invocationHandler));
-    }
-
-    private static ClassLoader getClassLoader(Object o)
-    {
-        return getClassLoaderInternal(o);
-
-        //TODO if we don't introduce the dependency to core, we have to copy GetClassLoaderAction as well
-        /*
-        if (System.getSecurityManager() != null)
-        {
-            return AccessController.doPrivileged(new GetClassLoaderAction(o));
-        }
-        else
-        {
-            return getClassLoaderInternal(o);
-        }
-        */
-    }
-
-    private static ClassLoader getClassLoaderInternal(Object o)
-    {
-        ClassLoader loader = Thread.currentThread().getContextClassLoader();
-
-        if (loader == null && o != null)
-        {
-            loader = o.getClass().getClassLoader();
-        }
-
-        if (loader == null)
-        {
-            loader = ProxyUtils.class.getClassLoader();
-        }
-
-        return loader;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
index 6ff976e..466d404 100644
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
+++ b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
@@ -18,13 +18,15 @@
  */
 package org.apache.deltaspike.core.impl.message;
 
-import org.apache.deltaspike.core.impl.util.ProxyUtils;
+import static org.apache.deltaspike.core.util.ReflectionUtils.getRawType;
+
+import java.io.Serializable;
+import java.lang.reflect.Proxy;
 
 import javax.enterprise.inject.Produces;
 import javax.enterprise.inject.spi.InjectionPoint;
-import java.io.Serializable;
 
-import static org.apache.deltaspike.core.util.ReflectionUtils.getRawType;
+import org.apache.deltaspike.core.util.ClassUtils;
 
 /**
  * The <code>TypedMessageBundleProducer</code> provides a producer method for
@@ -39,6 +41,12 @@ public class TypedMessageBundleProducer implements Serializable
     @SuppressWarnings("UnusedDeclaration")
     Object produceTypedMessageBundle(InjectionPoint injectionPoint)
     {
-        return ProxyUtils.createProxy(getRawType(injectionPoint.getType()), new MessageBundleInvocationHandler());
+        return createMessageBundleProxy(getRawType(injectionPoint.getType()));
+    }
+
+    private <T> T createMessageBundleProxy(Class<T> type)
+    {
+        return type.cast(Proxy.newProxyInstance(ClassUtils.getClassLoader(null),
+                new Class<?>[]{type}, new MessageBundleInvocationHandler()));
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
deleted file mode 100644
index ae0ab74..0000000
--- a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * 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.deltaspike.core.impl.util;
-
-import org.apache.deltaspike.core.util.ClassUtils;
-
-import javax.enterprise.inject.Typed;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Proxy;
-
-/**
- * This is the internal helper class for JDK proxies
- */
-@Typed()
-public abstract class ProxyUtils
-{
-    private ProxyUtils()
-    {
-        // prevent instantiation
-    }
-
-    public static <T> T createProxy(Class<T> type, InvocationHandler invocationHandler)
-    {
-        return type.cast(Proxy.newProxyInstance(ClassUtils.getClassLoader(null),
-                new Class<?>[]{type}, invocationHandler));
-    }
-}


Re: [1/2] git commit: Revert "DELTASPIKE-258 ProxyUtils, use proxy to filter calls"

Posted by Gerhard Petracek <ge...@gmail.com>.
@ BeanStoreFilter see http://s.apache.org/Gx0

2012/8/5 <st...@apache.org>

> Updated Branches:
>   refs/heads/master b3f9509cd -> 0006638cc
>
>
> Revert "DELTASPIKE-258 ProxyUtils, use proxy to filter calls"
>
> This reverts commit b3f9509cd9947026f85403ce4190a8759719556d.
>
> We don't need that! A user can just startApplication again.
> I also HATE utility classes which just wraps 1 liners.
> We shall NOT overcomplicate such things!
>
>
> Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
> Commit:
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/0006638c
> Tree:
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/0006638c
> Diff:
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/0006638c
>
> Branch: refs/heads/master
> Commit: 0006638cc39413b50c8e9dea11ffbb2218774a71
> Parents: a9211aa
> Author: Mark Struberg <st...@apache.org>
> Authored: Sun Aug 5 13:30:30 2012 +0200
> Committer: Mark Struberg <st...@apache.org>
> Committed: Sun Aug 5 13:30:30 2012 +0200
>
> ----------------------------------------------------------------------
>  .../deltaspike/cdise/weld/BeanStoreFilter.java     |   48 ---------
>  .../deltaspike/cdise/weld/ContextController.java   |   33 ++++++-
>  .../apache/deltaspike/cdise/weld/ProxyUtils.java   |   77 ---------------
>  .../impl/message/TypedMessageBundleProducer.java   |   16 +++-
>  .../deltaspike/core/impl/util/ProxyUtils.java      |   43 --------
>  5 files changed, 44 insertions(+), 173 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
> ----------------------------------------------------------------------
> diff --git
> a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
> b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
> deleted file mode 100644
> index 7d793f5..0000000
> ---
> a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/BeanStoreFilter.java
> +++ /dev/null
> @@ -1,48 +0,0 @@
> -/*
> - * 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.deltaspike.cdise.weld;
> -
> -import org.jboss.weld.context.beanstore.BeanStore;
> -
> -import java.lang.reflect.InvocationHandler;
> -import java.lang.reflect.Method;
> -
> -/**
> - * Method filter - needed to fix WELD-1072
> - */
> -public class BeanStoreFilter implements InvocationHandler
> -{
> -    private final BeanStore wrapped;
> -
> -    public BeanStoreFilter(BeanStore wrapped)
> -    {
> -        this.wrapped = wrapped;
> -    }
> -
> -    @Override
> -    public Object invoke(Object proxy, Method method, Object[] args)
> throws Throwable
> -    {
> -        if ("clear".equals(method.getName()) &&
> method.getParameterTypes().length == 0)
> -        {
> -            return null;
> -        }
> -
> -        return method.invoke(this.wrapped, args);
> -    }
> -}
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
> ----------------------------------------------------------------------
> diff --git
> a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
> b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
> index b7c0486..dec1d0c 100644
> ---
> a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
> +++
> b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ContextController.java
> @@ -100,7 +100,38 @@ public class ContextController
>                  final BeanStore beanStore = beanStoreHolder.get();
>                  originalBeanStore = beanStore;
>
> -
>  beanStoreHolder.set(ProxyUtils.createProxy(BeanStore.class, new
> BeanStoreFilter(beanStore)));
> +                beanStoreHolder.set(new BeanStore()
> +                {
> +                    @Override
> +                    public <T> ContextualInstance<T> get(String id)
> +                    {
> +                        return beanStore.get(id);
> +                    }
> +
> +                    @Override
> +                    public boolean contains(String id)
> +                    {
> +                        return beanStore.contains(id);
> +                    }
> +
> +                    @Override
> +                    public void clear()
> +                    {
> +                        //do nothing
> +                    }
> +
> +                    @Override
> +                    public Iterator<String> iterator()
> +                    {
> +                        return beanStore.iterator();
> +                    }
> +
> +                    @Override
> +                    public <T> void put(String id, ContextualInstance<T>
> contextualInstance)
> +                    {
> +                        beanStore.put(id, contextualInstance);
> +                    }
> +                });
>              }
>              catch (Exception e)
>              {
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
> ----------------------------------------------------------------------
> diff --git
> a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
> b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
> deleted file mode 100644
> index 6b1d009..0000000
> ---
> a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/ProxyUtils.java
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -/*
> - * 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.deltaspike.cdise.weld;
> -
> -import javax.enterprise.inject.Typed;
> -import java.lang.reflect.InvocationHandler;
> -import java.lang.reflect.Proxy;
> -
> -/**
> - * This is the internal helper class for JDK proxies
> - * TODO remove it and use org.apache.deltaspike.core.impl.util.ProxyUtils
> instead (discussion needed)
> - */
> -
> -@Typed()
> -abstract class ProxyUtils
> -{
> -    private ProxyUtils()
> -    {
> -        // prevent instantiation
> -    }
> -
> -    static <T> T createProxy(Class<T> type, InvocationHandler
> invocationHandler)
> -    {
> -        return type.cast(Proxy.newProxyInstance(getClassLoader(null),
> -                new Class<?>[]{type}, invocationHandler));
> -    }
> -
> -    private static ClassLoader getClassLoader(Object o)
> -    {
> -        return getClassLoaderInternal(o);
> -
> -        //TODO if we don't introduce the dependency to core, we have to
> copy GetClassLoaderAction as well
> -        /*
> -        if (System.getSecurityManager() != null)
> -        {
> -            return AccessController.doPrivileged(new
> GetClassLoaderAction(o));
> -        }
> -        else
> -        {
> -            return getClassLoaderInternal(o);
> -        }
> -        */
> -    }
> -
> -    private static ClassLoader getClassLoaderInternal(Object o)
> -    {
> -        ClassLoader loader =
> Thread.currentThread().getContextClassLoader();
> -
> -        if (loader == null && o != null)
> -        {
> -            loader = o.getClass().getClassLoader();
> -        }
> -
> -        if (loader == null)
> -        {
> -            loader = ProxyUtils.class.getClassLoader();
> -        }
> -
> -        return loader;
> -    }
> -}
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
> ----------------------------------------------------------------------
> diff --git
> a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
> b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
> index 6ff976e..466d404 100644
> ---
> a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
> +++
> b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/message/TypedMessageBundleProducer.java
> @@ -18,13 +18,15 @@
>   */
>  package org.apache.deltaspike.core.impl.message;
>
> -import org.apache.deltaspike.core.impl.util.ProxyUtils;
> +import static org.apache.deltaspike.core.util.ReflectionUtils.getRawType;
> +
> +import java.io.Serializable;
> +import java.lang.reflect.Proxy;
>
>  import javax.enterprise.inject.Produces;
>  import javax.enterprise.inject.spi.InjectionPoint;
> -import java.io.Serializable;
>
> -import static org.apache.deltaspike.core.util.ReflectionUtils.getRawType;
> +import org.apache.deltaspike.core.util.ClassUtils;
>
>  /**
>   * The <code>TypedMessageBundleProducer</code> provides a producer method
> for
> @@ -39,6 +41,12 @@ public class TypedMessageBundleProducer implements
> Serializable
>      @SuppressWarnings("UnusedDeclaration")
>      Object produceTypedMessageBundle(InjectionPoint injectionPoint)
>      {
> -        return
> ProxyUtils.createProxy(getRawType(injectionPoint.getType()), new
> MessageBundleInvocationHandler());
> +        return
> createMessageBundleProxy(getRawType(injectionPoint.getType()));
> +    }
> +
> +    private <T> T createMessageBundleProxy(Class<T> type)
> +    {
> +        return
> type.cast(Proxy.newProxyInstance(ClassUtils.getClassLoader(null),
> +                new Class<?>[]{type}, new
> MessageBundleInvocationHandler()));
>      }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/0006638c/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
> ----------------------------------------------------------------------
> diff --git
> a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
> b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
> deleted file mode 100644
> index ae0ab74..0000000
> ---
> a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/util/ProxyUtils.java
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -/*
> - * 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.deltaspike.core.impl.util;
> -
> -import org.apache.deltaspike.core.util.ClassUtils;
> -
> -import javax.enterprise.inject.Typed;
> -import java.lang.reflect.InvocationHandler;
> -import java.lang.reflect.Proxy;
> -
> -/**
> - * This is the internal helper class for JDK proxies
> - */
> -@Typed()
> -public abstract class ProxyUtils
> -{
> -    private ProxyUtils()
> -    {
> -        // prevent instantiation
> -    }
> -
> -    public static <T> T createProxy(Class<T> type, InvocationHandler
> invocationHandler)
> -    {
> -        return
> type.cast(Proxy.newProxyInstance(ClassUtils.getClassLoader(null),
> -                new Class<?>[]{type}, invocationHandler));
> -    }
> -}
>
>