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.wcs; 047 048 import java.io.IOException; 049 import java.net.URL; 050 051 import org.deegree.framework.log.ILogger; 052 import org.deegree.framework.log.LoggerFactory; 053 import org.deegree.framework.util.StringTools; 054 import org.deegree.ogcwebservices.getcapabilities.InvalidCapabilitiesException; 055 import org.deegree.ogcwebservices.wcs.configuration.InvalidConfigurationException; 056 import org.deegree.ogcwebservices.wcs.configuration.WCSConfiguration; 057 import org.xml.sax.SAXException; 058 059 /** 060 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a> 061 * @author last edited by: $Author: apoth $ 062 * 063 * @version $Revision: 9345 $, $Date: 2007-12-27 17:22:25 +0100 (Do, 27 Dez 2007) $ 064 * 065 * @todo Usage of {@link org.deegree.ogcwebservices.OGCServiceFaxctoy OGC service factory} 066 */ 067 068 public final class WCServiceFactory { 069 070 private static WCSConfiguration CONFIG; 071 072 private static final ILogger LOG = LoggerFactory.getLogger( WCServiceFactory.class ); 073 074 private WCServiceFactory() { 075 }; 076 077 /** 078 * 079 * @param config 080 * @return 081 */ 082 public static WCService getInstance( WCSConfiguration config ) { 083 return new WCService( config ); 084 } 085 086 /** 087 * 088 * @param wcsConfiguration 089 */ 090 public static void setConfiguration( WCSConfiguration wcsConfiguration ) { 091 CONFIG = wcsConfiguration; 092 // if service instance are already created 093 // destroy all instances 094 // create new service instances and put in pool 095 LOG.logInfo( StringTools.concat( 200, CONFIG.getService().getName(), " (", CONFIG.getVersion(), 096 ") service pool initialized." ) ); 097 } 098 099 /** 100 * 101 * @param serviceConfigurationUrl 102 * @throws InvalidConfigurationException 103 */ 104 public static void setConfiguration( URL serviceConfigurationUrl ) 105 throws InvalidConfigurationException { 106 try { 107 WCServiceFactory.setConfiguration( WCSConfiguration.create( serviceConfigurationUrl ) ); 108 } catch ( InvalidCapabilitiesException e ) { 109 LOG.logError( e.getMessage(), e ); 110 throw new InvalidConfigurationException( "WCSServiceFactory", e.getMessage() ); 111 } catch ( IOException e ) { 112 LOG.logError( e.getMessage(), e ); 113 throw new InvalidConfigurationException( "WCSServiceFactory", e.getMessage() ); 114 } catch ( SAXException e ) { 115 LOG.logError( e.getMessage(), e ); 116 throw new InvalidConfigurationException( "WCSServiceFactory", e.getMessage() ); 117 } 118 119 } 120 121 /** 122 * 123 * @return 124 * @todo 125 */ 126 public static WCService getService() { 127 return WCServiceFactory.getInstance( CONFIG ); 128 } 129 130 }