You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2006/12/11 08:56:43 UTC
svn commit: r485543 - in /incubator/cxf/trunk/rt/core/src:
main/java/org/apache/cxf/bus/spring/BusApplicationContext.java
main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
Author: ningjiang
Date: Sun Dec 10 23:56:42 2006
New Revision: 485543
URL: http://svn.apache.org/viewvc?view=rev&rev=485543
Log:
[CXF-146] Add Bus factory method that takes a URL
SpringBusFactory should be extended by
createBus(URL url)
createBus(URL url, boolean includeDefaults)
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationContext.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationContext.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationContext.java?view=diff&rev=485543&r1=485542&r2=485543
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationContext.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/BusApplicationContext.java Sun Dec 10 23:56:42 2006
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.net.MalformedURLException;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -47,10 +48,15 @@
private boolean includeDefaults;
private String cfgFile;
+ private URL cfgFileURL;
BusApplicationContext(String cf, boolean include) {
this(cf, include, null);
}
+
+ BusApplicationContext(URL url, boolean include) {
+ this(url, include, null);
+ }
BusApplicationContext(String cf, boolean include, ApplicationContext parent) {
super((String[])null, parent);
@@ -58,6 +64,12 @@
includeDefaults = include;
}
+ BusApplicationContext(URL url, boolean include, ApplicationContext parent) {
+ super((String[])null, parent);
+ cfgFileURL = url;
+ includeDefaults = include;
+ }
+
@Override
protected Resource[] getConfigResources() {
@@ -89,19 +101,29 @@
LOG.log(Level.INFO, new Message("USER_CFG_FILE_NOT_FOUND_MSG", LOG, cfgFile).toString());
}
- String cfgFileUrl = System.getProperty(Configurer.USER_CFG_FILE_PROPERTY_URL);
- if (null != cfgFileUrl) {
+ if (null != cfgFileURL) {
+ UrlResource ur = new UrlResource(cfgFileURL);
+ if (ur.exists()) {
+ resources.add(ur);
+ } else {
+ LOG.log(Level.INFO,
+ new Message("USER_CFG_FILE_URL_NOT_FOUND_MSG", LOG, cfgFileURL).toString());
+ }
+ }
+
+ String sysCfgFileUrl = System.getProperty(Configurer.USER_CFG_FILE_PROPERTY_URL);
+ if (null != sysCfgFileUrl) {
try {
- UrlResource ur = new UrlResource(cfgFileUrl);
+ UrlResource ur = new UrlResource(sysCfgFileUrl);
if (ur.exists()) {
resources.add(ur);
} else {
LOG.log(Level.INFO,
- new Message("USER_CFG_FILE_URL_NOT_FOUND_MSG", LOG, cfgFileUrl).toString());
+ new Message("USER_CFG_FILE_URL_NOT_FOUND_MSG", LOG, sysCfgFileUrl).toString());
}
} catch (MalformedURLException e) {
LOG.log(Level.WARNING,
- new Message("USER_CFG_FILE_URL_ERROR_MSG", LOG, cfgFileUrl).toString());
+ new Message("USER_CFG_FILE_URL_ERROR_MSG", LOG, sysCfgFileUrl).toString());
}
}
Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java?view=diff&rev=485543&r1=485542&r2=485543
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/bus/spring/SpringBusFactory.java Sun Dec 10 23:56:42 2006
@@ -19,6 +19,7 @@
package org.apache.cxf.bus.spring;
+import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -61,7 +62,7 @@
}
public Bus createBus() {
- return createBus(null);
+ return createBus((String)null);
}
public Bus createBus(String cfgFile) {
@@ -77,6 +78,31 @@
BusApplicationContext bac = null;
try {
bac = new BusApplicationContext(cfgFile, includeDefaults, context);
+ } catch (BeansException ex) {
+ LogUtils.log(LOG, Level.WARNING, "APP_CONTEXT_CREATION_FAILED_MSG", ex, (Object[])null);
+ }
+
+ bac.refresh();
+ Bus bus = (Bus)bac.getBean(DEFAULT_BUS_ID);
+
+ Configurer configurer = new ConfigurerImpl(bac);
+ bus.setExtension(configurer, Configurer.class);
+
+ return bus;
+ }
+
+ public Bus createBus(URL url) {
+ boolean includeDefaults = true;
+ if (context != null) {
+ includeDefaults = !context.containsBean("cxf");
+ }
+ return createBus(url, includeDefaults);
+ }
+
+ public Bus createBus(URL url, boolean includeDefaults) {
+ BusApplicationContext bac = null;
+ try {
+ bac = new BusApplicationContext(url, includeDefaults, context);
} catch (BeansException ex) {
LogUtils.log(LOG, Level.WARNING, "APP_CONTEXT_CREATION_FAILED_MSG", ex, (Object[])null);
}
Modified: incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java?view=diff&rev=485543&r1=485542&r2=485543
==============================================================================
--- incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java (original)
+++ incubator/cxf/trunk/rt/core/src/test/java/org/apache/cxf/bus/spring/SpringBusFactoryTest.java Sun Dec 10 23:56:42 2006
@@ -79,12 +79,18 @@
checkCustomerConfiguration(bus);
}
- public void testCustomFileURL() {
+ public void testCustomFileURLFromSystemProperty() {
URL cfgFileURL = this.getClass().getResource("resources/bus-overwrite.xml");
System.setProperty(Configurer.USER_CFG_FILE_PROPERTY_URL, cfgFileURL.toString());
- Bus bus = new SpringBusFactory().createBus(null, true);
+ Bus bus = new SpringBusFactory().createBus((String)null, true);
checkCustomerConfiguration(bus);
System.clearProperty(Configurer.USER_CFG_FILE_PROPERTY_URL);
+ }
+
+ public void testCustomFileURL() {
+ URL cfgFileURL = this.getClass().getResource("resources/bus-overwrite.xml");
+ Bus bus = new SpringBusFactory().createBus(cfgFileURL, true);
+ checkCustomerConfiguration(bus);
}
private void checkCustomerConfiguration(Bus bus) {