You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by st...@apache.org on 2011/11/04 11:33:04 UTC

svn commit: r1197493 - in /myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl: pom.xml src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/datasource/ConfigurableDataSource.java

Author: struberg
Date: Fri Nov  4 10:33:04 2011
New Revision: 1197493

URL: http://svn.apache.org/viewvc?rev=1197493&view=rev
Log:
EXTCDI-236 drop commons.BeanUtils and invoke the setter manually

Modified:
    myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/pom.xml
    myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/datasource/ConfigurableDataSource.java

Modified: myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/pom.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/pom.xml?rev=1197493&r1=1197492&r2=1197493&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/pom.xml (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/pom.xml Fri Nov  4 10:33:04 2011
@@ -50,19 +50,6 @@
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>commons-beanutils</groupId>
-            <artifactId>commons-beanutils-core</artifactId>
-            <version>1.8.3</version>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-            <version>1.1.1</version>
-            <optional>true</optional>
-        </dependency>
-
         <!-- JPA API -->
         <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
@@ -117,39 +104,6 @@
                 </executions>
             </plugin>
 
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <createSourcesJar>true</createSourcesJar>
-                    <createDependencyReducedPom>false</createDependencyReducedPom>
-                    <minimizeJar>true</minimizeJar>
-                    <artifactSet>
-                        <includes>
-                            <include>commons-beanutils:commons-beanutils</include>
-                            <include>commons-logging:commons-logging</include>
-                        </includes>
-                    </artifactSet>
-                    <relocations>
-                        <relocation>
-                            <pattern>org.apache.commons.beanutils</pattern>
-                            <shadedPattern>org.apache.myfaces.codi.shaded.commons.beanutils</shadedPattern>
-                        </relocation>
-                        <relocation>
-                            <pattern>org.apache.commons.logging</pattern>
-                            <shadedPattern>org.apache.myfaces.codi.shaded.commons.logging</shadedPattern>
-                        </relocation>
-                    </relocations>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 

Modified: myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/datasource/ConfigurableDataSource.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/datasource/ConfigurableDataSource.java?rev=1197493&r1=1197492&r2=1197493&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/datasource/ConfigurableDataSource.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/datasource/ConfigurableDataSource.java Fri Nov  4 10:33:04 2011
@@ -18,13 +18,14 @@
  */
 package org.apache.myfaces.extensions.cdi.jpa.impl.datasource;
 
-import org.apache.commons.beanutils.BeanUtils;
 import org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProvider;
 import org.apache.myfaces.extensions.cdi.core.impl.util.JndiUtils;
 import org.apache.myfaces.extensions.cdi.jpa.api.datasource.DataSourceConfig;
 
 import javax.sql.DataSource;
 import java.io.PrintWriter;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;
@@ -187,7 +188,7 @@ public class ConfigurableDataSource impl
             Map<String, String> config = dataSourceConfig.getConnectionProperties(connectionId);
             for (Map.Entry<String, String> configOption : config.entrySet())
             {
-                BeanUtils.setProperty(wrappedDataSource, configOption.getKey(), configOption.getValue());
+                setProperty(wrappedDataSource, configOption.getKey(), configOption.getValue());
             }
         }
         catch (Exception e)
@@ -202,4 +203,38 @@ public class ConfigurableDataSource impl
         }
     }
 
+    private void setProperty(Object instance, String key, String value)
+            throws InvocationTargetException, IllegalAccessException
+    {
+        if (key.length()== 0)
+        {
+            throw new IllegalArgumentException("property name must not be empty!");
+        }
+
+        String setterName = "get" + Character.toUpperCase(key.charAt(0)) + key.substring(1);
+        Method setter = null;
+        try
+        {
+            setter = instance.getClass().getMethod(setterName, String.class);
+        }
+        catch (NoSuchMethodException e)
+        {
+            try
+            {
+                setter = instance.getClass().getMethod(setterName, Object.class);
+            }
+            catch (NoSuchMethodException e1)
+            {
+                throw new IllegalArgumentException("Cannot find setter with name " + setterName);
+            }
+        }
+
+        if (!setter.isAccessible())
+        {
+            setter.setAccessible(true);
+        }
+
+        setter.invoke(instance, value);
+    }
+
 }