Dennis Kao
2013-08-08 bbaf4ed875548c854622b55a177c8d35ab9238dc
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 {