001: /*
002: * CoadunationLib: The coaduntion implementation library.
003: * Copyright (C) 2006 Rift IT Contracting
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2.1 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
018: *
019: * WebServiceLoader.java
020: *
021: * The web service loader. Responsible for loading web services from the
022: * coadunation jar files.
023: */
024:
025: // package that the web service can be found in
026: package com.rift.coad.lib.deployment.webservice;
027:
028: // java utils
029: import java.util.Map;
030: import java.util.HashMap;
031: import java.util.Iterator;
032:
033: // logging import
034: import org.apache.log4j.Logger;
035:
036: // coadunation imports
037: import com.rift.coad.lib.deployment.DeploymentLoader;
038: import com.rift.coad.lib.webservice.WebServiceWrapper;
039:
040: /**
041: * The web service loader responsible for loading web services from the
042: * coadunation jar files.
043: *
044: * @author Brett Chaldecott
045: */
046: public class WebServiceLoader {
047:
048: // the class log variable
049: protected Logger log = Logger.getLogger(WebServiceLoader.class
050: .getName());
051:
052: // The classes private member variables
053: private Map services = null;
054: private DeploymentLoader deploymentLoader = null;
055:
056: /**
057: * Creates a new instance of WebServiceLoader
058: *
059: * @param deploymentLoader The reference to the deployment loader.
060: */
061: public WebServiceLoader(DeploymentLoader deploymentLoader)
062: throws WebServiceException {
063: this .deploymentLoader = deploymentLoader;
064: services = new HashMap();
065: loadServices();
066: }
067:
068: /**
069: * This method loads the web service information retrieve from the
070: * deployment loader into web service wrappers.
071: *
072: * @exception WebServiceException
073: */
074: private void loadServices() throws WebServiceException {
075: try {
076: log.info("Load the Web Services for ["
077: + deploymentLoader.getFile().getPath() + "]");
078: Map mapList = deploymentLoader.getDeploymentInfo()
079: .getWebServices();
080: for (Iterator iter = mapList.keySet().iterator(); iter
081: .hasNext();) {
082: com.rift.coad.lib.deployment.WebServiceInfo webServiceInfo = (com.rift.coad.lib.deployment.WebServiceInfo) mapList
083: .get(iter.next());
084: services.put(webServiceInfo.getPath(),
085: new WebServiceWrapper(webServiceInfo,
086: deploymentLoader));
087: }
088: } catch (Exception ex) {
089: throw new WebServiceException(
090: "Failed to load the web services :"
091: + ex.getMessage(), ex);
092: }
093: }
094:
095: /**
096: * This method returns the list of web services loaded by this object.
097: *
098: * @return The list of services.
099: */
100: public Map getServices() {
101: return services;
102: }
103:
104: }
|