Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/pom.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/pom.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/pom.xml	(revision 1320)
@@ -0,0 +1,47 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.vectorediting.symmetry.app</artifactId>
+		<version>1.0.61</version>
+	</parent>
+
+	<artifactId>org.gvsig.vectorediting.symmetry.app.mainplugin</artifactId>
+	<name>org.gvsig.vectorediting.symmetry.app.mainplugin</name>
+
+	<properties>
+        <!-- Package info property values -->
+        <gvsig.package.info.state>testing</gvsig.package.info.state>
+        <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.1.0-A, required: org.gvsig.vectorediting.app.mainplugin -ge 1.0.0, conflict: org.gvsig.editing.app.mainplugin -ge 1</gvsig.package.info.dependencies>
+        <gvsig.package.info.official>true</gvsig.package.info.official>
+        <gvsig.package.info.name>Tools: Vector editing symmetry provider</gvsig.package.info.name>
+        <gvsig.package.info.description>Symmetry provider: provides symmetrical geometries.</gvsig.package.info.description>
+        <gvsig.package.info.categories>Vector</gvsig.package.info.categories>
+        <gvsig.package.info.javaVM>j1_6</gvsig.package.info.javaVM>
+        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-vectorediting/pool</gvsig.package.info.poolURL>
+    </properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.app.mainplugin</artifactId>
+			<scope>compile</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.lib.api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.lib.impl</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.lib.spi</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.symmetry.lib.prov.symmetry</artifactId>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/buildNumber.properties
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/buildNumber.properties	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/buildNumber.properties	(revision 1320)
@@ -0,0 +1,2 @@
+#Thu Sep 28 20:44:01 CEST 2017
+buildNumber=63
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/src/main/resources-plugin/config.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/src/main/resources-plugin/config.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/src/main/resources-plugin/config.xml	(revision 1320)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- gvSIG. Desktop Geographic Information System. Copyright (C) 2007-2013
+	gvSIG Association. This program is free software; you can redistribute it
+	and/or modify it under the terms of the GNU General Public License as published
+	by the Free Software Foundation; either version 3 of the License, or (at
+	your option) any later version. This program 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 General
+	Public License for more details. You should have received a copy of the GNU
+	General Public License along with this program; if not, write to the Free
+	Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+	USA. For any additional information, do not hesitate to contact us at info
+	AT gvsig.com, or visit our website www.gvsig.com. -->
+<plugin-config>
+	<depends plugin-name="org.gvsig.vectorediting.app.mainplugin" />
+	<resourceBundle name="text" />
+	<libraries library-dir="lib" />
+	<extensions>
+		<extension class-name="org.gvsig.vectorediting.app.mainplugin.ServiceExtension"
+			description="" active="true" priority="1">
+
+			<action name="modify-symmetry" label="modify_symmetry"
+                tooltip="modify_symmetry" position="601002400" action-command="modify-symmetry"
+                icon="modify-symmetry" accelerator="" />
+
+			<menu text="Layer/Modify/modify_symmetry" name="modify-symmetry" />
+
+			<tool-bar name="vector_editing" position="4000">
+				<selectable-tool name="modify-symmetry" />
+			</tool-bar>
+
+		</extension>
+	</extensions>
+</plugin-config>
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/org.gvsig.vectorediting.symmetry.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 1320)
@@ -0,0 +1,63 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<assembly>
+  <id>gvsig-plugin-package</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.artifactId}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <files>
+    <file>
+      <source>target/${project.artifactId}-${project.version}.jar</source>
+      <outputDirectory>lib</outputDirectory>
+    </file>
+    <file>
+      <source>target/package.info</source>
+    </file>
+  </files>
+
+  <fileSets>
+    <fileSet>
+      <directory>src/main/resources-plugin</directory>
+      <outputDirectory>.</outputDirectory>
+    </fileSet>
+  </fileSets>
+
+
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <useTransitiveDependencies>false</useTransitiveDependencies>
+      <outputDirectory>lib</outputDirectory>
+      <includes>
+		<include>org.gvsig:org.gvsig.vectorediting.symmetry.lib.prov.symmetry</include>
+      </includes>
+    </dependencySet>
+  </dependencySets>
+
+</assembly>
+
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/pom.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/pom.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.app/pom.xml	(revision 1320)
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.vectorediting.symmetry</artifactId>
+    <version>1.0.61</version>
+  </parent>
+  <artifactId>org.gvsig.vectorediting.symmetry.app</artifactId>
+  <packaging>pom</packaging>
+  <name>org.gvsig.vectorediting.symmetry.app</name>
+  <modules>
+  	<module>org.gvsig.vectorediting.symmetry.app.mainplugin</module>
+  </modules>
+</project>
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/pom.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/pom.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/pom.xml	(revision 1320)
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.vectorediting.symmetry</artifactId>
+    <version>1.0.61</version>
+  </parent>
+  <artifactId>org.gvsig.vectorediting.symmetry.lib</artifactId>
+  <packaging>pom</packaging>
+  <name>org.gvsig.vectorediting.symmetry.lib</name>
+  <modules>
+  	<module>org.gvsig.vectorediting.symmetry.lib.prov</module>
+  </modules>
+</project>
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingProvider.java
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingProvider.java	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingProvider.java	(revision 1320)
@@ -0,0 +1,389 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2014 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+
+package org.gvsig.vectorediting.symmetry.lib.prov.symmetry;
+
+import java.awt.geom.AffineTransform;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.EditableFeature;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureSelection;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.aggregate.Aggregate;
+import org.gvsig.fmap.geom.aggregate.MultiCurve;
+import org.gvsig.fmap.geom.aggregate.MultiPoint;
+import org.gvsig.fmap.geom.aggregate.MultiSurface;
+import org.gvsig.fmap.geom.operation.GeometryOperationException;
+import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
+import org.gvsig.fmap.geom.primitive.Curve;
+import org.gvsig.fmap.geom.primitive.Line;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.geom.primitive.Surface;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dispose.DisposableIterator;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.service.spi.ProviderServices;
+import org.gvsig.vectorediting.lib.api.DrawingStatus;
+import org.gvsig.vectorediting.lib.api.EditingServiceParameter;
+import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE;
+import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException;
+import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException;
+import org.gvsig.vectorediting.lib.api.exceptions.InvalidEntryException;
+import org.gvsig.vectorediting.lib.api.exceptions.StartServiceException;
+import org.gvsig.vectorediting.lib.spi.AbstractEditingProvider;
+import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
+import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter;
+import org.gvsig.vectorediting.lib.spi.EditingProvider;
+import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
+import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
+import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
+import org.gvsig.vectorediting.lib.spi.EditingProviderServices;
+
+public class SymmetryEditingProvider extends AbstractEditingProvider implements
+    EditingProvider {
+
+    private I18nManager i18nManager = ToolsLocator.getI18nManager();
+
+    private EditingServiceParameter selectionParameter;
+
+    private EditingServiceParameter firstPointParameter;
+
+    private EditingServiceParameter secondPointParameter;
+
+    private EditingServiceParameter deleteOriginalGeometriesParameter;
+
+    private boolean deleteOriginalGeometries = false;
+
+    private Map<EditingServiceParameter, Object> values;
+
+    private Map<String, String> options;
+
+    private FeatureStore featureStore;
+
+    public SymmetryEditingProvider(ProviderServices providerServices,
+        DynObject parameters) {
+        super(providerServices);
+        this.featureStore =
+            (FeatureStore) parameters
+                .getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD);
+
+        this.selectionParameter =
+            new DefaultEditingServiceParameter("selection",
+                i18nManager.getTranslation("selection"), TYPE.SELECTION);
+
+        this.firstPointParameter =
+            new DefaultEditingServiceParameter("first_point_of_symmetry_axis",
+                i18nManager.getTranslation("first_point_of_symmetry_axis"),
+                TYPE.POSITION);
+
+        this.secondPointParameter =
+            new DefaultEditingServiceParameter("second_point_of_symmetry_axis",
+                i18nManager.getTranslation("second_point_of_symmetry_axis"),
+                TYPE.POSITION);
+
+        this.options = new LinkedHashMap<String, String>();
+        options.put(i18nManager.getTranslation("short_yes"),
+            "delete_original_geometries");
+        options.put(i18nManager.getTranslation("short_no"),
+            "keep_original_geometries");
+
+        EditingProviderServices editingProviderServices =
+            (EditingProviderServices) getProviderServices();
+
+        String consoleMsg =
+            editingProviderServices.makeConsoleMessage(
+                "delete_original_geometries_question", options);
+
+        this.deleteOriginalGeometriesParameter =
+            new DefaultEditingServiceParameter("Delete original geometries",
+                consoleMsg, options, TYPE.OPTION);
+    }
+
+    public DrawingStatus getDrawingStatus(Point mousePosition)
+        throws DrawServiceException {
+        DefaultDrawingStatus drawingStatus = new DefaultDrawingStatus();
+        EditingProviderManager editingProviderManager =
+            EditingProviderLocator.getProviderManager();
+        ISymbol auxiliaryLineSymbolEditing = editingProviderManager.getSymbol("auxiliary-line-symbol-editing");
+        ISymbol auxiliaryPointSymbolEditing = editingProviderManager.getSymbol("auxiliary-point-symbol-editing");
+        ISymbol lineSymbolEditing = editingProviderManager.getSymbol("line-symbol-editing");
+        ISymbol polygonSymbolEditing = editingProviderManager.getSymbol("polygon-symbol-editing");
+
+
+        FeatureSelection selected =
+            (FeatureSelection) values.get(selectionParameter);
+        try {
+            if ((selected != null) && !selected.isEmpty()) {
+                Point p1 = (Point) values.get(firstPointParameter);
+                if (p1 != null) {
+                    Object p2Value = values.get(secondPointParameter);
+                    Point p2 = null;
+                    if ((p2Value != null) && (p2Value instanceof Point)) {
+                        p2 = (Point) p2Value;
+                    } else {
+                        p2 = mousePosition;
+                    }
+                    Line line;
+                    line =
+                        GeometryLocator.getGeometryManager().createLine(
+                            featureStore.getDefaultFeatureType()
+                                .getDefaultGeometryAttribute().getGeomType()
+                                .getSubType());
+                    line.addVertex(p1);
+                    line.addVertex(p2);
+
+                    drawingStatus.addStatus(line, auxiliaryLineSymbolEditing, "");
+
+                    DisposableIterator it;
+                    it = selected.fastIterator();
+
+                    AffineTransform at;
+                    try {
+                        at = getSymmetryAffineTransform(p1, p2);
+                    } catch (Exception e) {
+                        throw new DrawServiceException(e);
+                    }
+
+                    while (it.hasNext()) {
+                        Feature feat = (Feature) it.next();
+                        Geometry transformedGeometry = feat.getDefaultGeometry().cloneGeometry();
+                        transformedGeometry.transform(at);
+
+                        ISymbol symbol=null;
+                        if(transformedGeometry instanceof Curve || transformedGeometry instanceof MultiCurve){
+                            symbol = lineSymbolEditing;
+                        } else if(transformedGeometry instanceof Surface || transformedGeometry instanceof MultiSurface){
+                            symbol = polygonSymbolEditing;
+                        } else if(transformedGeometry instanceof Point || transformedGeometry instanceof MultiPoint){
+                            symbol = auxiliaryPointSymbolEditing;
+                        }
+                        if(transformedGeometry instanceof Aggregate){
+                            int primitivesNumber = ((Aggregate)transformedGeometry).getPrimitivesNumber();
+                            for (int i = 0; i < primitivesNumber; i++) {
+                                drawingStatus.addStatus(((Aggregate)transformedGeometry).getPrimitiveAt(i), symbol, "");
+                            }
+                        } else {
+                            drawingStatus.addStatus(transformedGeometry, symbol, "");
+                        }
+                    }
+                    it.dispose();
+                }
+                return drawingStatus;
+            }
+        } catch (Exception e) {
+            throw new DrawServiceException(e);
+        }
+        return null;
+    }
+
+    private AffineTransform getSymmetryAffineTransform(Point axisP1,
+        Point axisP2) throws GeometryOperationNotSupportedException,
+        GeometryOperationException {
+
+        AffineTransform translate =
+            AffineTransform
+                .getTranslateInstance(-axisP1.getX(), -axisP1.getY());
+
+        EditingProviderServices editingProviderServices =
+            (EditingProviderServices) getProviderServices();
+        Double angle = -editingProviderServices.getAngle(axisP1, axisP2);
+        AffineTransform rotate = AffineTransform.getRotateInstance(angle);
+
+        AffineTransform symmetry = new AffineTransform(1, 0, 0, -1, 0, 0);
+        AffineTransform inverseRotate =
+            AffineTransform.getRotateInstance(-angle);
+        AffineTransform inverseTranslate =
+            AffineTransform.getTranslateInstance(axisP1.getX(), axisP1.getY());
+        AffineTransform at = new AffineTransform(translate);
+
+        at.preConcatenate(rotate);
+        at.preConcatenate(symmetry);
+        at.preConcatenate(inverseRotate);
+        at.preConcatenate(inverseTranslate);
+        return at;
+    }
+
+    public EditingServiceParameter next() {
+        if (values.get(selectionParameter) == null) {
+            return this.selectionParameter;
+        } else if (values.get(firstPointParameter) == null) {
+            return this.firstPointParameter;
+        } else if (values.get(secondPointParameter) == null) {
+            return this.secondPointParameter;
+        } else if (values.get(deleteOriginalGeometriesParameter) == null) {
+            return this.deleteOriginalGeometriesParameter;
+        }
+        return null;
+    }
+
+    public void stop() {
+        values.clear();
+    }
+
+    private void validateAndInsertValue(EditingServiceParameter param,
+        Object value) throws InvalidEntryException {
+        if (param == selectionParameter) {
+            if (value instanceof FeatureSelection) {
+                values.put(param, value);
+                return;
+            }
+        } else if (param == firstPointParameter) {
+            if (value instanceof Point) {
+                values.put(param, value);
+                return;
+            }
+        } else if (param == secondPointParameter) {
+            if (value instanceof Point) {
+                values.put(param, value);
+                return;
+            }
+        } else if (param == deleteOriginalGeometriesParameter) {
+            if (value instanceof String) {
+                if (((String) value).trim().equalsIgnoreCase(
+                    i18nManager.getTranslation("short_yes"))) {
+                    deleteOriginalGeometries = true;
+                } else if (((String) value).trim().equalsIgnoreCase(
+                    i18nManager.getTranslation("short_no"))) {
+                    deleteOriginalGeometries = false;
+                } else {
+                    throw new InvalidEntryException(null);
+                }
+                values.put(param, value);
+            }
+        }
+
+    }
+
+    public List<EditingServiceParameter> getParameters() {
+        List<EditingServiceParameter> list =
+            new ArrayList<EditingServiceParameter>();
+        list.add(selectionParameter);
+        list.add(firstPointParameter);
+        list.add(secondPointParameter);
+        return list;
+    }
+
+    public void setValue(Object value) throws InvalidEntryException {
+        EditingServiceParameter param = next();
+        validateAndInsertValue(param, value);
+    }
+
+    public void finishAndStore() throws FinishServiceException {
+
+        FeatureSelection selected =
+            (FeatureSelection) values.get(selectionParameter);
+        try {
+            if (!selected.isEmpty()) {
+                Point p1 = (Point) values.get(firstPointParameter);
+                Point p2 = (Point) values.get(secondPointParameter);
+                if ((p1 != null) && (p2 != null)) {
+
+                    AffineTransform at;
+                    try {
+                        at = getSymmetryAffineTransform(p1, p2);
+                    } catch (GeometryOperationNotSupportedException e) {
+                        throw new FinishServiceException(e);
+                    } catch (GeometryOperationException e) {
+                        throw new FinishServiceException(e);
+                    }
+
+                    DisposableIterator it;
+                    it = selected.fastIterator();
+
+                    while (it.hasNext()) {
+                        Feature feature = (Feature) it.next();
+                        Geometry geom =
+                            feature.getDefaultGeometry().cloneGeometry();
+                        geom.transform(at);
+                        if (this.deleteOriginalGeometries) {
+                            // Se sustituye la geometr�a original por la
+                            // calculada
+                            EditableFeature editableFeature =
+                                feature.getEditable();
+                            editableFeature.setDefaultGeometry(geom);
+                            ((EditingProviderServices) getProviderServices())
+                                .updateFeatureInFeatureStore(editableFeature,
+                                    featureStore);
+                        } else {
+                            // Se crea una feature nueva copiando los valores de
+                            // la feature original excepto aquellos que sean PK
+                            EditingProviderServices editingProviderServices =
+                                (EditingProviderServices) getProviderServices();
+                            EditableFeature editableFeature =
+                                editingProviderServices
+                                    .getFeatureCopyWithoutPK(featureStore,
+                                        feature);
+                            editableFeature.setDefaultGeometry(geom);
+                            editingProviderServices
+                                .insertFeatureIntoFeatureStore(editableFeature,
+                                    featureStore);
+                        }
+                    }
+                    it.dispose();
+                    featureStore.getFeatureSelection().deselectAll();
+                }
+            }
+        } catch (DataException e) {
+            throw new FinishServiceException(e);
+        }
+    }
+
+    public Geometry finish() throws FinishServiceException {
+        return null;
+    }
+
+    public void start() throws StartServiceException {
+        this.values = new HashMap<EditingServiceParameter, Object>();
+        FeatureSelection selected = null;
+        if (featureStore != null) {
+            try {
+                selected =
+                    (FeatureSelection) featureStore.getFeatureSelection()
+                        .clone();
+            } catch (DataException e) {
+                throw new StartServiceException(e);
+            } catch (CloneNotSupportedException e) {
+                // Do nothing
+            }
+            if ((selected != null) && (selected.getSelectedCount() > 0)) {
+                values.put(selectionParameter, selected);
+            }
+        }
+    }
+
+    public String getName() {
+        return SymmetryEditingProviderFactory.PROVIDER_NAME;
+    }
+
+}
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingProviderFactory.java
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingProviderFactory.java	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingProviderFactory.java	(revision 1320)
@@ -0,0 +1,89 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2014 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+
+package org.gvsig.vectorediting.symmetry.lib.prov.symmetry;
+
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynClass;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.service.spi.AbstractProviderFactory;
+import org.gvsig.tools.service.spi.Provider;
+import org.gvsig.tools.service.spi.ProviderServices;
+import org.gvsig.vectorediting.lib.api.EditingServiceInfo;
+import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceinfo;
+import org.gvsig.vectorediting.lib.spi.EditingProviderFactory;
+
+public class SymmetryEditingProviderFactory extends AbstractProviderFactory
+implements EditingProviderFactory {
+
+    public static final String PROVIDER_NAME = "modify-symmetry";
+
+    private final static String PROVIDER_DESCRIPTION =
+        "Creates symmetric geometries from selection";
+
+    public void initialize() {
+
+    }
+
+    public EditingServiceInfo getServiceInfo() {
+        EditingServiceInfo serviceInfo =
+            new DefaultEditingServiceinfo(PROVIDER_NAME, "", false, null,
+                new int[] { 
+                    Geometry.TYPES.POINT, Geometry.TYPES.MULTIPOINT,
+                    Geometry.TYPES.POLYGON, Geometry.TYPES.MULTIPOLYGON,
+                    Geometry.TYPES.LINE, Geometry.TYPES.MULTILINE,
+                    Geometry.TYPES.SURFACE, Geometry.TYPES.MULTISURFACE,
+                    Geometry.TYPES.CURVE, Geometry.TYPES.MULTICURVE 
+                });
+
+        return serviceInfo;
+    }
+
+    @Override
+    protected Provider doCreate(DynObject parameters, ProviderServices services) {
+        return new SymmetryEditingProvider(services, parameters);
+    }
+
+    @Override
+    public DynObject createParameters() {
+        DynObject dynobject = super.createParameters();
+        dynobject.setDynValue(PROVIDER_NAME_FIELD, PROVIDER_NAME);
+        return dynobject;
+    }
+
+    @Override
+    protected DynClass createParametersDynClass() {
+        DynClass dynclass =
+            ToolsLocator.getDynObjectManager().createDynClass(PROVIDER_NAME,
+                PROVIDER_DESCRIPTION);
+
+        dynclass.addDynFieldString(PROVIDER_NAME_FIELD);
+        dynclass.addDynFieldObject(FEATURE_STORE_FIELD);
+        dynclass.addDynFieldObject(MAPCONTEXT_FIELD);
+
+        return dynclass;
+    }
+
+}
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingLibrary.java
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingLibrary.java	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/java/org/gvsig/vectorediting/symmetry/lib/prov/symmetry/SymmetryEditingLibrary.java	(revision 1320)
@@ -0,0 +1,71 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright � 2007-2014 gvSIG Association
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+
+package org.gvsig.vectorediting.symmetry.lib.prov.symmetry;
+
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.vectorediting.lib.api.EditingLibrary;
+import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
+import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
+
+/**
+ * Library for default implementation initialization and configuration.
+ *
+ * @author gvSIG team
+ * @version $Id$
+ */
+public class SymmetryEditingLibrary extends AbstractLibrary {
+
+    @Override
+    public void doRegistration() {
+        registerAsServiceOf(EditingLibrary.class);
+    }
+
+    @Override
+    protected void doInitialize() throws LibraryException {
+    }
+
+    @Override
+    protected void doPostInitialize() throws LibraryException {
+        EditingProviderManager manager =
+            EditingProviderLocator.getProviderManager();
+
+        manager.addProviderFactory(new SymmetryEditingProviderFactory());
+
+        manager.registerIcon("vectorediting-tools", "modify-symmetry", this
+            .getClass().getClassLoader(), this.getClass().getName());
+
+        registerTranslations();
+    }
+
+    private void registerTranslations() {
+        I18nManager manager = ToolsLocator.getI18nManager();
+        manager.addResourceFamily("i18n.text",
+            this.getClass().getClassLoader(), "symmetry-editing");
+    }
+
+}
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/images/vectorediting-tools/modify-symmetry.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/images/vectorediting-tools/modify-symmetry.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/i18n/text.properties
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/i18n/text.properties	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/i18n/text.properties	(revision 1320)
@@ -0,0 +1,9 @@
+modify_symmetry = Geometr\u00eda sim\u00e9trica
+selection=Selecci\u00f3n
+first_point_of_symmetry_axis=Primer punto del eje de simetr\u00eda
+second_point_of_symmetry_axis=Segundo punto del eje de simetr\u00eda
+delete_original_geometries_question=\u00bfDesea borrar las geometr\u00edas originales?
+short_yes=S
+short_no=N
+delete_original_geometries = Eliminar geometr\u00edas originales
+keep_original_geometries = Mantener geometr\u00edas originales
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/i18n/text_en.properties
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/i18n/text_en.properties	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/i18n/text_en.properties	(revision 1320)
@@ -0,0 +1,9 @@
+modify_symmetry = Symmetrical geometry
+selection = Selection
+first_point_of_symmetry_axis=First point of the symmetry axis
+second_point_of_symmetry_axis=Second point of the symmetry axis
+delete_original_geometries_question=Delete original geometries?
+short_yes=Y
+short_no=N
+delete_original_geometries = Delete original geometries
+keep_original_geometries = Keep original geometries
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 1320)
@@ -0,0 +1 @@
+org.gvsig.vectorediting.symmetry.lib.prov.symmetry.SymmetryEditingLibrary
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/pom.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/pom.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/org.gvsig.vectorediting.symmetry.lib.prov.symmetry/pom.xml	(revision 1320)
@@ -0,0 +1,25 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.vectorediting.symmetry.lib.prov</artifactId>
+		<version>1.0.61</version>
+	</parent>
+	<artifactId>org.gvsig.vectorediting.symmetry.lib.prov.symmetry</artifactId>
+	<name>org.gvsig.vectorediting.symmetry.lib.prov.symmetry</name>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.lib.api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.lib.impl</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.gvsig</groupId>
+			<artifactId>org.gvsig.vectorediting.lib.spi</artifactId>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/pom.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/pom.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/org.gvsig.vectorediting.symmetry.lib/org.gvsig.vectorediting.symmetry.lib.prov/pom.xml	(revision 1320)
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.vectorediting.symmetry.lib</artifactId>
+    <version>1.0.61</version>
+  </parent>
+  <artifactId>org.gvsig.vectorediting.symmetry.lib.prov</artifactId>
+  <packaging>pom</packaging>
+  <name>org.gvsig.vectorediting.symmetry.lib.prov</name>
+  <modules>
+  	<module>
+  		org.gvsig.vectorediting.symmetry.lib.prov.symmetry
+  	</module>
+  </modules>
+</project>
\ No newline at end of file
Index: org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/pom.xml
===================================================================
--- org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/pom.xml	(revision 0)
+++ org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61/pom.xml	(revision 1320)
@@ -0,0 +1,88 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.gvsig</groupId>
+		<artifactId>org.gvsig.desktop</artifactId>
+		<version>2.0.206</version>
+	</parent>
+	<groupId>org.gvsig</groupId>
+	<artifactId>org.gvsig.vectorediting.symmetry</artifactId>
+	<version>1.0.61</version>
+	<packaging>pom</packaging>
+	<name>org.gvsig.vectorediting.symmetry</name>
+	<description>Project that provides the symmetry vector editing tool</description>
+
+	<repositories>
+		<repository>
+			<id>gvsig-public-http-repository</id>
+			<name>gvSIG maven public HTTP repository</name>
+			<url>http://devel.gvsig.org/m2repo/j2se</url>
+			<releases>
+				<enabled>true</enabled>
+				<updatePolicy>daily</updatePolicy>
+				<checksumPolicy>warn</checksumPolicy>
+			</releases>
+			<snapshots>
+				<enabled>true</enabled>
+				<updatePolicy>daily</updatePolicy>
+				<checksumPolicy>warn</checksumPolicy>
+			</snapshots>
+		</repository>
+	</repositories>
+
+	<url>dav:https://devel.gvsig.org/sites/${project.artifactId}/${project.version}</url>
+	<scm>
+		<connection>scm:svn:https://devel.gvsig.org/svn/gvsig-vectorediting/org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61</connection>
+		<developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-vectorediting/org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61</developerConnection>
+		<url>https://devel.gvsig.org/redmine/projects/gvsig-vector-editing/repository/show/org.gvsig.vectorediting.symmetry/tags/org.gvsig.vectorediting.symmetry-1.0.61</url>
+	</scm>
+
+	<distributionManagement>
+		<site>
+			<id>gvsig-repository</id>
+			<url>dav:https://devel.gvsig.org/download/projects/gvsig-vectorediting/pool/${project.artifactId}/${project.version}</url>
+		</site>
+	</distributionManagement>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-release-plugin</artifactId>
+				<configuration>
+					<tagBase>https://devel.gvsig.org/svn/gvsig-vectorediting/${project.artifactId}/tags</tagBase>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.gvsig</groupId>
+				<artifactId>
+                org.gvsig.vectorediting
+        </artifactId>
+				<version>${org.gvsig.vectorediting.version}</version>
+        <scope>import</scope>
+        <type>pom</type>
+			</dependency>
+			<dependency>
+				<groupId>org.gvsig</groupId>
+				<artifactId>org.gvsig.vectorediting.symmetry.lib.prov.symmetry</artifactId>
+				<version>1.0.61</version>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<modules>
+		<module>org.gvsig.vectorediting.symmetry.lib</module>
+		<module>org.gvsig.vectorediting.symmetry.app</module>
+	</modules>
+
+  <properties>
+     <org.gvsig.vectorediting.version>1.0.70</org.gvsig.vectorediting.version>
+  </properties>
+</project>
+
