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