diff --git a/org.flowerplatform.codesync.java/src/org/flowerplatform/codesync/code/java/controller/JavaIconPropertyProvider.java b/org.flowerplatform.codesync.java/src/org/flowerplatform/codesync/code/java/controller/JavaIconPropertyProvider.java index a7b15c8f..4507ff48 100644 --- a/org.flowerplatform.codesync.java/src/org/flowerplatform/codesync/code/java/controller/JavaIconPropertyProvider.java +++ b/org.flowerplatform.codesync.java/src/org/flowerplatform/codesync/code/java/controller/JavaIconPropertyProvider.java @@ -25,6 +25,7 @@ import static org.eclipse.jdt.core.dom.Modifier.isSynchronized; import static org.eclipse.jdt.core.dom.Modifier.isTransient; import static org.eclipse.jdt.core.dom.Modifier.isVolatile; +import static org.flowerplatform.codesync.CodeSyncConstants.REMOVED; import static org.flowerplatform.codesync.code.java.CodeSyncJavaConstants.DECORATOR_ABSTRACT; import static org.flowerplatform.codesync.code.java.CodeSyncJavaConstants.DECORATOR_FINAL; import static org.flowerplatform.codesync.code.java.CodeSyncJavaConstants.DECORATOR_NATIVE; @@ -44,7 +45,6 @@ import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword; import org.flowerplatform.codesync.code.java.CodeSyncJavaConstants; import org.flowerplatform.codesync.code.java.CodeSyncJavaPlugin; -import org.flowerplatform.codesync.controller.CodeSyncControllerUtils; import org.flowerplatform.core.CoreConstants; import org.flowerplatform.core.node.NodeService; import org.flowerplatform.core.node.controller.ConstantValuePropertyProvider; @@ -118,7 +118,7 @@ private String append(String icon, String decorator) { protected int getModifiersFlags(Node node, ServiceContext context) { int flags = 0; for (Node modifier : getModifiers(node, context)) { - if (CodeSyncControllerUtils.isRemoved(modifier)) { + if (isRemoved(modifier)) { // don't decorate if the modifier was marked removed continue; } @@ -141,6 +141,15 @@ protected List getModifiers(Node node, ServiceContext context return modifiers; } + public boolean isRemoved(Node node) { + return hasFlagTrue(node, REMOVED); + } + + private boolean hasFlagTrue(Node node, String flag) { + Boolean b = (Boolean) node.getPropertyValue(flag); + return b != null && b; + } + protected String getVisibilityPrivate() { return getIconWithVisibility(VISIBILITY_PRIVATE); } diff --git a/org.flowerplatform.codesync.regex/.gitignore b/org.flowerplatform.codesync.regex/.gitignore index e66216bb..2e0a8595 100644 --- a/org.flowerplatform.codesync.regex/.gitignore +++ b/org.flowerplatform.codesync.regex/.gitignore @@ -1,4 +1,4 @@ -/bin -/bin -/bin -/bin +/bin +/bin +/bin +/bin diff --git a/org.flowerplatform.codesync.regex/META-INF/MANIFEST.MF b/org.flowerplatform.codesync.regex/META-INF/MANIFEST.MF index c658c072..b81f4702 100644 --- a/org.flowerplatform.codesync.regex/META-INF/MANIFEST.MF +++ b/org.flowerplatform.codesync.regex/META-INF/MANIFEST.MF @@ -1,12 +1,12 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Regex -Bundle-SymbolicName: org.flowerplatform.codesync.regex;singleton:=true -Bundle-RequiredExecutionEnvironment: JavaSE-1.7 -Bundle-Version: 0.1.1.qualifier -Require-Bundle: org.eclipse.osgi, - org.flowerplatform.core, - org.flowerplatform.resources, - org.flowerplatform.util -Bundle-ActivationPolicy: lazy -Bundle-Activator: org.flowerplatform.codesync.regex.CodeSyncRegexPlugin +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Regex +Bundle-SymbolicName: org.flowerplatform.codesync.regex;singleton:=true +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Bundle-Version: 0.1.1.qualifier +Require-Bundle: org.eclipse.osgi, + org.flowerplatform.core, + org.flowerplatform.resources, + org.flowerplatform.util +Bundle-ActivationPolicy: lazy +Bundle-Activator: org.flowerplatform.codesync.regex.CodeSyncRegexPlugin diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffConstants.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffConstants.java index 14a5cd7f..a111314a 100644 --- a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffConstants.java +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffConstants.java @@ -15,6 +15,8 @@ */ package org.flowerplatform.codesync.sdiff; +import org.flowerplatform.util.UtilConstants; + public class CodeSyncSdiffConstants { ////////////////////////////////// @@ -33,6 +35,8 @@ public class CodeSyncSdiffConstants { public static final String MODIFIED_BODY = "bodyModified"; public static final String MODIFIED_CHILDREN = "childrenModified"; public static final String ADDED_COMMENT = "comment"; + public static final String CONTAINS_COMMENT = "containsComment"; + public static final String CATEGORY_CAN_CONTAIN_COMMENT = UtilConstants.CATEGORY_PREFIX + "canContainComment"; // relative to repository public static final String STRUCTURE_DIFFS_FOLDER = "sdiffs"; @@ -48,10 +52,24 @@ public class CodeSyncSdiffConstants { public static final String MATCH_COLOR_CHILDREN_MODIFIED = "#FFCC00"; public static final String MATCH_COLOR_COMMENT = "#FFFF00"; + // dirty marker for comments + public static final String NODE_URI_TO_BE_IGNORED = "nodeURIToBeIgnored"; + + // flag so CanContainCommentPropertyProvider won't loop while trying to set CODESYNC_ICONS property + public static final String ALREADY_BEEN_IN_THIS_SETTER = "alreadyBeenInThisSetter"; + + ////////////////////////////////// // Service context options ////////////////////////////////// public static final String SKIP_MATCH_CHILDREN_PROVIDER = "skipMatchChildrenProvider"; + ///////////////////////////////// + // Images + //////////////////////////////// + + public static final String IMG_TYPE_COMMENTS = "comments.png"; + public static final String IMG_TYPE_COMMENT = "comment.png"; + } diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffPlugin.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffPlugin.java index 88d827a3..38261139 100644 --- a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffPlugin.java +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/CodeSyncSdiffPlugin.java @@ -15,20 +15,25 @@ */ package org.flowerplatform.codesync.sdiff; +import static org.flowerplatform.codesync.CodeSyncConstants.CATEGORY_CAN_HOLD_CUSTOM_ICON; import static org.flowerplatform.codesync.CodeSyncConstants.MATCH; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.CATEGORY_CAN_CONTAIN_COMMENT; import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.COMMENT; import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.STRUCTURE_DIFF; import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.STRUCTURE_DIFF_EXTENSION; import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.STRUCTURE_DIFF_LEGEND; import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.STRUCTURE_DIFF_LEGEND_CHILD; import static org.flowerplatform.core.CoreConstants.ADD_CHILD_DESCRIPTOR; +import static org.flowerplatform.core.CoreConstants.ADD_NODE_CONTROLLER; import static org.flowerplatform.core.CoreConstants.CHILDREN_PROVIDER; import static org.flowerplatform.core.CoreConstants.FILE_NODE_TYPE; import static org.flowerplatform.core.CoreConstants.PROPERTIES_PROVIDER; -import static org.flowerplatform.core.CoreConstants.PROPERTY_FOR_TITLE_DESCRIPTOR; import static org.flowerplatform.core.CoreConstants.PROPERTY_SETTER; -import static org.flowerplatform.mindmap.MindMapConstants.TEXT; +import static org.flowerplatform.core.CoreConstants.REMOVE_NODE_CONTROLLER; +import org.flowerplatform.codesync.sdiff.controller.CanContainCommentAddNodeListener; +import org.flowerplatform.codesync.sdiff.controller.CanContainCommentPropertyProvider; +import org.flowerplatform.codesync.sdiff.controller.CanContainCommentRemoveNodeListener; import org.flowerplatform.codesync.sdiff.controller.StructureDiffCommentController; import org.flowerplatform.codesync.sdiff.controller.StructureDiffLegendChildrenPropertiesProvider; import org.flowerplatform.codesync.sdiff.controller.StructureDiffLegendController; @@ -38,7 +43,7 @@ import org.flowerplatform.core.CorePlugin; import org.flowerplatform.core.file.FileSubscribableProvider; import org.flowerplatform.core.node.remote.AddChildDescriptor; -import org.flowerplatform.core.node.remote.GenericValueDescriptor; +import org.flowerplatform.resources.ResourcesPlugin; import org.flowerplatform.util.plugin.AbstractFlowerJavaPlugin; import org.osgi.framework.BundleContext; @@ -48,13 +53,13 @@ public class CodeSyncSdiffPlugin extends AbstractFlowerJavaPlugin { protected static CodeSyncSdiffPlugin INSTANCE; - + private StructureDiffService sDiffService = new StructureDiffService(); public static CodeSyncSdiffPlugin getInstance() { return INSTANCE; } - + public StructureDiffService getSDiffService() { return sDiffService; } @@ -62,12 +67,12 @@ public StructureDiffService getSDiffService() { public void start(BundleContext bundleContext) throws Exception { super.start(bundleContext); INSTANCE = this; - + CorePlugin.getInstance().getServiceRegistry().registerService("structureDiffService", sDiffService); CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateTypeDescriptor(STRUCTURE_DIFF_LEGEND_CHILD) .addAdditiveController(PROPERTIES_PROVIDER, new StructureDiffLegendChildrenPropertiesProvider()); - + CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateTypeDescriptor(STRUCTURE_DIFF_LEGEND) .addAdditiveController(PROPERTIES_PROVIDER, new StructureDiffLegendController()) .addAdditiveController(CHILDREN_PROVIDER, new StructureDiffLegendController()); @@ -76,24 +81,38 @@ public void start(BundleContext bundleContext) throws Exception { CorePlugin.getInstance().getVirtualNodeResourceHandler().addVirtualNodeType(STRUCTURE_DIFF_LEGEND); CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateTypeDescriptor(STRUCTURE_DIFF) - .addAdditiveController(CHILDREN_PROVIDER, new StructureDiffNodeLegendController()); + .addAdditiveController(CHILDREN_PROVIDER, new StructureDiffNodeLegendController()) + .addCategory(CATEGORY_CAN_CONTAIN_COMMENT); CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateTypeDescriptor(FILE_NODE_TYPE) .addAdditiveController(PROPERTIES_PROVIDER, new FileSubscribableProvider(STRUCTURE_DIFF_EXTENSION, "fpp", "mindmap", true)); - + StructureDiffMatchPropertiesProvider structureDiffMatchPropertiesController = new StructureDiffMatchPropertiesProvider(); CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateTypeDescriptor(MATCH) .addAdditiveController(PROPERTIES_PROVIDER, structureDiffMatchPropertiesController) .addAdditiveController(PROPERTY_SETTER, structureDiffMatchPropertiesController) .addAdditiveController(CHILDREN_PROVIDER, new StructureDiffMatchChildrenProvider()) - .addAdditiveController(ADD_CHILD_DESCRIPTOR, new AddChildDescriptor().setChildTypeAs(COMMENT)) - .addSingleController(PROPERTY_FOR_TITLE_DESCRIPTOR, new GenericValueDescriptor(TEXT).setOrderIndexAs(-10000)); - + .addAdditiveController(ADD_CHILD_DESCRIPTOR, new AddChildDescriptor().setChildTypeAs(COMMENT).setLabelAs(ResourcesPlugin.getInstance().getMessage("codesync.sdiff.newlyAddedElement"))) + .addCategory(CATEGORY_CAN_CONTAIN_COMMENT); + + StructureDiffCommentController commentController = (StructureDiffCommentController) new StructureDiffCommentController().setOrderIndexAs(5000); CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateTypeDescriptor(COMMENT) - .addAdditiveController(PROPERTIES_PROVIDER, new StructureDiffCommentController()); + .addAdditiveController(PROPERTIES_PROVIDER, commentController) + .addAdditiveController(PROPERTY_SETTER, commentController) + .addCategory(CATEGORY_CAN_CONTAIN_COMMENT) + .addCategory(CATEGORY_CAN_HOLD_CUSTOM_ICON); + + CanContainCommentPropertyProvider commentPropertyProvider = new CanContainCommentPropertyProvider(); + CorePlugin.getInstance().getNodeTypeDescriptorRegistry().getOrCreateCategoryTypeDescriptor(CATEGORY_CAN_CONTAIN_COMMENT) + .addAdditiveController(PROPERTIES_PROVIDER, commentPropertyProvider) + .addAdditiveController(PROPERTY_SETTER, commentPropertyProvider) + .addAdditiveController(ADD_NODE_CONTROLLER, new CanContainCommentAddNodeListener().setOrderIndexAs(10000)) + .addAdditiveController(REMOVE_NODE_CONTROLLER, new CanContainCommentRemoveNodeListener().setOrderIndexAs(-10000)) + .addAdditiveController(ADD_CHILD_DESCRIPTOR, + new AddChildDescriptor().setChildTypeAs(COMMENT).setLabelAs(ResourcesPlugin.getInstance().getMessage("codesync.sdiff.comment"))); } - + public void stop(BundleContext bundleContext) throws Exception { super.stop(bundleContext); INSTANCE = null; @@ -103,5 +122,9 @@ public void stop(BundleContext bundleContext) throws Exception { public void registerMessageBundle() throws Exception { // nothing to do yet } - -} \ No newline at end of file + + public String getImagePath(String img) { + return ResourcesPlugin.getInstance().getResourceUrl("/images/codesync.sdiff/comment-marker/" + img); + } + +} diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentAddNodeListener.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentAddNodeListener.java new file mode 100644 index 00000000..7971a703 --- /dev/null +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentAddNodeListener.java @@ -0,0 +1,25 @@ +package org.flowerplatform.codesync.sdiff.controller; + +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.COMMENT; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.NODE_URI_TO_BE_IGNORED; + +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.controller.IAddNodeController; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; + +/** + * Whenever you add a new node of type comment, that new node has to be marked as dirty, + * and this flag has to be propagated to parents. + * + * @author Elena Posea + */ +public class CanContainCommentAddNodeListener extends ContainsCommentPropagator implements IAddNodeController { + + @Override + public void addNode(Node node, Node child, ServiceContext serviceContext) { + if (child.getType().equals(COMMENT)) { + setDirtyAndPropagateToParents(child, serviceContext.add(NODE_URI_TO_BE_IGNORED, child.getNodeUri())); + } + } +} diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentPropertyProvider.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentPropertyProvider.java new file mode 100644 index 00000000..2c087013 --- /dev/null +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentPropertyProvider.java @@ -0,0 +1,103 @@ +package org.flowerplatform.codesync.sdiff.controller; + +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.CONTAINS_COMMENT; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.ALREADY_BEEN_IN_THIS_SETTER; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.IMG_TYPE_COMMENTS; +import static org.flowerplatform.core.CoreConstants.CODESYNC_ICONS; +import static org.flowerplatform.core.CoreConstants.EXECUTE_ONLY_FOR_UPDATER; +import static org.flowerplatform.core.CoreConstants.DONT_PROCESS_OTHER_CONTROLLERS; + +import java.util.regex.Matcher; + +import org.flowerplatform.codesync.sdiff.CodeSyncSdiffPlugin; +import org.flowerplatform.core.CoreConstants; +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.controller.IPropertiesProvider; +import org.flowerplatform.core.node.controller.IPropertySetter; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; +import org.flowerplatform.util.controller.AbstractController; + +/** + * @author Elena Posea + */ +public class CanContainCommentPropertyProvider extends AbstractController implements IPropertySetter, IPropertiesProvider { + + /** + * Order index has to be higher than CanContainCommentAddNodeListener's + * order index. First add the node, then set/provide properties. + * Order index must also be higher than StructureDiffMatchPropertiesProvider's order index. + * For nodes of type Match, you should first invoke StructureDifffMatchPropertiesProvider, + * then this provider. It should also be higher than StructureDiffCommentController. + */ + public CanContainCommentPropertyProvider() { + setOrderIndex(11000); + } + + @Override + public void populateWithProperties(Node node, ServiceContext context) { + node.getProperties().put(CODESYNC_ICONS, getCodeSyncIcon(node, context)); + } + + @Override + public void setProperty(Node node, String property, Object value, ServiceContext context) { + if (context.get(ALREADY_BEEN_IN_THIS_SETTER) != null) + return; + if ((property.equals(CONTAINS_COMMENT) && (Boolean) value == true)) { + ServiceContext newContext = new ServiceContext(context.getService()); + newContext.getContext().put(EXECUTE_ONLY_FOR_UPDATER, true); + newContext.getContext().put(ALREADY_BEEN_IN_THIS_SETTER, true); + // here I set only the codesync icons, that are not to be persisted; + // in order not to cycle/infinitely recourse in this setProperty + // function, I use the ALREADY_BEEN_IN_THIS_SETTER flag, in context + context.getService().setProperty(node, CODESYNC_ICONS, getCodeSyncIcon(node, context), newContext); + } else { + if (property.equals(CODESYNC_ICONS)) { + ServiceContext newContext = new ServiceContext(context.getService()); + // otherwise, the next controller for MATCH is + // CanContainCommentPropertyProvider + Updater (we don't want + // this) + context.getContext().put(DONT_PROCESS_OTHER_CONTROLLERS, true); + newContext.getContext().put(ALREADY_BEEN_IN_THIS_SETTER, true); + context.getService().setProperty(node, CODESYNC_ICONS, getCodeSyncIcon(node, context), newContext); + } + } + } + + private String getCodeSyncIcon(Node node, ServiceContext context) { + Boolean containsCommentFlag = (Boolean) node.getProperties().get(CONTAINS_COMMENT); + Object codesyncListOfIcons = node.getProperties().get(CODESYNC_ICONS); + String icon = ""; + if (codesyncListOfIcons != null) { + icon = (String) codesyncListOfIcons; + } + // icon = current icon list + String newIcon = CodeSyncSdiffPlugin.getInstance().getImagePath(IMG_TYPE_COMMENTS); + // newIcon = the icon that I would like to add + if (containsCommentFlag != null && containsCommentFlag == true) { + if (icon.indexOf(newIcon) == -1) { // this node doesn't already + // contain this icon + icon = icon + (!icon.isEmpty() ? CoreConstants.ICONS_SEPARATOR : "") + newIcon; + } + return icon; + } else { + // remove property + int index = icon.indexOf(newIcon); + if (index != -1) { // this node contains the icon; remove it + icon = icon.replaceAll(",?" + Matcher.quoteReplacement(newIcon), ""); + } + return icon; + } + } + + @Override + public void unsetProperty(Node node, String property, ServiceContext context) { + if (property.equals(CONTAINS_COMMENT)) { + ServiceContext newContext = new ServiceContext(); + newContext.getContext().put(EXECUTE_ONLY_FOR_UPDATER, true); + newContext.getContext().put(ALREADY_BEEN_IN_THIS_SETTER, true); + context.getService().setProperty(node, CODESYNC_ICONS, getCodeSyncIcon(node, context), newContext); + } + } + +} diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentRemoveNodeListener.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentRemoveNodeListener.java new file mode 100644 index 00000000..295f2897 --- /dev/null +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/CanContainCommentRemoveNodeListener.java @@ -0,0 +1,22 @@ +package org.flowerplatform.codesync.sdiff.controller; + +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.controller.IRemoveNodeController; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; + +/** + * After the removal of some node of type CanContainComment, attempt to clean/ + * propagate clean (whether this was the last dirty child or not, is tested by + * unsetDirtyAndPropagateToParents() method itself) + * + * @author Elena Posea + */ +public class CanContainCommentRemoveNodeListener extends ContainsCommentPropagator implements IRemoveNodeController { + + @Override + public void removeNode(Node node, Node child, ServiceContext serviceContext) { + unsetDirtyAndPropagateToParents(child, serviceContext); + } + +} diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/ContainsCommentPropagator.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/ContainsCommentPropagator.java new file mode 100644 index 00000000..e7e030d6 --- /dev/null +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/ContainsCommentPropagator.java @@ -0,0 +1,56 @@ +package org.flowerplatform.codesync.sdiff.controller; + +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.CONTAINS_COMMENT; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.NODE_URI_TO_BE_IGNORED; + +import org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants; +import org.flowerplatform.core.DirtyPropagatorController; +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; + +/** + * This class describes the behavior of comment propagation: what does "dirty" mean, the logic/way of propagating clean/dirty + * @author Elena Posea + */ +public class ContainsCommentPropagator extends DirtyPropagatorController { + + @Override + public void setDirty(Node node, ServiceContext serviceContext) { + // nothing to do + } + + @Override + public void unsetDirty(Node node, ServiceContext serviceContext) { + // I can't unset dirty on a comment; comment is, because of the fact that it is a comment, dirty + // but I don't want isDirty to return true for this node, because it doesn't matter what it is, I want to erase it anyway + serviceContext.add(NODE_URI_TO_BE_IGNORED, node.getNodeUri()); + } + + @Override + public void setChildrenDirty(Node node, ServiceContext context) { + context.getService().setProperty(node, CONTAINS_COMMENT, true, context); + } + + @Override + public void unsetChildrenDirty(Node node, ServiceContext context) { + context.getService().unsetProperty(node, CONTAINS_COMMENT, context); + } + + @Override + public boolean isDirty(Node node, ServiceContext serviceContext) { + if (node.getNodeUri().equals(serviceContext.getContext().get(NODE_URI_TO_BE_IGNORED))) { + return false; + } + return node.getType().equals(CodeSyncSdiffConstants.COMMENT); + } + + @Override + public boolean isChildrenDirty(Node node, ServiceContext serviceContext) { + Boolean b = (Boolean) node.getPropertyValue(CONTAINS_COMMENT); + // is something that has a child comment, and it should not be ignored + // we always ignore the current node/ the node on which we invoked unsetDirty as it should not count as dirty/ we want to erase it now + return b != null && b && !(node.getNodeUri().equals(serviceContext.getContext().get(NODE_URI_TO_BE_IGNORED))); + } + +} diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffCommentController.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffCommentController.java index fde1315d..9b3bb2ed 100644 --- a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffCommentController.java +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffCommentController.java @@ -15,11 +15,18 @@ */ package org.flowerplatform.codesync.sdiff.controller; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.IMG_TYPE_COMMENT; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.MATCH_COLOR_COMMENT; +import static org.flowerplatform.core.CoreConstants.CODESYNC_ICONS; +import static org.flowerplatform.core.CoreConstants.EXECUTE_ONLY_FOR_UPDATER; +import static org.flowerplatform.core.CoreConstants.ICONS; import static org.flowerplatform.mindmap.MindMapConstants.COLOR_BACKGROUND; -import org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants; +import org.flowerplatform.codesync.sdiff.CodeSyncSdiffPlugin; +import org.flowerplatform.core.CoreConstants; import org.flowerplatform.core.node.NodeService; import org.flowerplatform.core.node.controller.IPropertiesProvider; +import org.flowerplatform.core.node.controller.IPropertySetter; import org.flowerplatform.core.node.remote.Node; import org.flowerplatform.core.node.remote.ServiceContext; import org.flowerplatform.util.controller.AbstractController; @@ -27,11 +34,34 @@ /** * @author Mariana Gheorghe */ -public class StructureDiffCommentController extends AbstractController implements IPropertiesProvider { - +public class StructureDiffCommentController extends AbstractController implements IPropertiesProvider, IPropertySetter { + @Override public void populateWithProperties(Node node, ServiceContext context) { - node.getProperties().put(COLOR_BACKGROUND, CodeSyncSdiffConstants.MATCH_COLOR_COMMENT); + node.getProperties().put(COLOR_BACKGROUND, MATCH_COLOR_COMMENT); + Object obj = node.getProperties().get(ICONS); + String icons = ""; + if (obj != null) { + icons = (String) obj; + } + node.getProperties().put(ICONS, icons); + node.getProperties().put(CODESYNC_ICONS, icons + (icons.isEmpty() ? "" : CoreConstants.ICONS_SEPARATOR) + CodeSyncSdiffPlugin.getInstance().getImagePath(IMG_TYPE_COMMENT)); + } + + @Override + public void setProperty(Node node, String property, Object value, ServiceContext context) { + ServiceContext newContext = new ServiceContext(context.getService()); + newContext.getContext().put(EXECUTE_ONLY_FOR_UPDATER, true); + if (property.equals(ICONS)) { + String icons = (String) value; + context.getService().setProperty(node, CODESYNC_ICONS, + icons + (icons.isEmpty() ? "" : CoreConstants.ICONS_SEPARATOR) + CodeSyncSdiffPlugin.getInstance().getImagePath(IMG_TYPE_COMMENT), newContext); + } + } + + @Override + public void unsetProperty(Node node, String property, ServiceContext context) { + String test = "hello"; } -} \ No newline at end of file +} diff --git a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffMatchPropertiesProvider.java b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffMatchPropertiesProvider.java index 3118f485..6d72a774 100644 --- a/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffMatchPropertiesProvider.java +++ b/org.flowerplatform.codesync.sdiff/src/org/flowerplatform/codesync/sdiff/controller/StructureDiffMatchPropertiesProvider.java @@ -26,6 +26,7 @@ import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.MATCH_COLOR_PROP_MODIFIED; import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.MATCH_COLOR_REMOVED; import static org.flowerplatform.core.CoreConstants.CODESYNC_ICONS; +import static org.flowerplatform.core.CoreConstants.EXECUTE_ONLY_FOR_UPDATER; import static org.flowerplatform.core.CoreConstants.ICONS; import static org.flowerplatform.mindmap.MindMapConstants.COLOR_BACKGROUND; @@ -159,6 +160,9 @@ private boolean hasFlagTrue(Node node, String flag) { return b != null && b; } + /** + * @author Elena Posea + */ @Override public void setProperty(Node node, String property, Object value, ServiceContext context) { if (ICONS.equals(property)) { @@ -168,7 +172,11 @@ public void setProperty(Node node, String property, Object value, ServiceContext if (codeSyncIcons == null) { codeSyncIcons = ""; } - context.getService().setProperty(node, CODESYNC_ICONS, codeSyncIcons, context); + ServiceContext newContext = new ServiceContext(context.getService()); + + // so that CODESYNC_ICONS don't get persisted / written in the file + newContext.getContext().put(EXECUTE_ONLY_FOR_UPDATER, true); + context.getService().setProperty(node, CODESYNC_ICONS, codeSyncIcons, newContext); } } @@ -179,4 +187,4 @@ public void unsetProperty(Node node, String property, ServiceContext context) { - // disable the controllers during the execution of sync algorithm - if (context.getBooleanValue(CodeSyncConstants.SYNC_IN_PROGRESS)) { - return; - } - context.getService().setProperty(child, CodeSyncConstants.REMOVED, true, new ServiceContext(context.getService())); context.add(DONT_PROCESS_OTHER_CONTROLLERS, true); } diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/AbstractModelAdapter.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/AbstractModelAdapter.java index cbe5ef75..25ab3e08 100644 --- a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/AbstractModelAdapter.java +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/AbstractModelAdapter.java @@ -15,6 +15,8 @@ */ package org.flowerplatform.codesync.adapter; +import static org.flowerplatform.codesync.CodeSyncConstants.ORIGINAL_SUFFIX; + import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -167,4 +169,8 @@ public void setSync(Object element) { public void setChildrenSync(Object element) { // nothing to do } + + public String getOriginalPropertyName(String property) { + return property + ORIGINAL_SUFFIX; + } } \ No newline at end of file diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapter.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapter.java index 00da663b..a15dbb98 100644 --- a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapter.java +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapter.java @@ -34,7 +34,6 @@ import org.flowerplatform.codesync.FilteredIterable; import org.flowerplatform.codesync.Match; import org.flowerplatform.codesync.action.ActionResult; -import org.flowerplatform.codesync.controller.CodeSyncControllerUtils; import org.flowerplatform.core.CoreConstants; import org.flowerplatform.core.CorePlugin; import org.flowerplatform.core.node.NodeService; @@ -309,8 +308,6 @@ protected void processContainmentFeatureAfterActionPerformed(Node node, Object f } else { if (childNode.getProperties().containsKey(REMOVED)) { service.removeChild(node, childNode, new ServiceContext(service)); - // set childrenSync now, because after this match is synced, the parent won't be notified because this child is already removed - CodeSyncControllerUtils.setChildrenSyncTrueAndPropagateToParents(node, service); } } } diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterAncestor.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterAncestor.java index 79b03cd5..7d8fd176 100644 --- a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterAncestor.java +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterAncestor.java @@ -22,7 +22,6 @@ import org.flowerplatform.codesync.FilteredIterable; import org.flowerplatform.codesync.Match; import org.flowerplatform.codesync.action.ActionResult; -import org.flowerplatform.codesync.controller.CodeSyncControllerUtils; import org.flowerplatform.core.node.remote.Node; /** @@ -54,7 +53,7 @@ protected boolean isAccepted(Object candidate) { */ @Override public Object getValueFeatureValue(Object element, Object feature, Object correspondingValue, CodeSyncAlgorithm codeSyncAlgorithm) { - Object originalValue = super.getValueFeatureValue(element, CodeSyncControllerUtils.getOriginalPropertyName(feature.toString()), correspondingValue, codeSyncAlgorithm); + Object originalValue = super.getValueFeatureValue(element, getOriginalPropertyName(feature.toString()), correspondingValue, codeSyncAlgorithm); if (originalValue == null) { originalValue = super.getValueFeatureValue(element, feature, correspondingValue, codeSyncAlgorithm); } diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterLeft.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterLeft.java index f040db82..16772e10 100644 --- a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterLeft.java +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/adapter/NodeModelAdapterLeft.java @@ -23,7 +23,6 @@ import org.flowerplatform.codesync.FilteredIterable; import org.flowerplatform.codesync.Match; import org.flowerplatform.codesync.action.ActionResult; -import org.flowerplatform.codesync.controller.CodeSyncControllerUtils; import org.flowerplatform.core.CorePlugin; import org.flowerplatform.core.node.NodeService; import org.flowerplatform.core.node.remote.Node; @@ -95,7 +94,7 @@ public void actionPerformed(Object element, Object feature, ActionResult result, int featureType = match.getCodeSyncAlgorithm().getFeatureProvider(match).getFeatureType(feature); switch (featureType) { case CodeSyncConstants.FEATURE_TYPE_VALUE: - CorePlugin.getInstance().getNodeService().unsetProperty(node, CodeSyncControllerUtils.getOriginalPropertyName(feature.toString()), new ServiceContext(CorePlugin.getInstance().getNodeService())); + CorePlugin.getInstance().getNodeService().unsetProperty(node, getOriginalPropertyName(feature.toString()), new ServiceContext(CorePlugin.getInstance().getNodeService())); break; case CodeSyncConstants.FEATURE_TYPE_CONTAINMENT: processContainmentFeatureAfterActionPerformed(node, feature, result, match); diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncControllerUtils.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncControllerUtils.java deleted file mode 100644 index 4f067cfe..00000000 --- a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncControllerUtils.java +++ /dev/null @@ -1,219 +0,0 @@ -/* license-start - * - * Copyright (C) 2008 - 2013 Crispico Software, . - * - * 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 version 3. - * - * 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, at . - * - * license-end - */ -package org.flowerplatform.codesync.controller; - -import static org.flowerplatform.codesync.CodeSyncConstants.ADDED; -import static org.flowerplatform.codesync.CodeSyncConstants.CHILDREN_CONFLICT; -import static org.flowerplatform.codesync.CodeSyncConstants.CHILDREN_SYNC; -import static org.flowerplatform.codesync.CodeSyncConstants.CONFLICT; -import static org.flowerplatform.codesync.CodeSyncConstants.ORIGINAL_SUFFIX; -import static org.flowerplatform.codesync.CodeSyncConstants.REMOVED; -import static org.flowerplatform.codesync.CodeSyncConstants.SYNC; - -import org.flowerplatform.core.node.NodeService; -import org.flowerplatform.core.node.remote.Node; -import org.flowerplatform.core.node.remote.ServiceContext; - -/** - * @author Mariana Gheorghe - */ -public class CodeSyncControllerUtils { - -// public static boolean isOriginalPropertyName(String property) { -// return property.endsWith(ORIGINAL_SUFFIX); -// } - - public static String getOriginalPropertyName(String property) { - return property + ORIGINAL_SUFFIX; - } - -// public static boolean isConflictPropertyName(String property) { -// return property.endsWith(CONFLICT_SUFFIX); -// } - -// public static String getConflictPropertyName(String property) { -// return property + CONFLICT_SUFFIX; -// } - - public static boolean isCodeSyncFlagConstant(String property) { - if (SYNC.equals(property) || CHILDREN_SYNC.equals(property) || - CONFLICT.equals(property) || CHILDREN_CONFLICT.equals(property) || - ADDED.equals(property) || REMOVED.equals(property)) { - return true; - } - return false; - } - - public static void setSyncFalseAndPropagateToParents(Node node, NodeService service) { - // set sync false - service.setProperty(node, SYNC, false, new ServiceContext(service)); - - // propagate childrenSync flag for parents - Node parent = null; - while ((parent = service.getParent(node, new ServiceContext(service))) != null) { - if (!isChildrenSync(parent)) { - // the parentSync flag has already been propagated - return; - } - // set childrenSync false - service.setProperty(parent, CHILDREN_SYNC, false, new ServiceContext(service)); - node = parent; - } - } - - public static void setSyncTrueAndPropagateToParents(Node node, NodeService service) { -// if (isSync(node)) { -// // already set -// return; -// } -// -// // added/removed nodes are not sync -// if (isAdded(node) || isRemoved(node)) { -// return; -// } -// -// // check if it has any property.original set -// boolean sync = true; -// for (String property : node.getProperties().keySet()) { -// if (isOriginalPropertyName(property)) { -// sync = false; -// } -// } -// if (!sync) { -// return; -// } -// -// // set sync true -// service.setProperty(node, SYNC, true, new ServiceContext(service)); -// -// propagate childrenSync flag for parents -// setChildrenSyncTrueAndPropagateToParents(service.getParent(node, new ServiceContext(service)), service); - } - - public static void setChildrenSyncTrueAndPropagateToParents(Node parent, NodeService service) { -// while (parent != null) { -// // if childrenSync is already true for the parent, no need to go up -// if (isChildrenSync(parent)) { -// return; -// } -// -// if (!allChildrenSync(parent, service)) { -// return; -// } -// -// // set childrenSync true -// service.setProperty(parent, CHILDREN_SYNC, true, new ServiceContext(service)); -// -// // if this parent is not sync, then its parents' childrenSync flag can't be set to true -// // it's better to just stop now -// if (!isSync(parent)) { -// return; -// } -// -// parent = service.getParent(parent, new ServiceContext(service)); -// } - } -// -// public static void setConflictTrueAndPropagateToParents(Node node, String conflictProperty, Object conflictValue, NodeService service) { -// service.setProperty(node, getConflictPropertyName(conflictProperty), conflictValue, new ServiceContext(service)); -// -// if (isConflict(node)) { -// // already set -// return; -// } -// -// // set conflict true -// service.setProperty(node, CONFLICT, true, new ServiceContext(service)); -// -// // propagate childrenConflict flag for parents -// Node parent = null; -// while ((parent = service.getParent(node, new ServiceContext(service))) != null) { -// if (isChildrenConflict(parent)) { -// // the childrenConflict flag has already been propagated -// return; -// } -// // set childrenConflict false -// service.setProperty(parent, CHILDREN_CONFLICT, true, new ServiceContext(service)); -// node = parent; -// } -// } - -// public static void setConflictFalseAndPropagateToParents(Node node, String conflictProperty, NodeService service) { -// -// -// // propagate childrenConflict flag for parents -// Node parent = null; -// while ((parent = service.getParent(node, new ServiceContext(service))) != null) { -// if (!noChildConflict(parent, service)) { -// return; -// } -// // if childrenConflict is already true for the parent, no need to go up -// if (!isChildrenConflict(parent)) { -// return; -// } -// // set childrenConflict false -// service.setProperty(parent, CHILDREN_CONFLICT, false, new ServiceContext(service)); -// node = parent; -// } -// } - -// public static boolean allChildrenSync(Node node, NodeService service) { -// for (Node child : service.getChildren(node, new ServiceContext(service).add(POPULATE_WITH_PROPERTIES, false))) { -// if (!isSync(child) || isAdded(child) || isRemoved(child)) { -// return false; -// } -// } -// return true; -// } - -// public static boolean noChildConflict(Node node, NodeService service) { -// for (Node child : service.getChildren(node, new ServiceContext(service).add(POPULATE_WITH_PROPERTIES, true))) { -// if (isConflict(child) || isChildrenConflict(child)) { -// return false; -// } -// } -// return true; -// } - -// public static boolean isSync(Node node) { -// return hasFlagTrue(node, SYNC); -// } - - public static boolean isChildrenSync(Node node) { - return hasFlagTrue(node, CHILDREN_SYNC); - } - -// public static boolean isAdded(Node node) { -// return hasFlagTrue(node, ADDED); -// } - - public static boolean isRemoved(Node node) { - return hasFlagTrue(node, REMOVED); - } - -// public static boolean isConflict(Node node) { -// return hasFlagTrue(node, CONFLICT); -// } - -// public static boolean isChildrenConflict(Node node) { -// return hasFlagTrue(node, CHILDREN_CONFLICT); -// } - - private static boolean hasFlagTrue(Node node, String flag) { - Boolean b = (Boolean) node.getPropertyValue(flag); - return b != null && b; - } -} diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropagator.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropagator.java new file mode 100644 index 00000000..12210be2 --- /dev/null +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropagator.java @@ -0,0 +1,99 @@ +package org.flowerplatform.codesync.controller; + +import static org.flowerplatform.codesync.CodeSyncConstants.ADDED; +import static org.flowerplatform.codesync.CodeSyncConstants.CHILDREN_SYNC; +import static org.flowerplatform.codesync.CodeSyncConstants.ORIGINAL_SUFFIX; +import static org.flowerplatform.codesync.CodeSyncConstants.SYNC; +import static org.flowerplatform.codesync.CodeSyncConstants.REMOVED; +import static org.flowerplatform.codesync.CodeSyncConstants.NODE_URI_TO_BE_IGNORED; + +import org.flowerplatform.core.DirtyPropagatorController; +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; + +/** + * @author Elena Posea + */ +public class CodeSyncPropagator extends DirtyPropagatorController { + + @Override + public void setDirty(Node node, ServiceContext serviceContext) { + serviceContext.getService().setProperty(node, SYNC, false, new ServiceContext(serviceContext.getService())); + } + + @Override + public void unsetDirty(Node node, ServiceContext serviceContext) { + serviceContext.getService().setProperty(node, SYNC, true, new ServiceContext(serviceContext.getService())); + } + + @Override + public void setChildrenDirty(Node node, ServiceContext serviceContext) { + serviceContext.getService().setProperty(node, CHILDREN_SYNC, false, new ServiceContext(serviceContext.getService())); + } + + @Override + public void unsetChildrenDirty(Node node, ServiceContext serviceContext) { + serviceContext.getService().setProperty(node, CHILDREN_SYNC, true, new ServiceContext(serviceContext.getService())); + } + + @Override + public boolean isDirty(Node node, ServiceContext serviceContext) { + if (node.getNodeUri().equals(serviceContext.getContext().get(NODE_URI_TO_BE_IGNORED))) { + return false; + } + + if (!isSync(node)) { + // already set + return true; + } + + // added/removed nodes are not sync + if (isAdded(node) || isRemoved(node)) { + return true; + } + + // check if it has any property.original set + boolean sync = true; + for (String property : node.getProperties().keySet()) { + if (isOriginalPropertyName(property)) { + sync = false; + } + } + if (!sync) { + return true; + } + return false; + } + + @Override + public boolean isChildrenDirty(Node node, ServiceContext serviceContext) { + return !hasFlagTrue(node, CHILDREN_SYNC); + } + + public static boolean isSync(Node node) { + return hasFlagTrue(node, SYNC); + } + + public static boolean isChildrenSync(Node node) { + return hasFlagTrue(node, CHILDREN_SYNC); + } + + public static boolean isAdded(Node node) { + return hasFlagTrue(node, ADDED); + } + + public static boolean isRemoved(Node node) { + return hasFlagTrue(node, REMOVED); + } + + private static boolean hasFlagTrue(Node node, String flag) { + Boolean b = (Boolean) node.getPropertyValue(flag); + return b != null && b; + } + + public static boolean isOriginalPropertyName(String property) { + return property.endsWith(ORIGINAL_SUFFIX); + } + +} diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropertySetter.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropertySetter.java index 0292933f..a8375a77 100644 --- a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropertySetter.java +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncPropertySetter.java @@ -15,30 +15,36 @@ */ package org.flowerplatform.codesync.controller; -import static org.flowerplatform.codesync.controller.CodeSyncControllerUtils.getOriginalPropertyName; -import static org.flowerplatform.codesync.controller.CodeSyncControllerUtils.setSyncFalseAndPropagateToParents; -import static org.flowerplatform.codesync.controller.CodeSyncControllerUtils.setSyncTrueAndPropagateToParents; +import static org.flowerplatform.codesync.CodeSyncConstants.ADDED; +import static org.flowerplatform.codesync.CodeSyncConstants.CHILDREN_CONFLICT; +import static org.flowerplatform.codesync.CodeSyncConstants.CHILDREN_SYNC; +import static org.flowerplatform.codesync.CodeSyncConstants.CONFLICT; +import static org.flowerplatform.codesync.CodeSyncConstants.NODE_URI_TO_BE_IGNORED; +import static org.flowerplatform.codesync.CodeSyncConstants.ORIGINAL_SUFFIX; +import static org.flowerplatform.codesync.CodeSyncConstants.REMOVED; +import static org.flowerplatform.codesync.CodeSyncConstants.SYNC; import org.flowerplatform.codesync.CodeSyncConstants; -import org.flowerplatform.core.CoreConstants; import org.flowerplatform.core.node.NodeService; import org.flowerplatform.core.node.controller.IPropertySetter; import org.flowerplatform.core.node.remote.Node; import org.flowerplatform.core.node.remote.ServiceContext; import org.flowerplatform.util.Utils; -import org.flowerplatform.util.controller.AbstractController; /** * @author Mariana Gheorghe */ -public class CodeSyncPropertySetter extends AbstractController implements IPropertySetter { +public class CodeSyncPropertySetter extends CodeSyncPropagator implements IPropertySetter { public CodeSyncPropertySetter() { // invoked before the persistence controllers // to cache the current value of the property before it is overwritten setOrderIndex(-100000); } - + + /** + * @author Elena Posea + */ @Override public void setProperty(Node node, String property, Object value, ServiceContext context) { // disable the controllers during the execution of sync algorithm @@ -46,17 +52,19 @@ public void setProperty(Node node, String property, Object value, ServiceContext return; } - // if the node is newly added or marked removed => propagate sync flag false + // if the node is newly added or marked removed => propagate sync flag + // false if (CodeSyncConstants.REMOVED.equals(property) || CodeSyncConstants.ADDED.equals(property)) { - setSyncFalseAndPropagateToParents(node, context.getService()); + context.add(NODE_URI_TO_BE_IGNORED, node.getNodeUri()); + setDirtyAndPropagateToParents(node, context); return; } - + // check if property is synchronizable if (!isSyncProperty(node, property)) { return; } - + boolean isOriginalPropertySet = false; Object originalValue = null; String originalProperty = getOriginalPropertyName(property); @@ -69,29 +77,47 @@ public void setProperty(Node node, String property, Object value, ServiceContext } else { originalValue = value; } - + if (!Utils.safeEquals(originalValue, value)) { if (!isOriginalPropertySet) { - // trying to set a different value; keep the old value in property.original if it does not exist + setDirtyAndPropagateToParents(node, context); + // trying to set a different value; keep the old value in + // property.original if it does not exist + // this line has to be after propagation, otherwise it will see + // this child as already dirty, and it won't try to propagate + // the flag context.getService().setProperty(node, originalProperty, originalValue, new ServiceContext(context.getService())); - setSyncFalseAndPropagateToParents(node, context.getService()); } } else { if (isOriginalPropertySet) { - // trying to set the same value as the original (a revert operation); unset the original value + // trying to set the same value as the original (a revert + // operation); unset the original value context.getService().unsetProperty(node, originalProperty, new ServiceContext(context.getService())); - setSyncTrueAndPropagateToParents(node, context.getService()); + unsetDirtyAndPropagateToParents(node, context); } } } + public String getOriginalPropertyName(String property) { + return property + ORIGINAL_SUFFIX; + } + @Override public void unsetProperty(Node node, String property, ServiceContext context) { // nothing to do } - + private boolean isSyncProperty(Node node, String property) { - return !CodeSyncControllerUtils.isCodeSyncFlagConstant(property); + return !isCodeSyncFlagConstant(property); } - -} + + public static boolean isCodeSyncFlagConstant(String property) { + if (SYNC.equals(property) || CHILDREN_SYNC.equals(property) || + CONFLICT.equals(property) || CHILDREN_CONFLICT.equals(property) || + ADDED.equals(property) || REMOVED.equals(property)) { + return true; + } + return false; + } + +} diff --git a/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncRemoveNodeController.java b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncRemoveNodeController.java new file mode 100644 index 00000000..86163cab --- /dev/null +++ b/org.flowerplatform.codesync/src/org/flowerplatform/codesync/controller/CodeSyncRemoveNodeController.java @@ -0,0 +1,43 @@ +/* license-start + * + * Copyright (C) 2008 - 2013 Crispico Software, . + * + * 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 version 3. + * + * 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, at . + * + * license-end + */ +package org.flowerplatform.codesync.controller; + +import static org.flowerplatform.core.CoreConstants.DONT_PROCESS_OTHER_CONTROLLERS; + +import org.flowerplatform.codesync.CodeSyncConstants; +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.controller.IRemoveNodeController; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; +import org.flowerplatform.util.controller.AbstractController; + +/** + * @author Sebastian Solomon + */ +public class CodeSyncRemoveNodeController extends AbstractController implements IRemoveNodeController { + + public CodeSyncRemoveNodeController() { + // must be executed before others. + setOrderIndex(-100000); + } + + @Override + public void removeNode(Node node, Node child, ServiceContext context) { + context.getService().setProperty(child, CodeSyncConstants.REMOVED, true, new ServiceContext(context.getService())); + context.add(DONT_PROCESS_OTHER_CONTROLLERS, true); + } + +} diff --git a/org.flowerplatform.core/.settings/org.eclipse.jdt.core.prefs b/org.flowerplatform.core/.settings/org.eclipse.jdt.core.prefs index 11f6e462..980b98c1 100644 --- a/org.flowerplatform.core/.settings/org.eclipse.jdt.core.prefs +++ b/org.flowerplatform.core/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,12 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.7 diff --git a/org.flowerplatform.core/src/org/flowerplatform/core/CoreConstants.java b/org.flowerplatform.core/src/org/flowerplatform/core/CoreConstants.java index d8a933a0..5abda8c8 100644 --- a/org.flowerplatform.core/src/org/flowerplatform/core/CoreConstants.java +++ b/org.flowerplatform.core/src/org/flowerplatform/core/CoreConstants.java @@ -149,7 +149,13 @@ public class CoreConstants { public static final String DONT_PROCESS_OTHER_CONTROLLERS = "dontProcessOtherControllers"; public static final String INVOKE_ONLY_CONTROLLERS_WITH_CLASSES = "invokeOnlyControllersWithClasses"; - + /** + * All controllers except the updater controllers should check this option and not execute their logic + * if this option is set to true (e.g. persistence controllers should not set the IS_DIRTY + * property, but the updater controller must register the update). + */ + public static final String EXECUTE_ONLY_FOR_UPDATER = "executeOnlyForUpdater"; + public static final String POPULATE_WITH_PROPERTIES = "populateWithProperties"; public static final String POPULATE_WITH_PROPERTIES_FORCEFULLY = "populateWithPropertiesForcefully"; diff --git a/org.flowerplatform.core/src/org/flowerplatform/core/DirtyPropagatorController.java b/org.flowerplatform.core/src/org/flowerplatform/core/DirtyPropagatorController.java new file mode 100644 index 00000000..ac653cd9 --- /dev/null +++ b/org.flowerplatform.core/src/org/flowerplatform/core/DirtyPropagatorController.java @@ -0,0 +1,98 @@ +package org.flowerplatform.core; + +import static org.flowerplatform.core.CoreConstants.POPULATE_WITH_PROPERTIES; + +import java.util.List; + +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.ServiceContext; +import org.flowerplatform.util.controller.AbstractController; + +/** + * Contains all the common logic for propagation of flags; leaves describing particular behavior up to implementing classes + * @author Elena Posea + */ +public abstract class DirtyPropagatorController extends AbstractController{ + + public abstract void setDirty(Node node, ServiceContext serviceContext); + + public abstract void unsetDirty(Node node, ServiceContext serviceContext); + + public abstract void setChildrenDirty(Node node, ServiceContext serviceContext); + + public abstract void unsetChildrenDirty(Node node, ServiceContext serviceContext); + + /** + * @param node + * the node which I want to test for dirty + * @param serviceContext + * the service used for this node + * @return true, if the node isDisrty, accordingly to the logic of being + * dirty in the implementing class false, otherwise + */ + public abstract boolean isDirty(Node node, ServiceContext serviceContext); + + public abstract boolean isChildrenDirty(Node node, ServiceContext serviceContext); + + /** + * @param node + * the node on which I want to start propagation + * @param serviceContext + * the service used for this node + */ + public void setDirtyAndPropagateToParents(Node node, ServiceContext serviceContext) { + if (isDirty(node, serviceContext)){ + return; + } + setDirty(node, serviceContext); + // propagate childrenDirty flag for parents + Node parent = null; + while ((parent = serviceContext.getService().getParent(node, serviceContext)) != null) { + if (isChildrenDirty(parent, serviceContext)) { + // the parentSync flag has already been propagated + return; + } + // set childrenDirty to default value for is dirty / mark + setChildrenDirty(parent, serviceContext); + node = parent; + } + } + + public void unsetDirtyAndPropagateToParents(Node node, ServiceContext serviceContext) { + if (!isDirty(node, serviceContext) && !isChildrenDirty(node, serviceContext)) { + // already set + return; + } + // set dirty false/ it is not dirty + unsetDirty(node, serviceContext); + + // propagate childrenDirty flag for parents + Node parent = null; + while ((parent = serviceContext.getService().getParent(node, serviceContext)) != null) { + if (!isChildrenDirty(parent, serviceContext)) { + // the parentSync flag has already been propagated + return; + } + // besides this dirtyChild that I just cleaned up, is there any other dirtyChildren? + if (containsDirtyChild(parent, serviceContext)) { + return; + } + // set childrenDirty (flag2) to default value for is dirty / mark + unsetChildrenDirty(parent, serviceContext); + node = parent; + } + } + + private boolean containsDirtyChild(Node node, ServiceContext serviceContext) { + NodeService service = serviceContext.getService(); + List nodeList = service.getChildren(node, new ServiceContext(service).add(POPULATE_WITH_PROPERTIES, true)); + for (Node child : nodeList) { + if ((isDirty(child, serviceContext) || isChildrenDirty(child, serviceContext))) { + return true; + } + } + return false; + } + +} diff --git a/org.flowerplatform.core/src/org/flowerplatform/core/file/FilePropertiesController.java b/org.flowerplatform.core/src/org/flowerplatform/core/file/FilePropertiesController.java index 6f8a1ffd..26d95c45 100644 --- a/org.flowerplatform.core/src/org/flowerplatform/core/file/FilePropertiesController.java +++ b/org.flowerplatform.core/src/org/flowerplatform/core/file/FilePropertiesController.java @@ -78,8 +78,8 @@ public void populateWithProperties(Node node, ServiceContext contex break; } } - - long size; + + long size; if ((boolean) node.getProperties().get(FILE_IS_DIRECTORY)) { size = getFolderSize(file); node.getProperties().put(ICONS, ResourcesPlugin.getInstance().getResourceUrl("images/core/folder.gif")); @@ -135,4 +135,4 @@ public void unsetProperty(Node node, String property, ServiceContext(context.getService())).remove(property); } -} +} diff --git a/org.flowerplatform.core/src/org/flowerplatform/core/node/NodeService.java b/org.flowerplatform.core/src/org/flowerplatform/core/node/NodeService.java index c961462f..0c2e497e 100644 --- a/org.flowerplatform.core/src/org/flowerplatform/core/node/NodeService.java +++ b/org.flowerplatform.core/src/org/flowerplatform/core/node/NodeService.java @@ -389,5 +389,5 @@ public void populateNodeProperties(Node node, ServiceContext contex ResourceService resourceService = CorePlugin.getInstance().getResourceService(); node.getProperties().put(IS_DIRTY, resourceService.isDirty(node.getNodeUri(), new ServiceContext(resourceService))); } - -} + +} diff --git a/org.flowerplatform.core/src/org/flowerplatform/core/node/remote/Node.java b/org.flowerplatform.core/src/org/flowerplatform/core/node/remote/Node.java index 1dfd403d..a0c8bac1 100644 --- a/org.flowerplatform.core/src/org/flowerplatform/core/node/remote/Node.java +++ b/org.flowerplatform.core/src/org/flowerplatform/core/node/remote/Node.java @@ -171,5 +171,5 @@ public void writeExternal(ObjectOutput out) throws IOException { out.writeObject(nodeUri); out.writeObject(properties); } - -} + +} diff --git a/org.flowerplatform.flex_client.codesync.regex/.gitignore b/org.flowerplatform.flex_client.codesync.regex/.gitignore index 5e56e040..e7bff1c3 100644 --- a/org.flowerplatform.flex_client.codesync.regex/.gitignore +++ b/org.flowerplatform.flex_client.codesync.regex/.gitignore @@ -1 +1 @@ -/bin +/bin diff --git a/org.flowerplatform.flex_client.codesync.regex/META-INF/MANIFEST.MF b/org.flowerplatform.flex_client.codesync.regex/META-INF/MANIFEST.MF index 6d30356f..f7f31f7a 100644 --- a/org.flowerplatform.flex_client.codesync.regex/META-INF/MANIFEST.MF +++ b/org.flowerplatform.flex_client.codesync.regex/META-INF/MANIFEST.MF @@ -1,5 +1,5 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Regex -Bundle-SymbolicName: org.flowerplatform.flex_client.codesync.regex -Bundle-Version: 0.1.1.qualifier +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Regex +Bundle-SymbolicName: org.flowerplatform.flex_client.codesync.regex +Bundle-Version: 0.1.1.qualifier diff --git a/org.flowerplatform.flex_client.codesync/src/org/flowerplatform/flex_client/codesync/node/renderer/CodeSyncNodeRenderer.as b/org.flowerplatform.flex_client.codesync/src/org/flowerplatform/flex_client/codesync/node/renderer/CodeSyncNodeRenderer.as index 0ad3a743..1249e35c 100644 --- a/org.flowerplatform.flex_client.codesync/src/org/flowerplatform/flex_client/codesync/node/renderer/CodeSyncNodeRenderer.as +++ b/org.flowerplatform.flex_client.codesync/src/org/flowerplatform/flex_client/codesync/node/renderer/CodeSyncNodeRenderer.as @@ -75,4 +75,4 @@ package org.flowerplatform.flex_client.codesync.node.renderer { } } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/BasicEditorDescriptor.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/BasicEditorDescriptor.as index 43873504..4db830fa 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/BasicEditorDescriptor.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/BasicEditorDescriptor.as @@ -68,4 +68,4 @@ package org.flowerplatform.flex_client.core.editor { } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorDescriptor.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorDescriptor.as index e8bca140..cd806928 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorDescriptor.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorDescriptor.as @@ -120,4 +120,4 @@ package org.flowerplatform.flex_client.core.editor { } } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorFrontend.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorFrontend.as index 04ad4ec1..21f15cee 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorFrontend.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/EditorFrontend.as @@ -68,7 +68,7 @@ package org.flowerplatform.flex_client.core.editor { _editorInput = editorInput; CorePlugin.getInstance().nodeRegistryManager.subscribe(editorInput, nodeRegistry, subscribeResultCallback, subscribeFaultCallback); } - + protected function subscribeResultCallback(rootNode:Node, resourceNode:Node):void { // nothing to do } @@ -115,10 +115,10 @@ package org.flowerplatform.flex_client.core.editor { } return title; } - + public function additionalCloseHandler():void { // nothing to do - } + } public function nodeRegistryRemoved(nodeRegistry:NodeRegistry):void { if (this.nodeRegistry == nodeRegistry) { @@ -130,6 +130,6 @@ package org.flowerplatform.flex_client.core.editor { public function resourceNodeRemoved(resourceNodeUri:String, nodeRegistry:NodeRegistry):void { // do nothing } - + } } diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/action/ForceUpdateAction.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/action/ForceUpdateAction.as index e42ec760..24c16478 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/action/ForceUpdateAction.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/action/ForceUpdateAction.as @@ -50,4 +50,4 @@ package org.flowerplatform.flex_client.core.editor.action { } } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNode.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNode.as index 3cabd689..a8701017 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNode.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNode.as @@ -32,4 +32,4 @@ package org.flowerplatform.flex_client.core.editor.resource { } } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNodesListView.mxml b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNodesListView.mxml index 870e02df..db37753c 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNodesListView.mxml +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/editor/resource/ResourceNodesListView.mxml @@ -173,4 +173,4 @@ click="closeView()"/> - + diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/NodeRegistry.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/NodeRegistry.as index a06092c0..e61b679c 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/NodeRegistry.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/NodeRegistry.as @@ -393,4 +393,4 @@ package org.flowerplatform.flex_client.core.node { } } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/controller/NodeControllerUtils.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/controller/NodeControllerUtils.as index 85b21fe6..6eb9135e 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/controller/NodeControllerUtils.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/node/controller/NodeControllerUtils.as @@ -42,4 +42,4 @@ package org.flowerplatform.flex_client.core.node.controller { } } -} +} diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/ReconnectingViewContent.mxml b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/ReconnectingViewContent.mxml index ec79d724..828b2152 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/ReconnectingViewContent.mxml +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/ReconnectingViewContent.mxml @@ -109,4 +109,4 @@ visible="{!reconnectingAutomatically}" includeInLayout="{!reconnectingAutomatically}"/> - + diff --git a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/UpdatesProcessingServiceLocator.as b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/UpdatesProcessingServiceLocator.as index 41a5196d..c141e4a7 100644 --- a/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/UpdatesProcessingServiceLocator.as +++ b/org.flowerplatform.flex_client.core/src/org/flowerplatform/flex_client/core/service/UpdatesProcessingServiceLocator.as @@ -137,6 +137,6 @@ package org.flowerplatform.flex_client.core.service { super.faultHandler(event, responder); } } - + } -} +} diff --git a/org.flowerplatform.flex_client.host_app.mobile/src/org/flowerplatform/flex_client/host_app/mobile/view_content_host/WorkbenchMobileSplitViewHost.as b/org.flowerplatform.flex_client.host_app.mobile/src/org/flowerplatform/flex_client/host_app/mobile/view_content_host/WorkbenchMobileSplitViewHost.as index d3f62bcb..67cfda11 100644 --- a/org.flowerplatform.flex_client.host_app.mobile/src/org/flowerplatform/flex_client/host_app/mobile/view_content_host/WorkbenchMobileSplitViewHost.as +++ b/org.flowerplatform.flex_client.host_app.mobile/src/org/flowerplatform/flex_client/host_app/mobile/view_content_host/WorkbenchMobileSplitViewHost.as @@ -171,4 +171,4 @@ package org.flowerplatform.flex_client.host_app.mobile.view_content_host { } } -} +} diff --git a/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/MindMapEditorFrontend.as b/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/MindMapEditorFrontend.as index 79ad3cb5..e92cca1e 100644 --- a/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/MindMapEditorFrontend.as +++ b/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/MindMapEditorFrontend.as @@ -115,4 +115,4 @@ package org.flowerplatform.flex_client.mindmap { } } -} +} diff --git a/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/controller/NodeRendererController.as b/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/controller/NodeRendererController.as index ee6d4247..f2a8038d 100644 --- a/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/controller/NodeRendererController.as +++ b/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/controller/NodeRendererController.as @@ -27,4 +27,4 @@ package org.flowerplatform.flex_client.mindmap.controller { } } -} +} diff --git a/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/renderer/NodeRenderer.mxml b/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/renderer/NodeRenderer.mxml index bf2ca4a1..f6a2b9a8 100644 --- a/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/renderer/NodeRenderer.mxml +++ b/org.flowerplatform.flex_client.mindmap/src/org/flowerplatform/flex_client/mindmap/renderer/NodeRenderer.mxml @@ -309,4 +309,4 @@ - + diff --git a/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/property_renderer/DropDownListPropertyRenderer.as b/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/property_renderer/DropDownListPropertyRenderer.as index f30bd449..a74e41e0 100644 --- a/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/property_renderer/DropDownListPropertyRenderer.as +++ b/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/property_renderer/DropDownListPropertyRenderer.as @@ -149,4 +149,4 @@ package org.flowerplatform.flex_client.properties.property_renderer { } } -} +} diff --git a/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/CreateNodeView.mxml b/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/CreateNodeView.mxml index 0d05af0d..7e8e512d 100644 --- a/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/CreateNodeView.mxml +++ b/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/CreateNodeView.mxml @@ -157,4 +157,4 @@ - + diff --git a/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/PropertiesView.mxml b/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/PropertiesView.mxml index aff6f7c6..b71be652 100644 --- a/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/PropertiesView.mxml +++ b/org.flowerplatform.flex_client.properties/src/org/flowerplatform/flex_client/properties/ui/PropertiesView.mxml @@ -112,4 +112,4 @@ - + diff --git a/org.flowerplatform.flexdiagram/src/org/flowerplatform/flexdiagram/renderer/DiagramRenderer.as b/org.flowerplatform.flexdiagram/src/org/flowerplatform/flexdiagram/renderer/DiagramRenderer.as index 673b29a5..7106b31b 100644 --- a/org.flowerplatform.flexdiagram/src/org/flowerplatform/flexdiagram/renderer/DiagramRenderer.as +++ b/org.flowerplatform.flexdiagram/src/org/flowerplatform/flexdiagram/renderer/DiagramRenderer.as @@ -220,4 +220,4 @@ package org.flowerplatform.flexdiagram.renderer { } -} +} diff --git a/org.flowerplatform.flexutil/src/org/flowerplatform/flexutil/layout/IWorkbench.as b/org.flowerplatform.flexutil/src/org/flowerplatform/flexutil/layout/IWorkbench.as index 81488375..e39112bd 100644 --- a/org.flowerplatform.flexutil/src/org/flowerplatform/flexutil/layout/IWorkbench.as +++ b/org.flowerplatform.flexutil/src/org/flowerplatform/flexutil/layout/IWorkbench.as @@ -40,4 +40,4 @@ package org.flowerplatform.flexutil.layout { function moveComponentNearWorkbench(sourceComponent:UIComponent, side:Number):void; } -} +} diff --git a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/FreeplanePlugin.java b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/FreeplanePlugin.java index 2d1795e6..aa9df33a 100644 --- a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/FreeplanePlugin.java +++ b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/FreeplanePlugin.java @@ -80,7 +80,7 @@ public static FreeplanePlugin getInstance() { public void start(BundleContext bundleContext) throws Exception { super.start(bundleContext); INSTANCE = this; - + FreeplanePersistenceResourceHandler fppResourceHandler = new FreeplanePersistenceResourceHandler(); FreeplaneMindmapResourceHandler fpmResourceHandler = new FreeplaneMindmapResourceHandler(); @@ -139,4 +139,4 @@ public void registerMessageBundle() throws Exception { // not used } -} +} diff --git a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapParentProvider.java b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapParentProvider.java index f8591e3e..cea51d20 100644 --- a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapParentProvider.java +++ b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapParentProvider.java @@ -32,16 +32,20 @@ public class MindMapParentProvider extends AbstractController implements IParent @Override public Node getParent(Node node, ServiceContext context) { - NodeModel rawNodeData = ((NodeModel) node.getRawNodeData()); + NodeModel rawNodeData = ((NodeModel) node.getRawNodeData()); NodeModel parentNodeModel = rawNodeData.getParentNode(); if (parentNodeModel == null) { return null; } String scheme = Utils.getScheme(node.getNodeUri()); String ssp = Utils.getSchemeSpecificPart(node.getNodeUri()); - String parentUri = scheme + ":" + ssp + "#" + parentNodeModel.createID(); + String parentUri = scheme + ":" + ssp; + // this statement ensures that the string after "#" is not concatenated for root node (as this node should not contain it) + if (!parentNodeModel.getMap().getRootNode().createID().equals(parentNodeModel.createID())) { + parentUri += "#" + parentNodeModel.createID(); + } IResourceHandler resourceHandler = CorePlugin.getInstance().getResourceService().getResourceHandler(scheme); return resourceHandler.createNodeFromRawNodeData(parentUri, parentNodeModel); } -} +} diff --git a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapPropertySetter.java b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapPropertySetter.java index 27971319..bd85a87a 100644 --- a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapPropertySetter.java +++ b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/MindMapPropertySetter.java @@ -262,7 +262,7 @@ public void setProperty(Node node, String property, Object value, ServiceContext break; case STYLE_NAME: String styleName = (String) propertyValue; - MapModel mapModel = ((NodeModel) node.getRawNodeData()).getMap(); + MapModel mapModel = ((NodeModel) node.getRawNodeData()).getMap(); Set styles = MapStyleModel.getExtension(mapModel).getStyles(); IStyle style = null; @@ -402,4 +402,4 @@ public void unsetProperty(Node node, String property, ServiceContext context) rawNodeData.getMap().setSaved(false); } -} +} diff --git a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/PersistencePropertySetter.java b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/PersistencePropertySetter.java index 04a3f9cb..cd172243 100644 --- a/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/PersistencePropertySetter.java +++ b/org.flowerplatform.freeplane/src/org/flowerplatform/freeplane/controller/PersistencePropertySetter.java @@ -35,7 +35,7 @@ public class PersistencePropertySetter extends AbstractController implements IPr @Override public void setProperty(Node node, String property, Object value, ServiceContext context) { NodeModel rawNodeData = ((NodeModel) node.getRawNodeData()); - + if (MindMapConstants.FREEPLANE_PERSISTENCE_NODE_TYPE_KEY.equals(property)) { throw new RuntimeException(String.format("Property with name %s shouldn't be set because it's reserved. Please use another key!", property)); } diff --git a/org.flowerplatform.resources/public-resources/images/codesync.sdiff/comment-marker/comment.png b/org.flowerplatform.resources/public-resources/images/codesync.sdiff/comment-marker/comment.png new file mode 100644 index 00000000..7bc9233e Binary files /dev/null and b/org.flowerplatform.resources/public-resources/images/codesync.sdiff/comment-marker/comment.png differ diff --git a/org.flowerplatform.resources/public-resources/images/codesync.sdiff/comment-marker/comments.png b/org.flowerplatform.resources/public-resources/images/codesync.sdiff/comment-marker/comments.png new file mode 100644 index 00000000..39433cf7 Binary files /dev/null and b/org.flowerplatform.resources/public-resources/images/codesync.sdiff/comment-marker/comments.png differ diff --git a/org.flowerplatform.resources/public-resources/messages/org_flowerplatform_resources.properties b/org.flowerplatform.resources/public-resources/messages/org_flowerplatform_resources.properties index c78af6d2..8a22ce0c 100644 --- a/org.flowerplatform.resources/public-resources/messages/org_flowerplatform_resources.properties +++ b/org.flowerplatform.resources/public-resources/messages/org_flowerplatform_resources.properties @@ -343,7 +343,25 @@ regexMatch.end.label = End regexVirtual.name.label = Name regexVirtual.fullRegex.label = RegEx (w/o macros) -regex.action = Action +regex.action.label = Action +regex.attachSpecificInfoAction.label = Attach specific info action +regex.keepSpecificInfoAction.label = Keep specific info action +regex.createNodeAction.label = Create node action +regex.enterStateAction.label = Enter state action +regex.exitStateAction.label = Exit state action +regex.clearSpecificInfoAction.label = Clear specific info action +regex.attachNodeToCurrentStateAction.label = Attach node to current state +regex.increaseNestingLevelAction.label = Increase nesting level action +regex.decreaseNestingLevelAction.label = Decrease nesting level action +regex.checkStateAction.label = Check state action +regex.keepInfoKey.label = Keep Info Key +regex.attachInfoKey.label = Attach info key +regex.isList.label = Is list +regex.isContainment.label = Is containment +regex.properties.label = Properties +regex.newNodeType.label = New node type +regex.validStates.label = CSV list of valid states +regex.clearInfoKey.label = Clear info key regexes.root = RegExes diff --git a/org.flowerplatform.resources/readme.md b/org.flowerplatform.resources/readme.md index 650626e7..5e2d4675 100644 --- a/org.flowerplatform.resources/readme.md +++ b/org.flowerplatform.resources/readme.md @@ -19,7 +19,8 @@ Holds images and messages. | images/mindmap/arrowUp.png | https://www.iconfinder.com/icons/211620/arrow_b_right_icon#size=16 | http://opensource.org/licenses/MIT | mindmap | | images/properties/preferences.png | https://www.iconfinder.com/icons/105256/application_applications_configuration_contact_control_de_desktop_engineering_gear_gears_generator_machine_mime_preferences_reductor_settings_system_tool_tools_work_icon#size=16 | http://www.aha-soft.com/ | properties | | images/properties/preference.png | https://www.iconfinder.com/icons/105244/application_applications_configuration_contact_control_desktop_engineering_gear_gears_generator_machine_mime_preferences_reductor_settings_system_tool_tools_work_icon#size=16 | http://www.aha-soft.com/ | properties | - +| images/codesync/comment-marker/comment.png | http://www.famfamfam.com/lab/icons/silk/ | http://www.famfamfam.com/lab/icons/silk/ |codesync.sdiff| +| images/codesync/comment-marker/comments.png | http://www.famfamfam.com/lab/icons/silk/ | http://www.famfamfam.com/lab/icons/silk/ |codesync.sdiff| ### Icons allowed for commercial use (NO link required) == | Icon Name | Icon Source URL | Usage | diff --git a/org.flowerplatform.team.git/src/org/flowerplatform/team/git/controller/GitPropertiesProvider.java b/org.flowerplatform.team.git/src/org/flowerplatform/team/git/controller/GitPropertiesProvider.java index 3e71e676..3f689b12 100644 --- a/org.flowerplatform.team.git/src/org/flowerplatform/team/git/controller/GitPropertiesProvider.java +++ b/org.flowerplatform.team.git/src/org/flowerplatform/team/git/controller/GitPropertiesProvider.java @@ -69,4 +69,4 @@ public void populateWithProperties(Node node, ServiceContext contex } } -} \ No newline at end of file +} diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncCommentPropagationTest.java b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncCommentPropagationTest.java new file mode 100644 index 00000000..cdd91bd7 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncCommentPropagationTest.java @@ -0,0 +1,274 @@ +package org.flowerplatform.tests.codesync; + +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.COMMENT; +import static org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants.CONTAINS_COMMENT; +import static org.flowerplatform.core.CoreConstants.TYPE_KEY; +import static org.junit.Assert.assertTrue; + +import org.flowerplatform.codesync.CodeSyncPlugin; +import org.flowerplatform.codesync.sdiff.CodeSyncSdiffConstants; +import org.flowerplatform.core.CorePlugin; +import org.flowerplatform.core.CoreUtils; +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.NodeServiceRemote; +import org.flowerplatform.core.node.remote.ServiceContext; +import org.flowerplatform.core.node.resource.ResourceService; +import org.junit.Test; + +/** + * @author Elena Posea + */ +public class CodeSyncCommentPropagationTest { + + public static final String NO_COMMENTS_INSIDE = "initial_no_comments_inside/codesyncSdiffPatch.sdiff"; + public static final String ONE_COMMENT_INSIDE = "initial_comments_inside/codesyncSdiffOneCommentPatch.sdiff"; + public static final String ONE_DIRTY_NODE_INSIDE = "initial_comments_inside/codesyncSdiffTwoDirtyChildrenPatch.sdiff"; + public static final String TWO_COMMENTS_INSIDE_REMOVE_COMMENT = "initial_comments_inside/codesyncSdiffTwoCommentsPatch.sdiff"; + public static final String TWO_COMMENTS_INSIDE_REMOVE_DIRTY_CHILD = "initial_comments_inside/codesyncSdiffTwoCommentsDirtyPatch.sdiff"; + private static NodeServiceRemote nodeServiceRemote = new NodeServiceRemote(); + + /** + * Initial: + * + *
+	 * Node1
+	 * 
+ * + * Expected after addition + * + *
+	 * Node1 (children dirty) - Comment
+	 * 
+ */ + @Test + public void testAddCommentPropagation() { + // subscribe to sdiff file + Node root = subscribeToSdiffFile(NO_COMMENTS_INSIDE); + + // get the node that we want to use as parent for our new node + Node testNode = CodeSyncTestSuite.getChild(root, new String[] { "CodeSyncSdiffConstants.java", "CodeSyncSdiffConstants", "STRUCTURE_DIFFS_FOLDER" }); + String testNodeFullyQualifiedName = testNode.getNodeUri(); + ServiceContext serviceContext = new ServiceContext(); + assertTrue("testNode is supposed to be initially clean", !isComment(testNode) && !isChildrenDirty(testNode)); + + // adding a comment child to this node + serviceContext.add(TYPE_KEY, COMMENT); + String comment1NodeFullyQualifiedName = nodeServiceRemote.addChild(testNodeFullyQualifiedName, serviceContext); + Node comment1Node = CorePlugin.getInstance().getResourceService().getNode(comment1NodeFullyQualifiedName); + + // update the values for testNode + testNode = CorePlugin.getInstance().getResourceService().getNode(testNodeFullyQualifiedName); + + // checking all the parents for this newly added comment (check + // propagation method) + assertTrue("all the parents are supposed to have the CONTAINS_COMMENT set after this new child has been added", isChildrenDirtyForAllParents(comment1Node, serviceContext)); + } + + /** + * Initial: + * + *
+	 * Node1 (children dirty) - Node2 (children dirty) - Node3 (children dirty) - Comment  
+	 *                        \ Comment
+	 * 
+ * + * Expected after removal + * + *
+	 * Node1 (children dirty) - Node2  - Node3
+	 *                        \ Comment
+	 * 
+ */ + @Test + public void testRemoveCommentButNotTheLastDirtyChild() { + // subscribe to sdiff file + Node root = subscribeToSdiffFile(TWO_COMMENTS_INSIDE_REMOVE_COMMENT); + + // get the node that we want to remove + Node testNode = CodeSyncTestSuite.getChild(root, new String[] { "CodeSyncSdiffPlugin.java", "CodeSyncSdiffPlugin", "registerMessageBundle()", "myMessage" }); + String testNodeFullyQualifiedName = testNode.getNodeUri(); + ; + assertTrue("testNode is supposed to be a comment", isComment(testNode)); + + // get the first two parents of testNode + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + Node parent1OfTestNode = serviceContext.getService().getParent(testNode, serviceContext); + String parent1OfTestNodeFullyQualifiedName = parent1OfTestNode.getNodeUri(); + Node parent2OfTestNode = serviceContext.getService().getParent(parent1OfTestNode, serviceContext); + + // remove comment node + nodeServiceRemote.removeChild(parent1OfTestNodeFullyQualifiedName, testNodeFullyQualifiedName); + + // take the first node that should stay dirty (as explained in this + // method's description) + Node firstDirtyNode = serviceContext.getService().getParent(parent2OfTestNode, serviceContext); + + // after this removal, both parent1 and parent 2 should be clean; + assertTrue("all parents without dirty children should be clean", !isChildrenDirty(parent1OfTestNode) && !isChildrenDirty(parent2OfTestNode)); + + // everything above should be dirty + assertTrue("all the parents are supposed to have the CONTAINS_COMMENT set if there is still any dirty child", isChildrenDirtyForAllParents(firstDirtyNode, serviceContext)); + } + + /** + * Initial: + * + *
+	 * Node1 (children dirty) - Node2 (children dirty) -  Node3 (children dirty)  - Comment  
+	 *                        \ Comment
+	 * 
+ * + * Expected after removal + * + *
+	 * Node1 (children dirty) - Node2  
+	 *                        \ Comment
+	 * 
+ */ + @Test + public void testRemoveNodeWithCommentButNotTheLastDirtyChild() { + // subscribe to sdiff file + Node root = subscribeToSdiffFile(TWO_COMMENTS_INSIDE_REMOVE_DIRTY_CHILD); + + // get the node with comment that we want to erase + Node testNode = CodeSyncTestSuite.getChild(root, new String[] { "CodeSyncSdiffPlugin.java", "CodeSyncSdiffPlugin", "registerMessageBundle()" }); + String testNodeFullyQualifiedName = testNode.getNodeUri(); + ; + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + assertTrue("testNode is supposed to be a node with a comment", isChildrenDirty(testNode)); + + // get testNode's parent + Node parentOfTestNode = serviceContext.getService().getParent(testNode, serviceContext); + String parentOfTestNodeFullyQualifiedName = parentOfTestNode.getNodeUri(); + Node firstDirtyNode = serviceContext.getService().getParent(parentOfTestNode, serviceContext); + + // remove node + nodeServiceRemote.removeChild(parentOfTestNodeFullyQualifiedName, testNodeFullyQualifiedName); + assertTrue("all parents without dirty children should be clean", !isChildrenDirty(parentOfTestNode)); + + // everything above should be dirty, since there is another comment + // child to keep them that way + assertTrue("all the parents are supposed to have the CONTAINS_COMMENT set if there is still any dirty child", isChildrenDirtyForAllParents(firstDirtyNode, serviceContext)); + } + + /** + * Initial: + * + *
+	 * Node1 (children dirty) - Node2 (children dirty) - Node3 (children dirty) - Comment  
+	 *                        \ Comment
+	 * 
+ * + * Expected after removal + * + *
+	 * Node1 (children dirty) - Node2  
+	 *                        \ Comment
+	 * 
+ */ + + @Test + public void testRemoveLastChildWithComment() { + // subscribe to sdiff file + Node root = subscribeToSdiffFile(ONE_DIRTY_NODE_INSIDE); + + // get testNode + Node testNode = CodeSyncTestSuite.getChild(root, new String[] { "CodeSyncSdiffPlugin.java", "CodeSyncSdiffPlugin", "registerMessageBundle()" }); + String testNodeFullyQualifiedName = testNode.getNodeUri(); + ; + + assertTrue("testNode is supposed to be a node with comment", isChildrenDirty(testNode)); + + // get the parent of testNode + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + Node parentOfTestNode = serviceContext.getService().getParent(testNode, serviceContext); + String parentOfTestNodeFullyQualifiedName = parentOfTestNode.getNodeUri(); + + // remove node + nodeServiceRemote.removeChild(parentOfTestNodeFullyQualifiedName, testNodeFullyQualifiedName); + + // update the values of parentOfTestNode + parentOfTestNode = CorePlugin.getInstance().getResourceService().getNode(parentOfTestNodeFullyQualifiedName); + + assertTrue("if no dirty child is left, all parents (that don't have dirty children) should loose the CONTAINS_COMMENT flag", + isChildrenNotDirtyForAllParents(parentOfTestNode, serviceContext)); + } + + /** + * Initial: + * + *
+	 * Node1 (children dirty) - Comment
+	 * 
+ * + * Expected after removal + * + *
+	 * Node1
+	 * 
+ */ + @Test + public void testRemoveLastComment() { + // subscribe to sdiffile + Node root = subscribeToSdiffFile(ONE_COMMENT_INSIDE); + + // get testNode + Node testNode = CodeSyncTestSuite.getChild(root, new String[] { "CodeSyncSdiffPlugin.java", "CodeSyncSdiffPlugin", "registerMessageBundle()", "myComment" }); + String testNodeFullyQualifiedName = testNode.getNodeUri(); + ; + assertTrue("testNode is supposed to be a comment", isComment(testNode)); + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + // get the parent of node + Node parentOfTestNode = serviceContext.getService().getParent(testNode, serviceContext); + String parentOfTestNodeFullyQualifiedName = parentOfTestNode.getNodeUri(); + + // remove node + nodeServiceRemote.removeChild(parentOfTestNodeFullyQualifiedName, testNodeFullyQualifiedName); + + assertTrue("if no dirty child is left, all parents (that don't have dirty children) should loose the CONTAINS_COMMENT flag", + isChildrenNotDirtyForAllParents(parentOfTestNode, serviceContext)); + } + + private boolean isComment(Node node) { + return node.getType().equals(CodeSyncSdiffConstants.COMMENT); + } + + private boolean isChildrenDirty(Node node) { + Boolean b = (Boolean) node.getPropertyValue(CONTAINS_COMMENT); + // is something that has a child comment + return b != null && b; + } + + private boolean isChildrenDirtyForAllParents(Node node, ServiceContext serviceContext) { + return flagChildrenDirtyForAllParents(node, serviceContext, false); + } + + private boolean isChildrenNotDirtyForAllParents(Node node, ServiceContext serviceContext) { + return flagChildrenDirtyForAllParents(node, serviceContext, true); + } + + private boolean flagChildrenDirtyForAllParents(Node node, ServiceContext serviceContext, boolean flag) { + Node parent = null; + while ((parent = serviceContext.getService().getParent(node, serviceContext)) != null) { + if (isChildrenDirty(parent) == flag) { + // the parentSync flag has already been propagated + return false; + } + node = parent; + } + return true; + + } + + private Node subscribeToSdiffFile(String sdiffFileName) { + String sdiffNodeUri = CoreUtils.createNodeUriWithRepo("fpp", CodeSyncTestSuite.PROJECT, sdiffFileName); + Node root = CodeSyncPlugin.getInstance().getResource(sdiffNodeUri); + CorePlugin.getInstance().getResourceService().subscribeToParentResource("dummySessionId", sdiffNodeUri, new ServiceContext()); + return root; + } +} diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncPropagationTest.java b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncPropagationTest.java new file mode 100644 index 00000000..10828693 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncPropagationTest.java @@ -0,0 +1,242 @@ +package org.flowerplatform.tests.codesync; + +import static org.flowerplatform.codesync.CodeSyncConstants.REMOVED; +import static org.flowerplatform.codesync.CodeSyncConstants.CHILDREN_SYNC; +import static org.flowerplatform.codesync.CodeSyncConstants.SYNC; +import static org.flowerplatform.codesync.code.java.CodeSyncJavaConstants.MODIFIER; +import static org.flowerplatform.core.CoreConstants.NAME; +import static org.flowerplatform.core.CoreConstants.TYPE_KEY; +import static org.junit.Assert.assertTrue; + +import org.flowerplatform.codesync.CodeSyncPlugin; +import org.flowerplatform.core.CorePlugin; +import org.flowerplatform.core.CoreUtils; +import org.flowerplatform.core.node.NodeService; +import org.flowerplatform.core.node.remote.Node; +import org.flowerplatform.core.node.remote.NodeServiceRemote; +import org.flowerplatform.core.node.remote.ServiceContext; +import org.flowerplatform.core.node.resource.ResourceService; +import org.junit.Test; + +/** + * + * @author Elena Posea + * + */ + +public class CodeSyncPropagationTest { + + private static final String INITIAL_ALL_SYNC = "initial_all_sync/"; + private static final String INITIAL_ONE_NOT_SYNC = "initial_one_not_sync/"; + private static final String test1 = "AllSyncAddNodeTestCodeSync"; + private static final String test2 = "AllSyncSimpleRemoveSync"; + private static final String test3 = "AllSyncChangeOriginalValueCondeSync"; + private static final String test4 = "NotSyncRevertToOriginalValueCodeSync"; + private static final String test5 = "ReverToOriginalValueButNotTheLastCodeSync"; + + /** + * Initial: + *
+	 * Node1 (SYNC, CHILDREN_SYNC)
+	 * 
+ * + * Expected after addition: + *
+	 * Node1 (not CHILDREN_SYNC) - Modifier
+	 * 
+ */ + @Test + public void testAddNodePropagation() { + // subscribe to sdiff file + NodeServiceRemote nodeServiceRemote = new NodeServiceRemote(); + String sdiffNodeUri = CoreUtils.createNodeUriWithRepo("fpp", CodeSyncTestSuite.PROJECT, INITIAL_ALL_SYNC + test1); + Node root = CodeSyncPlugin.getInstance().getResource(sdiffNodeUri); + CorePlugin.getInstance().getResourceService().subscribeToParentResource("dummySessionId", sdiffNodeUri, new ServiceContext()); + + // get testNode (the parent of the node I want to add) + Node testNode = CodeSyncTestSuite.getChild(root, new String[] {"modified_no_conflicts_perform_sync", "Test.java", "Test", "getTest()"}); + String testNodeFullyQualifiedName = testNode.getNodeUri();; + ServiceContext serviceContext = new ServiceContext(); + assertTrue("testNode is supposed to be initially sync", hasFlagTrue(testNode, SYNC)); + + // add a new child of type MODIFIER + serviceContext.add(TYPE_KEY, MODIFIER); + String modifierNodeFullyQualifiedName = nodeServiceRemote.addChild(testNodeFullyQualifiedName, serviceContext); + Node modifierNode = CorePlugin.getInstance().getResourceService().getNode(modifierNodeFullyQualifiedName); + + // update the value of node (its flag should change after this addition) + testNode = CorePlugin.getInstance().getResourceService().getNode(testNodeFullyQualifiedName); + assertTrue("all the parents are supposed to have the SYNC flag unset/set to false after this new child has been added", isChildrenDirtyForAllParents(modifierNode, serviceContext, INITIAL_ALL_SYNC + test1)); + } + + /** + * Initial + *
+	 * Node1 (CHILDREN_SYNC) - Node2 (SYNC)
+	 * 
+ * + * Expected after removal + *
+	 * Node1 (not CHILDREN_SYNC) - Node2 (marked as removed)
+	 * 
+ */ + @Test + public void testRemoveNodePropagation() { + // subscribe to sdiff file + NodeServiceRemote nodeServiceRemote = new NodeServiceRemote(); + String sdiffNodeUri = CoreUtils.createNodeUriWithRepo("fpp", CodeSyncTestSuite.PROJECT, INITIAL_ALL_SYNC + test2); + Node root = CodeSyncPlugin.getInstance().getResource(sdiffNodeUri); + CorePlugin.getInstance().getResourceService().subscribeToParentResource("dummySessionId", sdiffNodeUri, new ServiceContext()); + + // get the testNode + Node testNode = CodeSyncTestSuite.getChild(root, new String[] {"initial", "Test.java", "Test", "test(String)", "st"}); + String testNodeFullyQualifiedName = testNode.getNodeUri();; + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + assertTrue("testNode is supposed to be initially sync", hasFlagTrue(testNode, SYNC)); + assertTrue("all the parents are supposed to be clean, initially", isChildrenNotDirtyForAllParents(testNode, serviceContext, INITIAL_ALL_SYNC + test2)); + + // get the parent of testNode + Node parentOfTestNode = serviceContext.getService().getParent(testNode, serviceContext); + String parentOfTestNodeFullyQualifiedName = parentOfTestNode.getNodeUri(); + + // remove node + nodeServiceRemote.removeChild(parentOfTestNodeFullyQualifiedName, testNodeFullyQualifiedName); + // update the value of testNode + testNode = CorePlugin.getInstance().getResourceService().getNode(testNodeFullyQualifiedName); + assertTrue("after removal, testNode should be marked as REMOVED", hasFlagTrue(testNode, REMOVED)); + + // everything above should be dirty, including the "removed" node + assertTrue("all the parents are supposed to have the SYNC flag unset/set to false after this removal", isChildrenDirtyForAllParents(testNode, serviceContext, INITIAL_ALL_SYNC + test2)); + } + + /** + * Initial + *
+	 * Node1 (CHILDREN_SYNC) - Node2 (SYNC)
+	 * 
+ * + * Expected after modification of value + *
+	 * Node1 (not CHILDREN_SYNC) - Node2 (not SYNC)
+	 * 
+ */ + + @Test + public void testChangeOriginalValueNodePropagation() { + // subscribe to sdiff file + NodeServiceRemote nodeServiceRemote = new NodeServiceRemote(); + String sdiffNodeUri = CoreUtils.createNodeUriWithRepo("fpp", CodeSyncTestSuite.PROJECT, INITIAL_ALL_SYNC + test3); + Node root = CodeSyncPlugin.getInstance().getResource(sdiffNodeUri); + CorePlugin.getInstance().getResourceService().subscribeToParentResource("dummySessionId", sdiffNodeUri, new ServiceContext()); + + // get testNode + Node testNode = CodeSyncTestSuite.getChild(root, new String[] {"modified_no_conflicts_perform_sync", "Test.java", "Test", "x"}); + String testNodeFullyQualifiedName = testNode.getNodeUri();; + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + assertTrue("testNode is supposed to be initially sync", hasFlagTrue(testNode, SYNC)); + assertTrue("all the parents are supposed to be clean, initially", isChildrenNotDirtyForAllParents(testNode, serviceContext, INITIAL_ALL_SYNC + test3)); + + // change a property + nodeServiceRemote.setProperty(testNodeFullyQualifiedName, NAME, "xx"); + + // everything above should be dirty + assertTrue("all the parents are supposed to have the SYNC flag unset/set to false after this change", isChildrenDirtyForAllParents(testNode, serviceContext, INITIAL_ALL_SYNC + test3)); + + } + + + /** + * Initial + * Node (not CHILDREN_SYNC) - Node (not SYNC because x) + * + * Expected after rever on x but change on y + * Node (not CHILDREN_SYNC) - Node (not SYNC because y) + */ + @Test + public void testRevertToOriginalValueButNotTheLastOneNodePropagation() { + // subscribe to sdiff file + NodeServiceRemote nodeServiceRemote = new NodeServiceRemote(); + String sdiffNodeUri = CoreUtils.createNodeUriWithRepo("fpp", CodeSyncTestSuite.PROJECT, INITIAL_ONE_NOT_SYNC + test5); + Node root = CodeSyncPlugin.getInstance().getResource(sdiffNodeUri); + CorePlugin.getInstance().getResourceService().subscribeToParentResource("dummySessionId", sdiffNodeUri, new ServiceContext()); + + // get testNode + Node testNodeX = CodeSyncTestSuite.getChild(root, new String[] {"modified_no_conflicts_perform_sync", "Test.java", "Test", "xx"}); + String testNodeXFullyQualifiedName = testNodeX.getNodeUri();; + Node testNodeY = CodeSyncTestSuite.getChild(root, new String[] {"modified_no_conflicts_perform_sync", "Test.java", "Test", "y"}); + String testNodeYFullyQualifiedName = testNodeY.getNodeUri();; + + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + assertTrue("testNodeX is supposed to be initially not SYNC", !hasFlagTrue(testNodeX, SYNC)); + assertTrue("testNodeY is supposed to be initially SYNC", hasFlagTrue(testNodeY, SYNC)); + assertTrue("all the parents are supposed to be dirty, initially", isChildrenDirtyForAllParents(testNodeX, serviceContext, INITIAL_ONE_NOT_SYNC + test5)); + + // change a property + nodeServiceRemote.setProperty(testNodeYFullyQualifiedName, NAME, "yy"); + // revert a property + nodeServiceRemote.setProperty(testNodeXFullyQualifiedName, NAME, "x"); + + // everything above should be dirty + assertTrue("all the parents are supposed to still have the SYNC flag unset/set to false after this change", isChildrenDirtyForAllParents(testNodeX, serviceContext, INITIAL_ONE_NOT_SYNC + test5)); + } + + + @Test + public void testRevertToOriginalValueNodePropagation() { + // subscribe to sdiff file + NodeServiceRemote nodeServiceRemote = new NodeServiceRemote(); + String sdiffNodeUri = CoreUtils.createNodeUriWithRepo("fpp", CodeSyncTestSuite.PROJECT, INITIAL_ONE_NOT_SYNC + test4); + Node root = CodeSyncPlugin.getInstance().getResource(sdiffNodeUri); + CorePlugin.getInstance().getResourceService().subscribeToParentResource("dummySessionId", sdiffNodeUri, new ServiceContext()); + + // get test node + Node testNode = CodeSyncTestSuite.getChild(root, new String[] {"modified_no_conflicts_perform_sync", "Test.java", "Test", "xx"}); + String testNodeFullyQualifiedName = testNode.getNodeUri();; + ServiceContext serviceContext = new ServiceContext(); + serviceContext.setService(CorePlugin.getInstance().getNodeService()); + assertTrue("testNode is supposed to be initially not sync", !hasFlagTrue(testNode, SYNC)); + assertTrue("all the parents are supposed to be dirty, initially", isChildrenDirtyForAllParents(testNode, serviceContext, INITIAL_ONE_NOT_SYNC + test4)); + + // change a property back to its original value + nodeServiceRemote.setProperty(testNodeFullyQualifiedName, NAME, "x"); + + // everything above should be clean again + assertTrue("all the parents are supposed to be clean, after I changed back this property", isChildrenNotDirtyForAllParents(testNode, serviceContext, INITIAL_ONE_NOT_SYNC + test4)); + } + + private static boolean hasFlagTrue(Node node, String flag) { + Boolean b = (Boolean) node.getPropertyValue(flag); + return b != null && b; + } + + private boolean isChildrenDirty(Node node) { + Boolean b = (Boolean) node.getPropertyValue(CHILDREN_SYNC); + // is something that has a child comment + return b == null || b == false; + } + + private boolean isChildrenDirtyForAllParents(Node node, ServiceContext serviceContext, String stop) { + return isChildrenFlagForAllParents(node, serviceContext, stop, false); + } + + private boolean isChildrenFlagForAllParents(Node node, ServiceContext serviceContext, String stop, boolean flag) { + Node parent = null; + while ((parent = serviceContext.getService().getParent(node, serviceContext)) != null && !parent.getNodeUri().endsWith(stop)) { + if (isChildrenDirty(parent) == flag) { + // the parentSync flag has already been propagated + return false; + } + node = parent; + } + return true; + } + + private boolean isChildrenNotDirtyForAllParents(Node node, ServiceContext serviceContext, String stop) { + return isChildrenFlagForAllParents(node, serviceContext, stop, true); + } + + +} diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncTestSuite.java b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncTestSuite.java index 2a4474fd..174b6086 100644 --- a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncTestSuite.java +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/CodeSyncTestSuite.java @@ -52,7 +52,9 @@ @RunWith(Suite.class) @SuiteClasses({ CodeSyncJavaTest.class, - CodeSyncAsTest.class + CodeSyncAsTest.class, + CodeSyncCommentPropagationTest.class, + CodeSyncPropagationTest.class // CodeSyncJavascriptTest.class, // CodeSyncWikiTest.class }) diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncAddNodeTestCodeSync b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncAddNodeTestCodeSync new file mode 100644 index 00000000..d52c4769 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncAddNodeTestCodeSync @@ -0,0 +1,8932 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Flower Platform 4 +

+

+ - Flower Agile Process Sheet - +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncChangeOriginalValueCondeSync b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncChangeOriginalValueCondeSync new file mode 100644 index 00000000..d52c4769 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncChangeOriginalValueCondeSync @@ -0,0 +1,8932 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Flower Platform 4 +

+

+ - Flower Agile Process Sheet - +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncSimpleRemoveSync b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncSimpleRemoveSync new file mode 100644 index 00000000..d52c4769 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_all_sync/AllSyncSimpleRemoveSync @@ -0,0 +1,8932 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Flower Platform 4 +

+

+ - Flower Agile Process Sheet - +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffOneCommentPatch.sdiff b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffOneCommentPatch.sdiff new file mode 100644 index 00000000..b85c46e8 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffOneCommentPatch.sdiff @@ -0,0 +1,1124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoCommentsDirtyPatch.sdiff b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoCommentsDirtyPatch.sdiff new file mode 100644 index 00000000..9ef80e5c --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoCommentsDirtyPatch.sdiff @@ -0,0 +1,1127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoCommentsPatch.sdiff b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoCommentsPatch.sdiff new file mode 100644 index 00000000..23677305 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoCommentsPatch.sdiff @@ -0,0 +1,1128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoDirtyChildrenPatch.sdiff b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoDirtyChildrenPatch.sdiff new file mode 100644 index 00000000..653a661b --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_comments_inside/codesyncSdiffTwoDirtyChildrenPatch.sdiff @@ -0,0 +1,1123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_no_comments_inside/codesyncSdiffPatch.sdiff b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_no_comments_inside/codesyncSdiffPatch.sdiff new file mode 100644 index 00000000..578879db --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_no_comments_inside/codesyncSdiffPatch.sdiff @@ -0,0 +1,1115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_one_not_sync/NotSyncRevertToOriginalValueCodeSync b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_one_not_sync/NotSyncRevertToOriginalValueCodeSync new file mode 100644 index 00000000..29303061 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_one_not_sync/NotSyncRevertToOriginalValueCodeSync @@ -0,0 +1,8933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Flower Platform 4 +

+

+ - Flower Agile Process Sheet - +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_one_not_sync/ReverToOriginalValueButNotTheLastCodeSync b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_one_not_sync/ReverToOriginalValueButNotTheLastCodeSync new file mode 100644 index 00000000..29303061 --- /dev/null +++ b/org.flowerplatform.tests/src/org/flowerplatform/tests/codesync/resources/initial_to_be_copied/initial_one_not_sync/ReverToOriginalValueButNotTheLastCodeSync @@ -0,0 +1,8933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Flower Platform 4 +

+

+ - Flower Agile Process Sheet - +

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/org.flowerplatform.util/META-INF/MANIFEST.MF b/org.flowerplatform.util/META-INF/MANIFEST.MF index 68b2f48d..1fb51fea 100644 --- a/org.flowerplatform.util/META-INF/MANIFEST.MF +++ b/org.flowerplatform.util/META-INF/MANIFEST.MF @@ -1,39 +1,37 @@ -Manifest-Version: 1.0 -Eclipse-BuddyPolicy: registered -Bundle-ManifestVersion: 2 -Bundle-Name: Util -Bundle-SymbolicName: org.flowerplatform.util -Bundle-Version: 0.1.1.qualifier -Bundle-RequiredExecutionEnvironment: JavaSE-1.7 -Export-Package: ch.qos.logback.classic, - ch.qos.logback.classic.joran, - ch.qos.logback.classic.util, - ch.qos.logback.core, - ch.qos.logback.core.joran, - ch.qos.logback.core.joran.spi, - ch.qos.logback.core.spi, - ch.qos.logback.core.util, - org.apache.commons.io, - org.apache.commons.io.comparator, - org.apache.commons.io.filefilter, - org.apache.commons.io.input, - org.apache.commons.io.monitor, - org.apache.commons.io.output, - org.flowerplatform.util, - org.flowerplatform.util.controller, - org.flowerplatform.util.file, - org.flowerplatform.util.log, - org.flowerplatform.util.plugin, - org.flowerplatform.util.regex, - org.flowerplatform.util.servlet, - org.slf4j -Bundle-ClassPath: lib-from-maven/commons-io-2.4.jar, - lib-from-maven/logback-classic-1.1.2.jar, - lib-from-maven/logback-core-1.1.2.jar, - lib-from-maven/slf4j-api-1.7.6.jar, - . -Require-Bundle: org.eclipse.osgi, - org.eclipse.core.runtime -Import-Package: javax.servlet.http, - org.eclipse.equinox.jsp.jasper, - org.eclipse.equinox.jsp.jasper.registry +Manifest-Version: 1.0 +Eclipse-BuddyPolicy: registered +Bundle-ManifestVersion: 2 +Bundle-Name: Util +Bundle-SymbolicName: org.flowerplatform.util +Bundle-Version: 0.1.1.qualifier +Bundle-RequiredExecutionEnvironment: JavaSE-1.7 +Export-Package: ch.qos.logback.classic, + ch.qos.logback.classic.joran, + ch.qos.logback.core, + ch.qos.logback.core.joran, + ch.qos.logback.core.joran.spi, + ch.qos.logback.core.spi, + org.apache.commons.io, + org.apache.commons.io.comparator, + org.apache.commons.io.filefilter, + org.apache.commons.io.input, + org.apache.commons.io.monitor, + org.apache.commons.io.output, + org.flowerplatform.util, + org.flowerplatform.util.controller, + org.flowerplatform.util.file, + org.flowerplatform.util.log, + org.flowerplatform.util.plugin, + org.flowerplatform.util.regex, + org.flowerplatform.util.servlet, + org.slf4j +Bundle-ClassPath: lib-from-maven/commons-io-2.4.jar, + lib-from-maven/logback-classic-1.1.2.jar, + lib-from-maven/logback-core-1.1.2.jar, + lib-from-maven/slf4j-api-1.7.6.jar, + . +Require-Bundle: org.eclipse.osgi, + org.eclipse.core.runtime +Import-Package: javax.servlet.http, + org.eclipse.equinox.jsp.jasper, + org.eclipse.equinox.jsp.jasper.registry diff --git a/org.flowerplatform.util/src/org/flowerplatform/util/regex/RegexConfiguration.java b/org.flowerplatform.util/src/org/flowerplatform/util/regex/RegexConfiguration.java index 3f7946fa..b03cdbf0 100644 --- a/org.flowerplatform.util/src/org/flowerplatform/util/regex/RegexConfiguration.java +++ b/org.flowerplatform.util/src/org/flowerplatform/util/regex/RegexConfiguration.java @@ -132,5 +132,4 @@ public AbstractRegexWithAction[] getCaptureGroupToRegexMapping() { return captureGroupToRegexMapping; } - -} \ No newline at end of file +}