You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/01/02 17:20:22 UTC
svn commit: r730768 - in /activemq/camel/trunk:
components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/AntPathMatcherRemoteFileFilter.java
tests/camel-itest/pom.xml
Author: davsclaus
Date: Fri Jan 2 08:20:22 2009
New Revision: 730768
URL: http://svn.apache.org/viewvc?rev=730768&view=rev
Log:
CAMEL-1198: added init() to avoid load and lookup methods more than once
Modified:
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/AntPathMatcherRemoteFileFilter.java
activemq/camel/trunk/tests/camel-itest/pom.xml
Modified: activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/AntPathMatcherRemoteFileFilter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/AntPathMatcherRemoteFileFilter.java?rev=730768&r1=730767&r2=730768&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/AntPathMatcherRemoteFileFilter.java (original)
+++ activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/AntPathMatcherRemoteFileFilter.java Fri Jan 2 08:20:22 2009
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.file.remote;
+import java.lang.reflect.Method;
+
import org.apache.camel.util.ObjectHelper;
import static org.apache.camel.util.CollectionHelper.collectionAsCommaDelimitedString;
@@ -29,24 +31,28 @@
private String[] excludes;
private String[] includes;
- public boolean accept(RemoteFile file) {
- // we must use reflection to invoke the AntPathMatcherFileFilter that reside in camel-spring.jar
- // and we don't want camel-ftp to have runtime dependency on camel-spring.jar
- Class clazz = ObjectHelper.loadClass(ANTPATHMATCHER_CLASSNAME);
- ObjectHelper.notNull(clazz, ANTPATHMATCHER_CLASSNAME + " not found in classpath. camel-spring.jar is required in the classpath.");
+ private Object filter;
+ private Method includesMethod;
+ private Method excludesMethod;
+ private Method acceptsMethod;
+ public boolean accept(RemoteFile file) {
try {
- Object filter = ObjectHelper.newInstance(clazz);
+ synchronized (this) {
+ if (filter == null) {
+ init();
+ }
+ }
// invoke setIncludes(String), must using string type as invoking with string[] does not work
- ObjectHelper.invokeMethod(filter.getClass().getMethod("setIncludes", String.class), filter, collectionAsCommaDelimitedString(includes));
+ ObjectHelper.invokeMethod(includesMethod, filter, collectionAsCommaDelimitedString(includes));
// invoke setExcludes(String), must using string type as invoking with string[] does not work
- ObjectHelper.invokeMethod(filter.getClass().getMethod("setExcludes", String.class), filter, collectionAsCommaDelimitedString(excludes));
+ ObjectHelper.invokeMethod(excludesMethod, filter, collectionAsCommaDelimitedString(excludes));
// invoke acceptPathName(String)
String path = file.getRelativeFileName();
- Boolean result = (Boolean) ObjectHelper.invokeMethod(filter.getClass().getMethod("acceptPathName", String.class), filter, path);
+ Boolean result = (Boolean) ObjectHelper.invokeMethod(acceptsMethod, filter, path);
return result;
} catch (NoSuchMethodException e) {
@@ -54,6 +60,19 @@
}
}
+ private void init() throws NoSuchMethodException {
+ // we must use reflection to invoke the AntPathMatcherFileFilter that reside in camel-spring.jar
+ // and we don't want camel-ftp to have runtime dependency on camel-spring.jar
+ Class clazz = ObjectHelper.loadClass(ANTPATHMATCHER_CLASSNAME);
+ ObjectHelper.notNull(clazz, ANTPATHMATCHER_CLASSNAME + " not found in classpath. camel-spring.jar is required in the classpath.");
+
+ filter = ObjectHelper.newInstance(clazz);
+
+ includesMethod = filter.getClass().getMethod("setIncludes", String.class);
+ excludesMethod = filter.getClass().getMethod("setExcludes", String.class);
+ acceptsMethod = filter.getClass().getMethod("acceptPathName", String.class);
+ }
+
public String[] getExcludes() {
return excludes;
}
Modified: activemq/camel/trunk/tests/camel-itest/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/tests/camel-itest/pom.xml?rev=730768&r1=730767&r2=730768&view=diff
==============================================================================
--- activemq/camel/trunk/tests/camel-itest/pom.xml (original)
+++ activemq/camel/trunk/tests/camel-itest/pom.xml Fri Jan 2 08:20:22 2009
@@ -183,7 +183,19 @@
</execution>
</executions>
</plugin>
- </plugins>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>${basedir}/res</directory>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
</project>