Author: davsclaus
Date: Tue Apr 17 12:14:02 2012
New Revision: 1327058
URL: http://svn.apache.org/viewvc?rev=1327058&view=rev
Log:
CAMEL-5168: Added Main class in camel-test-blueprint, to make it easier to run
Camel Blueprint out of container.
Modified:
camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java
Modified:
camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java?rev=1327058&r1=1327057&r2=1327058&view=diff
==============================================================================
---
camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java
(original)
+++
camel/trunk/components/camel-test-blueprint/src/main/java/org/apache/camel/test/blueprint/CamelBlueprintHelper.java
Tue Apr 17 12:14:02 2012
@@ -20,6 +20,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
@@ -37,9 +38,12 @@ import de.kalpatec.pojosr.framework.laun
import de.kalpatec.pojosr.framework.launch.ClasspathScanner;
import de.kalpatec.pojosr.framework.launch.PojoServiceRegistry;
import de.kalpatec.pojosr.framework.launch.PojoServiceRegistryFactory;
+import org.apache.camel.impl.DefaultClassResolver;
+import org.apache.camel.spi.ClassResolver;
import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.ResourceHelper;
import org.ops4j.pax.swissbox.tinybundles.core.TinyBundle;
import org.ops4j.pax.swissbox.tinybundles.core.TinyBundles;
import org.osgi.framework.BundleContext;
@@ -63,6 +67,7 @@ public final class CamelBlueprintHelper
public static final long DEFAULT_TIMEOUT = 30000;
private static final transient Logger LOG =
LoggerFactory.getLogger(CamelBlueprintHelper.class);
+ private static final ClassResolver RESOLVER = new DefaultClassResolver();
private CamelBlueprintHelper() {
}
@@ -173,7 +178,7 @@ public final class CamelBlueprintHelper
return references == null ? new ArrayList<ServiceReference<?>>(0) :
Arrays.asList(references);
}
- private static TinyBundle createTestBundle(String name, String
descriptors) throws FileNotFoundException {
+ private static TinyBundle createTestBundle(String name, String
descriptors) throws FileNotFoundException, MalformedURLException {
TinyBundle bundle = TinyBundles.newBundle();
for (URL url : getBlueprintDescriptors(descriptors)) {
LOG.info("Using Blueprint XML file: " + url.getFile());
@@ -203,7 +208,7 @@ public final class CamelBlueprintHelper
* @return the bundle descriptors.
* @throws FileNotFoundException is thrown if a bundle descriptor cannot
be found
*/
- private static Collection<URL> getBlueprintDescriptors(String descriptors)
throws FileNotFoundException {
+ private static Collection<URL> getBlueprintDescriptors(String descriptors)
throws FileNotFoundException, MalformedURLException {
List<URL> answer = new ArrayList<URL>();
String descriptor = descriptors;
if (descriptor != null) {
@@ -211,6 +216,8 @@ public final class CamelBlueprintHelper
Iterator<Object> it = ObjectHelper.createIterator(descriptor);
while (it.hasNext()) {
String s = (String) it.next();
+ LOG.trace("Resource descriptor: {}", s);
+
// remove leading / to be able to load resource from the
classpath
s = FileUtil.stripLeadingSeparator(s);
@@ -228,6 +235,7 @@ public final class CamelBlueprintHelper
for (File file : files) {
if (file.isFile() && file.exists() &&
file.getName().endsWith(".xml")) {
String name = packageName +
file.getName();
+ LOG.debug("Resolving resource: {}",
name);
URL xmlUrl =
ObjectHelper.loadResourceAsURL(name);
if (xmlUrl != null) {
answer.add(xmlUrl);
@@ -238,9 +246,10 @@ public final class CamelBlueprintHelper
}
}
} else {
- URL url = ObjectHelper.loadResourceAsURL(s);
+ LOG.debug("Resolving resource: {}", s);
+ URL url =
ResourceHelper.resolveMandatoryResourceAsUrl(RESOLVER, s);
if (url == null) {
- throw new FileNotFoundException("Resource " + s + "
not found in classpath");
+ throw new FileNotFoundException("Resource " + s + "
not found");
}
answer.add(url);
}