You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2008/11/14 11:13:30 UTC
svn commit: r713965 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: config/
core/axis2/ util/datasource/ util/datasource/factory/
Author: indika
Date: Fri Nov 14 02:13:28 2008
New Revision: 713965
URL: http://svn.apache.org/viewvc?rev=713965&view=rev
Log:
some changes in data source code
remove initializing of properties , data sources from configurationn builder so that configuration builder only buld configuration
Added:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapsePropertiesLoader.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceConfigurationConstants.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepository.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceManager.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceRepository.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DatasourceMBeanRepository.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/InMemoryDataSourceRepository.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/JNDIBasedDataSourceRepository.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationListFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationRepositoryFactory.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfiguration.java Fri Nov 14 02:13:28 2008
@@ -102,11 +102,8 @@
private final TaskDescriptionRepository repository =
TaskDescriptionRepositoryFactory.getTaskDescriptionRepository(
- SynapseConstants.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
+ SynapseConstants.SYNAPSE_STARTUP_TASK_DESCRIPTIONS_REPOSITORY);
- /* Keeps information about datasource -only configuration data - no runtime data */
- private DataSourceInformationRepository dataSourceInformationRepository;
-
/**
* Save the path to the configuration file loaded, to save it later if
* required
@@ -921,13 +918,5 @@
public TaskDescriptionRepository getTaskDescriptionRepository() {
return repository;
- }
-
- public DataSourceInformationRepository getDataSourceInformationRepository() {
- return dataSourceInformationRepository;
- }
-
- public void setDataSourceInformationRepository(DataSourceInformationRepository dataSourceInformationRepository) {
- this.dataSourceInformationRepository = dataSourceInformationRepository;
- }
+ }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapseConfigurationBuilder.java Fri Nov 14 02:13:28 2008
@@ -23,8 +23,6 @@
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
-import org.apache.synapse.util.datasource.DataSourceInformationRepository;
-import org.apache.synapse.util.datasource.factory.DataSourceInformationRepositoryFactory;
import org.apache.synapse.config.xml.XMLConfigurationBuilder;
import org.apache.synapse.mediators.base.SequenceMediator;
import org.apache.synapse.mediators.builtin.DropMediator;
@@ -33,7 +31,6 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.util.Properties;
/**
* Builds a Synapse Configuration model with a given input
@@ -74,15 +71,10 @@
// build the Synapse configuration parsing the XML config file
try {
- Properties synapseProperties = SynapsePropertiesLoader.loadSynapseProperties();
- DataSourceInformationRepository repository =
- DataSourceInformationRepositoryFactory.createDataSourceInformationRepository(synapseProperties);
SynapseConfiguration synCfg
= XMLConfigurationBuilder.getConfiguration(new FileInputStream(configFile));
log.info("Loaded Synapse configuration from : " + configFile);
synCfg.setPathToConfigFile(new File(configFile).getAbsolutePath());
- synCfg.setProperties(synapseProperties);
- synCfg.setDataSourceInformationRepository(repository);
return synCfg;
} catch (FileNotFoundException fnf) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapsePropertiesLoader.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapsePropertiesLoader.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapsePropertiesLoader.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/SynapsePropertiesLoader.java Fri Nov 14 02:13:28 2008
@@ -67,4 +67,17 @@
tempProperties.putAll(cacheProperties);
return tempProperties;
}
+
+ /**
+ * Reloading properties from file
+ *
+ * @return Reloaded properties
+ */
+ public static Properties reloadSynapseProperties() {
+ if (log.isDebugEnabled()) {
+ log.debug("Reloading synapse properties");
+ }
+ cacheProperties = null;
+ return loadSynapseProperties();
+ }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseInitializationModule.java Fri Nov 14 02:13:28 2008
@@ -35,8 +35,10 @@
import org.apache.synapse.ServerManager;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.util.datasource.DataSourceInformationRepositoryHelper;
import org.apache.synapse.config.SynapseConfiguration;
import org.apache.synapse.config.SynapseConfigurationBuilder;
+import org.apache.synapse.config.SynapsePropertiesLoader;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -160,14 +162,21 @@
String config = ServerManager.getInstance().getSynapseXMLPath();
+ java.util.Properties synapseProperties = SynapsePropertiesLoader.loadSynapseProperties();
+
+ DataSourceInformationRepositoryHelper.
+ initializeDataSourceInformationRepository(axisConfiguration, synapseProperties);
+
if (config != null) {
synapseConfiguration = SynapseConfigurationBuilder.getConfiguration(config);
} else {
log.warn("System property or init-parameter '" + SynapseConstants.SYNAPSE_XML +
- "' is not specified. Using default configuration..");
+ "' is not specified. Using default configuration..");
synapseConfiguration = SynapseConfigurationBuilder.getDefaultConfiguration();
}
+ synapseConfiguration.setProperties(synapseProperties);
+
// Set the Axis2 ConfigurationContext to the SynapseConfiguration
synapseConfiguration.setAxisConfiguration(cfgCtx.getAxisConfiguration());
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceConfigurationConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceConfigurationConstants.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceConfigurationConstants.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceConfigurationConstants.java Fri Nov 14 02:13:28 2008
@@ -67,7 +67,7 @@
public static final String PROP_PROVIDER_PORT = "providerPort";
public final static String PROP_REGISTRY = "registry";
public final static String PROP_REGISTRY_MEMORY = "memory";
- public final static String PROP_REGISTRY_JNDI = "JNDI";
+ public final static String PROP_REGISTRY_JNDI = "JNDI";
public static final String PROP_ICFACTORY = "icFactory";
public static final String PROP_PROVIDER_URL = "providerUrl";
public static final String DOT_STRING = ".";
@@ -76,9 +76,10 @@
public static final String PROP_TYPE = "type";
public static final String PROP_BASIC_DATA_SOURCE = "BasicDataSource";
public static final String PROP_CLASS_NAME = "className";
- public static final String PROP_CPDSADAPTER_DRIVER
+ public static final String PROP_CPDSADAPTER_DRIVER
= "org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS";
public static final String PROP_FACTORY = "factory";
public static final String PROP_NAME = "name";
+ public static final String DATASOURCE_INFORMATION_REPOSITORY = "DataSourceInformationRepository";
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepository.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepository.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepository.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepository.java Fri Nov 14 02:13:28 2008
@@ -18,6 +18,10 @@
*/
package org.apache.synapse.util.datasource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.SynapseException;
+
import java.util.*;
/**
@@ -25,47 +29,78 @@
*/
public class DataSourceInformationRepository {
+ private static final Log log = LogFactory.getLog(DataSourceInformationRepository.class);
+
private final Map<String, DataSourceInformation> dataSourceInformationMap =
new HashMap<String, DataSourceInformation>();
+
private final List<DataSourceInformationRepositoryListener> listeners =
new ArrayList<DataSourceInformationRepositoryListener>();
public void setConfigurationProperties(Properties congurationProperties) {
+
for (DataSourceInformationRepositoryListener listener : listeners) {
- if (listener != null) {
- listener.reConfigure(congurationProperties);
- }
+ listener.reConfigure(congurationProperties);
}
}
public void addDataSourceInformation(DataSourceInformation dataSourceInformation) {
+
+ assertNull(dataSourceInformation, "DataSource information is null");
+
dataSourceInformationMap.put(dataSourceInformation.getAlias(), dataSourceInformation);
for (DataSourceInformationRepositoryListener listener : listeners) {
- if (listener != null) {
- listener.addDataSourceInformation(dataSourceInformation);
- }
+ listener.addDataSourceInformation(dataSourceInformation);
}
}
public DataSourceInformation getDataSourceInformation(String name) {
+
+ assertNull(name, "Name of the datasource information instance to be returned is null");
+
return dataSourceInformationMap.get(name);
}
public DataSourceInformation removeDataSourceInformation(String name) {
+
+ assertNull(name, "Name of the datasource information instance to be removed is null");
+
DataSourceInformation information = dataSourceInformationMap.remove(name);
+
+ assertNull(information, "There is no datasource information instance for given name :" + name);
+
for (DataSourceInformationRepositoryListener listener : listeners) {
- if (listener != null) {
- listener.removeDataSourceInformation(information);
- }
+ listener.removeDataSourceInformation(information);
}
return information;
}
public Iterator<DataSourceInformation> getAllDataSourceInformation() {
+
return dataSourceInformationMap.values().iterator();
}
public void registerDataSourceInformationRepositoryListener(DataSourceInformationRepositoryListener listener) {
+
+ assertNull(listener, "Provided 'DataSourceInformationRepositoryListener' instance is null");
+
listeners.add(listener);
}
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+
+ private void assertNull(String name, String msg) {
+ if (name == null || "".equals(name)) {
+ handleException(msg);
+ }
+ }
+
+ private void assertNull(Object object, String msg) {
+ if (object == null) {
+ handleException(msg);
+ }
+ }
}
\ No newline at end of file
Added: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java?rev=713965&view=auto
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java (added)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceInformationRepositoryHelper.java Fri Nov 14 02:13:28 2008
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.synapse.util.datasource;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.SynapseException;
+import org.apache.synapse.util.datasource.factory.DataSourceInformationRepositoryFactory;
+
+import java.util.Properties;
+
+/**
+ *
+ */
+public class DataSourceInformationRepositoryHelper {
+
+ private static final Log log = LogFactory.getLog(DataSourceInformationRepositoryHelper.class);
+
+ public static void initializeDataSourceInformationRepository(AxisConfiguration axisConfiguration, Properties properties) {
+ initializeDataSourceInformationRepository(axisConfiguration, properties, DataSourceManager.getInstance());
+ }
+
+ public static void initializeDataSourceInformationRepository(AxisConfiguration axisConfiguration, Properties properties, DataSourceInformationRepositoryListener listener) {
+
+ DataSourceInformationRepository repository =
+ DataSourceInformationRepositoryFactory.createDataSourceInformationRepository(properties, listener);
+ Parameter parameter = new Parameter(DataSourceConfigurationConstants.DATASOURCE_INFORMATION_REPOSITORY, repository);
+ try {
+ axisConfiguration.addParameter(parameter);
+ } catch (AxisFault axisFault) {
+ handleException("Error setting 'DataSourceInformationRepository' as" +
+ " a parameter to axis2 configuration ", axisFault);
+ }
+ }
+
+ public static DataSourceInformationRepository getDataSourceInformationRepository(AxisConfiguration axisConfiguration) {
+
+ Parameter parameter = axisConfiguration.getParameter(DataSourceConfigurationConstants.DATASOURCE_INFORMATION_REPOSITORY);
+ if (parameter != null) {
+ Object result = parameter.getValue();
+ if (!(result instanceof DataSourceInformationRepository)) {
+ handleException("Invalid type '" + result.getClass().getName()
+ + "' , expected : 'DataSourceInformationRepository'");
+ }
+ return (DataSourceInformationRepository) result;
+ }
+ return null;
+ }
+
+ private static void handleException(String msg, Throwable error) {
+ log.error(msg, error);
+ throw new SynapseException(msg, error);
+ }
+
+ private static void handleException(String msg) {
+ log.error(msg);
+ throw new SynapseException(msg);
+ }
+}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceManager.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceManager.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceManager.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceManager.java Fri Nov 14 02:13:28 2008
@@ -65,7 +65,7 @@
return result;
}
if (JNDI_REPOSITORY.isInitialized()) {
- return IN_MEMORY_REPOSITORY.lookUp(name);
+ return JNDI_REPOSITORY.lookUp(name);
}
return null;
}
@@ -80,7 +80,6 @@
public DataSource find(String dsName, Properties jndiEnv) {
try {
-
Context context = new InitialContext(jndiEnv);
return find(dsName, context);
@@ -122,6 +121,7 @@
if (dataSourceInformation == null) {
return;
}
+
String repositoryType = dataSourceInformation.getRepositoryType();
if (DataSourceConfigurationConstants.PROP_REGISTRY_JNDI.equals(repositoryType)) {
JNDI_REPOSITORY.register(dataSourceInformation);
@@ -131,7 +131,9 @@
}
public void removeDataSourceInformation(DataSourceInformation dataSourceInformation) {
+
String repositoryType = dataSourceInformation.getRepositoryType();
+
if (DataSourceConfigurationConstants.PROP_REGISTRY_JNDI.equals(repositoryType)) {
JNDI_REPOSITORY.unRegister(dataSourceInformation.getDatasourceName());
} else {
@@ -140,6 +142,7 @@
}
public void reConfigure(Properties confProperties) {
+
JNDI_REPOSITORY.init(confProperties);
IN_MEMORY_REPOSITORY.init(confProperties);
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceRepository.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceRepository.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceRepository.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DataSourceRepository.java Fri Nov 14 02:13:28 2008
@@ -47,8 +47,12 @@
* @param information DataSourceInformation instance
*/
void register(DataSourceInformation information);
-
+ /**
+ * Removing datasource
+ *
+ * @param name name of the datasource to be removed
+ */
void unRegister(String name);
/**
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DatasourceMBeanRepository.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DatasourceMBeanRepository.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DatasourceMBeanRepository.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/DatasourceMBeanRepository.java Fri Nov 14 02:13:28 2008
@@ -31,7 +31,8 @@
*
*/
public class DatasourceMBeanRepository implements MBeanRepository {
- private final static Log log = LogFactory.getLog(DataSourceInformationRepository.class);
+
+ private final static Log log = LogFactory.getLog(DatasourceMBeanRepository.class);
private final static Map<String, DBPoolView> dataSourcesMBeans = new HashMap<String, DBPoolView>();
private final static DatasourceMBeanRepository DATASOURCE_M_BEAN_REPOSITORY = new DatasourceMBeanRepository();
@@ -45,6 +46,7 @@
}
public void addMBean(String name, Object mBean) {
+
assertNull(name, "DataSorce MBean name cannot be found.");
assertNull(mBean, "DataSorce MBean cannot be found.");
assertFalse(mBean instanceof DBPoolView, "Given MBean instance is not matched " +
@@ -55,16 +57,19 @@
}
public Object getMBean(String name) {
+
assertNull(name, "DataSorce MBean name cannot be found.");
return dataSourcesMBeans.get(name);
}
public void removeMBean(String name) {
+
dataSourcesMBeans.remove(name);
MBeanRegistrar.getInstance().unRegisterMBean(MBEAN_CATEGORY_DATABASE_CONNECTION_POOL, name);
}
public void clear() {
+
if (!dataSourcesMBeans.isEmpty()) {
log.info("UnRegistering DBPool MBeans");
for (DBPoolView dbPoolView : dataSourcesMBeans.values()) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/InMemoryDataSourceRepository.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/InMemoryDataSourceRepository.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/InMemoryDataSourceRepository.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/InMemoryDataSourceRepository.java Fri Nov 14 02:13:28 2008
@@ -83,10 +83,8 @@
}
public void unRegister(String name) {
-
- if (name == null || "".equals(name)) {
- return;
- }
+
+ assertNull(name,"Name of the datasource to be removed is empty or null");
dataSources.remove(name);
REPOSITORY.removeMBean(name);
}
@@ -130,5 +128,4 @@
handleException(msg);
}
}
-
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/JNDIBasedDataSourceRepository.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/JNDIBasedDataSourceRepository.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/JNDIBasedDataSourceRepository.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/JNDIBasedDataSourceRepository.java Fri Nov 14 02:13:28 2008
@@ -57,11 +57,13 @@
initialized = true;
if (jndiEnv == null || jndiEnv.isEmpty()) {
- log.warn("");
+ log.warn("Provided global JNDI environment properties is empty or null.");
return;
}
- jndiProperties = createJNDIEnvironment(jndiEnv, null);
- initialContext = createInitialContext(jndiEnv);
+ if (isValid(jndiEnv)) {
+ jndiProperties = createJNDIEnvironment(jndiEnv, null);
+ initialContext = createInitialContext(jndiEnv);
+ }
}
@@ -210,8 +212,8 @@
try {
context.unbind(name);
} catch (NamingException e) {
- handleException("Error removing a Datasource with name : "+
- name + " from the JNDI context : "+initialContext,e);
+ handleException("Error removing a Datasource with name : " +
+ name + " from the JNDI context : " + initialContext, e);
}
}
@@ -498,4 +500,17 @@
}
return null;
}
+
+ private boolean isValid(Properties dsProperties) {
+
+ String dataSources = MiscellaneousUtil.getProperty(dsProperties,
+ DataSourceConfigurationConstants.PROP_SYNAPSE_DATASOURCES, null);
+
+ if (dataSources != null && !"".equals(dataSources)) {
+ String[] dataSourcesNames = dataSources.split(",");
+ return !(dataSourcesNames == null || dataSourcesNames.length == 0);
+ }
+
+ return false;
+ }
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationListFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationListFactory.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationListFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationListFactory.java Fri Nov 14 02:13:28 2008
@@ -66,7 +66,7 @@
for (String dsName : dataSourcesNames) {
- if (dsName == null) {
+ if (dsName == null ) {
continue;
}
DataSourceInformation information =
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationRepositoryFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationRepositoryFactory.java?rev=713965&r1=713964&r2=713965&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationRepositoryFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/util/datasource/factory/DataSourceInformationRepositoryFactory.java Fri Nov 14 02:13:28 2008
@@ -20,6 +20,7 @@
import org.apache.synapse.util.datasource.DataSourceInformation;
import org.apache.synapse.util.datasource.DataSourceInformationRepository;
+import org.apache.synapse.util.datasource.DataSourceInformationRepositoryListener;
import org.apache.synapse.util.datasource.DataSourceManager;
import java.util.List;
@@ -31,10 +32,16 @@
public class DataSourceInformationRepositoryFactory {
public static DataSourceInformationRepository createDataSourceInformationRepository(Properties properties) {
+
+ return createDataSourceInformationRepository(properties, DataSourceManager.getInstance());
+ }
+
+ public static DataSourceInformationRepository createDataSourceInformationRepository(Properties properties, DataSourceInformationRepositoryListener listener) {
+
List<DataSourceInformation> dataSourceInformations = DataSourceInformationListFactory.createDataSourceInformationList(properties);
DataSourceInformationRepository repository = new DataSourceInformationRepository();
+ repository.registerDataSourceInformationRepositoryListener(listener);
repository.setConfigurationProperties(properties);
- repository.registerDataSourceInformationRepositoryListener(DataSourceManager.getInstance());
for (DataSourceInformation information : dataSourceInformations) {
if (information != null) {
repository.addDataSourceInformation(information);