diff --git a/pom.xml b/pom.xml index 8971923..96f074f 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ it.geosolutions geoserver-manager - 1.2-SNAPSHOT + 1.3-SNAPSHOT jar diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java index 0c71858..bbbe0b1 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTPublisher.java @@ -602,6 +602,7 @@ public class GeoServerRESTPublisher { public RESTCoverageStore createExternaMosaicDatastore(String workspace, String storeName, File mosaicDir, ParameterConfigure configure, ParameterUpdate update) throws FileNotFoundException { + /* * Carlo (23 Nov 2011): * commented out since this directory should be readable by targhet GeoServer diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/GSResourceEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/GSResourceEncoder.java index ee7920c..99e6284 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/GSResourceEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/GSResourceEncoder.java @@ -26,11 +26,12 @@ package it.geosolutions.geoserver.rest.encoder; import it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoder; -import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureDimensionInfoEncoder; import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; -import it.geosolutions.geoserver.rest.encoder.metadata.GSMetadataEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.utils.NestedElementEncoder; import it.geosolutions.geoserver.rest.encoder.utils.PropertyXMLEncoder; +import it.geosolutions.geoserver.rest.encoder.utils.XmlElement; import org.jdom.Element; import org.jdom.filter.Filter; @@ -46,12 +47,20 @@ import org.jdom.filter.Filter; * @author ETj (etj at geo-solutions.it) * @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it */ -public abstract class GSResourceEncoder +public abstract class GSResourceEncoder extends PropertyXMLEncoder { - private final static String NAME = "name"; + public final static String NAME = "name"; + public final static String METADATA="metadata"; + public final static String KEYWORDS="keywords"; - final private GSMetadataEncoder metadata = new GSMetadataEncoder(); - final private Element keywordsListEncoder = new Element("keywords"); + final private GSMetadataEncoder metadata = new GSMetadataEncoder(); + final private Element keywordsListEncoder = new Element(KEYWORDS); + + private class GSMetadataEncoder extends NestedElementEncoder{ + public GSMetadataEncoder() { + super(METADATA); + } + } /** * @param rootName @@ -72,15 +81,25 @@ public abstract class GSResourceEncoder set("enabled", (enabled) ? "true" : "false"); } + // TODO MetadataLink +// public void setMetadata(String key, String url){ +// metadata.set(key, url); +// } + /** * @param key * @param dimensionInfo * @deprecated will be set to protected in the next release */ - public void addMetadata(String key, T dimensionInfo) { + protected void addMetadata(String key, XmlElement dimensionInfo) { metadata.add(key, dimensionInfo.getRoot()); } + protected void setMetadata(String key, XmlElement dimensionInfo) { + metadata.set(key, dimensionInfo.getRoot()); + } + + /** * @param key * the name of the metadata to add (f.e.: elevation, time) @@ -90,9 +109,6 @@ public abstract class GSResourceEncoder return metadata.remove(key); } - public void setMetadata(String key, T dimensionInfo) { - metadata.set(key, dimensionInfo.getRoot()); - } public void addKeyword(String keyword) { final Element el = new Element("string"); diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java index 714f380..2224020 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoder.java @@ -27,6 +27,7 @@ package it.geosolutions.geoserver.rest.encoder.coverage; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; /** @@ -36,10 +37,22 @@ import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; * @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it * */ -public class GSCoverageEncoder extends GSResourceEncoder { +public class GSCoverageEncoder extends GSResourceEncoder/**/ { public GSCoverageEncoder() { super("coverage"); } + /** + * @param key + * @param dimensionInfo + * @deprecated will be set to protected in the next release + */ + public void addMetadata(String key, GSDimensionInfoEncoder dimensionInfo) { + super.addMetadata(key, dimensionInfo); + } + + public void setMetadata(String key, GSDimensionInfoEncoder dimensionInfo) { + super.setMetadata(key, dimensionInfo); + } } diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoder.java deleted file mode 100644 index b3d5431..0000000 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoder.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * GeoServer-Manager - Simple Manager Library for GeoServer - * - * Copyright (C) 2007,2011 GeoSolutions S.A.S. - * http://www.geo-solutions.it - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package it.geosolutions.geoserver.rest.encoder.feature; - -import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; - -public class GSFeatureDimensionInfoEncoder extends GSDimensionInfoEncoder { - public final static String ATTRIBUTE="attribute"; - - /** - * if this dimension is enabled this constructor should be called. - * @param attribute the attribute field name to use as dimension - */ - public GSFeatureDimensionInfoEncoder(final String attribute){ - super(true); - add(ATTRIBUTE, attribute); - } - - /** - * Change the attribute used as dimension - * @param attribute the attribute to use as dimension - */ - public void setAttribute(final String attribute){ - set(ATTRIBUTE, attribute); - } - - - -} diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureTypeEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureTypeEncoder.java index ff94c09..ac4df51 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureTypeEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureTypeEncoder.java @@ -25,7 +25,11 @@ package it.geosolutions.geoserver.rest.encoder.feature; +import java.net.URL; + import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.utils.XmlElement; /** * @@ -34,9 +38,22 @@ import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; * @author ETj (etj at geo-solutions.it) * @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it */ -public class GSFeatureTypeEncoder extends GSResourceEncoder { +public class GSFeatureTypeEncoder extends GSResourceEncoder/**/ { public GSFeatureTypeEncoder() { super("featureType"); } + + /** + * @param key + * @param dimensionInfo + * @deprecated will be set to protected in the next release + */ + public void addMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) { + super.addMetadata(key, dimensionInfo); + } + + public void setMetadata(String key, GSFeatureDimensionInfoEncoder dimensionInfo) { + super.setMetadata(key, dimensionInfo); + } } \ No newline at end of file diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/metadata/GSMetadataEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/metadata/GSMetadataEncoder.java deleted file mode 100644 index 54e1501..0000000 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/metadata/GSMetadataEncoder.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * GeoServer-Manager - Simple Manager Library for GeoServer - * - * Copyright (C) 2007,2011 GeoSolutions S.A.S. - * http://www.geo-solutions.it - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package it.geosolutions.geoserver.rest.encoder.metadata; - -import it.geosolutions.geoserver.rest.encoder.utils.NestedElementEncoder; - -public class GSMetadataEncoder extends NestedElementEncoder{ - - public final static String METADATA="metadata"; - - public GSMetadataEncoder() { - super(METADATA); - } - -// public void addMetadata(final String key, final T value) { -// this.add(key, value.getRoot()); -// } - -} diff --git a/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/NestedElementEncoder.java b/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/NestedElementEncoder.java index 57c51c5..aaf97d8 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/NestedElementEncoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/encoder/utils/NestedElementEncoder.java @@ -28,7 +28,6 @@ package it.geosolutions.geoserver.rest.encoder.utils; import java.util.Iterator; import java.util.List; -import org.jdom.Content; import org.jdom.Element; import org.jdom.filter.Filter; diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/GSWorkspaceEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/GSWorkspaceEncoderTest.java index 46a66f2..ada117e 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/GSWorkspaceEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/GSWorkspaceEncoderTest.java @@ -22,7 +22,6 @@ package it.geosolutions.geoserver.rest.encoder; import junit.framework.TestCase; import org.apache.log4j.Logger; -import org.junit.Assert; import org.junit.Test; /** diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java index e63e1df..a313149 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSCoverageEncoderTest.java @@ -21,9 +21,7 @@ package it.geosolutions.geoserver.rest.encoder.coverage; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder.ProjectionPolicy; -import it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; -import it.geosolutions.geoserver.rest.encoder.metadata.GSMetadataEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.Presentation; import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils; import junit.framework.TestCase; @@ -52,7 +50,7 @@ public class GSCoverageEncoderTest extends TestCase { */ @Test public void testReprojection(){ - GSResourceEncoder re=new GSCoverageEncoder(); + GSResourceEncoder/**/ re=new GSCoverageEncoder(); re.setProjectionPolicy(ProjectionPolicy.FORCE_DECLARED); Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"projectionPolicy",ProjectionPolicy.FORCE_DECLARED.toString())); @@ -67,7 +65,7 @@ public class GSCoverageEncoderTest extends TestCase { */ @Test public void testBB(){ - GSResourceEncoder re=new GSCoverageEncoder(); + GSResourceEncoder/**/ re=new GSCoverageEncoder(); re.setLatLonBoundingBox(-180d, 90d, 180d, -90d, null); Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"minx","-180.0")); @@ -93,7 +91,7 @@ public class GSCoverageEncoderTest extends TestCase { if (LOGGER.isInfoEnabled()) LOGGER.info(encoder.toString()); - final Element el=ElementUtils.contains(encoder.getRoot(),GSMetadataEncoder.METADATA); + final Element el=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA); Assert.assertNotNull(el); LOGGER.info("contains_key:"+el.toString()); @@ -112,7 +110,7 @@ public class GSCoverageEncoderTest extends TestCase { if (LOGGER.isInfoEnabled()) LOGGER.info(encoder.toString()); - final Element el3=ElementUtils.contains(encoder.getRoot(),GSMetadataEncoder.METADATA); + final Element el3=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA); Assert.assertNotNull(el3); LOGGER.info("contains_by_node:"+el3.toString()); @@ -120,7 +118,7 @@ public class GSCoverageEncoderTest extends TestCase { LOGGER.info("remove:"+removed); Assert.assertTrue(removed); - final Element el4=ElementUtils.contains(encoder.getRoot(),GSMetadataEncoder.METADATA); + final Element el4=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA); Assert.assertNull(el4); if (el4==null) LOGGER.info("REMOVED"); diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSImageMosaicEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSImageMosaicEncoderTest.java index 6e4190d..d028168 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSImageMosaicEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/coverage/GSImageMosaicEncoderTest.java @@ -38,6 +38,9 @@ public class GSImageMosaicEncoderTest extends TestCase { */ protected final static Logger LOGGER = Logger.getLogger(GSImageMosaicEncoderTest.class); + /** + * TODO implement this test + */ @Test public void testAll() { final GSImageMosaicEncoder encoder=new GSImageMosaicEncoder(); @@ -51,11 +54,5 @@ public class GSImageMosaicEncoderTest extends TestCase { encoder.addSUGGESTED_TILE_SIZE("512,512"); - - - - - - } } diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoderTest.java index c1c15a2..d9f192a 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureDimensionInfoEncoderTest.java @@ -1,6 +1,7 @@ package it.geosolutions.geoserver.rest.encoder.feature; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.Presentation; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.PresentationDiscrete; import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils; diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java index fcd92ce..36245a6 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java @@ -19,20 +19,19 @@ */ package it.geosolutions.geoserver.rest.encoder.feature; +import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.Presentation; import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.PresentationDiscrete; -import it.geosolutions.geoserver.rest.encoder.metadata.GSMetadataEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils; import java.math.BigDecimal; -import java.util.List; import junit.framework.TestCase; import org.apache.log4j.Logger; import org.jdom.Element; -import org.jdom.filter.Filter; import org.junit.Assert; import org.junit.Test; @@ -90,7 +89,7 @@ public class GSFeatureEncoderTest extends TestCase { el=ElementUtils.contains(encoder.getRoot(),GSDimensionInfoEncoder.RESOLUTION); Assert.assertNull(el); - el=ElementUtils.contains(encoder.getRoot(),GSMetadataEncoder.METADATA); + el=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA); Assert.assertNotNull(el); LOGGER.info("contains_key:"+el.toString());