diff --git a/geoportal_1/src/main/java/org/geotools/data/store/ContentFeatureStore.java b/geoportal_1/src/main/java/org/geotools/data/store/ContentFeatureStore.java
new file mode 100644
index 0000000..5f18350
--- /dev/null
+++ b/geoportal_1/src/main/java/org/geotools/data/store/ContentFeatureStore.java
@@ -0,0 +1,463 @@
+/*
+ * GeoTools - The Open Source Java GIS Toolkit
+ * http://geotools.org
+ *
+ * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+package org.geotools.data.store;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.geotools.data.FeatureLocking;
+import org.geotools.data.FeatureReader;
+import org.geotools.data.FeatureWriter;
+import org.geotools.data.FilteringFeatureWriter;
+import org.geotools.data.InProcessLockingManager;
+import org.geotools.data.LockingManager;
+import org.geotools.data.Query;
+import org.geotools.data.Transaction;
+import org.geotools.data.simple.SimpleFeatureCollection;
+import org.geotools.data.simple.SimpleFeatureStore;
+import org.geotools.factory.Hints;
+import org.geotools.feature.FeatureCollection;
+import org.geotools.feature.FeatureIterator;
+import org.geotools.feature.NameImpl;
+import org.geotools.filter.identity.FeatureIdImpl;
+import org.opengis.feature.simple.SimpleFeature;
+import org.opengis.feature.simple.SimpleFeatureType;
+import org.opengis.feature.type.AttributeDescriptor;
+import org.opengis.feature.type.Name;
+import org.opengis.filter.Filter;
+import org.opengis.filter.identity.FeatureId;
+
+/**
+ * Abstract implementation of FeatureStore.
+ *
+ * List its base class {@link ContentFeatureSource}, this feature store works off
+ * of operations provided by {@link FeatureCollection}.
+ *
+ *
+ * The {@link #addFeatures(SimpleFeatureCollection)} method is used to add features to
+ * the feature store. The method should return the "persistent" feature id's
+ * which are generated after the feature has been added to persistent storage.
+ * Often the persistent fid is different from the fid specified by the actual
+ * feature being inserted. For this reason {@link SimpleFeature#getUserData()} is
+ * used to report back persistent fids. It is up to the implementor of the
+ * feature collection to report this value back after a feature has been inserted.
+ * As an example, consider an implementation of {@link FeatureCollection#add(Object)}.
+ *
+ * boolean add( Object o ) {
+ * SimpleFeature feature = (SimpleFeature) o;
+ *
+ * //1.add the feature to storage
+ * ...
+ *
+ * //2. derive the persistent fid
+ * String fid = ...;
+ *
+ * //3. set the user data
+ * feature.getUserData().put( "fid", fid );
+ *
+ * }
+ *
+ *
+ *
+ * @author Justin Deoliveira, The Open Planning Project
+ *
+ *
+ *
+ *
+ * @source $URL$
+ */
+public abstract class ContentFeatureStore extends ContentFeatureSource implements
+ SimpleFeatureStore,
+ FeatureLocking {
+
+ /**
+ * writer flags
+ */
+ protected final int WRITER_ADD = ContentDataStore.WRITER_ADD;
+ protected final int WRITER_UPDATE = ContentDataStore.WRITER_UPDATE;
+
+ /**
+ * Creates the content feature store.
+ *
+ * @param entry The entry for the feature store.
+ * @param query The defining query.
+ */
+ public ContentFeatureStore(ContentEntry entry,Query query) {
+ super(entry,query);
+ }
+
+ /**
+ * Returns a writer over features specified by a filter.
+ *
+ * @param filter The filter
+ */
+ public final FeatureWriter getWriter( Filter filter ) throws IOException {
+ return getWriter( filter, WRITER_ADD | WRITER_UPDATE );
+ }
+
+ /**
+ * Returns a writer over features specified by a filter.
+ *
+ * @param filter The filter
+ * @param flags flags specifying writing mode
+ */
+ public final FeatureWriter getWriter( Filter filter, int flags ) throws IOException {
+ return getWriter( new Query( getSchema().getTypeName(), filter ), flags );
+ }
+
+ /**
+ * Returns a writer over features specified by a query.
+ *
+ * @param query The query
+ */
+ public final FeatureWriter getWriter( Query query ) throws IOException {
+ return getWriter( query, WRITER_ADD | WRITER_UPDATE );
+ }
+
+ /**
+ * Returns a writer over features specified by a query.
+ *
+ * @param query The query
+ * @param flags flags specifying writing mode
+ */
+ public final FeatureWriter getWriter( Query query, int flags ) throws IOException {
+ query = joinQuery( query );
+ query = resolvePropertyNames(query);
+
+ FeatureWriter writer;
+
+ if (!canTransact() && transaction != null && transaction != Transaction.AUTO_COMMIT) {
+ DiffTransactionState state = (DiffTransactionState) getTransaction().getState(getEntry());
+ FeatureReader reader = getReader(query);
+ writer = new DiffContentFeatureWriter(this, state.getDiff(), reader);
+ } else {
+ writer = getWriterInternal(query, flags);
+
+ // events
+ if (canTransact() && !canEvent()){
+ writer = new EventContentFeatureWriter(this, writer );
+ }
+ // filtering
+ if (!canFilter()) {
+ if (query.getFilter() != null && query.getFilter() != Filter.INCLUDE) {
+ writer = new FilteringFeatureWriter(writer, query.getFilter());
+ }
+ }
+
+ // Use InProcessLockingManager to assert write locks?
+ if (!canLock()) {
+ LockingManager lockingManager = getDataStore().getLockingManager();
+ writer = ((InProcessLockingManager) lockingManager).checkedWriter(writer,
+ transaction);
+ }
+ }
+
+ // Finished
+ return writer;
+ }
+
+ /**
+ *
+ * Subclass method for returning a native writer from the datastore.
+ *
+ * It is important to note that if the native writer intends to handle any
+ * of the following natively:
+ *
+ * - reprojection
+ * - filtering
+ * - max feature limiting
+ * - sorting
-
+ *
- locking
-
+ *
+ * Then it *must* set the corresponding flags to true:
+ *
+ * - {@link #canReproject()}
+ * - {@link #canFilter()}
+ * - {@link #canLimit()}
+ * - {@link #canSort()}
-
+ *
- {@link #canLock()}
-
+ *
+ *
+ *
+ */
+ protected abstract FeatureWriter getWriterInternal( Query query, int flags )
+ throws IOException;
+
+ /**
+ * Adds a collection of features to the store.
+ *
+ * This method operates by getting an appending feature writer and writing
+ * all the features in collection to it. Directly after a feature
+ * is written its id is obtained and added to the returned set.
+ *
+ */
+ public List addFeatures(Collection collection)
+ throws IOException {
+
+ // gather up id's
+ List ids = new LinkedList();
+
+ FeatureWriter writer = getWriterAppend();
+ try {
+ for ( Iterator f = collection.iterator(); f.hasNext(); ) {
+ FeatureId id = addFeature((SimpleFeature) f.next(), writer);
+ ids.add( id );
+ }
+ } finally {
+ writer.close();
+ }
+
+ return ids;
+ }
+
+ /**
+ * Adds a collection of features to the store.
+ *
+ * This method calls through to {@link #addFeatures(Collection)}.
+ *
+ * @param featureCollection
+ */
+ public List addFeatures(FeatureCollection featureCollection)
+ throws IOException {
+ // gather up id's
+ List ids = new LinkedList();
+
+ FeatureWriter writer = getWriterAppend();
+ FeatureIterator f = featureCollection.features();
+ try {
+ while (f.hasNext()) {
+ SimpleFeature feature = (SimpleFeature) f.next();
+ FeatureId id = addFeature(feature, writer);
+ ids.add( id );
+ }
+ } finally {
+ writer.close();
+ f.close();
+ }
+ return ids;
+ }
+
+ /**
+ * Utility method that ensures we are going to write only in append mode
+ * @return
+ * @throws IOException
+ */
+ private FeatureWriter getWriterAppend() throws IOException {
+ FeatureWriter writer = getWriter( Filter.INCLUDE, WRITER_ADD );
+ while(writer.hasNext()) {
+ writer.next();
+ }
+ return writer;
+ }
+
+ FeatureId addFeature(SimpleFeature feature, FeatureWriter writer) throws IOException {
+ // grab next feature and populate it
+ // JD: worth a note on how we do this... we take a "pull" approach
+ // because the raw schema we are inserting into may not match the
+ // schema of the features we are inserting
+ SimpleFeature toWrite = writer.next();
+ for ( int i = 0; i < toWrite.getType().getAttributeCount(); i++ ) {
+ String name = toWrite.getType().getDescriptor(i).getLocalName();
+ if (feature.getAttribute(name)!=null){
+ toWrite.setAttribute( name, feature.getAttribute(name));
+ }
+ else {
+ //Allen added a quick and dirty workaround for ArcGIS misshaped wfs response
+ if (feature.getAttribute("Shape")!=null && name.equals("the_geom")){
+ toWrite.setAttribute( name, feature.getAttribute("Shape"));
+ }
+ else{
+ toWrite.setAttribute( name, feature.getAttribute(name));
+ }
+ }
+
+ }
+
+ // copy over the user data
+ if(feature.getUserData().size() > 0) {
+ toWrite.getUserData().putAll(feature.getUserData());
+ }
+
+ // pass through the fid if the user asked so
+ boolean useExisting = Boolean.TRUE.equals(feature.getUserData().get(Hints.USE_PROVIDED_FID));
+ if(getQueryCapabilities().isUseProvidedFIDSupported() && useExisting) {
+ ((FeatureIdImpl) toWrite.getIdentifier()).setID(feature.getID());
+ }
+
+ //perform the write
+ writer.write();
+
+ // copy any metadata from the feature that was actually written
+ feature.getUserData().putAll( toWrite.getUserData() );
+
+ // add the id to the set of inserted
+ FeatureId id = toWrite.getIdentifier();
+ return id;
+ }
+
+ /**
+ * Sets the feature of the source.
+ *
+ * This method operates by first clearing the contents of the feature
+ * store ({@link #removeFeatures(Filter)}), and then obtaining an appending
+ * feature writer and writing all features from reader to it.
+ *
+ */
+ public final void setFeatures(FeatureReader reader) throws IOException {
+ //remove features
+ removeFeatures( Filter.INCLUDE );
+
+ //grab a feature writer for insert
+ FeatureWriter writer = getWriter( Filter.INCLUDE, WRITER_ADD );
+ try {
+ while( reader.hasNext() ) {
+ SimpleFeature feature = reader.next();
+
+ // grab next feature and populate it
+ // JD: worth a note on how we do this... we take a "pull" approach
+ // because the raw schema we are inserting into may not match the
+ // schema of the features we are inserting
+ SimpleFeature toWrite = writer.next();
+ for ( int i = 0; i < toWrite.getType().getAttributeCount(); i++ ) {
+ String name = toWrite.getType().getDescriptor(i).getLocalName();
+ toWrite.setAttribute( name, feature.getAttribute(name));
+ }
+
+ //perform the write
+ writer.write();
+ }
+ }
+ finally {
+ writer.close();
+ }
+ }
+
+ public void modifyFeatures(AttributeDescriptor[] type, Object[] value, Filter filter)
+ throws IOException {
+ Name attributeNames[] = new Name[ type.length ];
+ for( int i=0; i < type.length; i ++){
+ attributeNames[i] = type[i].getName();
+ }
+ modifyFeatures( attributeNames, value, filter );
+ }
+
+ /**
+ * Modifies/updates the features of the store which match the specified filter.
+ *
+ * This method operates by obtaining an updating feature writer based on the
+ * specified filter and writing the updated values to it.
+ *
+ *
+ * The filter must not be null, in this case this method
+ * will throw an {@link IllegalArgumentException}.
+ *
+ */
+ public void modifyFeatures(Name[] type, Object[] value, Filter filter)
+ throws IOException {
+ if ( filter == null ) {
+ String msg = "Must specify a filter, must not be null.";
+ throw new IllegalArgumentException( msg );
+ }
+ filter = resolvePropertyNames(filter);
+
+ //grab a feature writer
+ FeatureWriter writer = getWriter( filter, WRITER_UPDATE );
+ try {
+ while( writer.hasNext() ) {
+ SimpleFeature toWrite = writer.next();
+
+ for ( int i = 0; i < type.length; i++ ) {
+ toWrite.setAttribute( type[i], value[i] );
+ }
+
+ writer.write();
+ }
+
+ }
+ finally {
+ writer.close();
+ }
+ }
+
+ final public void modifyFeatures(String name, Object attributeValue, Filter filter)
+ throws IOException {
+ modifyFeatures(new Name[] { new NameImpl(name), }, new Object[] { attributeValue, }, filter);
+ }
+
+ final public void modifyFeatures(String[] names, Object[] values, Filter filter) throws IOException {
+ Name attributeNames[] = new Name[names.length];
+ for (int i = 0; i < names.length; i++) {
+ attributeNames[i] = new NameImpl(names[i]);
+ }
+ modifyFeatures(attributeNames, values, filter);
+ }
+
+ /**
+ * Calls through to {@link #modifyFeatures(Name[], Object[], Filter)}.
+ */
+ public final void modifyFeatures(AttributeDescriptor type, Object value, Filter filter)
+ throws IOException {
+
+ modifyFeatures( new Name[]{ type.getName() }, new Object[]{ value }, filter );
+ }
+
+ /**
+ * Calls through to {@link #modifyFeatures(Name[], Object[], Filter)}.
+ */
+ public final void modifyFeatures(Name name, Object value, Filter filter)
+ throws IOException {
+
+ modifyFeatures( new Name[]{ name }, new Object[]{ value }, filter );
+ }
+
+ /**
+ * Removes the features from the store which match the specified filter.
+ *
+ * This method operates by obtaining an updating feature writer based on
+ * the specified filter and removing every feature from it.
+ *
+ *
+ * The filter must not be null, in this case this method
+ * will throw an {@link IllegalArgumentException}.
+ *
+ */
+ public void removeFeatures(Filter filter) throws IOException {
+ if ( filter == null ) {
+ String msg = "Must specify a filter, must not be null.";
+ throw new IllegalArgumentException( msg );
+ }
+ filter = resolvePropertyNames(filter);
+
+ //grab a feature writer
+ FeatureWriter writer = getWriter( filter, WRITER_UPDATE );
+ try {
+ //remove everything
+ while( writer.hasNext() ) {
+ writer.next();
+ writer.remove();
+ }
+
+ }
+ finally {
+ writer.close();
+ }
+ }
+
+}
diff --git a/geoportal_1/src/main/java/org/geotools/data/wfs/v1_1_0/parsers/XmlSimpleFeatureParser.java b/geoportal_1/src/main/java/org/geotools/data/wfs/v1_1_0/parsers/XmlSimpleFeatureParser.java
new file mode 100644
index 0000000..6bcec98
--- /dev/null
+++ b/geoportal_1/src/main/java/org/geotools/data/wfs/v1_1_0/parsers/XmlSimpleFeatureParser.java
@@ -0,0 +1,801 @@
+/*
+ * GeoTools - The Open Source Java GIS Toolkit
+ * http://geotools.org
+ *
+ * (C) 2008, Open Source Geospatial Foundation (OSGeo)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ */
+package org.geotools.data.wfs.v1_1_0.parsers;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.logging.Logger;
+
+import javax.xml.namespace.QName;
+
+import org.geotools.data.DataSourceException;
+import org.geotools.data.wfs.protocol.wfs.GetFeatureParser;
+import org.geotools.data.wfs.protocol.wfs.WFSProtocol;
+import org.geotools.data.wfs.protocol.wfs.WFSResponse;
+import org.geotools.data.wfs.v1_1_0.WFS_1_1_0_DataStore;
+import org.geotools.feature.simple.SimpleFeatureBuilder;
+import org.geotools.gml3.GML;
+import org.geotools.referencing.CRS;
+import org.geotools.referencing.crs.DefaultGeographicCRS;
+import org.geotools.util.Converters;
+import org.geotools.util.logging.Logging;
+import org.geotools.wfs.WFS;
+import org.opengis.feature.simple.SimpleFeature;
+import org.opengis.feature.simple.SimpleFeatureType;
+import org.opengis.feature.type.AttributeDescriptor;
+import org.opengis.feature.type.AttributeType;
+import org.opengis.feature.type.GeometryType;
+import org.opengis.referencing.FactoryException;
+import org.opengis.referencing.NoSuchAuthorityCodeException;
+import org.opengis.referencing.crs.CoordinateReferenceSystem;
+import org.xmlpull.mxp1.MXParser;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.GeometryFactory;
+import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.LinearRing;
+import com.vividsolutions.jts.geom.MultiLineString;
+import com.vividsolutions.jts.geom.Point;
+import com.vividsolutions.jts.geom.Polygon;
+
+/**
+ * A {@link GetFeatureParser} implementation that uses plain xml pull to parse a GetFeature
+ * response.
+ *
+ * @author Gabriel Roldan (TOPP)
+ * @version $Id$
+ * @since 2.5.x
+ *
+ *
+ *
+ * @source $URL$
+ * http://svn.geotools.org/trunk/modules/plugin/wfs/src/main/java/org/geotools/wfs/v_1_1_0
+ * /data/XmlSimpleFeatureParser.java $ //@deprecated should be removed as long as
+ * {@link StreamingParserFeatureReader} works well
+ */
+@SuppressWarnings("nls")
+public class XmlSimpleFeatureParser implements GetFeatureParser {
+
+ private static final Logger LOGGER = Logging.getLogger("org.geotools.data.wfs");
+
+ private static final GeometryFactory geomFac = new GeometryFactory();
+
+ private static final String Placeholder_ArcgisServer_FeatureID = new String("Placeholder_AGS_FeatureId");
+
+ private InputStream inputStream;
+
+ private XmlPullParser parser;
+
+ private SimpleFeatureType targetType;
+
+ private SimpleFeatureBuilder builder;
+
+ private String featureNamespace;
+
+ final String featureName;
+
+ private final Map expectedProperties;
+
+ private int numberOfFeatures = -1;
+
+ private final String axisOrder;
+
+ public XmlSimpleFeatureParser(final InputStream getFeatureResponseStream,
+ final SimpleFeatureType targetType, QName featureDescriptorName,
+ String axisOrder, final Map mappedURIs)
+ throws IOException {
+ this.inputStream = getFeatureResponseStream;
+ this.featureNamespace = featureDescriptorName.getNamespaceURI();
+ if(mappedURIs.containsKey(this.featureNamespace)) {
+ this.featureNamespace = mappedURIs.get(this.featureNamespace);
+ }
+ this.featureName = featureDescriptorName.getLocalPart();
+ this.targetType = targetType;
+ this.builder = new SimpleFeatureBuilder(targetType);
+ this.axisOrder = axisOrder;
+
+ try {
+ // parse root element
+ parser = new MXParser();
+ parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
+ parser.setInput(inputStream, "UTF-8");
+ parser.nextTag();
+ parser.require(XmlPullParser.START_TAG, WFS.NAMESPACE, WFS.FeatureCollection
+ .getLocalPart());
+
+ String nof = parser.getAttributeValue(null, "numberOfFeatures");
+ if (nof != null) {
+ try {
+ this.numberOfFeatures = Integer.valueOf(nof);
+ } catch (NumberFormatException nfe) {
+ LOGGER.warning("Can't parse numberOfFeatures out of " + nof);
+ }
+ }
+ } catch (XmlPullParserException e) {
+ throw new DataSourceException(e);
+ }
+
+ // HACK! use a case insensitive set to compare the comming attribute names with the ones in
+ // the schema. Rationale being that the FGDC CubeWerx server has a missmatch in the case of
+ // property names between what it states in a DescribeFeatureType and in a GetFeature
+ // requests
+ expectedProperties = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ for (AttributeDescriptor desc : targetType.getAttributeDescriptors()) {
+ expectedProperties.put(desc.getLocalName(), desc);
+ }
+ }
+
+ public int getNumberOfFeatures() {
+ return numberOfFeatures;
+ }
+
+ public void close() throws IOException {
+ if (this.inputStream != null) {
+ try {
+ this.parser.setInput(null);
+ this.parser = null;
+ this.inputStream.close();
+ this.inputStream = null;
+ } catch (XmlPullParserException e) {
+ throw new DataSourceException(e);
+ }
+ }
+ }
+
+ public SimpleFeature parse() throws IOException {
+ String fid;
+ try {
+ fid = seekFeature();
+ if (fid == null) {
+ return null;
+ }
+ int tagType;
+ String tagNs;
+ String tagName;
+ Object attributeValue;
+ while (true) {
+ tagType = parser.next();
+ if (XmlPullParser.END_DOCUMENT == tagType) {
+ close();
+ return null;
+ }
+ tagNs = parser.getNamespace();
+ tagName = parser.getName();
+ if (XmlPullParser.END_TAG == tagType && featureNamespace.equals(tagNs)
+ && featureName.equals(tagName)) {
+ // found end of current feature
+ break;
+ }
+ if (XmlPullParser.START_TAG == tagType) {
+ AttributeDescriptor descriptor = expectedProperties.get(tagName);
+ if (descriptor != null) {
+ attributeValue = parseAttributeValue();
+
+ if ( isArcGISServerFeatureID(descriptor) && fid.equals(Placeholder_ArcgisServer_FeatureID)){
+ fid = attributeValue.toString();
+ }
+
+ builder.set(descriptor.getLocalName(), attributeValue);
+ }
+ }
+ }
+ } catch (XmlPullParserException e) {
+ throw new DataSourceException(e);
+ }
+ SimpleFeature feature = builder.buildFeature(fid);
+ return feature;
+ }
+
+ private Boolean isArcGISServerFeatureID(AttributeDescriptor descriptor){
+ if (descriptor.getName().toString().equals("FID")||descriptor.getName().toString().equals("OBJECTID")||descriptor.getName().toString().equals("OID")){
+ //Shapefile from ArcGIS Server GetFeatures request could have 3 types of unique id,
+ //depending on whether coming from a stand alone shapefile, feature class in geodatabase,
+ //or stand alone dBase Table.
+ return true;
+ }
+ else
+ return false;
+
+ }
+
+
+ /**
+ * Parses the value of the current attribute, parser cursor shall be on a feature attribute
+ * START_TAG event.
+ *
+ * @return
+ * @throws IOException
+ * @throws XmlPullParserException
+ * @throws FactoryException
+ * @throws NoSuchAuthorityCodeException
+ */
+ @SuppressWarnings("unchecked")
+ private Object parseAttributeValue() throws XmlPullParserException, IOException {
+ final String name = parser.getName();
+ final AttributeDescriptor attribute = expectedProperties.get(name);
+ final AttributeType type = attribute.getType();
+ Object parsedValue;
+ if (type instanceof GeometryType) {
+ parser.nextTag();
+ try {
+ parsedValue = parseGeom();
+ } catch (NoSuchAuthorityCodeException e) {
+ throw new DataSourceException(e);
+ } catch (FactoryException e) {
+ throw new DataSourceException(e);
+ }
+ } else {
+ String rawTextValue = parser.nextText();
+ Class binding = type.getBinding();
+ parsedValue = Converters.convert(rawTextValue, binding);
+ }
+ return parsedValue;
+ }
+
+ /**
+ *
+ * Precondition: parser cursor positioned on a geometry property (ej, {@code gml:Point}, etc)
+ *
+ *
+ * Postcondition: parser gets positioned at the end tag of the element it started parsing the
+ * geometry at
+ *
+ *
+ * @return
+ * @throws FactoryException
+ * @throws NoSuchAuthorityCodeException
+ * @throws IOException
+ * @throws XmlPullParserException
+ */
+ private Geometry parseGeom() throws NoSuchAuthorityCodeException, FactoryException,
+ XmlPullParserException, IOException {
+ final QName startingGeometryTagName = new QName(parser.getNamespace(), parser.getName());
+ int dimension = crsDimension(2);
+ CoordinateReferenceSystem crs = crs(DefaultGeographicCRS.WGS84);
+
+ Geometry geom;
+ if (GML.Point.equals(startingGeometryTagName)) {
+ geom = parsePoint(dimension, crs);
+ } else if (GML.LineString.equals(startingGeometryTagName)) {
+ geom = parseLineString(dimension, crs);
+ } else if (GML.Polygon.equals(startingGeometryTagName)) {
+ geom = parsePolygon(dimension, crs);
+ } else if (GML.MultiPoint.equals(startingGeometryTagName)) {
+ geom = parseMultiPoint(dimension, crs);
+ } else if (GML.MultiLineString.equals(startingGeometryTagName)) {
+ geom = parseMultiLineString(dimension, crs);
+ } else if (GML.MultiSurface.equals(startingGeometryTagName)) {
+ geom = parseMultiSurface(dimension, crs);
+ } else if (GML.MultiCurve.equals(startingGeometryTagName)) {
+ geom = parseMultiCurve(dimension, crs);
+ } else if (GML.MultiPolygon.equals(startingGeometryTagName)) {
+ geom = parseMultiPolygon(dimension, crs);
+ } else {
+ throw new IllegalStateException("Unrecognized geometry element "
+ + startingGeometryTagName);
+ }
+
+ parser.require(XmlPullParser.END_TAG, startingGeometryTagName.getNamespaceURI(),
+ startingGeometryTagName.getLocalPart());
+
+ return geom;
+ }
+
+ /**
+ * Parses a MultiPoint.
+ *
+ * Precondition: parser positioned at a {@link GML#MultiPoint MultiPoint} start tag
+ *
+ *
+ * Postcondition: parser positioned at the {@link GML#MultiPoint MultiPoint} end tag of the
+ * starting tag
+ *
+ *
+ * @throws IOException
+ * @throws XmlPullParserException
+ * @throws IOException
+ * @throws XmlPullParserException
+ * @throws FactoryException
+ * @throws NoSuchAuthorityCodeException
+ * @throws FactoryException
+ * @throws NoSuchAuthorityCodeException
+ */
+ private Geometry parseMultiPoint(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ Geometry geom;
+ parser.nextTag();
+ final QName memberTag = new QName(parser.getNamespace(), parser.getName());
+ List points = new ArrayList(4);
+ if (GML.pointMembers.equals(memberTag)) {
+ while (true) {
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.pointMembers.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ Point p = parsePoint(dimension, crs);
+ points.add(p);
+ }
+ parser.nextTag();
+ } else if (GML.pointMember.equals(memberTag)) {
+ while (true) {
+ parser.nextTag();
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.Point.getLocalPart());
+
+ Point p = parsePoint(dimension, crs);
+ points.add(p);
+ parser.nextTag();
+ parser
+ .require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.pointMember
+ .getLocalPart());
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.MultiPoint.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ }
+ }
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.MultiPoint.getLocalPart());
+
+ geom = geomFac.createMultiPoint(points.toArray(new Point[points.size()]));
+ return geom;
+ }
+
+ /**
+ * Parses a MultiLineString.
+ *
+ * Precondition: parser positioned at a {@link GML#MultiLineString MultiLineString} start tag
+ *
+ *
+ * Postcondition: parser positioned at the {@link GML#MultiLineString MultiLineString} end tag
+ * of the starting tag
+ *
+ *
+ * @throws IOException
+ * @throws XmlPullParserException
+ * @throws FactoryException
+ * @throws NoSuchAuthorityCodeException
+ */
+ private MultiLineString parseMultiLineString(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ MultiLineString geom;
+
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.MultiLineString.getLocalPart());
+
+ List lines = new ArrayList(2);
+
+ while (true) {
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.MultiLineString.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.lineStringMember
+ .getLocalPart());
+ parser.nextTag();
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.LineString.getLocalPart());
+
+ LineString line = parseLineString(dimension, crs);
+ lines.add(line);
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.lineStringMember
+ .getLocalPart());
+ }
+
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.MultiLineString.getLocalPart());
+
+ geom = geomFac.createMultiLineString(lines.toArray(new LineString[lines.size()]));
+ return geom;
+ }
+
+ /**
+ * Parses a MultiPolygon out of a MultiSurface element (because our geometry model only supports
+ * MultiPolygon).
+ *
+ * Precondition: parser positioned at a {@link GML#MultiSurface MultiSurface} start tag
+ *
+ *
+ * Postcondition: parser positioned at the {@link GML#MultiSurface MultiSurface} end tag of the
+ * starting tag
+ *
+ */
+ private Geometry parseMultiSurface(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ Geometry geom;
+ parser.nextTag();
+ final QName memberTag = new QName(parser.getNamespace(), parser.getName());
+ List polygons = new ArrayList(2);
+ if (GML.surfaceMembers.equals(memberTag)) {
+ while (true) {
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.surfaceMembers.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ Polygon p = parsePolygon(dimension, crs);
+ polygons.add(p);
+ }
+ parser.nextTag();
+ } else if (GML.surfaceMember.equals(memberTag)) {
+ while (true) {
+ parser.nextTag();
+ Polygon p = parsePolygon(dimension, crs);
+ polygons.add(p);
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.surfaceMember
+ .getLocalPart());
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.MultiSurface.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ }
+ }
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.MultiSurface.getLocalPart());
+
+ geom = geomFac.createMultiPolygon(polygons.toArray(new Polygon[polygons.size()]));
+ return geom;
+ }
+
+ /**
+ * Parses a MultiLineString out of a MultiCurve element (because our geometry model only supports
+ * MultiLineString).
+ *
+ * Precondition: parser positioned at a {@link GML#MultiSurface MultiCurve} start tag
+ *
+ *
+ * Postcondition: parser positioned at the {@link GML#MultiSurface MultiCurve} end tag of the
+ * starting tag
+ *
+ */
+ private Geometry parseMultiCurve(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ Geometry geom;
+ parser.nextTag();
+ final QName memberTag = new QName(parser.getNamespace(), parser.getName());
+ List lineStrings = new ArrayList(2);
+ if (GML.curveMembers.equals(memberTag)) {
+ while (true) {
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.curveMembers.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ LineString l = parseLineString(dimension, crs);
+ lineStrings.add(l);
+ }
+ parser.nextTag();
+ } else if (GML.curveMember.equals(memberTag)) {
+ while (true) {
+ parser.nextTag();
+ LineString l = parseLineString(dimension, crs);
+ lineStrings.add(l);
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.curveMember
+ .getLocalPart());
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.MultiCurve.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ }
+ }
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.MultiCurve.getLocalPart());
+
+ geom = geomFac.createMultiLineString(lineStrings.toArray(new LineString[lineStrings.size()]));
+ return geom;
+ }
+
+ private Geometry parseMultiPolygon(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ Geometry geom;
+ List polygons = new ArrayList(2);
+ parser.nextTag();
+ while (true) {
+ parser
+ .require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.polygonMember
+ .getLocalPart());
+ parser.nextTag();
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.Polygon.getLocalPart());
+ Polygon p = parsePolygon(dimension, crs);
+ polygons.add(p);
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.polygonMember.getLocalPart());
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()
+ && GML.MultiPolygon.getLocalPart().equals(parser.getName())) {
+ // we're done
+ break;
+ }
+ }
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.MultiPolygon.getLocalPart());
+
+ geom = geomFac.createMultiPolygon(polygons.toArray(new Polygon[polygons.size()]));
+ return geom;
+ }
+
+ /**
+ * Parses a polygon.
+ *
+ * Precondition: parser positioned at a {@link GML#Polygon Polygon} start tag
+ *
+ *
+ * Postcondition: parser positioned at the {@link GML#Polygon Polygon} end tag of the starting
+ * tag
+ *
+ *
+ * @param dimension
+ * @param crs
+ * @return
+ * @throws XmlPullParserException
+ * @throws IOException
+ * @throws NoSuchAuthorityCodeException
+ * @throws FactoryException
+ */
+ private Polygon parsePolygon(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ Polygon geom;
+ LinearRing shell;
+ List holes = null;
+
+ parser.nextTag();
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.exterior.getLocalPart());
+ parser.nextTag();
+ shell = parseLinearRing(dimension, crs);
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.exterior.getLocalPart());
+ parser.nextTag();
+
+ if (GML.NAMESPACE.equals(parser.getNamespace())
+ && GML.interior.getLocalPart().equals(parser.getName())) {
+ // parse interior rings
+ holes = new ArrayList(2);
+ while (true) {
+ parser.nextTag();
+ LinearRing hole = parseLinearRing(dimension, crs);
+ holes.add(hole);
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.interior.getLocalPart());
+ parser.nextTag();
+ if (XmlPullParser.END_TAG == parser.getEventType()) {
+ // we're done
+ parser
+ .require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.Polygon
+ .getLocalPart());
+ break;
+ }
+ }
+ }
+
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.Polygon.getLocalPart());
+
+ LinearRing[] holesArray = null;
+ if (holes != null) {
+ holesArray = holes.toArray(new LinearRing[holes.size()]);
+ }
+ geom = geomFac.createPolygon(shell, holesArray);
+ geom.setUserData(crs);
+ return geom;
+ }
+
+ private LinearRing parseLinearRing(final int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.LinearRing.getLocalPart());
+ parser.nextTag();
+ String tagName = parser.getName();
+ String ns = parser.getNamespace();
+ Coordinate[] shellCoords;
+ if (GML.NAMESPACE.equals(ns) && GML.pos.getLocalPart().equals(tagName)) {
+ Coordinate[] point;
+ List coords = new ArrayList();
+ int eventType;
+ do {
+ point = parseCoordList(dimension, crs);
+ coords.add(point[0]);
+ parser.nextTag();
+ tagName = parser.getName();
+ eventType = parser.getEventType();
+ } while (eventType == XmlPullParser.START_TAG && GML.pos.getLocalPart().equals(tagName));
+
+ shellCoords = coords.toArray(new Coordinate[coords.size()]);
+
+ } else if (GML.NAMESPACE.equals(ns) && GML.posList.getLocalPart().equals(tagName)) {
+ // parser.require(XmlPullParser.START_TAG, GML.NAMESPACE,
+ // GML.posList.getLocalPart());
+ crs = crs(crs);
+ shellCoords = parseCoordList(dimension, crs);
+ parser.nextTag();
+ } else {
+ throw new IllegalStateException("Expected posList or pos inside LinearRing: " + tagName);
+ }
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.LinearRing.getLocalPart());
+ LinearRing linearRing = geomFac.createLinearRing(shellCoords);
+ linearRing.setUserData(crs);
+ return linearRing;
+ }
+
+ private LineString parseLineString(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+ LineString geom = null;
+ parser.nextTag();
+ final QName memberTag = new QName(parser.getNamespace(), parser.getName());
+ if (GML.coordinates.equals(memberTag) || GML.posList.equals(memberTag)) {
+ crs = crs(crs);
+ Coordinate[] coords = parseCoordList(dimension, crs);
+ geom = geomFac.createLineString(coords);
+ geom.setUserData(crs);
+ }
+ //parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.posList.getLocalPart());
+
+ parser.nextTag();
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.LineString.getLocalPart());
+ return geom;
+ }
+
+ private Point parsePoint(int dimension, CoordinateReferenceSystem crs)
+ throws XmlPullParserException, IOException, NoSuchAuthorityCodeException,
+ FactoryException {
+
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.Point.getLocalPart());
+
+ Point geom;
+ parser.nextTag();
+ parser.require(XmlPullParser.START_TAG, GML.NAMESPACE, GML.pos.getLocalPart());
+ crs = crs(crs);
+ Coordinate[] coords = parseCoordList(dimension, crs);
+ geom = geomFac.createPoint(coords[0]);
+ geom.setUserData(crs);
+ parser.nextTag();
+
+ parser.require(XmlPullParser.END_TAG, GML.NAMESPACE, GML.Point.getLocalPart());
+ return geom;
+ }
+
+ private CoordinateReferenceSystem crs(CoordinateReferenceSystem defaultValue)
+ throws NoSuchAuthorityCodeException, FactoryException {
+ String srsName = parser.getAttributeValue(null, "srsName");
+ if (srsName == null) {
+ return defaultValue;
+ }
+ CoordinateReferenceSystem crs = CRS.decode(srsName);
+ return crs;
+ }
+
+ private int crsDimension(final int defaultValue) {
+ String srsDimension = parser.getAttributeValue(null, "srsDimension");
+ if (srsDimension == null) {
+ return defaultValue;
+ }
+ int dimension = Integer.valueOf(srsDimension);
+ return dimension;
+ }
+
+ private Coordinate[] parseCoordList(int dimension, final CoordinateReferenceSystem crs) throws XmlPullParserException, IOException {
+ // we might be on a posList tag with srsDimension defined
+ dimension = crsDimension(dimension);
+ String rawTextValue = parser.nextText();
+ Coordinate[] coords = toCoordList(rawTextValue, dimension, crs);
+ return coords;
+ }
+
+ private Coordinate[] toCoordList(String rawTextValue, final int dimension, final CoordinateReferenceSystem crs) {
+ rawTextValue = rawTextValue.trim();
+ rawTextValue = rawTextValue.replaceAll("\n", " ");
+ rawTextValue = rawTextValue.replaceAll("\r", " ");
+ String[] split = rawTextValue.trim().split("[ ,]+");
+ final int ordinatesLength = split.length;
+ if (ordinatesLength % dimension != 0) {
+ throw new IllegalArgumentException("Number of ordinates (" + ordinatesLength
+ + ") does not match crs dimension: " + dimension);
+ }
+
+ boolean invertXY = WFS_1_1_0_DataStore.invertAxisNeeded(axisOrder, crs);
+
+ final int nCoords = ordinatesLength / dimension;
+ Coordinate[] coords = new Coordinate[nCoords];
+ Coordinate coord;
+ int currCoordIdx = 0;
+ double x, y, z;
+ for (int i = 0; i < ordinatesLength; i += dimension) {
+ x = Double.valueOf(split[i]);
+ y = Double.valueOf(split[i + 1]);
+ if (dimension > 2) {
+ z = Double.valueOf(split[i + 2]);
+ if (invertXY) {
+ coord = new Coordinate(y, x, z);
+ } else {
+ coord = new Coordinate(x, y, z);
+ }
+ } else {
+ if (invertXY) {
+ coord = new Coordinate(y, x);
+ } else {
+ coord = new Coordinate(x, y);
+ }
+ }
+ coords[currCoordIdx] = coord;
+ currCoordIdx++;
+ }
+ return coords;
+ }
+
+ private String seekFeature() throws IOException, XmlPullParserException {
+ int tagType;
+
+ while (true) {
+ tagType = parser.next();
+ if (tagType == XmlPullParser.END_DOCUMENT) {
+ close();
+ return null;
+ }
+ if (XmlPullParser.START_TAG != tagType) {
+ continue;
+ }
+ if (XmlPullParser.START_TAG == tagType) {
+ String namespace = parser.getNamespace();
+ String name = parser.getName();
+ if (featureNamespace.equals(namespace) && featureName.equals(name)) {
+ String featureId = parser.getAttributeValue(GML.id.getNamespaceURI(), GML.id
+ .getLocalPart());
+
+ if (featureId == null) {
+ featureId = parser.getAttributeValue(null, "fid");
+ }
+ // Mapserver hack
+ if (featureId == null) {
+ featureId = parser.getAttributeValue(null, "id");
+ }
+
+ //ArcGIS hack
+ if (featureId == null) {
+ featureId = Placeholder_ArcgisServer_FeatureID;
+ }
+
+
+ return featureId;
+ }
+ }
+ }
+ }
+
+ public Object parse(WFSProtocol wfs, WFSResponse response) {
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/geoportal_1/src/main/java/org/opengeoportal/admin/AdminController.java b/geoportal_1/src/main/java/org/opengeoportal/admin/AdminController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/ConfigController.java b/geoportal_1/src/main/java/org/opengeoportal/config/ConfigController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/PropertiesFile.java b/geoportal_1/src/main/java/org/opengeoportal/config/PropertiesFile.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/ogp/OgpConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/config/ogp/OgpConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/proxy/InternalServerMapping.java b/geoportal_1/src/main/java/org/opengeoportal/config/proxy/InternalServerMapping.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ProxyConfig.java b/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ProxyConfig.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ProxyConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ProxyConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ProxyConfigRetrieverFromProperties.java b/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ProxyConfigRetrieverFromProperties.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/proxy/PublicServerMapping.java b/geoportal_1/src/main/java/org/opengeoportal/config/proxy/PublicServerMapping.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ServerMapping.java b/geoportal_1/src/main/java/org/opengeoportal/config/proxy/ServerMapping.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/repositories/RepositoryConfig.java b/geoportal_1/src/main/java/org/opengeoportal/config/repositories/RepositoryConfig.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/repositories/RepositoryConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/config/repositories/RepositoryConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/repositories/RepositoryConfigRetrieverFromProperties.java b/geoportal_1/src/main/java/org/opengeoportal/config/repositories/RepositoryConfigRetrieverFromProperties.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchConfig.java b/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchConfig.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchConfigRetrieverFromProperties.java b/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchConfigRetrieverFromProperties.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchRepository.java b/geoportal_1/src/main/java/org/opengeoportal/config/search/SearchRepository.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandler.java b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandler.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandlerFactory.java b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandlerFactory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandlerImpl.java b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandlerImpl.java
old mode 100644
new mode 100755
index 6c97c65..23923ff
--- a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandlerImpl.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadHandlerImpl.java
@@ -88,7 +88,7 @@ SolrRecord findRecord(String layerId, List recordList) throws Except
return sr;
}
}
-
+
throw new Exception("Record not found.");
};
@@ -178,9 +178,7 @@ private LayerRequest createLayerRequest(SolrRecord solrRecord, String requestedF
layer.setRequestedBounds(bounds);
layer.setEmailAddress(emailAddress);
layer.setTargetDirectory(this.directoryRetriever.getDownloadDirectory());
- if (LocationFieldUtils.hasWmsUrl(solrRecord.getLocation())){
- addOwsInfo(layer);
- }
+ addOwsInfo(layer);
return layer;
}
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadPackager.java b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadPackager.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadPackagerImpl.java b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadPackagerImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/DownloadRequest.java b/geoportal_1/src/main/java/org/opengeoportal/download/DownloadRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/EmailLayerDownloader.java b/geoportal_1/src/main/java/org/opengeoportal/download/EmailLayerDownloader.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/LayerDownloader.java b/geoportal_1/src/main/java/org/opengeoportal/download/LayerDownloader.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/LayerDownloaderProvider.java b/geoportal_1/src/main/java/org/opengeoportal/download/LayerDownloaderProvider.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/MetadataFromSolr.java b/geoportal_1/src/main/java/org/opengeoportal/download/MetadataFromSolr.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/MetadataRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/download/MetadataRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/MethodLevelDownloadRequest.java b/geoportal_1/src/main/java/org/opengeoportal/download/MethodLevelDownloadRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/MultiLayerDownloader.java b/geoportal_1/src/main/java/org/opengeoportal/download/MultiLayerDownloader.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/PerLayerDownloader.java b/geoportal_1/src/main/java/org/opengeoportal/download/PerLayerDownloader.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/RequestStatusManager.java b/geoportal_1/src/main/java/org/opengeoportal/download/RequestStatusManager.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/RequestStatusManagerImpl.java b/geoportal_1/src/main/java/org/opengeoportal/download/RequestStatusManagerImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/RequestStatusSessionListener.java b/geoportal_1/src/main/java/org/opengeoportal/download/RequestStatusSessionListener.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/config/ConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/download/config/ConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/config/DownloadConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/download/config/DownloadConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/config/OgpDownloadConfigRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/download/config/OgpDownloadConfigRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/controllers/DownloadRequestController.java b/geoportal_1/src/main/java/org/opengeoportal/download/controllers/DownloadRequestController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/controllers/DownloadRetrievalController.java b/geoportal_1/src/main/java/org/opengeoportal/download/controllers/DownloadRetrievalController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/controllers/RequestStatus.java b/geoportal_1/src/main/java/org/opengeoportal/download/controllers/RequestStatus.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/controllers/RequestStatusController.java b/geoportal_1/src/main/java/org/opengeoportal/download/controllers/RequestStatusController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/controllers/RequestedLayerStatus.java b/geoportal_1/src/main/java/org/opengeoportal/download/controllers/RequestedLayerStatus.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/controllers/SubmittedDownloadRequest.java b/geoportal_1/src/main/java/org/opengeoportal/download/controllers/SubmittedDownloadRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/AbstractDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/AbstractDownloadMethod.java
old mode 100644
new mode 100755
index 55ef4c2..84f4dc5
--- a/geoportal_1/src/main/java/org/opengeoportal/download/methods/AbstractDownloadMethod.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/methods/AbstractDownloadMethod.java
@@ -18,6 +18,7 @@
import org.opengeoportal.layer.BoundingBox;
import org.opengeoportal.solr.SolrRecord;
import org.opengeoportal.utilities.DirectoryRetriever;
+import org.opengeoportal.utilities.LocationFieldUtils;
import org.opengeoportal.utilities.OgpFileUtils;
import org.opengeoportal.utilities.http.HttpRequester;
import org.slf4j.Logger;
@@ -180,10 +181,9 @@ public BoundingBox getClipBounds() throws Exception{
public Boolean hasRequiredInfo(LayerRequest layerRequest){
try {
- if (getUrls(layerRequest) != null && !getUrls(layerRequest).isEmpty()){
+ if (getUrls(layerRequest) != null && !getUrls(layerRequest).isEmpty())
return true;
- }
-
+ return false;
} catch (Exception e){
logger.debug(e.getMessage());
}
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/CustomMarshaller.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/CustomMarshaller.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/DownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/DownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/EmailDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/EmailDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShape.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShape.java
old mode 100644
new mode 100755
index b54b1c7..85ed240
--- a/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShape.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShape.java
@@ -1,12 +1,13 @@
package org.opengeoportal.download.methods;
import java.io.File;
+import java.util.Set;
import com.vividsolutions.jts.geom.Envelope;
public interface FeatureSourceToShape {
- File exportToShapefile() throws Exception;
+ Set exportToShapefiles() throws Exception;
void setFeatureCollectionBBox(Envelope bbox) throws Exception;
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShapeImpl.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShapeImpl.java
old mode 100644
new mode 100755
index 6d73061..7596347
--- a/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShapeImpl.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/methods/FeatureSourceToShapeImpl.java
@@ -7,6 +7,8 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
+import java.util.HashSet;
import org.geotools.data.DataStore;
import org.geotools.data.DataUtilities;
@@ -32,6 +34,7 @@
import org.geotools.referencing.crs.DefaultGeographicCRS;
import org.opengeoportal.utilities.DirectoryRetriever;
import org.opengeoportal.utilities.OgpFileUtils;
+import org.opengeoportal.utilities.ZipFilePackager;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.filter.FilterFactory;
@@ -108,23 +111,26 @@ public void setFeatureCollectionBBox(Envelope bbox) throws Exception{
* @param targetFeatureStore
* @throws IOException
*/
- protected void copyFeatures(SimpleFeatureSource featureSource, SimpleFeatureStore targetStore) throws IOException{
+ protected void copyFeatures(SimpleFeatureSource featureSource, SimpleFeatureSource targetSource) throws IOException{
/*
* Write the features to the shapefile
*/
- Transaction transaction = new DefaultTransaction();
+ Transaction transaction = new DefaultTransaction("create");
- //if (featureSource instanceof SimpleFeatureStore) {
+ if (targetSource instanceof SimpleFeatureStore) {
/*
* SimpleFeatureStore has a method to add features from a
* SimpleFeatureCollection object, so we use the ListFeatureCollection
* class to wrap our list of features.
*/
+ SimpleFeatureStore targetStore = (SimpleFeatureStore) targetSource;
+ targetStore.setTransaction(transaction);
+
try {
SimpleFeatureCollection collection = featureSource.getFeatures();
- SimpleFeatureIterator collIter = collection.features();
+ //SimpleFeatureIterator collIter = collection.features();
logger.info(collection.getSchema().toString());
logger.info(targetStore.getSchema().toString());
@@ -142,7 +148,10 @@ protected void copyFeatures(SimpleFeatureSource featureSource, SimpleFeatureStor
} finally {
transaction.close();
}
-
+ } else {
+ System.out.println(" does not support read/write access");
+ System.exit(1);
+ }
}
/**
@@ -152,9 +161,7 @@ protected void copyFeatures(SimpleFeatureSource featureSource, SimpleFeatureStor
* @throws Exception
*/
@Override
- public
- File exportToShapefile()
- throws Exception {
+ public Set exportToShapefiles() throws Exception {
File directory = directoryRetriever.getDownloadDirectory();
@@ -164,8 +171,8 @@ File exportToShapefile()
String typeName = ft.getTypeName();
String fileName = OgpFileUtils.filterName(typeName);
- File file = new File(directory, fileName + ".shp");
- file.createNewFile();
+ File fileSHP = new File(directory, fileName + ".shp");
+ fileSHP.createNewFile();
/*
* Get an output file name and create the new shapefile
@@ -174,7 +181,7 @@ File exportToShapefile()
ShapefileDataStoreFactory dataStoreFactory = new ShapefileDataStoreFactory();
Map params = new HashMap();
- params.put("url", file.toURI().toURL());
+ params.put("url", fileSHP.toURI().toURL());
params.put("create spatial index", Boolean.TRUE);
ShapefileDataStore shpDataStore = (ShapefileDataStore) dataStoreFactory.createNewDataStore(params);
@@ -186,14 +193,23 @@ File exportToShapefile()
*/
// newDataStore.forceSchemaCRS(DefaultGeographicCRS.WGS84);
String[] typeNames = shpDataStore.getTypeNames();
- SimpleFeatureStore featureStore = (SimpleFeatureStore) shpDataStore.getFeatureSource(typeNames[0]);
+ SimpleFeatureSource shpFeatureSource =shpDataStore.getFeatureSource(typeNames[0]);
logger.info("created schema");
-
logger.info("created feature store");
- copyFeatures(featureSource, featureStore);
+ copyFeatures(featureSource, shpFeatureSource);
logger.info("copied features");
+
+ Set shapeFileSet = new HashSet();
+ File fileDBF = new File(directory, fileName + ".dbf");
+ File fileSHX = new File(directory, fileName + ".shx");
+ File filePRJ = new File(directory, fileName + ".prj");
+
+ shapeFileSet.add(fileSHP);
+ shapeFileSet.add(fileSHX);
+ shapeFileSet.add(filePRJ);
+ shapeFileSet.add(fileDBF);
- return file;
+ return shapeFileSet;
}
}
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/FileDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/FileDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/GeoToolsDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/GeoToolsDownloadMethod.java
old mode 100644
new mode 100755
index 3ae6ef8..036bd6e
--- a/geoportal_1/src/main/java/org/opengeoportal/download/methods/GeoToolsDownloadMethod.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/methods/GeoToolsDownloadMethod.java
@@ -2,6 +2,7 @@
import java.io.File;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.concurrent.Future;
@@ -9,6 +10,8 @@
import org.geotools.referencing.crs.DefaultGeographicCRS;
import org.opengeoportal.download.types.LayerRequest;
import org.opengeoportal.layer.BoundingBox;
+import org.opengeoportal.solr.SolrRecord;
+import org.opengeoportal.utilities.LocationFieldUtils;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,8 +19,9 @@
import com.vividsolutions.jts.geom.Envelope;
-public class GeoToolsDownloadMethod implements PerLayerDownloadMethod {
+public class GeoToolsDownloadMethod extends AbstractDownloadMethod implements PerLayerDownloadMethod {
private static final Boolean INCLUDES_METADATA = false;
+ private static final String METHOD = "GET";
private FeatureSourceToShape featureSourceToShape;
@@ -31,9 +35,41 @@ public void setFeatureSourceToShape(FeatureSourceToShape featureSourceToShape) {
this.featureSourceToShape = featureSourceToShape;
}
+ @Override
+ public String getMethod(){
+ return METHOD;
+ }
+
+ @Override
+ public Set getExpectedContentType(){
+ Set expectedContentType = new HashSet();
+ expectedContentType.add("application/zip");
+ return expectedContentType;
+ }
+
+ @Override
+ public List getUrls(LayerRequest layer) throws Exception{
+ if(LocationFieldUtils.hasArcGISRestUrl(layer.getLayerInfo().getLocation()))
+ {
+ String url = layer.getWfsUrl();
+ this.checkUrl(url);
+ return urlToUrls(url);
+ }
+
+ return null;
+
+ }
+
+ @Override
+ public String createDownloadRequest() throws Exception {
+ return new String("This is a dummy implementation.");
+ }
+
@Override
public Future> download(LayerRequest currentLayer)
throws Exception {
+ currentLayer.setMetadata(this.includesMetadata());
+
BoundingBox bbox = currentLayer.getRequestedBounds();
Envelope currentBounds = new Envelope(bbox.getMinX(), bbox.getMinY(), bbox.getMaxX(), bbox.getMaxY());
FeatureSourceRetriever fsr = featureSourceToShape.getFeatureSourceRetriever();
@@ -55,7 +91,7 @@ public Future> download(LayerRequest currentLayer)
//featureSourceToShape.setFeatureCollectionBBox(currentBounds);
Set fileSet = new HashSet();
- fileSet.add(featureSourceToShape.exportToShapefile());
+ fileSet.addAll(featureSourceToShape.exportToShapefiles());
return new AsyncResult>(fileSet);
}
@@ -64,10 +100,14 @@ public Boolean includesMetadata() {
return INCLUDES_METADATA;
}
+/* Alle Lin: Should use the superclass function if derived from AbstractDownloadMethod
@Override
public Boolean hasRequiredInfo(LayerRequest layer) {
// TODO determine how to do this generically
- return true;
+ if(LocationFieldUtils.hasArcGISRestUrl(layer.getLayerInfo().getLocation()))
+ return true;
+ return false;
}
-
+*/
}
+
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/HGLEmailDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/HGLEmailDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/KmlDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/KmlDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/MITDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/MITDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/MultiLayerDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/MultiLayerDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/PerLayerDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/PerLayerDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/ProxiedWcsDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/ProxiedWcsDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/ProxiedWfsDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/ProxiedWfsDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/Wcs1_1_1DownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/Wcs1_1_1DownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WcsDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WcsDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/Wfs1_1DownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/Wfs1_1DownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsDownloadMethod.java
old mode 100644
new mode 100755
index 264e6fe..c92e660
--- a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsDownloadMethod.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsDownloadMethod.java
@@ -13,6 +13,7 @@
import org.opengeoportal.ogc.OwsInfo;
import org.opengeoportal.ogc.wfs.WfsGetFeature;
import org.opengeoportal.solr.SolrRecord;
+import org.opengeoportal.utilities.LocationFieldUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -70,12 +71,16 @@ public String createDownloadRequest() throws Exception {
//really, we should check the get caps doc to see if this is a viable option...probably this should be done before/at the download prompt
String outputFormat = "shape-zip";
- String request = WfsGetFeature.createWfsGetFeatureRequest(layerName, workSpace, nameSpace, outputFormat, bboxFilter);
- return request;
+ return WfsGetFeature.createWfsGetFeatureRequest(layerName, workSpace, nameSpace, outputFormat, bboxFilter);
+
}
@Override
public List getUrls(LayerRequest layer) throws Exception{
+ if(LocationFieldUtils.hasArcGISRestUrl(layer.getLayerInfo().getLocation()))
+ {
+ return null;
+ }
String url = layer.getWfsUrl();
this.checkUrl(url);
return urlToUrls(url);
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsFeatureSourceRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsFeatureSourceRetriever.java
old mode 100644
new mode 100755
index e3b130d..d807c12
--- a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsFeatureSourceRetriever.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WfsFeatureSourceRetriever.java
@@ -9,6 +9,7 @@
import org.geotools.data.FeatureSource;
import org.geotools.data.simple.SimpleFeatureSource;
import org.opengeoportal.download.types.LayerRequest;
+import org.opengeoportal.utilities.LocationFieldUtils;
import org.opengeoportal.utilities.OgpUtils;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
@@ -22,14 +23,17 @@ public class WfsFeatureSourceRetriever implements FeatureSourceRetriever {
@Override
public void createFeatureSourceFromLayerRequest(LayerRequest layerRequest) throws Exception{
- setFeatureSource(layerRequest.getWfsUrl(), layerRequest.getLayerNameNS());
+ setFeatureSource(layerRequest.getWfsUrl(), layerRequest.getLayerNameNS(), LocationFieldUtils.hasArcGISRestUrl(layerRequest.getLayerInfo().getLocation()));
}
- void setFeatureSource(String wfsEndPoint, String layerName) throws Exception{
+ void setFeatureSource(String wfsEndPoint, String layerName, Boolean isFromArcGISServer) throws Exception{
String getCapabilities = OgpUtils.combinePathWithQuery(wfsEndPoint, "REQUEST=GetCapabilities&VERSION=1.1.0");
+ // Both ArcGIS Server 9.3 and 10 are compliant with WFS 1.1.0, so hard-coding VERSION=1.1.0 should be fine.
- Map connectionParameters = new HashMap();
+ Map connectionParameters = new HashMap();
connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL", getCapabilities );
+ if (isFromArcGISServer)
+ connectionParameters.put("WFSDataStoreFactory:WFS_STRATEGY", "arcgis");
/*
* “WFSDataStoreFactory:GET_CAPABILITIES_URL” Link to capabilities document. The implementation supports both WFS 1.0 (read/write) and WFS 1.1 (read-only).
“WFSDataStoreFactory:PROTOCOL” Optional: True for Post, False for GET, null for auto
@@ -57,8 +61,8 @@ void setFeatureSource(String wfsEndPoint, String layerName) throws Exception{
//find the typeName we're looking for
String typeName = "";
for (int i = 0; i < typeNames.length; i++){
- if (typeNames[i].equalsIgnoreCase(layerName)){
- typeName = layerName;
+ if (typeNames[i].contains(layerName)){
+ typeName = typeNames[i];
break;
}
}
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WmsDescribeLayer.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WmsDescribeLayer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WmsDescribeLayerImpl.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WmsDescribeLayerImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/methods/WmsDownloadMethod.java b/geoportal_1/src/main/java/org/opengeoportal/download/methods/WmsDownloadMethod.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/LayerRequest.java b/geoportal_1/src/main/java/org/opengeoportal/download/types/LayerRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/LayerStatus.java b/geoportal_1/src/main/java/org/opengeoportal/download/types/LayerStatus.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/LayerDescription.java b/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/LayerDescription.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/ObjectFactory.java b/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/ObjectFactory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/Query.java b/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/Query.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/WMSDescribeLayerResponse.java b/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/WMSDescribeLayerResponse.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/WMS_DescribeLayerResponse.dtd b/geoportal_1/src/main/java/org/opengeoportal/download/types/generated/ogc/wms_describelayer/WMS_DescribeLayerResponse.dtd
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/AddLayerToMapRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/AddLayerToMapRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/AddWMSLayerToMapRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/AddWMSLayerToMapRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateDataSetRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateDataSetRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateDataSetResponseJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateDataSetResponseJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateFileDataSetRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateFileDataSetRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateMapRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateMapRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateMapResponseJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateMapResponseJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateStreamDataSetRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateStreamDataSetRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateUserRequestJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/CreateUserRequestJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/DataSetStatus.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/DataSetStatus.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/DataSetStatusOld.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/DataSetStatusOld.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/ExportKmlToGeoCommons.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/ExportKmlToGeoCommons.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/ExportRequestController.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/ExportRequestController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsClient.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsClient.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportHandler.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportHandler.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportHandlerFactory.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportHandlerFactory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportHandlerImpl.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportHandlerImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportRequest.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExportRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExporter.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExporter.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExporterImpl.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsExporterImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsJsonClient.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/GeoCommonsJsonClient.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/RetrieveExportController.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/RetrieveExportController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/SearchResponseJson.java b/geoportal_1/src/main/java/org/opengeoportal/export/geocommons/SearchResponseJson.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/layer/AccessLevel.java b/geoportal_1/src/main/java/org/opengeoportal/layer/AccessLevel.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/layer/BoundingBox.java b/geoportal_1/src/main/java/org/opengeoportal/layer/BoundingBox.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/layer/Envelope.java b/geoportal_1/src/main/java/org/opengeoportal/layer/Envelope.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/layer/GeometryType.java b/geoportal_1/src/main/java/org/opengeoportal/layer/GeometryType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/layer/Metadata.java b/geoportal_1/src/main/java/org/opengeoportal/layer/Metadata.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/metadata/LayerInfoRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/metadata/LayerInfoRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/metadata/SolrLayerInfoRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/metadata/SolrLayerInfoRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecord.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecord.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecordRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecordRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecordRetrieverImpl.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecordRetrieverImpl.java
old mode 100644
new mode 100755
index d348b9a..35da439
--- a/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecordRetrieverImpl.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/ogc/AugmentedSolrRecordRetrieverImpl.java
@@ -128,17 +128,53 @@ private AugmentedSolrRecord addNativeTypeInfo(AugmentedSolrRecord asr, String ty
@Override
public AugmentedSolrRecord getOgcAugmentedSolrRecord(SolrRecord solrRecord) throws Exception {
- AugmentedSolrRecord asr = getInfoAttempt(wmsRequester, DATA_ATTEMPTS, solrRecord);
- OwsInfo wmsInfo = OwsInfo.findWmsInfo(asr.getOwsInfo());
- String type = wmsInfo.getInfoMap().get("owsType");
- //String qualName = wmsInfo.getWmsResponseMap().get("qualifiedName");
- String owsUrl = wmsInfo.getInfoMap().get("owsUrl");
- Thread.sleep(PAUSE);
-
+ String type;
+ String owsUrl;
+ AugmentedSolrRecord asr = null;
+
+ if (isArcGISServer(solrRecord))
+ {
+ //If it is from ArcGIS Server, there will be no ogcInfo associated with the ArcGIS Rest
+ asr = new AugmentedSolrRecord();
+ asr.setSolrRecord(solrRecord);
+
+ //If the mapserver is ArcGIS Server rest service, we should handle the retrieval of OWSUrl and OWS type separately.
+ if (LocationFieldUtils.hasWfsUrl(solrRecord.getLocation()))
+ {
+ //If it has the wfs url, downloading will come from wfs
+ type = "WFS";
+ owsUrl = LocationFieldUtils.getWfsUrl(solrRecord.getLocation());
+ }
+ else
+ {
+ //If it has only wcs url, download will come from wcs
+ type = "WCS";
+ owsUrl = LocationFieldUtils.getWcsUrl(solrRecord.getLocation());
+ }
+ }
+ else
+ {
+ //else, the map server is geoserver, we could query the OWS Url as normal
+ asr = getInfoAttempt(wmsRequester, DATA_ATTEMPTS, solrRecord);
+ OwsInfo wmsInfo = OwsInfo.findWmsInfo(asr.getOwsInfo());
+ type = wmsInfo.getInfoMap().get("owsType");
+ //String qualName = wmsInfo.getWmsResponseMap().get("qualifiedName");
+ owsUrl = wmsInfo.getInfoMap().get("owsUrl");
+ Thread.sleep(PAUSE);
+ }
+
return addNativeTypeInfo(asr, type, owsUrl);
}
+ private Boolean isArcGISServer(SolrRecord solrRecord)
+ {
+ if (LocationFieldUtils.hasArcGISRestUrl(solrRecord.getLocation())&&LocationFieldUtils.hasWfsUrl(solrRecord.getLocation()))
+ return true;
+ else
+ return false;
+ }
+
private AugmentedSolrRecord getInfoAttempt(OgcInfoRequester requester, int numAttempts, String layerId) throws Exception{
SolrRecord solrRecord = layerInfoRetriever.getAllLayerInfo(layerId);
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/OgcInfoRequest.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/OgcInfoRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/OgcInfoRequester.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/OgcInfoRequester.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/OgcInfoRequesterImpl.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/OgcInfoRequesterImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/OwsDescribeInfo.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/OwsDescribeInfo.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/OwsInfo.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/OwsInfo.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/WmcCreator.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/WmcCreator.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/WmcCreatorImpl.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/WmcCreatorImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/WcsDescribeCoverage1_1_1.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/WcsDescribeCoverage1_1_1.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/WcsGetCoverage1_1_1.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/WcsGetCoverage1_1_1.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/CoverageOffering1_0_0.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/CoverageOffering1_0_0.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/RectifiedGrid.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/RectifiedGrid.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/WcsDescribeCoverage1_0_0.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/WcsDescribeCoverage1_0_0.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/WcsGetCoverage1_0_0.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wcs/wcs1_0_0/WcsGetCoverage1_0_0.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wfs/WfsDescribeFeature.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wfs/WfsDescribeFeature.java
old mode 100644
new mode 100755
index d473acd..11f340c
--- a/geoportal_1/src/main/java/org/opengeoportal/ogc/wfs/WfsDescribeFeature.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/ogc/wfs/WfsDescribeFeature.java
@@ -65,7 +65,17 @@ public OwsInfo parseResponse(InputStream inputStream) throws Exception {
describeLayerInfo.put("nameSpace", schemaAttributes.getNamedItem("targetNamespace").getNodeValue());
//we can get the geometry column name from here
- NodeList elementNodes = document.getElementsByTagName("xsd:element");
+ NodeList elementNodes;
+
+ if(document.getElementsByTagName("xsd:element").getLength()!=0)
+ {
+ elementNodes = document.getElementsByTagName("xsd:element");
+ }
+ else
+ //ArcGIS uses prefix "xs" but xs and xsd are essentially same if they refer to the same schema.
+ //See reference http://stackoverflow.com/questions/1193563/difference-between-xs-and-xsd-in-xml-schema-file
+ elementNodes = document.getElementsByTagName("xs:element");
+
for (int i = 0; i < elementNodes.getLength(); i++){
Node currentNode = elementNodes.item(i);
NamedNodeMap currentAttributeMap = currentNode.getAttributes();
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wfs/WfsGetFeature.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wfs/WfsGetFeature.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/WmcGeneral.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/WmcGeneral.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/WmcLayer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/WmcLayer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/WmcViewContext.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/WmcViewContext.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AVERAGE.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AVERAGE.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractFeatureCollectionBaseType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractFeatureCollectionBaseType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractFeatureCollectionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractFeatureCollectionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractFeatureType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractFeatureType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractGeometryCollectionBaseType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractGeometryCollectionBaseType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractGeometryType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AbstractGeometryType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ActuateType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ActuateType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AddressType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AddressType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AnchorPoint.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/AnchorPoint.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ArcType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ArcType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BBOXType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BBOXType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinaryComparisonOpType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinaryComparisonOpType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinaryLogicOpType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinaryLogicOpType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinaryOperatorType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinaryOperatorType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinarySpatialOpType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BinarySpatialOpType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BoundingBoxType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BoundingBoxType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BoundingShapeType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BoundingShapeType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BoxType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/BoxType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ChannelSelection.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ChannelSelection.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ColorMap.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ColorMap.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ColorMapEntry.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ColorMapEntry.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ComparisonOpsType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ComparisonOpsType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContactInformationType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContactInformationType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContactPersonPrimaryType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContactPersonPrimaryType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContextURLType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContextURLType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContrastEnhancement.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ContrastEnhancement.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/CoordType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/CoordType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/CoordinatesType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/CoordinatesType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/CssParameter.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/CssParameter.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DimensionListType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DimensionListType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DimensionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DimensionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Displacement.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Displacement.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DistanceBufferType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DistanceBufferType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DistanceType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/DistanceType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/EARLIESTONTOP.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/EARLIESTONTOP.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ElseFilter.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ElseFilter.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ExpressionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ExpressionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Extended.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Extended.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ExtensionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ExtensionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Extent.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Extent.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ExternalGraphic.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ExternalGraphic.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureAssociationType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureAssociationType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureIdType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureIdType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureTypeConstraint.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureTypeConstraint.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureTypeStyle.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FeatureTypeStyle.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Fill.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Fill.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FilterType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FilterType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Font.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Font.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FormatListType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FormatListType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FormatType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FormatType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FunctionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/FunctionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeneralType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeneralType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Geometry.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Geometry.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeometryAssociationType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeometryAssociationType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeometryCollectionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeometryCollectionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeometryPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GeometryPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Graphic.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Graphic.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GraphicFill.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GraphicFill.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GraphicStroke.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/GraphicStroke.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Halo.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Halo.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Histogram.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Histogram.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ImageOutline.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ImageOutline.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/KeywordListType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/KeywordListType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LATESTONTOP.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LATESTONTOP.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LabelPlacement.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LabelPlacement.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LayerFeatureConstraints.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LayerFeatureConstraints.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LayerListType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LayerListType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LayerType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LayerType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LegendGraphic.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LegendGraphic.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LinePlacement.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LinePlacement.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineStringMemberType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineStringMemberType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineStringPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineStringPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineStringType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineStringType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineSymbolizer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LineSymbolizer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LinearRingMemberType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LinearRingMemberType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LinearRingType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LinearRingType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LiteralType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LiteralType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LocatorType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LocatorType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LogicOpsType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LogicOpsType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LowerBoundaryType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/LowerBoundaryType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Mark.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Mark.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiGeometryPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiGeometryPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiLineStringPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiLineStringPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiLineStringType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiLineStringType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPointPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPointPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPointType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPointType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPolygonPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPolygonPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPolygonType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/MultiPolygonType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/NamedLayer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/NamedLayer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/NamedStyle.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/NamedStyle.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Normalize.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Normalize.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/NullType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/NullType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ObjectFactory.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ObjectFactory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/OnlineResource.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/OnlineResource.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/OnlineResourceType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/OnlineResourceType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/OverlapBehavior.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/OverlapBehavior.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ParameterValueType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ParameterValueType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointMemberType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointMemberType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointPlacement.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointPlacement.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointSymbolizer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointSymbolizer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PointType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonMemberType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonMemberType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonPropertyType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonPropertyType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonSymbolizer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonSymbolizer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PolygonType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyIsBetweenType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyIsBetweenType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyIsLikeType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyIsLikeType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyIsNullType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyIsNullType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyNameType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/PropertyNameType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/RANDOM.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/RANDOM.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/RasterSymbolizer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/RasterSymbolizer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/RemoteOWS.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/RemoteOWS.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ResourceType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ResourceType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Rule.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Rule.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SLDType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SLDType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SelectedChannelType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SelectedChannelType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ServerType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ServerType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ServiceType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ServiceType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ShadedRelief.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ShadedRelief.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ShowType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ShowType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Simple.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Simple.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SpatialOpsType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SpatialOpsType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Stroke.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/Stroke.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/StyleListType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/StyleListType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/StyleType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/StyleType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/StyledLayerDescriptor.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/StyledLayerDescriptor.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SymbolizerType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/SymbolizerType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/TextSymbolizer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/TextSymbolizer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/TitleEltType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/TitleEltType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/TypeType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/TypeType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/URLType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/URLType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UnaryLogicOpType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UnaryLogicOpType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UpperBoundaryType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UpperBoundaryType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UserLayer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UserLayer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UserStyle.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/UserStyle.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ViewContextCollectionType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ViewContextCollectionType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ViewContextReferenceType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ViewContextReferenceType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ViewContextType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ViewContextType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/WindowType.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/WindowType.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/bindings.xml b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/bindings.xml
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/collection.xsd b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/collection.xsd
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/context.xsd b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/context.xsd
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ort.xsd b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/ort.xsd
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/package-info.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/package-info.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/wmcAll.xsd b/geoportal_1/src/main/java/org/opengeoportal/ogc/wmc/jaxb/wmcAll.xsd
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/ogc/wms/WmsDescribeLayer.java b/geoportal_1/src/main/java/org/opengeoportal/ogc/wms/WmsDescribeLayer.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/AuthenticatingGenericProxy.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/AuthenticatingGenericProxy.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/GenericProxy.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/GenericProxy.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/GenericProxyImpl.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/GenericProxyImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/GetCapabilitiesWFSProxy.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/GetCapabilitiesWFSProxy.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/GetCapabilitiesWMSProxy.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/GetCapabilitiesWMSProxy.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageCompositor.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageCompositor.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageCompositorImpl.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageCompositorImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageDownloader.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageDownloader.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageDownloaderFactory.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageDownloaderFactory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageDownloaderImpl.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageDownloaderImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageHandler.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageHandler.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageHandlerFactory.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageHandlerFactory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageHandlerImpl.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/ImageHandlerImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/DynamicOgcController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/DynamicOgcController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/GetFeatureInfoController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/GetFeatureInfoController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/GetOgcInfoController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/GetOgcInfoController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/GetWmcController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/GetWmcController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/ImageController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/ImageController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/ImageRequest.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/ImageRequest.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/ImageRetrievalController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/ImageRetrievalController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/OldDynamicOgcController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/OldDynamicOgcController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/RestrictedWMSController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/RestrictedWMSController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/UrlShortenerController.java b/geoportal_1/src/main/java/org/opengeoportal/proxy/controllers/UrlShortenerController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/CustomAuthenticationFilter.java b/geoportal_1/src/main/java/org/opengeoportal/security/CustomAuthenticationFilter.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/FormLoginService.java b/geoportal_1/src/main/java/org/opengeoportal/security/FormLoginService.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/IframeLoginController.java b/geoportal_1/src/main/java/org/opengeoportal/security/IframeLoginController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/LayerPermissionEvaluator.java b/geoportal_1/src/main/java/org/opengeoportal/security/LayerPermissionEvaluator.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/LoginController.java b/geoportal_1/src/main/java/org/opengeoportal/security/LoginController.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/LoginService.java b/geoportal_1/src/main/java/org/opengeoportal/security/LoginService.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/LoginStatus.java b/geoportal_1/src/main/java/org/opengeoportal/security/LoginStatus.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/OgpUserContext.java b/geoportal_1/src/main/java/org/opengeoportal/security/OgpUserContext.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/OgpUserContextImpl.java b/geoportal_1/src/main/java/org/opengeoportal/security/OgpUserContextImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/SimpleCasUserService.java b/geoportal_1/src/main/java/org/opengeoportal/security/SimpleCasUserService.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/security/SimpleLdapUserDetailsMapper.java b/geoportal_1/src/main/java/org/opengeoportal/security/SimpleLdapUserDetailsMapper.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/solr/SolrRecord.java b/geoportal_1/src/main/java/org/opengeoportal/solr/SolrRecord.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/CleanupDirectory.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/CleanupDirectory.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/CleanupDirectoryImpl.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/CleanupDirectoryImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/DirectoryRetriever.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/DirectoryRetriever.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/DirectoryRetrieverImpl.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/DirectoryRetrieverImpl.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/FilterServletOutputStream.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/FilterServletOutputStream.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/GenericResponseWrapper.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/GenericResponseWrapper.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/JsonpCallbackFilter.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/JsonpCallbackFilter.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/LinkShortenRequestGoogle.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/LinkShortenRequestGoogle.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/LinkShortenReturnGoogle.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/LinkShortenReturnGoogle.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/LocalSchemaLSResourceResolver.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/LocalSchemaLSResourceResolver.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/LocationFieldUtils.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/LocationFieldUtils.java
old mode 100644
new mode 100755
index 2ad74d0..4afb832
--- a/geoportal_1/src/main/java/org/opengeoportal/utilities/LocationFieldUtils.java
+++ b/geoportal_1/src/main/java/org/opengeoportal/utilities/LocationFieldUtils.java
@@ -52,6 +52,19 @@ public static String getWmsUrl(String locationField) throws JsonParseException{
}
+ /**
+ * Get the value in the "ArcGISRest" field from the Location field
+ *
+ * @param locationField The Solr record Location field as a String
+ * @return the url for the wms server for the layer, if the record has been populated correctly
+ * @throws JsonParseException
+ */
+ //Added by Allen Lin on Jan, 24, 2014
+ public static String getArcGISRestUrl(String locationField) throws JsonParseException{
+ return parseLocationFromKey(locationField, "ArcGISRest").get(0);
+
+ }
+
/**
* determines if the SolrRecord Location field contains a value for the key "wms"
*
@@ -67,6 +80,38 @@ public static Boolean hasWmsUrl(String locationField){
return false;
}
+ /**
+ * determines if the SolrRecord Location field contains a value for the key "wfs"
+ *
+ * @param locationField The Solr record Location field as a String
+ * @return true if the SolrRecord Location field contains a key for "wms"
+ */
+ // Added by Allen Lin on Jan, 24, 2014
+ public static Boolean hasWfsUrl(String locationField){
+ try {
+ return hasKey(locationField, "wfs");
+ } catch (JsonParseException e) {
+
+ }
+ return false;
+ }
+
+ /**
+ * determines if the SolrRecord Location field contains a value for the key "wfs"
+ *
+ * @param locationField The Solr record Location field as a String
+ * @return true if the SolrRecord Location field contains a key for "wms"
+ */
+ // Added by Allen Lin on Jan, 24, 2014
+ public static Boolean hasArcGISRestUrl(String locationField){
+ try {
+ return hasKey(locationField, "ArcGISRest");
+ } catch (JsonParseException e) {
+
+ }
+ return false;
+ }
+
/**
* determines if the SolrRecord Location field contains a value for the key "serviceStart"
*
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/OgpFileUtils.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/OgpFileUtils.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/OgpUtils.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/OgpUtils.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/OgpXmlUtils.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/OgpXmlUtils.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/QuickDownload.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/QuickDownload.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/QuickWfsDownload.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/QuickWfsDownload.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/UrlShortener.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/UrlShortener.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/UrlShortenerGoogle.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/UrlShortenerGoogle.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/ZipFilePackager.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/ZipFilePackager.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/AllTrustingCertPoolingHttpClient.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/AllTrustingCertPoolingHttpClient.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/AllTrustingTrustManager.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/AllTrustingTrustManager.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/AllTrustingTrustStrategy.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/AllTrustingTrustStrategy.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/HttpComponentsHttpRequester.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/HttpComponentsHttpRequester.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/HttpRequester.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/HttpRequester.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/OgpHttpClient.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/OgpHttpClient.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/PoolingHttpClient.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/PoolingHttpClient.java
old mode 100644
new mode 100755
diff --git a/geoportal_1/src/main/java/org/opengeoportal/utilities/http/PreemptiveBasicAuthPoolingHttpClient.java b/geoportal_1/src/main/java/org/opengeoportal/utilities/http/PreemptiveBasicAuthPoolingHttpClient.java
old mode 100644
new mode 100755