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);
+ }
+
}