From bbaf4ed875548c854622b55a177c8d35ab9238dc Mon Sep 17 00:00:00 2001 From: Dennis Kao <ulysseskao@ximple.com.tw> Date: Thu, 08 Aug 2013 18:00:49 +0800 Subject: [PATCH] geoserver layer setting --- xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml | 6 +- xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/rest/GeoManagerEncoderTest.java | 50 +++++++++++++++++++++--- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java | 57 +++++++++++++--------------- 3 files changed, 72 insertions(+), 41 deletions(-) diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml index 966d32c..fdeaa03 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml @@ -37,11 +37,11 @@ </entry> <entry> <key>PGHOST</key> - <value>10.10.1.6</value> + <value>192.168.11.99</value> </entry> <entry> <key>PGDATBASE</key> - <value>pgNSTPC</value> + <value>pgNNTPC</value> </entry> <entry> <key>PGPORT</key> @@ -130,7 +130,7 @@ </entry> <entry> <key>GEOSERVER_URL</key> - <value>http://10.10.1.6:8080/geoserver</value> + <value>http://www.ximple.com.tw/geoserver</value> </entry> <entry> <key>GEOSERVER_USER</key> diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java index 2246470..27143a7 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java @@ -13,6 +13,7 @@ import it.geosolutions.geoserver.rest.decoder.utils.NameLinkElem; import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; import it.geosolutions.geoserver.rest.encoder.GSLayerGroupEncoder; +import it.geosolutions.geoserver.rest.encoder.GSLayerGroupEncoder23; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.datastore.GSPostGISDatastoreEncoder; import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder; @@ -24,6 +25,7 @@ import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; import org.geotools.geometry.GeneralEnvelope; +import org.jdom.Element; import org.opengis.feature.type.FeatureType; import org.opengis.feature.type.GeometryDescriptor; import org.quartz.JobDataMap; @@ -528,21 +530,19 @@ } XGeosDataConfig xgeosConfig = (XGeosDataConfig) value; - StringBuilder sbFullName = new StringBuilder(namespace); - sbFullName.append(':'); - StringBuilder sbLayerName = new StringBuilder(namespace); + sbLayerName.append(':'); sbLayerName.append("fsc-"); sbLayerName.append(xgeosConfig.getFSC()).append("-c"); sbLayerName.append(xgeosConfig.getCOMP()).append("-l"); sbLayerName.append(xgeosConfig.getLEV()).append("-w"); sbLayerName.append(xgeosConfig.getWEIGHT()); + String layerName = sbLayerName.toString(); + sbLayers.append(layerName); if (lgEncoder != null) { lgEncoder.addLayer(layerName); } - sbFullName.append(layerName); - sbLayers.append(sbFullName.toString()); } return sbLayers.toString(); @@ -585,16 +585,8 @@ return; } - Set<String> styles = new TreeSet<String>(); - RESTStyleList styleList = reader.getStyles(); - for (NameLinkElem style : styleList) { - styles.add(style.getName()); - } - RESTLayerList layers = reader.getLayers(); - for (NameLinkElem layer : layers) { - layer.getName(); - } - // Map styles = dataConfig.getStyles(); + List<String> styleList = reader.getStyles().getNames(); + Set<String> styles = new TreeSet<String>(styleList); XGeosDataConfigMapping mapping = getConfigMapping(); HashMap<String, String> defaultStyles = buildDefaultStylesMapping(mapping); @@ -817,13 +809,7 @@ GeoServerRESTReader reader = manager.getReader(); GeoServerRESTPublisher publisher = manager.getPublisher(); - RESTLayerList layers = reader.getLayers(); - - ArrayList<String> baseMapNames = new ArrayList<String>(); - for (NameLinkElem elm : layers) { - baseMapNames.add(elm.getName()); - } - + List<String> baseMapNames = reader.getLayers().getNames(); XGeosDataConfigMapping configMapping = getConfigMapping(); if (configMapping.getMapping().isEmpty()) { logger.warn("XGeosDataConfigMapping is empty! Pleace check XGeosDataConfig file."); @@ -853,14 +839,27 @@ for (Object key : defaultMapNames) { List configs = (List) configMapping.getMapping().get(key); - GSLayerGroupEncoder lge = new GSLayerGroupEncoder(); + GSLayerGroupEncoder lge = new GSLayerGroupEncoder23() { + @Override + protected void addToRoot(Element... elements) { + for (Element e : elements) { + if (e != null) { + getRoot().addContent(e.cloneContent()); + } + } + } + }; + lge.setBounds("EPSG:3826",293838.061931726,2758423.49415501,311845.457747425,2768966.72993585); String defaultLayerNames = buildDefaultWMSLayerNames(DEFAULT_NAMESPACE, configs, lge); logger.info(key + ":" + defaultLayerNames); + logger.info(lge.toString()); // wmsConfig.getBaseMapLayers().put(key, defaultLayerNames); String layerGroupName = key.toString(); RESTLayerGroup layerGroup = reader.getLayerGroup(DEFAULT_NAMESPACE, layerGroupName); if (layerGroup == null) { - publisher.createLayerGroup(DEFAULT_NAMESPACE, layerGroupName, lge); + if (!publisher.createLayerGroup(DEFAULT_NAMESPACE, layerGroupName, lge)) { + logger.warn("Cannot create layergroups:" + layerGroupName + "-" + lge.toString()); + } } else { publisher.configureLayerGroup(DEFAULT_NAMESPACE, layerGroupName, lge); @@ -876,14 +875,10 @@ } GeoServerRESTReader reader = manager.getReader(); - RESTLayerList layers = reader.getLayers(); - + List<String> layernames = reader.getLayers().getNames(); + ArrayList<String> baseMapNames = new ArrayList<String>(layernames); // Map baseMapLayers = wmsConfig.getBaseMapLayers(); // Map baseMapEnvelopes = wmsConfig.getBaseMapEnvelopes(); - ArrayList<String> baseMapNames = new ArrayList<String>(); - for (NameLinkElem elm : layers) { - baseMapNames.add(elm.getName()); - } for (Object key : baseMapNames) { String baseMapTitle = (String) key; @@ -894,7 +889,7 @@ // String baseLayersValue = (String) wmsConfig.getBaseMapLayers().get(baseMapTitle); RESTLayerGroup layerGroup = reader.getLayerGroup(DEFAULT_NAMESPACE, baseMapTitle); String baseLayersValue = layerGroup.getName(); - String[] layerNames = null; + String[] layerNames = null; if (baseLayersValue != null) { layerNames = baseLayersValue.split(","); } else { diff --git a/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/rest/GeoManagerEncoderTest.java b/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/rest/GeoManagerEncoderTest.java index 0f6111c..45305a0 100644 --- a/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/rest/GeoManagerEncoderTest.java +++ b/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/rest/GeoManagerEncoderTest.java @@ -1,11 +1,47 @@ package com.ximple.eofms.rest; -/** - * Created with IntelliJ IDEA. - * User: ulysseskao - * Date: 2013/8/8 - * Time: 下午 2:18 - * To change this template use File | Settings | File Templates. - */ +import it.geosolutions.geoserver.rest.encoder.GSLayerGroupEncoder; +import it.geosolutions.geoserver.rest.encoder.GSLayerGroupEncoder23; +import org.jdom.Element; +import org.testng.annotations.Test; + public class GeoManagerEncoderTest { + @Test + public void testLaterGroupEncoder() { + String a = "pgCLS:xtpc:fsc-203-c1-l37-w1,xtpc:fsc-203-c0-l38-w1,xtpc:fsc-203-c1-l38-w1,xtpc:fsc-203-c0-l37-w1,xtpc:fsc-311-c1-l45-w1,xtpc:fsc-311-c1-l45-w0,xtpc:fsc-311-c0-l45-w1,xtpc:fsc-501-c0-l1-w0,xtpc:fsc-501-c1-l2-w0,xtpc:fsc-502-c0-l1-w1,xtpc:fsc-502-c1-l2-w1,xtpc:fsc-503-c0-l1-w2,xtpc:fsc-999-c0-l62-w1"; + GSLayerGroupEncoder groupWriter = new GSLayerGroupEncoder23() { + + @Override + protected void addToRoot(Element... elements) { + for (Element e : elements) { + if (e != null) { + getRoot().addContent(e.cloneContent()); + } + } + } + }; + groupWriter.addLayer("xtpc:fsc-203-c1-l37-w1"); + groupWriter.addLayer("xtpc:fsc-203-c0-l38-w1"); + groupWriter.addLayer("xtpc:fsc-203-c1-l38-w1"); + groupWriter.addLayer("xtpc:fsc-203-c0-l37-w1"); + groupWriter.addLayer("xtpc:fsc-311-c1-l45-w1"); + groupWriter.addLayer("xtpc:fsc-311-c1-l45-w0"); + groupWriter.addLayer("xtpc:fsc-311-c0-l45-w1"); + groupWriter.addLayer("xtpc:fsc-501-c0-l1-w0"); + groupWriter.addLayer("xtpc:fsc-501-c1-l2-w0"); + groupWriter.addLayer("xtpc:fsc-502-c0-l1-w1"); + groupWriter.addLayer("xtpc:fsc-502-c1-l2-w"); + groupWriter.addLayer("xtpc:fsc-503-c0-l1-w2"); + groupWriter.addLayer("xtpc:fsc-999-c0-l62-w1"); + String s = groupWriter.toString(); + System.out.println(s); + } + + @Test + public void testLaterGroupEncoder23() { + String a = "pgCLS:xtpc:fsc-203-c1-l37-w1,xtpc:fsc-203-c0-l38-w1,xtpc:fsc-203-c1-l38-w1,xtpc:fsc-203-c0-l37-w1,xtpc:fsc-311-c1-l45-w1,xtpc:fsc-311-c1-l45-w0,xtpc:fsc-311-c0-l45-w1,xtpc:fsc-501-c0-l1-w0,xtpc:fsc-501-c1-l2-w0,xtpc:fsc-502-c0-l1-w1,xtpc:fsc-502-c1-l2-w1,xtpc:fsc-503-c0-l1-w2,xtpc:fsc-999-c0-l62-w1"; + GSLayerGroupEncoder23 groupWriter = new GSLayerGroupEncoder23(); + groupWriter.addLayer("topp:boundaries"); + String s = groupWriter.toString(); + } } -- Gitblit v0.0.0-SNAPSHOT