/*
*/
package org.geoserver.hibernate;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.NamespaceInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.catalog.impl.WorkspaceInfoImpl;
import org.geoserver.config.GeoServer;
import org.geoserver.config.GeoServerInfo;
import org.geoserver.config.JAIInfo;
import org.geoserver.services.hibernate.beans.GMLInfoImplHb;
import org.geoserver.wcs.WCSInfoImpl;
import org.geoserver.wfs.GMLInfo;
import org.geoserver.wfs.WFSInfo;
import org.geoserver.wfs.GMLInfo.SrsNameStyle;
import org.geoserver.wfs.WFSInfoImpl;
import org.geoserver.wms.WMSInfoImpl;
import org.geoserver.wms.WatermarkInfo;
import org.geoserver.wms.WatermarkInfoImpl;
/**
*
* @author ETj <etj at geo-solutions.it>
*/
public class HibBootstrapper {
private Catalog resourceCatalog;
private GeoServer serviceCatalog;
public HibBootstrapper(Catalog resourceCatalog, GeoServer serviceCatalog) {
this.resourceCatalog = resourceCatalog;
this.serviceCatalog = serviceCatalog;
}
public GeoServerInfo createBaseObjects() {
GeoServerInfo geoserver = createDefaultGeoServer();
createDefaultServices(geoserver);
// NamespaceInfo defaultNameSpace = createDefaultNamespace();
// WorkspaceInfo defaultWs = createDefaultWorkspace();
return geoserver;
}
public NamespaceInfo createDefaultNamespace() {
NamespaceInfo ns = resourceCatalog.getFactory().createNamespace();
ns.setPrefix("nurc");
ns.setURI("http://www.nurc.nato.int");
resourceCatalog.add(ns);
resourceCatalog.setDefaultNamespace(ns);
return ns;
}
public WorkspaceInfo createDefaultWorkspace() {
WorkspaceInfoImpl ws = (WorkspaceInfoImpl) resourceCatalog.getFactory()
.createWorkspace();
ws.setDefault(Boolean.TRUE);
ws.setName("nurc");
resourceCatalog.add(ws);
resourceCatalog.setDefaultWorkspace(ws);
return ws;
}
public GeoServerInfo createDefaultGeoServer() {
GeoServerInfo geoserver;
geoserver = this.serviceCatalog.getFactory().createGlobal();
geoserver.setContact(this.serviceCatalog.getFactory().createContact());
geoserver.setNumDecimals(8);
geoserver.setVerbose(false);
geoserver.setVerboseExceptions(false);
// jai
JAIInfo jai = serviceCatalog.getFactory().createJAI();
jai.setMemoryCapacity((Double) 0.5);
jai.setMemoryThreshold((Double) 0.75);
jai.setTileThreads((Integer) 5);
jai.setTilePriority((Integer) 5);
jai.setImageIOCache((Boolean) false);
jai.setJpegAcceleration((Boolean) false);
jai.setPngAcceleration((Boolean) false);
jai.setRecycling((Boolean) false);
jai.setAllowNativeMosaic(false);
geoserver.setJAI(jai);
serviceCatalog.setGlobal(geoserver);
return geoserver;
}
private void createDefaultServices(GeoServerInfo geoserver) {
WFSInfoImpl wfs = new WFSInfoImpl();
wfs.setId("wfs");
wfs.setName("wfs");
wfs.setTitle("Test WFS");
wfs.setEnabled(true);
wfs.setServiceLevel(WFSInfo.ServiceLevel.COMPLETE);
// gml2
GMLInfo gml = new GMLInfoImplHb();
gml.setSrsNameStyle(SrsNameStyle.NORMAL);
wfs.getGML().put(WFSInfo.Version.V_10, gml);
// gml3
gml = new GMLInfoImplHb();
gml.setSrsNameStyle(SrsNameStyle.URN);
wfs.getGML().put(WFSInfo.Version.V_11, gml);
wfs.setGeoServer(serviceCatalog);
this.serviceCatalog.add(wfs);
WMSInfoImpl wms = new WMSInfoImpl();
wms.setName("wms");
wms.setId("wms");
wms.setTitle("Test WMS");
wms.setEnabled(true);
WatermarkInfo wm = new WatermarkInfoImpl();
wm.setEnabled(false);
wm.setPosition(WatermarkInfo.Position.BOT_RIGHT);
wms.setWatermark(wm);
wms.setGeoServer(serviceCatalog);
this.serviceCatalog.add(wms);
WCSInfoImpl wcs = new WCSInfoImpl();
wcs.setId("wcs");
wcs.setName("wcs");
wcs.setTitle("Test WCS");
wcs.setEnabled(true);
wcs.setGeoServer(serviceCatalog);
this.serviceCatalog.add(wcs);
}
public void setCatalog(Catalog catalog) {
this.resourceCatalog = catalog;
}
public void setGeoServer(GeoServer geoServer) {
this.serviceCatalog = geoServer;
}
}