]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
foobaz2
authorAntti Villberg <antti.villberg@semantum.fi>
Wed, 31 Oct 2018 05:04:34 +0000 (07:04 +0200)
committerAntti Villberg <antti.villberg@semantum.fi>
Wed, 31 Oct 2018 05:04:34 +0000 (07:04 +0200)
Change-Id: I0000000000000000000000000000000000000000

59 files changed:
bundles/.project [new file with mode: 0644]
bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/ContextualRelatedValue.java [new file with mode: 0644]
bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/ReflectionComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/SCLComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/ProxyVariableSupport.java [new file with mode: 0644]
bundles/org.simantics.db/src/org/simantics/db/ComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.db/src/org/simantics/db/ConverterComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentProperties.java [new file with mode: 0644]
bundles/org.simantics.document.server/src/org/simantics/document/server/HandlerSCLComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.document.server/src/org/simantics/document/server/SCLComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.modeling/src/org/simantics/modeling/SCLComputationalValue.java [new file with mode: 0644]
bundles/org.simantics.structural2/src/org/simantics/structural2/ConnectionImpl.java [new file with mode: 0644]
bundles/org.simantics.structural2/src/org/simantics/structural2/variables/Connection2.java [new file with mode: 0644]
bundles/org.simantics.structural2/src/org/simantics/structural2/variables/FixedConnection.java [new file with mode: 0644]
features/.project [new file with mode: 0644]
features/com.lowagie.text.feature/build.xml [new file with mode: 0644]
features/org.apache.lucene4.feature/build.xml [new file with mode: 0644]
features/org.jfree.feature/build.xml [new file with mode: 0644]
features/org.simantics.browsing.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.charts.feature/build.xml [new file with mode: 0644]
features/org.simantics.data.feature/build.xml [new file with mode: 0644]
features/org.simantics.db.client.feature/build.xml [new file with mode: 0644]
features/org.simantics.db.services.feature/build.xml [new file with mode: 0644]
features/org.simantics.desktop.feature/build.xml [new file with mode: 0644]
features/org.simantics.document.base.feature/build.xml [new file with mode: 0644]
features/org.simantics.document.swt.feature/build.xml [new file with mode: 0644]
features/org.simantics.event.feature/build.xml [new file with mode: 0644]
features/org.simantics.export.feature/build.xml [new file with mode: 0644]
features/org.simantics.g2d.feature/build.xml [new file with mode: 0644]
features/org.simantics.help.feature/build.xml [new file with mode: 0644]
features/org.simantics.image.feature/build.xml [new file with mode: 0644]
features/org.simantics.issues.feature/build.xml [new file with mode: 0644]
features/org.simantics.issues.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.layer0.feature/build.xml [new file with mode: 0644]
features/org.simantics.migration.feature/build.xml [new file with mode: 0644]
features/org.simantics.modeling.feature/build.xml [new file with mode: 0644]
features/org.simantics.modeling.ui.workbench.feature/build.xml [new file with mode: 0644]
features/org.simantics.platform.feature/build.xml [new file with mode: 0644]
features/org.simantics.platform.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.rcp.feature/build.xml [new file with mode: 0644]
features/org.simantics.scl.feature/build.xml [new file with mode: 0644]
features/org.simantics.scl.rest.feature/build.xml [new file with mode: 0644]
features/org.simantics.scl.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.selectionview.feature/build.xml [new file with mode: 0644]
features/org.simantics.simulation.feature/build.xml [new file with mode: 0644]
features/org.simantics.simulator.toolkit.db.feature/build.xml [new file with mode: 0644]
features/org.simantics.simulator.toolkit.feature/build.xml [new file with mode: 0644]
features/org.simantics.spreadsheet.feature/build.xml [new file with mode: 0644]
features/org.simantics.spreadsheet.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.structural.feature/build.xml [new file with mode: 0644]
features/org.simantics.ui.workbench.feature/build.xml [new file with mode: 0644]
features/org.simantics.utils.feature/build.xml [new file with mode: 0644]
features/org.simantics.utils.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.views.swt.client.feature/build.xml [new file with mode: 0644]
features/org.simantics.views.swt.feature/build.xml [new file with mode: 0644]
features/org.simantics.wiki.ui.feature/build.xml [new file with mode: 0644]
features/org.simantics.workbench.feature/build.xml [new file with mode: 0644]
releng/.project [new file with mode: 0644]
tests/.project [new file with mode: 0644]

diff --git a/bundles/.project b/bundles/.project
new file mode 100644 (file)
index 0000000..e32f4d5
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>bundles</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.m2e.core.maven2Builder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/ContextualRelatedValue.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/ContextualRelatedValue.java
new file mode 100644 (file)
index 0000000..2fe96f0
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.db.layer0.adapter;
+
+import org.simantics.db.ConverterComputationalValue;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.exception.RuntimeDatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.scl.runtime.SCLContext;
+import org.simantics.scl.runtime.function.Function1;
+import org.simantics.scl.runtime.function.FunctionImpl3;
+
+abstract public class ContextualRelatedValue implements ConverterComputationalValue {
+
+    @Override
+    public <T> T getValue(ReadGraph graph, Resource resource) throws DatabaseException {
+        
+        return (T)new FunctionImpl3<ReadGraph, Resource, Object, Object>() {
+
+            @Override
+            public Object apply(ReadGraph graph, Resource converter, Object context) {
+                SCLContext sclContext = SCLContext.getCurrent();
+                Object oldGraph = sclContext.get("graph");
+                try {
+                    if(context instanceof Variable) {
+                        Variable variable = (Variable)context;
+                        try {
+                            Function1 fn = getFunction(graph, variable.getParent(graph).getRepresents(graph), variable.getRepresents(graph), variable.getPredicateResource(graph));
+                            sclContext.put("graph", graph);
+                            return fn.apply(variable);
+                        } catch (DatabaseException e) {
+                            throw new RuntimeDatabaseException(e);
+                        }
+                    } if (context instanceof Resource) {
+                        Resource resource = (Resource)context;
+                        try {
+                            Function1 fn = getFunction(graph, null, resource, null);
+                            return fn.apply(resource);
+                        } catch (DatabaseException e) {
+                            throw new RuntimeDatabaseException(e);
+                        }
+                    } else {
+                        throw new IllegalStateException("Unknown context " + context);
+                    }
+                } finally {
+                    sclContext.put("graph", oldGraph);
+                }
+            }
+
+        };
+        
+    }
+
+}
diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/ReflectionComputationalValue.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/ReflectionComputationalValue.java
new file mode 100644 (file)
index 0000000..dc5d83a
--- /dev/null
@@ -0,0 +1,25 @@
+package org.simantics.db.layer0.adapter;
+
+import org.simantics.db.ComputationalValue;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.scl.reflection.ReflectionUtils;
+import org.simantics.scl.reflection.ValueNotFoundException;
+
+public class ReflectionComputationalValue implements ComputationalValue {
+
+       @Override
+       public <T> T getValue(ReadGraph graph, Resource resource) throws DatabaseException {
+               
+               try {
+                       return (T)ReflectionUtils.getValue(graph.getURI(resource)).getValue();
+               } catch(ValueNotFoundException e) {
+                       throw new DatabaseException(e);
+               } catch(ClassCastException e) {
+                       throw new DatabaseException(e);
+               }
+               
+       }
+
+}
diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/SCLComputationalValue.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/SCLComputationalValue.java
new file mode 100644 (file)
index 0000000..d0991fb
--- /dev/null
@@ -0,0 +1,24 @@
+package org.simantics.db.layer0.adapter;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.scl.CompileResourceValueRequest;
+import org.simantics.db.layer0.scl.CompileValueRequest;
+import org.simantics.scl.runtime.function.Function1;
+
+public class SCLComputationalValue extends ContextualRelatedValue {
+
+       @Override
+       public Function1 getFunction(ReadGraph graph, Resource s, Resource o, Resource p) throws DatabaseException {
+           if(s != null && p != null && o != null) {
+               return CompileValueRequest.compile(graph, s, o, p);    
+           } else if (o != null) {
+            return CompileResourceValueRequest.compile(graph, o);    
+           } else {
+               throw new DatabaseException("Could not compile SCL expression: s=" + s+ " p=" + p + " o=" + o);
+           }
+               
+       }
+
+}
diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/ProxyVariableSupport.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/variable/ProxyVariableSupport.java
new file mode 100644 (file)
index 0000000..9ae52c6
--- /dev/null
@@ -0,0 +1,10 @@
+package org.simantics.db.layer0.variable;
+
+import org.simantics.db.ReadGraph;
+
+public interface ProxyVariableSupport {
+
+    Variable attachTo(ReadGraph graph, Variable parent);
+    Variable attachToRenamed(ReadGraph graph, Variable parent, String name);
+    
+}
diff --git a/bundles/org.simantics.db/src/org/simantics/db/ComputationalValue.java b/bundles/org.simantics.db/src/org/simantics/db/ComputationalValue.java
new file mode 100644 (file)
index 0000000..48a3bf2
--- /dev/null
@@ -0,0 +1,9 @@
+package org.simantics.db;
+
+import org.simantics.db.exception.DatabaseException;
+
+public interface ComputationalValue {
+
+       public <T> T getValue(ReadGraph graph, Resource resource) throws DatabaseException;
+       
+}
diff --git a/bundles/org.simantics.db/src/org/simantics/db/ConverterComputationalValue.java b/bundles/org.simantics.db/src/org/simantics/db/ConverterComputationalValue.java
new file mode 100644 (file)
index 0000000..e999789
--- /dev/null
@@ -0,0 +1,16 @@
+package org.simantics.db;
+
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.scl.runtime.function.Function1;
+
+public interface ConverterComputationalValue extends ComputationalValue {
+       
+    /*
+     * This computes the expression function that shall be called with given context as defined in ReadGraph.getRelatedValue2 
+     * Context can be Resource (literal) or Variable. 
+     * With Resource context this gets called with o != null and s==null and p==null 
+     * With Variable property context this gets called with (represents of parent, represents, predicate resource) 
+     */
+       Function1 getFunction(ReadGraph graph, Resource s, Resource o, Resource p) throws DatabaseException;
+       
+}
diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentProperties.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/DocumentProperties.java
new file mode 100644 (file)
index 0000000..2951b93
--- /dev/null
@@ -0,0 +1,14 @@
+package org.simantics.document.server;
+
+import java.util.Collection;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+
+public interface DocumentProperties {
+       
+       Collection<String> getKeys(ReadGraph graph, Variable context) throws DatabaseException;
+       Object getValue(ReadGraph graph, Variable context, String key) throws DatabaseException;
+       
+}
diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/HandlerSCLComputationalValue.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/HandlerSCLComputationalValue.java
new file mode 100644 (file)
index 0000000..e75c6a2
--- /dev/null
@@ -0,0 +1,17 @@
+package org.simantics.document.server;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ContextualRelatedValue;
+import org.simantics.document.server.request.ServerSCLHandlerValueRequest;
+import org.simantics.scl.runtime.function.Function1;
+
+public class HandlerSCLComputationalValue extends ContextualRelatedValue {
+
+       @Override
+       public Function1 getFunction(ReadGraph graph, Resource s, Resource o, Resource p) throws DatabaseException {
+               return ServerSCLHandlerValueRequest.compile(graph, s, o, p);
+       }
+
+}
diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/SCLComputationalValue.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/SCLComputationalValue.java
new file mode 100644 (file)
index 0000000..a0bfa63
--- /dev/null
@@ -0,0 +1,17 @@
+package org.simantics.document.server;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ContextualRelatedValue;
+import org.simantics.document.server.request.ServerSCLValueRequest;
+import org.simantics.scl.runtime.function.Function1;
+
+public class SCLComputationalValue extends ContextualRelatedValue {
+
+       @Override
+       public Function1 getFunction(ReadGraph graph, Resource s, Resource o, Resource p) throws DatabaseException {
+               return ServerSCLValueRequest.compile(graph, s, o, p);
+       }
+
+}
diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLComputationalValue.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLComputationalValue.java
new file mode 100644 (file)
index 0000000..3bfe1dc
--- /dev/null
@@ -0,0 +1,17 @@
+package org.simantics.modeling;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.adapter.ContextualRelatedValue;
+import org.simantics.scl.runtime.function.Function1;
+import org.simantics.structural2.scl.CompileStructuralValueRequest;
+
+public class SCLComputationalValue extends ContextualRelatedValue {
+
+       @Override
+       public Function1 getFunction(ReadGraph graph, Resource s, Resource o, Resource p) throws DatabaseException {
+               return CompileStructuralValueRequest.compile(graph, s, o, p);
+       }
+
+}
diff --git a/bundles/org.simantics.structural2/src/org/simantics/structural2/ConnectionImpl.java b/bundles/org.simantics.structural2/src/org/simantics/structural2/ConnectionImpl.java
new file mode 100644 (file)
index 0000000..c9d8f42
--- /dev/null
@@ -0,0 +1,104 @@
+package org.simantics.structural2;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.structural2.variables.Connection;
+import org.simantics.structural2.variables.ConnectionBrowser;
+import org.simantics.structural2.variables.VariableConnectionPointDescriptor;
+
+import gnu.trove.set.hash.THashSet;
+
+public class ConnectionImpl implements Connection {
+
+       @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((component == null) ? 0 : component.hashCode());
+        result = prime * result + ((predicate == null) ? 0 : predicate.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        ConnectionImpl other = (ConnectionImpl) obj;
+        if (component == null) {
+            if (other.component != null)
+                return false;
+        } else if (!component.equals(other.component))
+            return false;
+        if (predicate == null) {
+            if (other.predicate != null)
+                return false;
+        } else if (!predicate.equals(other.predicate))
+            return false;
+        return true;
+    }
+
+    final private Variable component;
+       final private Resource predicate;
+       
+       public ConnectionImpl(Variable component, Resource predicate) {
+           this.component = component;
+           this.predicate = predicate;
+       }
+       
+       @Override
+       public Collection<Variable> getConnectionPoints(ReadGraph graph, Variable component, Resource relationType) throws DatabaseException {
+           Set<Variable> result = new THashSet<Variable>();
+           for(VariableConnectionPointDescriptor desc : ConnectionBrowser.flatten(graph, component, predicate, relationType)) {
+               result.add(desc.getVariable(graph));
+           }
+           return result;
+       }
+
+    @Override
+    public Collection<Variable> getConnectionPoints(ReadGraph graph, Resource relationType) throws DatabaseException {
+        Set<Variable> result = new THashSet<Variable>();
+        for(VariableConnectionPointDescriptor desc : ConnectionBrowser.flatten(graph, component, predicate, relationType)) {
+            result.add(desc.getVariable(graph));
+        }
+        return result;
+    }
+
+       @Override
+       public Collection<String> getConnectionPointURIs(ReadGraph graph, Variable component, Resource relationType) throws DatabaseException {
+           Set<String> result = new THashSet<String>();
+           for(VariableConnectionPointDescriptor desc : ConnectionBrowser.flatten(graph, component, predicate, relationType)) {
+               result.add(desc.getURI(graph));
+           }
+           return result;
+       }
+
+       @Override
+    public Collection<String> getConnectionPointURIs(ReadGraph graph, Resource relationType) throws DatabaseException {
+        Set<String> result = new THashSet<String>();
+        for(VariableConnectionPointDescriptor desc : ConnectionBrowser.flatten(graph, component, predicate, relationType)) {
+            result.add(desc.getURI(graph));
+        }
+        return result;
+    }
+
+       @Override
+       public Collection<VariableConnectionPointDescriptor> getConnectionPointDescriptors(ReadGraph graph, Variable component, Resource relationType) throws DatabaseException {
+           return ConnectionBrowser.flatten(graph, component, predicate, relationType);
+       }
+
+    @Override
+    public Collection<VariableConnectionPointDescriptor> getConnectionPointDescriptors(ReadGraph graph,
+            Resource relationType) throws DatabaseException {
+        return ConnectionBrowser.flatten(graph, component, predicate, relationType);
+    }
+
+}
\ No newline at end of file
diff --git a/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/Connection2.java b/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/Connection2.java
new file mode 100644 (file)
index 0000000..0751ea2
--- /dev/null
@@ -0,0 +1,26 @@
+package org.simantics.structural2.variables;
+
+import java.util.Collection;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+
+public interface Connection2 {
+
+
+    /**
+     * Return absolute URIs of the connection points. An optional (may be null) relationType may be used
+     * to filter the returned connection points.
+     */
+    Collection<String> getConnectionPointURIs(ReadGraph graph, Variable component, Resource relationType) throws DatabaseException;
+    /**
+     * Return the connection points. An optional (may be null) relationType may be used
+     * to filter the returned connection points.
+     */
+    Collection<Variable> getConnectionPoints(ReadGraph graph, Variable component, Resource relationType) throws DatabaseException;
+    
+    Collection<VariableConnectionPointDescriptor> getConnectionPointDescriptors(ReadGraph graph, Variable component, Resource relationType) throws DatabaseException;
+
+}
diff --git a/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/FixedConnection.java b/bundles/org.simantics.structural2/src/org/simantics/structural2/variables/FixedConnection.java
new file mode 100644 (file)
index 0000000..34db531
--- /dev/null
@@ -0,0 +1,145 @@
+package org.simantics.structural2.variables;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
+import org.simantics.utils.datastructures.Pair;
+
+import gnu.trove.set.hash.THashSet;
+
+public class FixedConnection implements org.simantics.structural2.variables.Connection {
+
+    final private Variable parent;
+    
+    final private Collection<Pair<String,Resource>> cps = new ArrayList<Pair<String,Resource>>();
+    
+    public FixedConnection(Variable parent) {
+        this.parent = parent;
+    }
+    
+    public void addAll(List<Pair<String,Resource>> cps) throws DatabaseException {
+        for(Pair<String,Resource> cp : cps) {
+            this.cps.add(cp);
+        }
+    }
+    
+    public int size() {
+        return cps.size();
+    }
+    
+    public void addConnectionDescriptors(ReadGraph graph, Variable curConfiguration, Collection<VariableConnectionPointDescriptor> result) throws DatabaseException {
+        for(Pair<String,Resource> cpzz : cps) {
+            // This is a connection to an interface terminal. It is handled by ConnectionBrowser in separate logic. Do not include it here.
+            if(cpzz.first == null) continue;
+            /*if(cpzz.first == null) {
+                String message = "Lifted connection was not resolved. Child = " + parent.getURI(graph);
+                throw new DatabaseException(message);
+            }*/
+            result.add(new PairConnectionDescriptor(curConfiguration, cpzz));
+        }
+    }
+    
+    @Override
+    public Collection<Variable> getConnectionPoints(ReadGraph graph, Resource relationType) throws DatabaseException {
+        return getConnectionPoints(graph, parent, relationType);
+    }
+    
+       @Override
+       public Collection<String> getConnectionPointURIs(ReadGraph graph, Resource relationType) throws DatabaseException {
+           return getConnectionPointURIs(graph, parent, relationType);
+               
+       }
+       
+       @Override
+       public Collection<VariableConnectionPointDescriptor> getConnectionPointDescriptors(ReadGraph graph, Resource relationType) throws DatabaseException {
+           return getConnectionPointDescriptors(graph, parent, relationType);
+       }
+
+    @Override
+       public int hashCode() {
+               final int prime = 31;
+               int result = 1;
+               result = prime * result + ((cps == null) ? 0 : cps.hashCode());
+               result = prime * result
+                               + ((parent == null) ? 0 : parent.hashCode());
+               return result;
+       }
+
+       @Override
+       public boolean equals(Object obj) {
+               if (this == obj)
+                       return true;
+               if (obj == null)
+                       return false;
+               if (getClass() != obj.getClass())
+                       return false;
+               FixedConnection other = (FixedConnection) obj;
+               if (cps == null) {
+                       if (other.cps != null)
+                               return false;
+               } else if (!cps.equals(other.cps))
+                       return false;
+               if (parent == null) {
+                       if (other.parent != null)
+                               return false;
+               } else if (!parent.equals(other.parent))
+                       return false;
+               return true;
+       }
+
+       @Override
+       public Collection<VariableConnectionPointDescriptor> getConnectionPointDescriptors(ReadGraph graph,
+               Variable parent, Resource relationType) throws DatabaseException {
+        Set<VariableConnectionPointDescriptor> result = new THashSet<VariableConnectionPointDescriptor>();
+        for(Pair<String,Resource> cp : cps) {
+            Variable component = cp.first == null ? parent : parent.getChild(graph, cp.first); 
+            Variable cp2 = component.getPossibleProperty(graph, cp.second);
+            if(cp2 != null)
+                result.addAll(ConnectionBrowser.flatten(graph, component, cp.second, relationType));
+            else
+                StandardProceduralChildVariable.LOGGER.warn("no cp " + cp.first + " for " + component.getURI(graph));
+        }
+        return result;
+       }
+       
+       @Override
+       public Collection<Variable> getConnectionPoints(ReadGraph graph, Variable parent, Resource relationType)
+               throws DatabaseException {
+        Set<Variable> result = new THashSet<Variable>();
+        for(Pair<String,Resource> cp : cps) {
+            Variable component = cp.first == null ? parent : parent.getChild(graph, cp.first); 
+            Variable cp2 = component.getPossibleProperty(graph, cp.second);
+            if(cp2 != null)
+                for(VariableConnectionPointDescriptor desc : ConnectionBrowser.flatten(graph, component, cp.second, relationType)) {
+                    result.add(desc.getVariable(graph));
+                }
+            else
+                StandardProceduralChildVariable.LOGGER.warn("no cp " + cp.first + " for " + component.getURI(graph));
+        }
+        return result;
+       }
+       
+       @Override
+       public Collection<String> getConnectionPointURIs(ReadGraph graph, Variable parent, Resource relationType)
+               throws DatabaseException {
+        Set<String> result = new THashSet<String>();
+        for(Pair<String,Resource> cp : cps) {
+            Variable component = cp.first == null ? parent : parent.getChild(graph, cp.first); 
+            Variable cp2 = component.getPossibleProperty(graph, cp.second);
+            if(cp2 != null)
+                for(VariableConnectionPointDescriptor desc : ConnectionBrowser.flatten(graph, component, cp.second, relationType)) {
+                    result.add(desc.getURI(graph));
+                }
+            else
+                StandardProceduralChildVariable.LOGGER.warn("no cp " + cp.first + " for " + component.getURI(graph));
+        }
+        return result;
+       }
+       
+}
\ No newline at end of file
diff --git a/features/.project b/features/.project
new file mode 100644 (file)
index 0000000..c364130
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>features</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.m2e.core.maven2Builder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/features/com.lowagie.text.feature/build.xml b/features/com.lowagie.text.feature/build.xml
new file mode 100644 (file)
index 0000000..1f01d8d
--- /dev/null
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="com.lowagie.text" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: com.lowagie.text.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: com.lowagie.text for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/com.lowagie.text_2.1.7.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/com.lowagie.text_2.1.7.201810081537.jar" basedir="${feature.temp.folder}/features/com.lowagie.text_2.1.7.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/com.lowagie.text_2.1.7.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/com.lowagie.text_2.1.7.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/com.lowagie.text_2.1.7.201810081537/feature.xml"  selfVersion="2.1.7.201810081537" featureIds="" pluginIds="com.lowagie.text:0.0.0,2.1.7.b1,org.bouncycastle.bcmail-jdk14:0.0.0,1.38.0,org.bouncycastle.bcprov-jdk14:0.0.0,1.38.0,org.bouncycastle.bctsp-jdk14:0.0.0,1.38.0,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/com.lowagie.text_2.1.7.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/com.lowagie.text_2.1.7.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/com.lowagie.text_2.1.7.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/com.lowagie.text_2.1.7.201810081537/feature.xml"  selfVersion="2.1.7.201810081537" featureIds="" pluginIds="com.lowagie.text:0.0.0,2.1.7.b1,org.bouncycastle.bcmail-jdk14:0.0.0,1.38.0,org.bouncycastle.bcprov-jdk14:0.0.0,1.38.0,org.bouncycastle.bctsp-jdk14:0.0.0,1.38.0,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: com.lowagie.text.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/com.lowagie.text_2.1.7.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/com.lowagie.text.source_2.1.7.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/com.lowagie.text_2.1.7.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/com.lowagie.text_2.1.7.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: com.lowagie.text of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/com.lowagie.text_2.1.7.201810081537.jar"/>
+               <delete file="${feature.destination}/com.lowagie.text_2.1.7.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/com.lowagie.text_2.1.7.201810081537.log.zip"/>
+               <delete file="${feature.destination}/com.lowagie.text_2.1.7.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/com.lowagie.text.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/com.lowagie.text.source_2.1.7.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.apache.lucene4.feature/build.xml b/features/org.apache.lucene4.feature/build.xml
new file mode 100644 (file)
index 0000000..b534bd0
--- /dev/null
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.apache.lucene4" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.apache.lucene4.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.apache.lucene4 for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.apache.lucene4_4.9.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.apache.lucene4_4.9.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.apache.lucene4_4.9.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.apache.lucene4_4.9.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.apache.lucene4_4.9.0.201810081537/feature.xml"  selfVersion="4.9.0.201810081537" featureIds="" pluginIds="org.apache.lucene4.core:0.0.0,4.9.0.b0003,org.apache.lucene4.queries:0.0.0,4.9.0.b0003,org.apache.lucene4.sandbox:0.0.0,4.9.0.b0003,org.apache.lucene4.queryparser:0.0.0,4.9.0.b0003,org.apache.lucene4.analyzers-common:0.0.0,4.9.0.b0003,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.apache.lucene4_4.9.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.apache.lucene4_4.9.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.apache.lucene4_4.9.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.apache.lucene4_4.9.0.201810081537/feature.xml"  selfVersion="4.9.0.201810081537" featureIds="" pluginIds="org.apache.lucene4.core:0.0.0,4.9.0.b0003,org.apache.lucene4.queries:0.0.0,4.9.0.b0003,org.apache.lucene4.sandbox:0.0.0,4.9.0.b0003,org.apache.lucene4.queryparser:0.0.0,4.9.0.b0003,org.apache.lucene4.analyzers-common:0.0.0,4.9.0.b0003,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.apache.lucene4.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.apache.lucene4.source_4.9.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.apache.lucene4 of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.apache.lucene4_4.9.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.apache.lucene4.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.apache.lucene4.source_4.9.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.jfree.feature/build.xml b/features/org.jfree.feature/build.xml
new file mode 100644 (file)
index 0000000..842f5f9
--- /dev/null
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.jfree" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.jfree.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.jfree for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.jfree_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.jfree_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.jfree_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.jfree_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.jfree_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.jfree_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.jfree.jchart:0.0.0,1.0.19,org.jfree.jcommon:0.0.0,1.0.23,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.jfree_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.jfree_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.jfree_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.jfree_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.jfree.jchart:0.0.0,1.0.19,org.jfree.jcommon:0.0.0,1.0.23,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.jfree.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.jfree_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.jfree.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.jfree_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.jfree_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.jfree of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.jfree_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.jfree_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.jfree_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.jfree_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.jfree.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.jfree.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.browsing.ui.feature/build.xml b/features/org.simantics.browsing.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..510e371
--- /dev/null
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.browsing.ui" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.common" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.model" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.graph.impl" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.graph" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.swt" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.browsing.ui.platform" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.scl.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.browsing.ui.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.browsing.ui for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.browsing.ui_1.1.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.browsing.ui_1.1.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.browsing.ui_1.1.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.browsing.ui_1.1.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.browsing.ui_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.browsing.ui:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.common:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.swt:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.graph:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.platform:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.graph.impl:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.model:0.0.0,1.0.0.201810081537,org.simantics.browsing.ui.ontology:0.0.0,1.1.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.browsing.ui_1.1.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.browsing.ui_1.1.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.browsing.ui_1.1.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.browsing.ui_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.browsing.ui:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.common:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.swt:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.graph:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.platform:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.graph.impl:0.0.0,1.1.0.201810081537,org.simantics.browsing.ui.model:0.0.0,1.0.0.201810081537,org.simantics.browsing.ui.ontology:0.0.0,1.1.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.browsing.ui.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.browsing.ui.source_1.1.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.browsing.ui of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.browsing.ui_1.1.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.browsing.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.browsing.ui.source_1.1.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.charts.feature/build.xml b/features/org.simantics.charts.feature/build.xml
new file mode 100644 (file)
index 0000000..d528f0a
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.charts" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.trend" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.charts" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.g2d.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.event.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.charts.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.charts for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.charts_1.0.3.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.charts_1.0.3.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.charts_1.0.3.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.charts_1.0.3.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.charts_1.0.3.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.charts_1.0.3.201810081537/feature.xml"  selfVersion="1.0.3.201810081537" featureIds="org.simantics.g2d:0.0.0,1.20.0.201810081537,org.simantics.event.feature:0.0.0,0.0.1.201810081537," pluginIds="org.simantics.trend:0.0.0,1.0.0.201810081537,org.simantics.charts:0.0.0,0.0.1.201810081537,com.fasterxml.jackson.core.jackson-core:0.0.0,2.8.8,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.charts_1.0.3.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.charts_1.0.3.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.charts_1.0.3.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.charts_1.0.3.201810081537/feature.xml"  selfVersion="1.0.3.201810081537" featureIds="org.simantics.g2d:0.0.0,1.20.0.201810081537,org.simantics.event.feature:0.0.0,0.0.1.201810081537," pluginIds="org.simantics.trend:0.0.0,1.0.0.201810081537,org.simantics.charts:0.0.0,0.0.1.201810081537,com.fasterxml.jackson.core.jackson-core:0.0.0,2.8.8,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.charts.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.charts_1.0.3.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.charts.source_1.0.3.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.charts_1.0.3.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.charts_1.0.3.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.charts of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.charts_1.0.3.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.charts_1.0.3.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.charts_1.0.3.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.charts_1.0.3.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.charts.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.charts.source_1.0.3.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.data.feature/build.xml b/features/org.simantics.data.feature/build.xml
new file mode 100644 (file)
index 0000000..c76ae46
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.data" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.databoard" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.data.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.data for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.data_1.1.4.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.data_1.1.4.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.data_1.1.4.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.data_1.1.4.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.data_1.1.4.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.data_1.1.4.201810081537/feature.xml"  selfVersion="1.1.4.201810081537" featureIds="" pluginIds="org.simantics.databoard:0.0.0,0.6.6.201810081537,org.apache.commons.collections:0.0.0,3.2.2,gnu.trove3:0.0.0,3.0.3,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.data_1.1.4.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.data_1.1.4.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.data_1.1.4.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.data_1.1.4.201810081537/feature.xml"  selfVersion="1.1.4.201810081537" featureIds="" pluginIds="org.simantics.databoard:0.0.0,0.6.6.201810081537,org.apache.commons.collections:0.0.0,3.2.2,gnu.trove3:0.0.0,3.0.3,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.data.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.data_1.1.4.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.data.source_1.1.4.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.data_1.1.4.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.data_1.1.4.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.data of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.data_1.1.4.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.data_1.1.4.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.data_1.1.4.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.data_1.1.4.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.data.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.data.source_1.1.4.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.db.client.feature/build.xml b/features/org.simantics.db.client.feature/build.xml
new file mode 100644 (file)
index 0000000..2e61112
--- /dev/null
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.db.client" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.compressions" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.backup" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.databoard" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulator.variable" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graph" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.common" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.datatypes" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graph.db" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.impl" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.fastlz" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.server" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.procore" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.acorn" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.apache.lucene4.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.db.client.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.db.client for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.db.client_1.2.5.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.db.client_1.2.5.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.db.client_1.2.5.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.db.client_1.2.5.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.db.client_1.2.5.201810081537/feature.xml"  selfVersion="1.2.5.201810081537" featureIds="org.apache.lucene4:0.0.0,4.9.0.201810081537," pluginIds="org.simantics.db:0.0.0,1.1.0.201810081537,org.simantics.db.common:0.0.0,1.1.0.201810081537,org.simantics.db.procore:0.0.0,1.2.1.201810081537,org.simantics.fastlz:0.0.0,1.2.1.201810081537,org.simantics.db.impl:0.0.0,1.1.0.201810081537,org.simantics.db.server:0.0.0,1.4.6.201810081537,org.simantics.acorn:0.0.0,1.1.2.201810081537,org.simantics.databoard:0.0.0,0.6.6.201810081537,org.simantics.graph:0.0.0,1.1.15.201810081537,org.simantics.graph.db:0.0.0,1.1.9.201810081537,gnu.trove3:0.0.0,3.0.3,org.simantics.datatypes:0.0.0,1.0.0.201810081537,org.simantics.simulator.variable:0.0.0,1.0.0.201810081537,org.simantics.backup:0.0.0,1.0.0.201810081537,org.simantics.compressions:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.db.client_1.2.5.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.db.client_1.2.5.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.db.client_1.2.5.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.db.client_1.2.5.201810081537/feature.xml"  selfVersion="1.2.5.201810081537" featureIds="org.apache.lucene4:0.0.0,4.9.0.201810081537," pluginIds="org.simantics.db:0.0.0,1.1.0.201810081537,org.simantics.db.common:0.0.0,1.1.0.201810081537,org.simantics.db.procore:0.0.0,1.2.1.201810081537,org.simantics.fastlz:0.0.0,1.2.1.201810081537,org.simantics.db.impl:0.0.0,1.1.0.201810081537,org.simantics.db.server:0.0.0,1.4.6.201810081537,org.simantics.acorn:0.0.0,1.1.2.201810081537,org.simantics.databoard:0.0.0,0.6.6.201810081537,org.simantics.graph:0.0.0,1.1.15.201810081537,org.simantics.graph.db:0.0.0,1.1.9.201810081537,gnu.trove3:0.0.0,3.0.3,org.simantics.datatypes:0.0.0,1.0.0.201810081537,org.simantics.simulator.variable:0.0.0,1.0.0.201810081537,org.simantics.backup:0.0.0,1.0.0.201810081537,org.simantics.compressions:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.db.client.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.db.client.source_1.2.5.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.db.client of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.db.client_1.2.5.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.db.client.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.db.client.source_1.2.5.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.db.services.feature/build.xml b/features/org.simantics.db.services.feature/build.xml
new file mode 100644 (file)
index 0000000..4c2e9c6
--- /dev/null
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.db.services" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.services" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.management" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.layer0" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.indexing" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.db" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.scl.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.db.services.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.db.services for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.db.services_1.1.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.db.services_1.1.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.db.services_1.1.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.db.services_1.1.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.db.services_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.eclipse.equinox.p2.user.ui:0.0.0,2.3.0.v20170524-1345,org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.db.services:0.0.0,1.1.0.201810081537,org.simantics.db.layer0:0.0.0,1.1.0.201810081537,org.simantics.db.management:0.0.0,1.1.0.201810081537,org.simantics.db.indexing:0.0.0,1.1.0.201810081537,org.simantics.scl.db:0.0.0,0.1.3.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.db.services_1.1.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.db.services_1.1.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.db.services_1.1.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.db.services_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.eclipse.equinox.p2.user.ui:0.0.0,2.3.0.v20170524-1345,org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.db.services:0.0.0,1.1.0.201810081537,org.simantics.db.layer0:0.0.0,1.1.0.201810081537,org.simantics.db.management:0.0.0,1.1.0.201810081537,org.simantics.db.indexing:0.0.0,1.1.0.201810081537,org.simantics.scl.db:0.0.0,0.1.3.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.db.services.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.db.services.source_1.1.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.db.services of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.db.services_1.1.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.db.services.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.db.services.source_1.1.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.desktop.feature/build.xml b/features/org.simantics.desktop.feature/build.xml
new file mode 100644 (file)
index 0000000..833c629
--- /dev/null
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.desktop" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.desktop.ui.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.desktop.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../../../.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/features/org.eclipse.equinox.executable_3.7.0.v20170531-1133/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.help.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.issues.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.modeling.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.issues.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.workbench.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.eclipsec.launcher.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.desktop.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.desktop for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.desktop_1.0.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.desktop_1.0.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.desktop_1.0.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.desktop_1.0.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.desktop_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="org.eclipse.equinox.executable:0.0.0,3.7.0.v20170531-1133,org.simantics.help:0.0.0,1.1.1.201810081537,org.simantics.issues.feature:0.0.0,1.1.0.201810081537,org.simantics.modeling:0.0.0,1.5.12.201810081537,org.simantics.issues.ui.feature:0.0.0,1.1.1.201810081537,org.simantics.workbench:0.0.0,1.26.0.201810081537,org.simantics.eclipsec.launcher:0.0.0,3.6.200.v20150602-1417,org.eclipse.equinox.p2.discovery.feature:0.0.0,1.1.0.v20170418-0708," pluginIds="org.simantics.desktop.ui:0.0.0,1.0.0.201810081537,org.simantics.desktop.ui.ontology:0.0.0,1.0.0.201810081537,org.eclipse.ui.intro.quicklinks:0.0.0,1.0.100.v20170515-0756,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.desktop_1.0.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.desktop_1.0.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.desktop_1.0.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.desktop_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="org.eclipse.equinox.executable:0.0.0,3.7.0.v20170531-1133,org.simantics.help:0.0.0,1.1.1.201810081537,org.simantics.issues.feature:0.0.0,1.1.0.201810081537,org.simantics.modeling:0.0.0,1.5.12.201810081537,org.simantics.issues.ui.feature:0.0.0,1.1.1.201810081537,org.simantics.workbench:0.0.0,1.26.0.201810081537,org.simantics.eclipsec.launcher:0.0.0,3.6.200.v20150602-1417,org.eclipse.equinox.p2.discovery.feature:0.0.0,1.1.0.v20170418-0708," pluginIds="org.simantics.desktop.ui:0.0.0,1.0.0.201810081537,org.simantics.desktop.ui.ontology:0.0.0,1.0.0.201810081537,org.eclipse.ui.intro.quicklinks:0.0.0,1.0.100.v20170515-0756,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.desktop.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.desktop.source_1.0.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.desktop of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.desktop_1.0.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.desktop.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.desktop.source_1.0.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.document.base.feature/build.xml b/features/org.simantics.document.base.feature/build.xml
new file mode 100644 (file)
index 0000000..804bf5b
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.document.base" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.server.io" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.base.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.server" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.document.base.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.document.base for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.document.base_1.0.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.document.base_1.0.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.document.base_1.0.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.document.base_1.0.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.document.base_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="" pluginIds="org.simantics.document.server:0.0.0,1.0.0.201810081537,org.simantics.document.base.ontology:0.0.0,1.2.0.201810081537,org.simantics.document.server.io:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.document.base_1.0.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.document.base_1.0.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.document.base_1.0.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.document.base_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="" pluginIds="org.simantics.document.server:0.0.0,1.0.0.201810081537,org.simantics.document.base.ontology:0.0.0,1.2.0.201810081537,org.simantics.document.server.io:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.document.base.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.document.base.source_1.0.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.document.base of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.document.base_1.0.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.document.base.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.document.base.source_1.0.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.document.swt.feature/build.xml b/features/org.simantics.document.swt.feature/build.xml
new file mode 100644 (file)
index 0000000..7efb37c
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.document.swt" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.swt.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.swt.core" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.document.swt.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.document.swt for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.document.swt_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.document.swt_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.document.swt_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.document.swt_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.document.swt_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.document.swt.ontology:0.0.0,1.0.0.201810081537,org.simantics.document.swt.core:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.document.swt_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.document.swt_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.document.swt_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.document.swt_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.document.swt.ontology:0.0.0,1.0.0.201810081537,org.simantics.document.swt.core:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.document.swt.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.document.swt.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.document.swt of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.document.swt_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.document.swt.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.document.swt.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.event.feature/build.xml b/features/org.simantics.event.feature/build.xml
new file mode 100644 (file)
index 0000000..5d602cc
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.event.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.event.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.event" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.event.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.event.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.event.feature_0.0.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.event.feature_0.0.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.event.feature_0.0.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.event.feature_0.0.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.event.feature_0.0.1.201810081537/feature.xml"  selfVersion="0.0.1.201810081537" featureIds="" pluginIds="org.simantics.event:0.0.0,0.0.1.201810081537,org.simantics.event.ontology:0.0.0,1.2.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.event.feature_0.0.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.event.feature_0.0.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.event.feature_0.0.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.event.feature_0.0.1.201810081537/feature.xml"  selfVersion="0.0.1.201810081537" featureIds="" pluginIds="org.simantics.event:0.0.0,0.0.1.201810081537,org.simantics.event.ontology:0.0.0,1.2.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.event.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.event.feature.source_0.0.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.event.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.event.feature_0.0.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.event.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.event.feature.source_0.0.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.export.feature/build.xml b/features/org.simantics.export.feature/build.xml
new file mode 100644 (file)
index 0000000..b399921
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.export" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.export.core" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.export.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.export.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.export for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.export_0.1.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.export_0.1.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.export_0.1.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.export_0.1.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.export_0.1.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.export_0.1.0.201810081537/feature.xml"  selfVersion="0.1.0.201810081537" featureIds="" pluginIds="org.simantics.export.core:0.0.0,1.0.0.201810081537,org.simantics.export.ui:0.0.0,0.1.0.201810081537,org.eclipse.nebula.widgets.grid:0.0.0,1.0.0.201706221838,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.export_0.1.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.export_0.1.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.export_0.1.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.export_0.1.0.201810081537/feature.xml"  selfVersion="0.1.0.201810081537" featureIds="" pluginIds="org.simantics.export.core:0.0.0,1.0.0.201810081537,org.simantics.export.ui:0.0.0,0.1.0.201810081537,org.eclipse.nebula.widgets.grid:0.0.0,1.0.0.201706221838,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.export.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.export_0.1.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.export.source_0.1.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.export_0.1.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.export_0.1.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.export of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.export_0.1.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.export_0.1.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.export_0.1.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.export_0.1.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.export.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.export.source_0.1.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.g2d.feature/build.xml b/features/org.simantics.g2d.feature/build.xml
new file mode 100644 (file)
index 0000000..a606275
--- /dev/null
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.g2d" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/com.famfamfam.silk" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.diagram.connection" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.basicexpression" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scenegraph" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scenegraph.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.image.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.g2d.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.diagram.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.modeling.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.charts.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scenegraph.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.annotation.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.modeling.template2d.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scenegraph.profile" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scenegraph.loader" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.g2d" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scenegraph.swing" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.diagram" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.diagram.svg" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.diagram.profile" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.structural.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.views.swt.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.jfree.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.g2d.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.g2d for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.g2d_1.20.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.g2d_1.20.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.g2d_1.20.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.g2d_1.20.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.g2d_1.20.0.201810081537/feature.xml"  selfVersion="1.20.0.201810081537" featureIds="org.simantics.structural:0.0.0,1.1.5.201810081537,org.simantics.views.swt.feature:0.0.0,1.0.1.201810081537,org.jfree:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.scenegraph:0.0.0,1.1.1.201810081537,org.simantics.scenegraph.ui:0.0.0,1.1.1.201810081537,org.simantics.g2d:0.0.0,1.1.1.201810081537,org.simantics.diagram.ontology:0.0.0,2.2.0.201810081537,org.eclipse.nebula.widgets.pgroup:0.0.0,1.0.0.201706221838,org.simantics.diagram:0.0.0,1.1.1.201810081537,org.simantics.diagram.profile:0.0.0,1.0.0.201810081537,org.simantics.diagram.svg:0.0.0,1.0.0.201810081537,org.simantics.basicexpression:0.0.0,1.1.0.201810081537,org.objectweb.asm:0.0.0,5.2.0.v20170126-0011,com.famfamfam.silk:0.0.0,1.3.0,org.simantics.scenegraph.swing:0.0.0,1.0.0.201810081537,org.simantics.diagram.connection:0.0.0,1.0.0.201810081537,org.simantics.scenegraph.profile:0.0.0,1.0.0.201810081537,org.simantics.annotation.ontology:0.0.0,1.0.0.201810081537,org.simantics.modeling.ontology:0.0.0,1.2.0.201810081537,org.simantics.modeling.template2d.ontology:0.0.0,1.0.0.201810081537,org.simantics.charts.ontology:0.0.0,1.2.0.201810081537,org.simantics.g2d.ontology:0.0.0,1.1.0.201810081537,org.simantics.image.ontology:0.0.0,1.1.0.201810081537,org.simantics.scenegraph.ontology:0.0.0,1.1.0.201810081537,org.simantics.scenegraph.loader:0.0.0,1.0.0.201810081537,org.apache.commons.math3:0.0.0,3.6.1,org.apache.batik:0.0.0,1.8.0.201611220734,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.g2d_1.20.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.g2d_1.20.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.g2d_1.20.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.g2d_1.20.0.201810081537/feature.xml"  selfVersion="1.20.0.201810081537" featureIds="org.simantics.structural:0.0.0,1.1.5.201810081537,org.simantics.views.swt.feature:0.0.0,1.0.1.201810081537,org.jfree:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.scenegraph:0.0.0,1.1.1.201810081537,org.simantics.scenegraph.ui:0.0.0,1.1.1.201810081537,org.simantics.g2d:0.0.0,1.1.1.201810081537,org.simantics.diagram.ontology:0.0.0,2.2.0.201810081537,org.eclipse.nebula.widgets.pgroup:0.0.0,1.0.0.201706221838,org.simantics.diagram:0.0.0,1.1.1.201810081537,org.simantics.diagram.profile:0.0.0,1.0.0.201810081537,org.simantics.diagram.svg:0.0.0,1.0.0.201810081537,org.simantics.basicexpression:0.0.0,1.1.0.201810081537,org.objectweb.asm:0.0.0,5.2.0.v20170126-0011,com.famfamfam.silk:0.0.0,1.3.0,org.simantics.scenegraph.swing:0.0.0,1.0.0.201810081537,org.simantics.diagram.connection:0.0.0,1.0.0.201810081537,org.simantics.scenegraph.profile:0.0.0,1.0.0.201810081537,org.simantics.annotation.ontology:0.0.0,1.0.0.201810081537,org.simantics.modeling.ontology:0.0.0,1.2.0.201810081537,org.simantics.modeling.template2d.ontology:0.0.0,1.0.0.201810081537,org.simantics.charts.ontology:0.0.0,1.2.0.201810081537,org.simantics.g2d.ontology:0.0.0,1.1.0.201810081537,org.simantics.image.ontology:0.0.0,1.1.0.201810081537,org.simantics.scenegraph.ontology:0.0.0,1.1.0.201810081537,org.simantics.scenegraph.loader:0.0.0,1.0.0.201810081537,org.apache.commons.math3:0.0.0,3.6.1,org.apache.batik:0.0.0,1.8.0.201611220734,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.g2d.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.g2d.source_1.20.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.g2d of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.g2d_1.20.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.g2d.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.g2d.source_1.20.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.help.feature/build.xml b/features/org.simantics.help.feature/build.xml
new file mode 100644 (file)
index 0000000..bfbc3e9
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.help" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/winterwell.markdown" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.help.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.help for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.help_1.1.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.help_1.1.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.help_1.1.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.help_1.1.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.help_1.1.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.help_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="" pluginIds="org.eclipse.help:0.0.0,3.8.0.v20160823-1530,org.eclipse.help.base:0.0.0,4.2.100.v20170612-0950,org.eclipse.help.ui:0.0.0,4.1.0.v20170311-0931,org.eclipse.help.webapp:0.0.0,3.9.0.v20170113-0643,org.eclipse.equinox.http.registry:0.0.0,1.1.400.v20150715-1528,javax.servlet:0.0.0,3.1.0.v201410161800,javax.servlet.jsp:0.0.0,2.2.0.v201112011158,org.eclipse.equinox.jsp.jasper:0.0.0,1.0.500.v20150119-1358,org.eclipse.equinox.jsp.jasper.registry:0.0.0,1.0.300.v20130327-1442,org.eclipse.equinox.http.jetty:0.0.0,3.4.0.v20170503-2025,org.eclipse.equinox.http.servlet:0.0.0,1.4.0.v20170524-1452,org.eclipse.ui.cheatsheets:0.0.0,3.5.100.v20170515-0748,javax.el:0.0.0,2.2.0.v201303151357,com.sun.el:0.0.0,2.2.0.v201303151357,org.apache.commons.logging:0.0.0,1.2.0,org.apache.jasper.glassfish:0.0.0,2.2.2.v201501141630,org.eclipse.jetty.continuation:0.0.0,9.4.5.v20170502,org.eclipse.jetty.http:0.0.0,9.4.5.v20170502,org.eclipse.jetty.io:0.0.0,9.4.5.v20170502,org.eclipse.jetty.security:0.0.0,9.4.5.v20170502,org.eclipse.jetty.server:0.0.0,9.4.5.v20170502,org.eclipse.jetty.servlet:0.0.0,9.4.5.v20170502,org.eclipse.jetty.util:0.0.0,9.4.5.v20170502,winterwell.markdown:0.0.0,1.2.0.201810081537,org.apache.lucene.analyzers-common:0.0.0,6.1.0.v20161115-1612,org.apache.lucene.analyzers-smartcn:0.0.0,6.1.0.v20161115-1612,org.apache.lucene.misc:0.0.0,6.1.0.v20161115-1612,org.apache.lucene.core:0.0.0,6.1.0.v20161115-1612,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.help_1.1.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.help_1.1.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.help_1.1.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.help_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="" pluginIds="org.eclipse.help:0.0.0,3.8.0.v20160823-1530,org.eclipse.help.base:0.0.0,4.2.100.v20170612-0950,org.eclipse.help.ui:0.0.0,4.1.0.v20170311-0931,org.eclipse.help.webapp:0.0.0,3.9.0.v20170113-0643,org.eclipse.equinox.http.registry:0.0.0,1.1.400.v20150715-1528,javax.servlet:0.0.0,3.1.0.v201410161800,javax.servlet.jsp:0.0.0,2.2.0.v201112011158,org.eclipse.equinox.jsp.jasper:0.0.0,1.0.500.v20150119-1358,org.eclipse.equinox.jsp.jasper.registry:0.0.0,1.0.300.v20130327-1442,org.eclipse.equinox.http.jetty:0.0.0,3.4.0.v20170503-2025,org.eclipse.equinox.http.servlet:0.0.0,1.4.0.v20170524-1452,org.eclipse.ui.cheatsheets:0.0.0,3.5.100.v20170515-0748,javax.el:0.0.0,2.2.0.v201303151357,com.sun.el:0.0.0,2.2.0.v201303151357,org.apache.commons.logging:0.0.0,1.2.0,org.apache.jasper.glassfish:0.0.0,2.2.2.v201501141630,org.eclipse.jetty.continuation:0.0.0,9.4.5.v20170502,org.eclipse.jetty.http:0.0.0,9.4.5.v20170502,org.eclipse.jetty.io:0.0.0,9.4.5.v20170502,org.eclipse.jetty.security:0.0.0,9.4.5.v20170502,org.eclipse.jetty.server:0.0.0,9.4.5.v20170502,org.eclipse.jetty.servlet:0.0.0,9.4.5.v20170502,org.eclipse.jetty.util:0.0.0,9.4.5.v20170502,winterwell.markdown:0.0.0,1.2.0.201810081537,org.apache.lucene.analyzers-common:0.0.0,6.1.0.v20161115-1612,org.apache.lucene.analyzers-smartcn:0.0.0,6.1.0.v20161115-1612,org.apache.lucene.misc:0.0.0,6.1.0.v20161115-1612,org.apache.lucene.core:0.0.0,6.1.0.v20161115-1612,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.help.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.help_1.1.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.help.source_1.1.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.help_1.1.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.help_1.1.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.help of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.help_1.1.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.help_1.1.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.help_1.1.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.help_1.1.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.help.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.help.source_1.1.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.image.feature/build.xml b/features/org.simantics.image.feature/build.xml
new file mode 100644 (file)
index 0000000..ec4675c
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.image" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.image.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.image.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.image for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.image_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.image_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.image_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.image_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.image_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.image_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.image.ui:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.image_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.image_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.image_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.image_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.image.ui:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.image.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.image_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.image.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.image_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.image_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.image of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.image_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.image_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.image_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.image_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.image.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.image.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.issues.feature/build.xml b/features/org.simantics.issues.feature/build.xml
new file mode 100644 (file)
index 0000000..9a9b3dc
--- /dev/null
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.issues.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.issues" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.issues.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.issues.ui.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.issues.common" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.issues.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.issues.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.issues.feature_1.1.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.issues.feature_1.1.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.issues.feature_1.1.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.issues.feature_1.1.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.issues.feature_1.1.0.201810081537/feature.xml"  selfVersion="1.1.0.201810081537" featureIds="" pluginIds="org.simantics.issues:0.0.0,1.1.0.201810081537,org.simantics.issues.ontology:0.0.0,1.2.0.201810081537,org.simantics.issues.common:0.0.0,1.1.0.201810081537,org.simantics.issues.ui.ontology:0.0.0,1.1.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.issues.feature_1.1.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.issues.feature_1.1.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.issues.feature_1.1.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.issues.feature_1.1.0.201810081537/feature.xml"  selfVersion="1.1.0.201810081537" featureIds="" pluginIds="org.simantics.issues:0.0.0,1.1.0.201810081537,org.simantics.issues.ontology:0.0.0,1.2.0.201810081537,org.simantics.issues.common:0.0.0,1.1.0.201810081537,org.simantics.issues.ui.ontology:0.0.0,1.1.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.issues.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.issues.feature.source_1.1.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.issues.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.issues.feature_1.1.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.issues.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.issues.feature.source_1.1.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.issues.ui.feature/build.xml b/features/org.simantics.issues.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..7039bab
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.issues.ui.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.issues.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.issues.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.issues.ui.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.issues.ui.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.issues.ui.feature_1.1.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.issues.ui.feature_1.1.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.issues.ui.feature_1.1.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.issues.ui.feature_1.1.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.issues.ui.feature_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.simantics.issues.feature:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.issues.ui:0.0.0,1.1.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.issues.ui.feature_1.1.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.issues.ui.feature_1.1.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.issues.ui.feature_1.1.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.issues.ui.feature_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.simantics.issues.feature:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.issues.ui:0.0.0,1.1.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.issues.ui.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.issues.ui.feature.source_1.1.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.issues.ui.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.issues.ui.feature_1.1.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.issues.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.issues.ui.feature.source_1.1.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.layer0.feature/build.xml b/features/org.simantics.layer0.feature/build.xml
new file mode 100644 (file)
index 0000000..9e43767
--- /dev/null
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.layer0" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.layer0" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.dublincore.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.layer0x.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.user.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.color.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulation.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.image2.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.action.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.viewpoint.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.project.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.softwareconfiguration.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.datatypes.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.layer0.utils" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.db.client.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.layer0.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.layer0 for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.layer0_1.2.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.layer0_1.2.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.layer0_1.2.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.layer0_1.2.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.layer0_1.2.0.201810081537/feature.xml"  selfVersion="1.2.0.201810081537" featureIds="org.simantics.db.client:0.0.0,1.2.5.201810081537," pluginIds="org.simantics.layer0.utils:0.0.0,1.1.0.201810081537,org.simantics.layer0:0.0.0,1.1.0.201810081537,org.simantics.datatypes.ontology:0.0.0,1.1.0.201810081537,org.simantics.action.ontology:0.0.0,1.1.0.201810081537,org.simantics.color.ontology:0.0.0,1.1.0.201810081537,org.simantics.document.ontology:0.0.0,1.2.0.201810081537,org.simantics.dublincore.ontology:0.0.0,1.1.0.201810081537,org.simantics.layer0x.ontology:0.0.0,1.1.0.201810081537,org.simantics.project.ontology:0.0.0,1.2.0.201810081537,org.simantics.simulation.ontology:0.0.0,1.1.0.201810081537,org.simantics.softwareconfiguration.ontology:0.0.0,1.1.0.201810081537,org.simantics.user.ontology:0.0.0,1.1.0.201810081537,org.simantics.viewpoint.ontology:0.0.0,1.2.0.201810081537,org.simantics.image2.ontology:0.0.0,1.2.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.layer0_1.2.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.layer0_1.2.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.layer0_1.2.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.layer0_1.2.0.201810081537/feature.xml"  selfVersion="1.2.0.201810081537" featureIds="org.simantics.db.client:0.0.0,1.2.5.201810081537," pluginIds="org.simantics.layer0.utils:0.0.0,1.1.0.201810081537,org.simantics.layer0:0.0.0,1.1.0.201810081537,org.simantics.datatypes.ontology:0.0.0,1.1.0.201810081537,org.simantics.action.ontology:0.0.0,1.1.0.201810081537,org.simantics.color.ontology:0.0.0,1.1.0.201810081537,org.simantics.document.ontology:0.0.0,1.2.0.201810081537,org.simantics.dublincore.ontology:0.0.0,1.1.0.201810081537,org.simantics.layer0x.ontology:0.0.0,1.1.0.201810081537,org.simantics.project.ontology:0.0.0,1.2.0.201810081537,org.simantics.simulation.ontology:0.0.0,1.1.0.201810081537,org.simantics.softwareconfiguration.ontology:0.0.0,1.1.0.201810081537,org.simantics.user.ontology:0.0.0,1.1.0.201810081537,org.simantics.viewpoint.ontology:0.0.0,1.2.0.201810081537,org.simantics.image2.ontology:0.0.0,1.2.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.layer0.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.layer0.source_1.2.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.layer0 of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.layer0_1.2.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.layer0.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.layer0.source_1.2.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.migration.feature/build.xml b/features/org.simantics.migration.feature/build.xml
new file mode 100644 (file)
index 0000000..f100404
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.migration" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.migration.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.migration.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.migration for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.migration_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.migration_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.migration_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.migration_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.migration_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.migration_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.migration.ui:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.migration_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.migration_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.migration_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.migration_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.migration.ui:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.migration.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.migration_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.migration.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.migration_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.migration_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.migration of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.migration_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.migration_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.migration_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.migration_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.migration.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.migration.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.modeling.feature/build.xml b/features/org.simantics.modeling.feature/build.xml
new file mode 100644 (file)
index 0000000..1c92933
--- /dev/null
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.modeling" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.modeling" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.structural.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.modeling.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.annotation.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.modeling.template2d.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../com.lowagie.text.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.structural.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.g2d.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.browsing.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.spreadsheet.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.spreadsheet.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.simulation.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.migration.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.charts.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.selectionview.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.scl.ui.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.modeling.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.modeling for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.modeling_1.5.12.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.modeling_1.5.12.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.modeling_1.5.12.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.modeling_1.5.12.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.modeling_1.5.12.201810081537/feature.xml"  selfVersion="1.5.12.201810081537" featureIds="com.lowagie.text:0.0.0,2.1.7.201810081537,org.simantics.structural:0.0.0,1.1.5.201810081537,org.simantics.g2d:0.0.0,1.20.0.201810081537,org.simantics.browsing.ui:0.0.0,1.1.1.201810081537,org.simantics.spreadsheet:0.0.0,1.5.0.201810081537,org.simantics.spreadsheet.ui:0.0.0,1.1.1.201810081537,org.simantics.simulation:0.0.0,1.1.3.201810081537,org.simantics.migration:0.0.0,1.0.0.201810081537,org.simantics.charts:0.0.0,1.0.3.201810081537,org.simantics.selectionview:0.0.0,1.5.1.201810081537,org.simantics.scl.ui.feature:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.modeling.ui:0.0.0,1.1.1.201810081537,org.simantics.modeling:0.0.0,1.1.1.201810081537,org.simantics.structural.ui:0.0.0,1.1.1.201810081537,org.simantics.modeling.template2d.ui:0.0.0,1.0.0.201810081537,org.simantics.annotation.ui:0.0.0,1.0.0.201810081537,org.eclipse.nebula.widgets.nattable.core:0.0.0,1.5.0.201703192131,org.eclipse.nebula.widgets.cdatetime:0.0.0,1.0.0.201706221838,org.apache.commons.lang:0.0.0,2.6.0,org.eclipse.nebula.cwt:0.0.0,1.0.0.201706221838,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.modeling_1.5.12.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.modeling_1.5.12.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.modeling_1.5.12.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.modeling_1.5.12.201810081537/feature.xml"  selfVersion="1.5.12.201810081537" featureIds="com.lowagie.text:0.0.0,2.1.7.201810081537,org.simantics.structural:0.0.0,1.1.5.201810081537,org.simantics.g2d:0.0.0,1.20.0.201810081537,org.simantics.browsing.ui:0.0.0,1.1.1.201810081537,org.simantics.spreadsheet:0.0.0,1.5.0.201810081537,org.simantics.spreadsheet.ui:0.0.0,1.1.1.201810081537,org.simantics.simulation:0.0.0,1.1.3.201810081537,org.simantics.migration:0.0.0,1.0.0.201810081537,org.simantics.charts:0.0.0,1.0.3.201810081537,org.simantics.selectionview:0.0.0,1.5.1.201810081537,org.simantics.scl.ui.feature:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.modeling.ui:0.0.0,1.1.1.201810081537,org.simantics.modeling:0.0.0,1.1.1.201810081537,org.simantics.structural.ui:0.0.0,1.1.1.201810081537,org.simantics.modeling.template2d.ui:0.0.0,1.0.0.201810081537,org.simantics.annotation.ui:0.0.0,1.0.0.201810081537,org.eclipse.nebula.widgets.nattable.core:0.0.0,1.5.0.201703192131,org.eclipse.nebula.widgets.cdatetime:0.0.0,1.0.0.201706221838,org.apache.commons.lang:0.0.0,2.6.0,org.eclipse.nebula.cwt:0.0.0,1.0.0.201706221838,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.modeling.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.modeling.source_1.5.12.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.modeling of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.modeling_1.5.12.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.modeling.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.modeling.source_1.5.12.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.modeling.ui.workbench.feature/build.xml b/features/org.simantics.modeling.ui.workbench.feature/build.xml
new file mode 100644 (file)
index 0000000..08ba29a
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.modeling.ui.workbench.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.modeling.ui.workbench" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.modeling.ui.workbench.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.modeling.ui.workbench.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="" pluginIds="org.simantics.modeling.ui.workbench:0.0.0,1.26.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="" pluginIds="org.simantics.modeling.ui.workbench:0.0.0,1.26.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.modeling.ui.workbench.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.modeling.ui.workbench.feature.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.modeling.ui.workbench.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.modeling.ui.workbench.feature_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.modeling.ui.workbench.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.modeling.ui.workbench.feature.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.platform.feature/build.xml b/features/org.simantics.platform.feature/build.xml
new file mode 100644 (file)
index 0000000..101090c
--- /dev/null
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.platform" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.common" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.message" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graphfile.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graph.compiler" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.project" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.fileimport" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.spreadsheet.fileimport" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.rcp.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.utils.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.data.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.db.client.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.layer0.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.db.services.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.platform.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.platform for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.platform_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.platform_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.platform_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.platform_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.platform_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.platform_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.rcp:0.0.0,1.25.1.201810081537,org.simantics.utils:0.0.0,1.26.0.201810081537,org.simantics.data:0.0.0,1.1.4.201810081537,org.simantics.db.client:0.0.0,1.2.5.201810081537,org.simantics.layer0:0.0.0,1.2.0.201810081537,org.simantics.db.services:0.0.0,1.1.1.201810081537," pluginIds="org.simantics.message:0.0.0,1.1.0.201810081537,org.simantics:0.0.0,1.0.0.201810081537,org.simantics.common:0.0.0,1.0.0.201810081537,org.simantics.document:0.0.0,1.0.0.201810081537,org.simantics.document.ontology:0.0.0,1.2.0.201810081537,org.simantics.project:0.0.0,1.0.1.201810081537,org.simantics.graph.compiler:0.0.0,1.1.18.201810081537,org.simantics.graphfile.ontology:0.0.0,0.1.0.201810081537,org.ini4j:0.0.0,0.5.4,org.simantics.fileimport:0.0.0,1.0.0.201810081537,org.simantics.spreadsheet.fileimport:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.platform_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.platform_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.platform_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.platform_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.rcp:0.0.0,1.25.1.201810081537,org.simantics.utils:0.0.0,1.26.0.201810081537,org.simantics.data:0.0.0,1.1.4.201810081537,org.simantics.db.client:0.0.0,1.2.5.201810081537,org.simantics.layer0:0.0.0,1.2.0.201810081537,org.simantics.db.services:0.0.0,1.1.1.201810081537," pluginIds="org.simantics.message:0.0.0,1.1.0.201810081537,org.simantics:0.0.0,1.0.0.201810081537,org.simantics.common:0.0.0,1.0.0.201810081537,org.simantics.document:0.0.0,1.0.0.201810081537,org.simantics.document.ontology:0.0.0,1.2.0.201810081537,org.simantics.project:0.0.0,1.0.1.201810081537,org.simantics.graph.compiler:0.0.0,1.1.18.201810081537,org.simantics.graphfile.ontology:0.0.0,0.1.0.201810081537,org.ini4j:0.0.0,0.5.4,org.simantics.fileimport:0.0.0,1.0.0.201810081537,org.simantics.spreadsheet.fileimport:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.platform.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.platform_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.platform.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.platform_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.platform_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.platform of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.platform_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.platform_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.platform_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.platform_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.platform.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.platform.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.platform.ui.feature/build.xml b/features/org.simantics.platform.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..715c6e8
--- /dev/null
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.platform.ui" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.silk.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graphfile.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.procore.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.ui.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.platform.ui.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graphfile" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.document.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.platform.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.utils.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.ui.workbench.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.simulation.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.g2d.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.browsing.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.image.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.wiki.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.export.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.document.base.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.document.swt.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.platform.ui.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.platform.ui for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.platform.ui_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.platform.ui_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.platform.ui_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.platform.ui_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.platform.ui_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.platform:0.0.0,1.26.0.201810081537,org.simantics.utils.ui.feature:0.0.0,1.26.0.201810081537,org.simantics.ui.workbench:0.0.0,1.26.0.201810081537,org.simantics.simulation:0.0.0,1.1.3.201810081537,org.simantics.g2d:0.0.0,1.20.0.201810081537,org.simantics.browsing.ui:0.0.0,1.1.1.201810081537,org.simantics.image:0.0.0,1.0.0.201810081537,org.simantics.wiki.ui.feature:0.0.0,1.26.0.201810081537,org.simantics.export:0.0.0,0.1.0.201810081537,org.simantics.document.base:0.0.0,1.0.1.201810081537,org.simantics.document.swt:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.document.ui:0.0.0,1.0.0.201810081537,org.simantics.document.ui.ontology:0.0.0,1.1.0.201810081537,org.simantics.silk.ontology:0.0.0,1.1.0.201810081537,org.simantics.graphfile:0.0.0,0.1.0.201810081537,org.simantics.graphfile.ontology:0.0.0,0.1.0.201810081537,org.simantics.platform.ui.ontology:0.0.0,1.0.0.201810081537,org.simantics.db.procore.ui:0.0.0,1.1.6.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.platform.ui_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.platform.ui_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.platform.ui_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.platform.ui_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.platform:0.0.0,1.26.0.201810081537,org.simantics.utils.ui.feature:0.0.0,1.26.0.201810081537,org.simantics.ui.workbench:0.0.0,1.26.0.201810081537,org.simantics.simulation:0.0.0,1.1.3.201810081537,org.simantics.g2d:0.0.0,1.20.0.201810081537,org.simantics.browsing.ui:0.0.0,1.1.1.201810081537,org.simantics.image:0.0.0,1.0.0.201810081537,org.simantics.wiki.ui.feature:0.0.0,1.26.0.201810081537,org.simantics.export:0.0.0,0.1.0.201810081537,org.simantics.document.base:0.0.0,1.0.1.201810081537,org.simantics.document.swt:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.document.ui:0.0.0,1.0.0.201810081537,org.simantics.document.ui.ontology:0.0.0,1.1.0.201810081537,org.simantics.silk.ontology:0.0.0,1.1.0.201810081537,org.simantics.graphfile:0.0.0,0.1.0.201810081537,org.simantics.graphfile.ontology:0.0.0,0.1.0.201810081537,org.simantics.platform.ui.ontology:0.0.0,1.0.0.201810081537,org.simantics.db.procore.ui:0.0.0,1.1.6.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.platform.ui.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.platform.ui.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.platform.ui of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.platform.ui_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.platform.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.platform.ui.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.rcp.feature/build.xml b/features/org.simantics.rcp.feature/build.xml
new file mode 100644 (file)
index 0000000..6c1ce5e
--- /dev/null
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.rcp" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.logback.configuration" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.rcp.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.rcp for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.rcp_1.25.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.rcp_1.25.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.rcp_1.25.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.rcp_1.25.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.rcp_1.25.1.201810081537/feature.xml"  selfVersion="1.25.1.201810081537" featureIds="org.eclipse.rcp:0.0.0,4.7.0.v20170612-1255,org.eclipse.ecf.core.feature:0.0.0,1.4.0.v20170516-2248,org.eclipse.ecf.core.ssl.feature:0.0.0,1.1.0.v20170110-1317,org.eclipse.ecf.filetransfer.feature:0.0.0,3.13.7.v20170516-2248,org.eclipse.ecf.filetransfer.ssl.feature:0.0.0,1.1.0.v20170110-1317,org.eclipse.ecf.filetransfer.httpclient4.feature:0.0.0,3.13.7.v20170516-2248,org.eclipse.ecf.filetransfer.httpclient4.ssl.feature:0.0.0,1.1.0.v20170110-1317,org.eclipse.emf.common:0.0.0,2.13.0.v20170609-0707,org.eclipse.emf.ecore:0.0.0,2.13.0.v20170609-0707," pluginIds="org.eclipse.core.filesystem:0.0.0,1.7.0.v20170406-1337,org.eclipse.core.filesystem.win32.x86_64:0.0.0,1.4.0.v20140124-1940,org.eclipse.core.net:0.0.0,1.3.100.v20170516-0820,org.eclipse.core.net.win32.x86_64:0.0.0,1.1.0.v20160323-1650,org.eclipse.core.resources:0.0.0,3.12.0.v20170417-1558,org.eclipse.core.resources.win32.x86_64:0.0.0,3.5.100.v20170516-0925,org.eclipse.core.variables:0.0.0,3.4.0.v20170113-2056,org.eclipse.ant.core:0.0.0,3.5.0.v20170509-2149,javax.xml:0.0.0,1.3.4.v201005080400,org.eclipse.osgi.compatibility.state:0.0.0,1.1.0.v20170516-1513,org.eclipse.osgi.util:0.0.0,3.4.0.v20170111-1608,org.eclipse.equinox.security:0.0.0,1.2.300.v20170505-1235,org.eclipse.equinox.security.win32.x86_64:0.0.0,1.0.100.v20130327-1442,org.junit:0.0.0,4.12.0.v201504281640,org.eclipse.equinox.security.ui:0.0.0,1.1.400.v20170505-1235,org.hamcrest.core:0.0.0,1.3.0.v201303031735,org.eclipse.equinox.p2.core:0.0.0,2.4.100.v20160419-0834,org.eclipse.equinox.p2.engine:0.0.0,2.5.0.v20170319-2002,org.eclipse.equinox.p2.metadata:0.0.0,2.3.200.v20170511-1106,org.eclipse.equinox.p2.metadata.repository:0.0.0,1.2.400.v20170511-1106,org.eclipse.equinox.concurrent:0.0.0,1.1.0.v20130327-1442,org.eclipse.equinox.p2.director:0.0.0,2.3.300.v20160504-1450,org.sat4j.core:0.0.0,2.3.5.v201308161310,org.sat4j.pb:0.0.0,2.3.5.v201404071733,org.eclipse.equinox.p2.repository:0.0.0,2.3.300.v20170511-1216,org.eclipse.equinox.p2.artifact.repository:0.0.0,1.1.600.v20170511-1106,org.eclipse.equinox.p2.jarprocessor:0.0.0,1.0.500.v20160504-1450,org.eclipse.equinox.p2.touchpoint.eclipse:0.0.0,2.1.500.v20170516-0526,org.eclipse.equinox.p2.touchpoint.natives:0.0.0,1.2.200.v20170511-1216,org.eclipse.equinox.p2.publisher:0.0.0,1.4.200.v20170511-1216,org.eclipse.equinox.p2.repository.tools:0.0.0,2.1.400.v20170511-1216,org.eclipse.equinox.p2.ui:0.0.0,2.5.0.v20170505-1031,org.eclipse.equinox.p2.operations:0.0.0,2.4.300.v20170511-1106,org.eclipse.equinox.p2.garbagecollector:0.0.0,1.0.300.v20160504-1450,org.eclipse.equinox.simpleconfigurator:0.0.0,1.2.0.v20170110-1705,org.eclipse.equinox.simpleconfigurator.manipulator:0.0.0,2.0.300.v20170515-0721,org.eclipse.equinox.util:0.0.0,1.0.500.v20130404-1337,org.eclipse.equinox.ds:0.0.0,1.5.0.v20170307-1429,org.eclipse.equinox.frameworkadmin:0.0.0,2.0.300.v20160504-1450,org.eclipse.equinox.frameworkadmin.equinox:0.0.0,1.0.800.v20170524-1345,org.eclipse.equinox.p2.reconciler.dropins:0.0.0,1.1.400.v20160504-1450,com.google.guava:0.0.0,21.0.0.v20170206-1425,org.apache.log4j:0.0.0,1.2.17,org.eclipse.ui.views.log:0.0.0,1.2.100.v20170515-1458,org.eclipse.ui.browser:0.0.0,3.6.100.v20170418-1342,org.eclipse.ui.views.log:0.0.0,1.2.100.v20170515-1458,org.eclipse.ui.browser:0.0.0,3.6.100.v20170418-1342,org.eclipse.ui.themes:0.0.0,1.2.0.v20170517-0622,org.slf4j.api:0.0.0,1.7.25.b001,ch.qos.logback.classic:0.0.0,1.2.3,ch.qos.logback.core:0.0.0,1.2.3,org.simantics.logback.configuration:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.rcp_1.25.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.rcp_1.25.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.rcp_1.25.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.rcp_1.25.1.201810081537/feature.xml"  selfVersion="1.25.1.201810081537" featureIds="org.eclipse.rcp:0.0.0,4.7.0.v20170612-1255,org.eclipse.ecf.core.feature:0.0.0,1.4.0.v20170516-2248,org.eclipse.ecf.core.ssl.feature:0.0.0,1.1.0.v20170110-1317,org.eclipse.ecf.filetransfer.feature:0.0.0,3.13.7.v20170516-2248,org.eclipse.ecf.filetransfer.ssl.feature:0.0.0,1.1.0.v20170110-1317,org.eclipse.ecf.filetransfer.httpclient4.feature:0.0.0,3.13.7.v20170516-2248,org.eclipse.ecf.filetransfer.httpclient4.ssl.feature:0.0.0,1.1.0.v20170110-1317,org.eclipse.emf.common:0.0.0,2.13.0.v20170609-0707,org.eclipse.emf.ecore:0.0.0,2.13.0.v20170609-0707," pluginIds="org.eclipse.core.filesystem:0.0.0,1.7.0.v20170406-1337,org.eclipse.core.filesystem.win32.x86_64:0.0.0,1.4.0.v20140124-1940,org.eclipse.core.net:0.0.0,1.3.100.v20170516-0820,org.eclipse.core.net.win32.x86_64:0.0.0,1.1.0.v20160323-1650,org.eclipse.core.resources:0.0.0,3.12.0.v20170417-1558,org.eclipse.core.resources.win32.x86_64:0.0.0,3.5.100.v20170516-0925,org.eclipse.core.variables:0.0.0,3.4.0.v20170113-2056,org.eclipse.ant.core:0.0.0,3.5.0.v20170509-2149,javax.xml:0.0.0,1.3.4.v201005080400,org.eclipse.osgi.compatibility.state:0.0.0,1.1.0.v20170516-1513,org.eclipse.osgi.util:0.0.0,3.4.0.v20170111-1608,org.eclipse.equinox.security:0.0.0,1.2.300.v20170505-1235,org.eclipse.equinox.security.win32.x86_64:0.0.0,1.0.100.v20130327-1442,org.junit:0.0.0,4.12.0.v201504281640,org.eclipse.equinox.security.ui:0.0.0,1.1.400.v20170505-1235,org.hamcrest.core:0.0.0,1.3.0.v201303031735,org.eclipse.equinox.p2.core:0.0.0,2.4.100.v20160419-0834,org.eclipse.equinox.p2.engine:0.0.0,2.5.0.v20170319-2002,org.eclipse.equinox.p2.metadata:0.0.0,2.3.200.v20170511-1106,org.eclipse.equinox.p2.metadata.repository:0.0.0,1.2.400.v20170511-1106,org.eclipse.equinox.concurrent:0.0.0,1.1.0.v20130327-1442,org.eclipse.equinox.p2.director:0.0.0,2.3.300.v20160504-1450,org.sat4j.core:0.0.0,2.3.5.v201308161310,org.sat4j.pb:0.0.0,2.3.5.v201404071733,org.eclipse.equinox.p2.repository:0.0.0,2.3.300.v20170511-1216,org.eclipse.equinox.p2.artifact.repository:0.0.0,1.1.600.v20170511-1106,org.eclipse.equinox.p2.jarprocessor:0.0.0,1.0.500.v20160504-1450,org.eclipse.equinox.p2.touchpoint.eclipse:0.0.0,2.1.500.v20170516-0526,org.eclipse.equinox.p2.touchpoint.natives:0.0.0,1.2.200.v20170511-1216,org.eclipse.equinox.p2.publisher:0.0.0,1.4.200.v20170511-1216,org.eclipse.equinox.p2.repository.tools:0.0.0,2.1.400.v20170511-1216,org.eclipse.equinox.p2.ui:0.0.0,2.5.0.v20170505-1031,org.eclipse.equinox.p2.operations:0.0.0,2.4.300.v20170511-1106,org.eclipse.equinox.p2.garbagecollector:0.0.0,1.0.300.v20160504-1450,org.eclipse.equinox.simpleconfigurator:0.0.0,1.2.0.v20170110-1705,org.eclipse.equinox.simpleconfigurator.manipulator:0.0.0,2.0.300.v20170515-0721,org.eclipse.equinox.util:0.0.0,1.0.500.v20130404-1337,org.eclipse.equinox.ds:0.0.0,1.5.0.v20170307-1429,org.eclipse.equinox.frameworkadmin:0.0.0,2.0.300.v20160504-1450,org.eclipse.equinox.frameworkadmin.equinox:0.0.0,1.0.800.v20170524-1345,org.eclipse.equinox.p2.reconciler.dropins:0.0.0,1.1.400.v20160504-1450,com.google.guava:0.0.0,21.0.0.v20170206-1425,org.apache.log4j:0.0.0,1.2.17,org.eclipse.ui.views.log:0.0.0,1.2.100.v20170515-1458,org.eclipse.ui.browser:0.0.0,3.6.100.v20170418-1342,org.eclipse.ui.views.log:0.0.0,1.2.100.v20170515-1458,org.eclipse.ui.browser:0.0.0,3.6.100.v20170418-1342,org.eclipse.ui.themes:0.0.0,1.2.0.v20170517-0622,org.slf4j.api:0.0.0,1.7.25.b001,ch.qos.logback.classic:0.0.0,1.2.3,ch.qos.logback.core:0.0.0,1.2.3,org.simantics.logback.configuration:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.rcp.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.rcp.source_1.25.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.rcp of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.rcp_1.25.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.rcp.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.rcp.source_1.25.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.scl.feature/build.xml b/features/org.simantics.scl.feature/build.xml
new file mode 100644 (file)
index 0000000..7b1858a
--- /dev/null
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.scl" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.runtime" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.compiler" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.osgi" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.data" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.reflection" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.expressions" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.commands" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.db" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.scl.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.scl for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.scl_1.1.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.scl_1.1.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.scl_1.1.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.scl_1.1.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.scl_1.1.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.scl_1.1.0.201810081537/feature.xml"  selfVersion="1.1.0.201810081537" featureIds="" pluginIds="org.antlr.runtime:0.0.0,3.5.2,gnu.trove3:0.0.0,3.0.3,org.simantics.scl.compiler:0.0.0,0.6.1.201810081537,org.simantics.scl.runtime:0.0.0,0.4.0.201810081537,org.simantics.scl.reflection:0.0.0,1.0.0.201810081537,org.simantics.scl.expressions:0.0.0,1.0.0.201810081537,org.simantics.scl.db:0.0.0,0.1.3.201810081537,org.simantics.scl.osgi:0.0.0,1.0.4.201810081537,org.simantics.scl.commands:0.0.0,1.0.0.201810081537,org.simantics.scl.data:0.0.0,1.0.0.201810081537,org.jdom2:0.0.0,2.0.6.b0001,jaxen:0.0.0,1.1.6,org.objectweb.asm:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.analysis:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.commons:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.tree:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.util:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.xml:0.0.0,5.2.0.v20170126-0011,com.fasterxml.jackson.core.jackson-core:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-annotations:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-databind:0.0.0,2.8.8,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.scl_1.1.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.scl_1.1.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.scl_1.1.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.scl_1.1.0.201810081537/feature.xml"  selfVersion="1.1.0.201810081537" featureIds="" pluginIds="org.antlr.runtime:0.0.0,3.5.2,gnu.trove3:0.0.0,3.0.3,org.simantics.scl.compiler:0.0.0,0.6.1.201810081537,org.simantics.scl.runtime:0.0.0,0.4.0.201810081537,org.simantics.scl.reflection:0.0.0,1.0.0.201810081537,org.simantics.scl.expressions:0.0.0,1.0.0.201810081537,org.simantics.scl.db:0.0.0,0.1.3.201810081537,org.simantics.scl.osgi:0.0.0,1.0.4.201810081537,org.simantics.scl.commands:0.0.0,1.0.0.201810081537,org.simantics.scl.data:0.0.0,1.0.0.201810081537,org.jdom2:0.0.0,2.0.6.b0001,jaxen:0.0.0,1.1.6,org.objectweb.asm:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.analysis:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.commons:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.tree:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.util:0.0.0,5.2.0.v20170126-0011,org.objectweb.asm.xml:0.0.0,5.2.0.v20170126-0011,com.fasterxml.jackson.core.jackson-core:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-annotations:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-databind:0.0.0,2.8.8,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.scl.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl_1.1.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.scl.source_1.1.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl_1.1.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl_1.1.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.scl of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.scl_1.1.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.scl_1.1.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.scl_1.1.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.scl_1.1.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.scl.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.scl.source_1.1.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.scl.rest.feature/build.xml b/features/org.simantics.scl.rest.feature/build.xml
new file mode 100644 (file)
index 0000000..2489e86
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.scl.rest.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.compiler" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.osgi" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.rest" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.scl.rest.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.scl.rest.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.scl.rest.feature_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.scl.rest.feature_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.scl.rest.feature_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.scl.rest.feature_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.scl.rest.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.scl.rest:0.0.0,1.0.0.201810081537,org.glassfish.jersey.core.jersey-server:0.0.0,2.25.1,javax.ws.rs-api:0.0.0,2.0.1,org.simantics.scl.compiler:0.0.0,0.6.1.201810081537,org.simantics.scl.osgi:0.0.0,1.0.4.201810081537,org.eclipse.jetty.servlet:0.0.0,9.4.5.v20170502,org.glassfish.jersey.containers.jersey-container-servlet-core:0.0.0,2.25.1,javax.servlet-api:0.0.0,3.1.0,org.eclipse.jetty.server:0.0.0,9.4.5.v20170502,org.eclipse.jetty.util:0.0.0,9.4.5.v20170502,org.eclipse.jetty.io:0.0.0,9.4.5.v20170502,com.fasterxml.jackson.core.jackson-core:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-annotations:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-databind:0.0.0,2.8.8,org.glassfish.jersey.media.jersey-media-json-jackson:0.0.0,2.25.1,org.glassfish.jersey.media.jersey-media-multipart:0.0.0,2.25.1,org.slf4j.api:0.0.0,1.7.25.b001,org.jvnet.mimepull:0.0.0,1.9.6,org.eclipse.core.runtime:0.0.0,3.13.0.v20170207-1030,org.glassfish.jersey.bundles.repackaged.jersey-guava:0.0.0,2.25.1,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base:0.0.0,2.8.8,javax.validation.api:0.0.0,1.1.0.Final,org.glassfish.hk2.api:0.0.0,2.5.0.b32,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider:0.0.0,2.8.8,org.glassfish.hk2.external.aopalliance-repackaged:0.0.0,2.5.0.b32,org.glassfish.hk2.locator:0.0.0,2.5.0.b32,org.glassfish.hk2.osgi-resource-locator:0.0.0,1.0.1,org.glassfish.hk2.utils:0.0.0,2.5.0.b32,org.glassfish.jersey.core.jersey-common:0.0.0,2.25.1,org.glassfish.jersey.ext.jersey-entity-filtering:0.0.0,2.25.1,org.glassfish.jersey.core.jersey-client:0.0.0,2.25.1,javassist:0.0.0,3.20.0.GA,com.fasterxml.jackson.module.jackson-module-jaxb-annotations:0.0.0,2.8.8,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.scl.rest.feature_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.scl.rest.feature_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.scl.rest.feature_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.scl.rest.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.scl.rest:0.0.0,1.0.0.201810081537,org.glassfish.jersey.core.jersey-server:0.0.0,2.25.1,javax.ws.rs-api:0.0.0,2.0.1,org.simantics.scl.compiler:0.0.0,0.6.1.201810081537,org.simantics.scl.osgi:0.0.0,1.0.4.201810081537,org.eclipse.jetty.servlet:0.0.0,9.4.5.v20170502,org.glassfish.jersey.containers.jersey-container-servlet-core:0.0.0,2.25.1,javax.servlet-api:0.0.0,3.1.0,org.eclipse.jetty.server:0.0.0,9.4.5.v20170502,org.eclipse.jetty.util:0.0.0,9.4.5.v20170502,org.eclipse.jetty.io:0.0.0,9.4.5.v20170502,com.fasterxml.jackson.core.jackson-core:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-annotations:0.0.0,2.8.8,com.fasterxml.jackson.core.jackson-databind:0.0.0,2.8.8,org.glassfish.jersey.media.jersey-media-json-jackson:0.0.0,2.25.1,org.glassfish.jersey.media.jersey-media-multipart:0.0.0,2.25.1,org.slf4j.api:0.0.0,1.7.25.b001,org.jvnet.mimepull:0.0.0,1.9.6,org.eclipse.core.runtime:0.0.0,3.13.0.v20170207-1030,org.glassfish.jersey.bundles.repackaged.jersey-guava:0.0.0,2.25.1,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base:0.0.0,2.8.8,javax.validation.api:0.0.0,1.1.0.Final,org.glassfish.hk2.api:0.0.0,2.5.0.b32,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider:0.0.0,2.8.8,org.glassfish.hk2.external.aopalliance-repackaged:0.0.0,2.5.0.b32,org.glassfish.hk2.locator:0.0.0,2.5.0.b32,org.glassfish.hk2.osgi-resource-locator:0.0.0,1.0.1,org.glassfish.hk2.utils:0.0.0,2.5.0.b32,org.glassfish.jersey.core.jersey-common:0.0.0,2.25.1,org.glassfish.jersey.ext.jersey-entity-filtering:0.0.0,2.25.1,org.glassfish.jersey.core.jersey-client:0.0.0,2.25.1,javassist:0.0.0,3.20.0.GA,com.fasterxml.jackson.module.jackson-module-jaxb-annotations:0.0.0,2.8.8,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.scl.rest.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.scl.rest.feature.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.scl.rest.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.scl.rest.feature_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.scl.rest.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.scl.rest.feature.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.scl.ui.feature/build.xml b/features/org.simantics.scl.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..945286e
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.scl.ui.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.scl.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.scl.ui.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.scl.ui.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.scl.ui.feature_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.scl.ui.feature_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.scl.ui.feature_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.scl.ui.feature_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.scl.ui.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.scl.ui:0.0.0,0.5.0.201810081537,org.eclipse.search:0.0.0,3.11.100.v20170515-1603,org.eclipse.ui.editors:0.0.0,3.11.0.v20170202-1823,org.eclipse.jface.text:0.0.0,3.12.0.v20170523-1043,org.eclipse.ltk.core.refactoring:0.0.0,3.8.0.v20170105-1156,org.eclipse.ltk.ui.refactoring:0.0.0,3.9.0.v20170412-0825,org.eclipse.team.core:0.0.0,3.8.100.v20170516-0820,org.eclipse.team.ui:0.0.0,3.8.1.v20170515-1133,org.eclipse.ui.navigator:0.0.0,3.7.0.v20170418-1342,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.scl.ui.feature_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.scl.ui.feature_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.scl.ui.feature_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.scl.ui.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.scl.ui:0.0.0,0.5.0.201810081537,org.eclipse.search:0.0.0,3.11.100.v20170515-1603,org.eclipse.ui.editors:0.0.0,3.11.0.v20170202-1823,org.eclipse.jface.text:0.0.0,3.12.0.v20170523-1043,org.eclipse.ltk.core.refactoring:0.0.0,3.8.0.v20170105-1156,org.eclipse.ltk.ui.refactoring:0.0.0,3.9.0.v20170412-0825,org.eclipse.team.core:0.0.0,3.8.100.v20170516-0820,org.eclipse.team.ui:0.0.0,3.8.1.v20170515-1133,org.eclipse.ui.navigator:0.0.0,3.7.0.v20170418-1342,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.scl.ui.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.scl.ui.feature.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.scl.ui.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.scl.ui.feature_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.scl.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.scl.ui.feature.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.selectionview.feature/build.xml b/features/org.simantics.selectionview.feature/build.xml
new file mode 100644 (file)
index 0000000..57ae1d1
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.selectionview" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.selectionview.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.selectionview.ui.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.selectionview" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.selectionview.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.selectionview for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.selectionview_1.5.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.selectionview_1.5.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.selectionview_1.5.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.selectionview_1.5.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.selectionview_1.5.1.201810081537/feature.xml"  selfVersion="1.5.1.201810081537" featureIds="" pluginIds="org.simantics.selectionview:0.0.0,1.0.0.201810081537,org.simantics.selectionview.ontology:0.0.0,1.2.0.201810081537,org.simantics.selectionview.ui.ontology:0.0.0,1.1.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.selectionview_1.5.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.selectionview_1.5.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.selectionview_1.5.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.selectionview_1.5.1.201810081537/feature.xml"  selfVersion="1.5.1.201810081537" featureIds="" pluginIds="org.simantics.selectionview:0.0.0,1.0.0.201810081537,org.simantics.selectionview.ontology:0.0.0,1.2.0.201810081537,org.simantics.selectionview.ui.ontology:0.0.0,1.1.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.selectionview.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.selectionview.source_1.5.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.selectionview of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.selectionview_1.5.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.selectionview.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.selectionview.source_1.5.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.simulation.feature/build.xml b/features/org.simantics.simulation.feature/build.xml
new file mode 100644 (file)
index 0000000..488a274
--- /dev/null
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.simulation" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.compressions" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulation.sequences" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.history" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.lz4" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulation" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulation.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.simulation.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.simulation for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.simulation_1.1.3.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.simulation_1.1.3.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.simulation_1.1.3.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.simulation_1.1.3.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.simulation_1.1.3.201810081537/feature.xml"  selfVersion="1.1.3.201810081537" featureIds="" pluginIds="org.apache.commons.compress:0.0.0,1.12.0,org.simantics.history:0.0.0,1.0.0.201810081537,org.simantics.simulation:0.0.0,1.1.0.201810081537,org.simantics.simulation.ui:0.0.0,1.1.0.201810081537,org.simantics.simulation.sequences:0.0.0,1.0.0.201810081537,org.simantics.compressions:0.0.0,1.0.0.201810081537,org.simantics.lz4:0.0.0,1.3.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.simulation_1.1.3.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.simulation_1.1.3.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.simulation_1.1.3.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.simulation_1.1.3.201810081537/feature.xml"  selfVersion="1.1.3.201810081537" featureIds="" pluginIds="org.apache.commons.compress:0.0.0,1.12.0,org.simantics.history:0.0.0,1.0.0.201810081537,org.simantics.simulation:0.0.0,1.1.0.201810081537,org.simantics.simulation.ui:0.0.0,1.1.0.201810081537,org.simantics.simulation.sequences:0.0.0,1.0.0.201810081537,org.simantics.compressions:0.0.0,1.0.0.201810081537,org.simantics.lz4:0.0.0,1.3.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.simulation.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.simulation.source_1.1.3.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.simulation of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.simulation_1.1.3.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.simulation.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.simulation.source_1.1.3.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.simulator.toolkit.db.feature/build.xml b/features/org.simantics.simulator.toolkit.db.feature/build.xml
new file mode 100644 (file)
index 0000000..7314cd1
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.simulator.toolkit.db.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulator.toolkit.db" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.simulator.toolkit.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.simulator.toolkit.db.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.simulator.toolkit.db.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="org.simantics.simulator.toolkit.feature:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.simulator.toolkit.db:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="org.simantics.simulator.toolkit.feature:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.simulator.toolkit.db:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.simulator.toolkit.db.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.simulator.toolkit.db.feature.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.simulator.toolkit.db.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.db.feature_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.simulator.toolkit.db.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.simulator.toolkit.db.feature.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.simulator.toolkit.feature/build.xml b/features/org.simantics.simulator.toolkit.feature/build.xml
new file mode 100644 (file)
index 0000000..69834fd
--- /dev/null
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.simulator.toolkit.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.databoard" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.scl.osgi" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulation.sequences" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulator.variable" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulator" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.simulator.toolkit" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.simulator.toolkit.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.simulator.toolkit.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.simulator:0.0.0,1.0.0.201810081537,org.simantics.simulator.toolkit:0.0.0,1.0.0.201810081537,org.simantics.simulator.variable:0.0.0,1.0.0.201810081537,org.simantics.databoard:0.0.0,0.6.6.201810081537,org.simantics.simulation.sequences:0.0.0,1.0.0.201810081537,org.simantics.scl.osgi:0.0.0,1.0.4.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.simulator.toolkit.feature_1.0.0.201810081537/feature.xml"  selfVersion="1.0.0.201810081537" featureIds="" pluginIds="org.simantics.simulator:0.0.0,1.0.0.201810081537,org.simantics.simulator.toolkit:0.0.0,1.0.0.201810081537,org.simantics.simulator.variable:0.0.0,1.0.0.201810081537,org.simantics.databoard:0.0.0,0.6.6.201810081537,org.simantics.simulation.sequences:0.0.0,1.0.0.201810081537,org.simantics.scl.osgi:0.0.0,1.0.4.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.simulator.toolkit.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.simulator.toolkit.feature.source_1.0.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.simulator.toolkit.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.simulator.toolkit.feature_1.0.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.simulator.toolkit.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.simulator.toolkit.feature.source_1.0.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.spreadsheet.feature/build.xml b/features/org.simantics.spreadsheet.feature/build.xml
new file mode 100644 (file)
index 0000000..2577566
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.spreadsheet" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.spreadsheet.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.spreadsheet" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.excel" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.spreadsheet.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.spreadsheet for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.spreadsheet_1.5.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.spreadsheet_1.5.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.spreadsheet_1.5.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.spreadsheet_1.5.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.spreadsheet_1.5.0.201810081537/feature.xml"  selfVersion="1.5.0.201810081537" featureIds="org.apache.poi.feature:0.0.0,3.15.0.b0002," pluginIds="org.simantics.excel:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet.ontology:0.0.0,1.2.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.spreadsheet_1.5.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.spreadsheet_1.5.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.spreadsheet_1.5.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.spreadsheet_1.5.0.201810081537/feature.xml"  selfVersion="1.5.0.201810081537" featureIds="org.apache.poi.feature:0.0.0,3.15.0.b0002," pluginIds="org.simantics.excel:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet.ontology:0.0.0,1.2.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.spreadsheet.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.spreadsheet.source_1.5.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.spreadsheet of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.spreadsheet_1.5.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.spreadsheet.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.spreadsheet.source_1.5.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.spreadsheet.ui.feature/build.xml b/features/org.simantics.spreadsheet.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..8a0b0f2
--- /dev/null
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.spreadsheet.ui" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.spreadsheet.common" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.spreadsheet.graph" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.spreadsheet.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.spreadsheet.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.scl.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.simulator.toolkit.db.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.spreadsheet.ui.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.spreadsheet.ui for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.simantics.spreadsheet:0.0.0,1.5.0.201810081537,org.simantics.scl:0.0.0,1.1.0.201810081537,org.simantics.simulator.toolkit.db.feature:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.spreadsheet.common:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet.graph:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet.ui:0.0.0,1.1.0.201810081537,it.unimi.dsi.fastutil:0.0.0,7.2.1,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.spreadsheet.ui_1.1.1.201810081537/feature.xml"  selfVersion="1.1.1.201810081537" featureIds="org.simantics.spreadsheet:0.0.0,1.5.0.201810081537,org.simantics.scl:0.0.0,1.1.0.201810081537,org.simantics.simulator.toolkit.db.feature:0.0.0,1.0.0.201810081537," pluginIds="org.simantics.spreadsheet.common:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet.graph:0.0.0,1.1.0.201810081537,org.simantics.spreadsheet.ui:0.0.0,1.1.0.201810081537,it.unimi.dsi.fastutil:0.0.0,7.2.1,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.spreadsheet.ui.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.spreadsheet.ui.source_1.1.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.spreadsheet.ui of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.spreadsheet.ui_1.1.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.spreadsheet.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.spreadsheet.ui.source_1.1.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.structural.feature/build.xml b/features/org.simantics.structural.feature/build.xml
new file mode 100644 (file)
index 0000000..b09ca56
--- /dev/null
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.structural" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graphviz" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.structural.synchronization" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.structural.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.mapping" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.graphviz.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.structural2" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.structural.synchronization.client" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.scl.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.structural.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.structural for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.structural_1.1.5.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.structural_1.1.5.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.structural_1.1.5.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.structural_1.1.5.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.structural_1.1.5.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.structural_1.1.5.201810081537/feature.xml"  selfVersion="1.1.5.201810081537" featureIds="org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.mapping:0.0.0,1.1.0.201810081537,org.simantics.graphviz:0.0.0,1.1.0.201810081537,org.simantics.graphviz.ui:0.0.0,1.1.0.201810081537,org.simantics.structural2:0.0.0,1.1.1.201810081537,org.simantics.structural.ontology:0.0.0,1.2.0.201810081537,gnu.trove3:0.0.0,3.0.3,org.simantics.structural.synchronization:0.0.0,1.0.0.201810081537,org.simantics.structural.synchronization.client:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.structural_1.1.5.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.structural_1.1.5.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.structural_1.1.5.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.structural_1.1.5.201810081537/feature.xml"  selfVersion="1.1.5.201810081537" featureIds="org.simantics.scl:0.0.0,1.1.0.201810081537," pluginIds="org.simantics.mapping:0.0.0,1.1.0.201810081537,org.simantics.graphviz:0.0.0,1.1.0.201810081537,org.simantics.graphviz.ui:0.0.0,1.1.0.201810081537,org.simantics.structural2:0.0.0,1.1.1.201810081537,org.simantics.structural.ontology:0.0.0,1.2.0.201810081537,gnu.trove3:0.0.0,3.0.3,org.simantics.structural.synchronization:0.0.0,1.0.0.201810081537,org.simantics.structural.synchronization.client:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.structural.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.structural_1.1.5.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.structural.source_1.1.5.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.structural_1.1.5.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.structural_1.1.5.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.structural of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.structural_1.1.5.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.structural_1.1.5.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.structural_1.1.5.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.structural_1.1.5.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.structural.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.structural.source_1.1.5.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.ui.workbench.feature/build.xml b/features/org.simantics.ui.workbench.feature/build.xml
new file mode 100644 (file)
index 0000000..954d1cf
--- /dev/null
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.ui.workbench" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.editors" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.project" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.debug.browser" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.debug.browser.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.message.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.debug.graphical" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.debug.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.ui.workbench.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.ui.workbench for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.ui.workbench_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.ui.workbench_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.ui.workbench_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.ui.workbench_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.ui.workbench_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="" pluginIds="org.eclipse.compare:0.0.0,3.7.100.v20170303-1847,org.eclipse.compare.core:0.0.0,3.6.100.v20170516-0820,org.eclipse.core.filebuffers:0.0.0,3.6.100.v20170203-1130,org.eclipse.pde.runtime:0.0.0,3.6.0.v20170413-1620,org.eclipse.ui.console:0.0.0,3.7.0.v20170315-0941,org.eclipse.ui.forms:0.0.0,3.7.100.v20170517-1755,org.eclipse.ui.ide:0.0.0,3.13.0.v20170516-1223,org.eclipse.ui.intro:0.0.0,3.5.100.v20170418-0710,org.eclipse.ui.intro.quicklinks:0.0.0,1.0.100.v20170515-0756,org.eclipse.ui.intro.universal:0.0.0,3.3.100.v20170515-1335,org.eclipse.ui.net:0.0.0,1.3.100.v20170516-0820,org.eclipse.ui.views:0.0.0,3.9.0.v20170226-1833,org.eclipse.ui.views.properties.tabbed:0.0.0,3.8.0.v20170516-1617,org.eclipse.ui.workbench.texteditor:0.0.0,3.10.100.v20170426-2021,org.eclipse.jface.text:0.0.0,3.12.0.v20170523-1043,org.eclipse.text:0.0.0,3.6.100.v20170203-0814,org.simantics.project:0.0.0,1.0.1.201810081537,org.simantics.message.ui:0.0.0,1.1.0.201810081537,org.simantics.editors:0.0.0,1.0.0.201810081537,org.eclipse.ui.editors:0.0.0,3.11.0.v20170202-1823,org.simantics.ui:0.0.0,1.0.0.201810081537,org.simantics.debug.ui:0.0.0,1.0.0.201810081537,org.simantics.debug.graphical:0.0.0,1.0.0.201810081537,org.eclipse.nebula.widgets.tablecombo:0.0.0,1.0.0.201706221838,org.simantics.debug.browser:0.0.0,1.0.0.201810081537,org.simantics.debug.browser.ui:0.0.0,1.0.0.201810081537,org.eclipse.jetty.http:0.0.0,9.4.5.v20170502,org.eclipse.jetty.server:0.0.0,9.4.5.v20170502,org.eclipse.jetty.servlet:0.0.0,9.4.5.v20170502,org.eclipse.jetty.util:0.0.0,9.4.5.v20170502,org.eclipse.jetty.io:0.0.0,9.4.5.v20170502,org.eclipse.jetty.security:0.0.0,9.4.5.v20170502,org.eclipse.ui.cheatsheets:0.0.0,3.5.100.v20170515-0748,javax.servlet:0.0.0,3.1.0.v201410161800,org.eclipse.jdt.annotation:0.0.0,2.1.100.v20170511-1408,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.ui.workbench_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.ui.workbench_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.ui.workbench_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.ui.workbench_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="" pluginIds="org.eclipse.compare:0.0.0,3.7.100.v20170303-1847,org.eclipse.compare.core:0.0.0,3.6.100.v20170516-0820,org.eclipse.core.filebuffers:0.0.0,3.6.100.v20170203-1130,org.eclipse.pde.runtime:0.0.0,3.6.0.v20170413-1620,org.eclipse.ui.console:0.0.0,3.7.0.v20170315-0941,org.eclipse.ui.forms:0.0.0,3.7.100.v20170517-1755,org.eclipse.ui.ide:0.0.0,3.13.0.v20170516-1223,org.eclipse.ui.intro:0.0.0,3.5.100.v20170418-0710,org.eclipse.ui.intro.quicklinks:0.0.0,1.0.100.v20170515-0756,org.eclipse.ui.intro.universal:0.0.0,3.3.100.v20170515-1335,org.eclipse.ui.net:0.0.0,1.3.100.v20170516-0820,org.eclipse.ui.views:0.0.0,3.9.0.v20170226-1833,org.eclipse.ui.views.properties.tabbed:0.0.0,3.8.0.v20170516-1617,org.eclipse.ui.workbench.texteditor:0.0.0,3.10.100.v20170426-2021,org.eclipse.jface.text:0.0.0,3.12.0.v20170523-1043,org.eclipse.text:0.0.0,3.6.100.v20170203-0814,org.simantics.project:0.0.0,1.0.1.201810081537,org.simantics.message.ui:0.0.0,1.1.0.201810081537,org.simantics.editors:0.0.0,1.0.0.201810081537,org.eclipse.ui.editors:0.0.0,3.11.0.v20170202-1823,org.simantics.ui:0.0.0,1.0.0.201810081537,org.simantics.debug.ui:0.0.0,1.0.0.201810081537,org.simantics.debug.graphical:0.0.0,1.0.0.201810081537,org.eclipse.nebula.widgets.tablecombo:0.0.0,1.0.0.201706221838,org.simantics.debug.browser:0.0.0,1.0.0.201810081537,org.simantics.debug.browser.ui:0.0.0,1.0.0.201810081537,org.eclipse.jetty.http:0.0.0,9.4.5.v20170502,org.eclipse.jetty.server:0.0.0,9.4.5.v20170502,org.eclipse.jetty.servlet:0.0.0,9.4.5.v20170502,org.eclipse.jetty.util:0.0.0,9.4.5.v20170502,org.eclipse.jetty.io:0.0.0,9.4.5.v20170502,org.eclipse.jetty.security:0.0.0,9.4.5.v20170502,org.eclipse.ui.cheatsheets:0.0.0,3.5.100.v20170515-0748,javax.servlet:0.0.0,3.1.0.v201410161800,org.eclipse.jdt.annotation:0.0.0,2.1.100.v20170511-1408,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.ui.workbench.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.ui.workbench.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.ui.workbench of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.ui.workbench_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.ui.workbench.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.ui.workbench.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.utils.feature/build.xml b/features/org.simantics.utils.feature/build.xml
new file mode 100644 (file)
index 0000000..9da64c0
--- /dev/null
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.utils" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.utils.thread" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.utils" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.utils.datastructures" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.utils.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.utils for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.utils_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.utils_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.utils_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.utils_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.utils_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.utils_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="" pluginIds="org.apache.commons.collections:0.0.0,3.2.2,org.apache.commons.io:0.0.0,2.4.0,org.simantics.utils:0.0.0,1.1.0.201810081537,org.simantics.utils.datastructures:0.0.0,1.1.0.201810081537,org.simantics.utils.thread:0.0.0,1.1.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.utils_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.utils_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.utils_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.utils_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="" pluginIds="org.apache.commons.collections:0.0.0,3.2.2,org.apache.commons.io:0.0.0,2.4.0,org.simantics.utils:0.0.0,1.1.0.201810081537,org.simantics.utils.datastructures:0.0.0,1.1.0.201810081537,org.simantics.utils.thread:0.0.0,1.1.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.utils.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.utils_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.utils.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.utils_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.utils_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.utils of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.utils_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.utils_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.utils_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.utils_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.utils.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.utils.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.utils.ui.feature/build.xml b/features/org.simantics.utils.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..17fc3d3
--- /dev/null
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.utils.ui.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.utils.thread.swt" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.utils.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.utils.ui.workbench" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.utils.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.utils.ui.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.utils.ui.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.utils.ui.feature_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.utils.ui.feature_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.utils.ui.feature_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.utils.ui.feature_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.utils.ui.feature_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.utils:0.0.0,1.26.0.201810081537," pluginIds="org.simantics.utils.thread.swt:0.0.0,1.1.0.201810081537,org.simantics.utils.ui:0.0.0,1.1.0.201810081537,org.simantics.utils.ui.workbench:0.0.0,1.1.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.utils.ui.feature_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.utils.ui.feature_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.utils.ui.feature_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.utils.ui.feature_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.utils:0.0.0,1.26.0.201810081537," pluginIds="org.simantics.utils.thread.swt:0.0.0,1.1.0.201810081537,org.simantics.utils.ui:0.0.0,1.1.0.201810081537,org.simantics.utils.ui.workbench:0.0.0,1.1.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.utils.ui.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.utils.ui.feature.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.utils.ui.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.utils.ui.feature_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.utils.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.utils.ui.feature.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.views.swt.client.feature/build.xml b/features/org.simantics.views.swt.client.feature/build.xml
new file mode 100644 (file)
index 0000000..e97e195
--- /dev/null
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.views.swt.client.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.views" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.views.swt.client" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.views.swt.client.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.views.swt.client.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="" pluginIds="org.simantics.views:0.0.0,1.1.0.201810081537,org.simantics.views.swt.client:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.views.swt.client.feature_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="" pluginIds="org.simantics.views:0.0.0,1.1.0.201810081537,org.simantics.views.swt.client:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.views.swt.client.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.views.swt.client.feature.source_1.0.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.views.swt.client.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.views.swt.client.feature_1.0.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.views.swt.client.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.views.swt.client.feature.source_1.0.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.views.swt.feature/build.xml b/features/org.simantics.views.swt.feature/build.xml
new file mode 100644 (file)
index 0000000..57eac46
--- /dev/null
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.views.swt.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.views.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.views.text.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.views.swt" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.views.text" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.views.swt.client.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.views.swt.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.views.swt.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.views.swt.feature_1.0.1.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.views.swt.feature_1.0.1.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.views.swt.feature_1.0.1.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.views.swt.feature_1.0.1.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.views.swt.feature_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="org.simantics.views.swt.client.feature:0.0.0,1.0.1.201810081537," pluginIds="org.simantics.views.ontology:0.0.0,1.2.0.201810081537,org.simantics.views.swt:0.0.0,1.0.0.201810081537,org.simantics.views.text:0.0.0,1.0.0.201810081537,org.simantics.views.text.ontology:0.0.0,1.0.0.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.views.swt.feature_1.0.1.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.views.swt.feature_1.0.1.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.views.swt.feature_1.0.1.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.views.swt.feature_1.0.1.201810081537/feature.xml"  selfVersion="1.0.1.201810081537" featureIds="org.simantics.views.swt.client.feature:0.0.0,1.0.1.201810081537," pluginIds="org.simantics.views.ontology:0.0.0,1.2.0.201810081537,org.simantics.views.swt:0.0.0,1.0.0.201810081537,org.simantics.views.text:0.0.0,1.0.0.201810081537,org.simantics.views.text.ontology:0.0.0,1.0.0.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.views.swt.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.views.swt.feature.source_1.0.1.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.views.swt.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.views.swt.feature_1.0.1.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.views.swt.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.views.swt.feature.source_1.0.1.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.wiki.ui.feature/build.xml b/features/org.simantics.wiki.ui.feature/build.xml
new file mode 100644 (file)
index 0000000..9a85bc6
--- /dev/null
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.wiki.ui.feature" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.wiki.ui" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../com.lowagie.text.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.wiki.ui.feature.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.wiki.ui.feature for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="com.lowagie.text:0.0.0,2.1.7.201810081537," pluginIds="org.simantics.wiki.ui:0.0.0,1.1.0.201810081537,org.apache.ant:0.0.0,1.10.1.v20170504-0840,org.eclipse.mylyn.wikitext.mediawiki.ui:0.0.0,3.0.6.201703111926,org.eclipse.mylyn.wikitext.ui:0.0.0,3.0.6.201703111926,org.mozilla.rhino:0.0.0,1.7.7.1,org.eclipse.mylyn.wikitext:0.0.0,3.0.6.20170311142502,org.eclipse.mylyn.wikitext.ant:0.0.0,3.0.6.20170311142502,org.eclipse.mylyn.wikitext.osgi:0.0.0,3.0.6.201703111926,org.eclipse.mylyn.wikitext.mediawiki:0.0.0,3.0.6.20170311142502,org.jsoup:0.0.0,1.8.3,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.wiki.ui.feature_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="com.lowagie.text:0.0.0,2.1.7.201810081537," pluginIds="org.simantics.wiki.ui:0.0.0,1.1.0.201810081537,org.apache.ant:0.0.0,1.10.1.v20170504-0840,org.eclipse.mylyn.wikitext.mediawiki.ui:0.0.0,3.0.6.201703111926,org.eclipse.mylyn.wikitext.ui:0.0.0,3.0.6.201703111926,org.mozilla.rhino:0.0.0,1.7.7.1,org.eclipse.mylyn.wikitext:0.0.0,3.0.6.20170311142502,org.eclipse.mylyn.wikitext.ant:0.0.0,3.0.6.20170311142502,org.eclipse.mylyn.wikitext.osgi:0.0.0,3.0.6.201703111926,org.eclipse.mylyn.wikitext.mediawiki:0.0.0,3.0.6.20170311142502,org.jsoup:0.0.0,1.8.3,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.wiki.ui.feature.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.wiki.ui.feature.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.wiki.ui.feature of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.wiki.ui.feature_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.wiki.ui.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.wiki.ui.feature.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/features/org.simantics.workbench.feature/build.xml b/features/org.simantics.workbench.feature/build.xml
new file mode 100644 (file)
index 0000000..a8bd763
--- /dev/null
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.simantics.workbench" default="build.update.jar" basedir=".">
+
+       <target name="init">
+               <property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
+               <property name="feature.destination" value="${basedir}"/>
+               <property name="p2.build.repo" value="file:${buildDirectory}/buildRepo"/>
+               <condition property="p2.publish.parts" value="true"             >
+                       <istrue value="${p2.gathering}"/>
+               </condition>
+       </target>
+
+       <target name="all.plugins" depends="init">
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.db.procore.server.environment" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.workbench.ontology" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.application" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.workbench.search" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+               <ant antfile="build.xml" dir="../../bundles/org.simantics.workbench" target="${target}">
+                       <property name="os" value="win32"/>
+                       <property name="ws" value="win32"/>
+                       <property name="arch" value="x86_64"/>
+               </ant>
+       </target>
+       <target name="all.features" depends="init">
+               <ant antfile="build.xml" dir="../org.simantics.platform.ui.feature/" target="${target}"/>
+               <ant antfile="build.xml" dir="../org.simantics.help.feature/" target="${target}"/>
+       </target>
+       <target name="update.feature" depends="init">
+       </target>
+
+       <target name="all.children" depends="init,all.features,all.plugins,update.feature">
+       </target>
+
+       <target name="children" if="include.children">
+               <antcall target="all.children"/>
+       </target>
+
+       <target name="build.jars" depends="init" description="Build all the jars for the feature: org.simantics.workbench.">
+               <antcall target="all.children">
+                       <param name="target" value="build.jars"/>
+               </antcall>
+       </target>
+
+       <target name="build.sources" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.sources"/>
+               </antcall>
+       </target>
+
+       <target name="build.zips" depends="init">
+               <antcall target="all.children">
+                       <param name="target" value="build.zips"/>
+               </antcall>
+       </target>
+
+       <target name="build.update.jar" depends="init" description="Build the feature jar of: org.simantics.workbench for an update site.">
+               <antcall target="all.children">
+                       <param name="target" value="build.update.jar"/>
+               </antcall>
+               <property name="feature.base" value="${feature.temp.folder}"/>
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.workbench_1.26.0.201810081537"/>
+               <antcall target="gather.bin.parts" inheritAll="false">
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="updateJar.omitRootfiles" value="true"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <jar destfile="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.jar" basedir="${feature.temp.folder}/features/org.simantics.workbench_1.26.0.201810081537"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="publish.bin.parts" depends="init" if="p2.publish.parts">
+               <mkdir dir="${feature.temp.folder}/features/org.simantics.workbench_1.26.0.201810081537"/>
+               <copy todir="${feature.temp.folder}/features/org.simantics.workbench_1.26.0.201810081537" failonerror="true" overwrite="true">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.temp.folder}/features/org.simantics.workbench_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.platform.ui:0.0.0,1.26.0.201810081537,org.simantics.help:0.0.0,1.1.1.201810081537," pluginIds="org.simantics.application:0.0.0,1.1.0.201810081537,org.simantics.workbench.ontology:0.0.0,1.2.0.201810081537,freemarker:0.0.0,2.3.23.stable,org.simantics.workbench.search:0.0.0,1.5.0.201810081537,org.simantics.db.procore.server.environment:0.0.0,1.1.0.201810081537,org.simantics.workbench:0.0.0,1.5.1.201810081537,"/>
+               <eclipse.gatherFeature 
+                  metadataRepository="${p2.build.repo}"
+                  artifactRepository="${p2.build.repo}"
+                  buildResultFolder="${feature.temp.folder}/features/org.simantics.workbench_1.26.0.201810081537"
+                  baseDirectory="${basedir}"
+               />
+       </target>
+
+       <target name="gather.bin.parts" depends="init" if="feature.base">
+               <mkdir dir="${feature.base}/features/org.simantics.workbench_1.26.0.201810081537"/>
+               <antcall target="children">
+                       <param name="target" value="gather.bin.parts"/>
+                       <param name="destination.temp.folder" value="${feature.base}/plugins"/>
+               </antcall>
+               <copy todir="${feature.base}/features/org.simantics.workbench_1.26.0.201810081537" failonerror="true" overwrite="false">
+                       <fileset dir="${basedir}">
+                               <include name="feature.xml"/>
+                       </fileset>
+               </copy>
+               <eclipse.idReplacer featureFilePath="${feature.base}/features/org.simantics.workbench_1.26.0.201810081537/feature.xml"  selfVersion="1.26.0.201810081537" featureIds="org.simantics.platform.ui:0.0.0,1.26.0.201810081537,org.simantics.help:0.0.0,1.1.1.201810081537," pluginIds="org.simantics.application:0.0.0,1.1.0.201810081537,org.simantics.workbench.ontology:0.0.0,1.2.0.201810081537,freemarker:0.0.0,2.3.23.stable,org.simantics.workbench.search:0.0.0,1.5.0.201810081537,org.simantics.db.procore.server.environment:0.0.0,1.1.0.201810081537,org.simantics.workbench:0.0.0,1.5.1.201810081537,"/>
+               <antcall target="rootFiles">
+                       <param name="rootTarget" value="rootFiles${os}_${ws}_${arch}"/>
+               </antcall>
+       </target>
+       <target name="rootFiles" unless="updateJar.omitRootfiles">
+               <antcall target="${rootTarget}"/>
+       </target>
+
+       <target name="rootFileswin32_win32_x86_64">
+       </target>
+       <target name="rootFilesgroup_group_group">
+               <antcall target="rootFileswin32_win32_x86_64"/>
+       </target>
+
+       <target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.simantics.workbench.">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="gather.bin.parts">
+                       <param name="include.children" value="true"/>
+                       <param name="feature.base" value="${feature.temp.folder}"/>
+                       <param name="arch" value="*"/>
+                       <param name="os" value="*"/>
+                       <param name="ws" value="*"/>
+                       <param name="nl" value="*"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.sources" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="include.children" value="true"/>
+                       <param name="target" value="gather.sources"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.workbench.source_1.26.0.201810081537/src"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="zip.logs" depends="init">
+               <delete dir="${feature.temp.folder}"/>
+               <mkdir dir="${feature.temp.folder}"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="include.children" value="true"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+               </antcall>
+               <zip destfile="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
+               <delete dir="${feature.temp.folder}"/>
+       </target>
+
+       <target name="clean" depends="init" description="Clean the feature: org.simantics.workbench of all the zips, jars and logs created.">
+               <delete file="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.jar"/>
+               <delete file="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.bin.dist.zip"/>
+               <delete file="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.log.zip"/>
+               <delete file="${feature.destination}/org.simantics.workbench_1.26.0.201810081537.src.zip"/>
+               <delete dir="${feature.temp.folder}"/>
+               <antcall target="all.children">
+                       <param name="target" value="clean"/>
+               </antcall>
+       </target>
+
+       <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
+               <eclipse.convertPath fileSystemPath="C:/Work/workspace/psaas/git/features/org.simantics.workbench.feature/" property="resourcePath"/>
+               <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
+               <antcall target="all.children">
+                       <param name="target" value="refresh"/>
+               </antcall>
+       </target>
+       <target name="gather.sources">
+               <antcall target="children">
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.simantics.workbench.source_1.26.0.201810081537/src"/>
+                       <param name="target" value="gather.sources"/>
+               </antcall>
+       </target>
+
+       <target name="gather.logs" depends="init">
+               <mkdir dir="${feature.temp.folder}/plugins"/>
+               <property name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               <condition property="logExtension.param" value="logExtension" else="logExtension.param"         >
+                       <isset property="logExtension"/>
+               </condition>
+               <antcall target="all.children" inheritAll="false">
+                       <param name="${logExtension.param}" value="${logExtension}"/>
+                       <param name="target" value="gather.logs"/>
+                       <param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
+               </antcall>
+       </target>
+
+</project>
diff --git a/releng/.project b/releng/.project
new file mode 100644 (file)
index 0000000..9e9e327
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>releng</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.m2e.core.maven2Builder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/tests/.project b/tests/.project
new file mode 100644 (file)
index 0000000..03b83d8
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>tests</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.m2e.core.maven2Builder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.m2e.core.maven2Nature</nature>\r
+       </natures>\r
+</projectDescription>\r