001 // $HeadURL: 002 // /cvsroot/deegree/src/org/deegree/ogcwebservices/wcs/WCSServiceFactory.java,v 003 // 1.4 2004/06/18 15:50:30 tf Exp $ 004 /*---------------- FILE HEADER ------------------------------------------ 005 006 This file is part of deegree. 007 Copyright (C) 2001-2008 by: 008 EXSE, Department of Geography, University of Bonn 009 http://www.giub.uni-bonn.de/deegree/ 010 lat/lon GmbH 011 http://www.lat-lon.de 012 013 This library is free software; you can redistribute it and/or 014 modify it under the terms of the GNU Lesser General Public 015 License as published by the Free Software Foundation; either 016 version 2.1 of the License, or (at your option) any later version. 017 018 This library is distributed in the hope that it will be useful, 019 but WITHOUT ANY WARRANTY; without even the implied warranty of 020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 021 Lesser General Public License for more details. 022 023 You should have received a copy of the GNU Lesser General Public 024 License along with this library; if not, write to the Free Software 025 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 026 027 Contact: 028 029 Andreas Poth 030 lat/lon GmbH 031 Aennchenstr. 19 032 53115 Bonn 033 Germany 034 E-Mail: poth@lat-lon.de 035 036 Prof. Dr. Klaus Greve 037 Department of Geography 038 University of Bonn 039 Meckenheimer Allee 166 040 53115 Bonn 041 Germany 042 E-Mail: greve@giub.uni-bonn.de 043 044 045 ---------------------------------------------------------------------------*/ 046 package org.deegree.ogcwebservices.wmps; 047 048 import java.net.URL; 049 050 import org.deegree.framework.log.ILogger; 051 import org.deegree.framework.log.LoggerFactory; 052 import org.deegree.ogcwebservices.wcs.configuration.InvalidConfigurationException; 053 import org.deegree.ogcwebservices.wmps.configuration.WMPSConfiguration; 054 import org.deegree.ogcwebservices.wmps.configuration.WMPSConfigurationDocument; 055 056 /** 057 * Service Factory class handles the WMPService Instance. 058 * 059 * @author <a href="mailto:deshmukh@lat-lon.de">Anup Deshmukh</a> 060 * @version 2.0 061 */ 062 public final class WMPServiceFactory { 063 064 private static final ILogger LOG = LoggerFactory.getLogger( WMPServiceFactory.class ); 065 066 private static WMPSConfiguration CONFIG; 067 068 /** 069 * Returns a WMPService instance 070 * 071 * @return WMPService 072 */ 073 public static WMPService getService() { 074 return WMPServiceFactory.getInstance( CONFIG ); 075 } 076 077 /** 078 * Returns a WMPService instance 079 * 080 * @param config 081 * @return WMPService 082 */ 083 public static WMPService getInstance( WMPSConfiguration config ) { 084 return new WMPService( config ); 085 } 086 087 /** 088 * Returns true/false depending on the initialized state of the instance. 089 * 090 * @return boolean 091 */ 092 public static boolean isInitialized() { 093 return CONFIG != null; 094 } 095 096 /** 097 * Sets the WMPSConfiguration 098 * 099 * @param wmpsConfiguration 100 */ 101 public static void setConfiguration( WMPSConfiguration wmpsConfiguration ) { 102 CONFIG = wmpsConfiguration; 103 /** 104 * if service instance are already created destroy all instances create new service 105 * instances and put in pool 106 */ 107 LOG.logInfo( CONFIG.getServiceIdentification().getTitle() + " (" + CONFIG.getVersion() 108 + ") service pool initialized." ); 109 } 110 111 /** 112 * Sets the service configuration 113 * 114 * @param serviceConfigurationUrl 115 * @throws InvalidConfigurationException 116 */ 117 public static void setConfiguration( URL serviceConfigurationUrl ) 118 throws InvalidConfigurationException { 119 120 try { 121 WMPSConfigurationDocument doc = new WMPSConfigurationDocument(); 122 doc.load( serviceConfigurationUrl ); 123 WMPSConfiguration conf = doc.parseConfiguration(); 124 WMPServiceFactory.setConfiguration( conf ); 125 } catch ( Exception e ) { 126 e.printStackTrace(); 127 throw new InvalidConfigurationException( "WPSServiceFactory", e.getMessage() ); 128 } 129 } 130 }