[483913] Improve behavior with target platform
test in builds
Change-Id: I4beea3e92fe461c289c94a7dc896dbe367115fb8
Signed-off-by: Thomas Guiu <thomas.guiu@soyatec.com>
diff --git a/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/PlatformResourceLoadedListener.java b/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/PlatformResourceLoadedListener.java
index 796d7f0..3103b6f 100644
--- a/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/PlatformResourceLoadedListener.java
+++ b/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/PlatformResourceLoadedListener.java
@@ -1,530 +1,528 @@
-/**
- * Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Thales Corporate Services S.A.S - initial API and implementation
- */
-package org.eclipse.egf.core.domain;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.ObjectUndoContext;
-import org.eclipse.egf.common.helper.URIHelper;
-import org.eclipse.egf.core.EGFCorePlugin;
-import org.eclipse.egf.core.fcore.IPlatformFcore;
-import org.eclipse.egf.core.fcore.IPlatformFcoreConstants;
-import org.eclipse.egf.core.platform.EGFPlatformPlugin;
-import org.eclipse.egf.core.platform.pde.IPlatformExtensionPointDelta;
-import org.eclipse.egf.core.platform.pde.IPlatformExtensionPointListener;
-import org.eclipse.egf.core.workspace.EGFWorkspaceSynchronizer;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.common.util.UniqueEList;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.pde.core.plugin.ModelEntry;
-import org.eclipse.pde.internal.core.IExtensionDeltaListener;
-import org.eclipse.pde.internal.core.IPluginModelListener;
-import org.eclipse.pde.internal.core.PDECore;
-import org.eclipse.pde.internal.core.PluginModelDelta;
-
-/**
- * @author Thomas Guiu
- *
- */
-public final class PlatformResourceLoadedListener implements EGFWorkspaceSynchronizer.Delegate {
-
- private static volatile PlatformResourceLoadedListener resourceLoadedListener = new PlatformResourceLoadedListener();
-
- private static volatile ResourceManager resourceManager = new ResourceManager();
-
- private final WorkspaceListener listener = new WorkspaceListener();
-
- public static ResourceManager getResourceManager() {
- return resourceManager;
- }
-
- public static PlatformResourceLoadedListener getResourceLoadedListener() {
- return resourceLoadedListener;
- }
-
- public static interface ResourceUser {
-
- public Resource getResource();
-
- public ResourceListener getListener();
-
- public boolean isDirty();
-
- public boolean userHasSavedResource();
-
- public boolean resourceHasBeenExternallyChanged();
-
- public IOperationHistory getOperationHistory();
-
- public ObjectUndoContext getUndoContext();
-
- }
-
- public static interface ResourceListener {
-
- public void resourceDeleted(final Resource resource);
-
- public void resourceMoved(final Resource resource, URI oldURI);
-
- public void resourceReloaded(final Resource resource);
-
- public void externalUpdate(final Resource resource);
-
- public void internalUpdate(final Resource resource);
-
- }
-
- public static class ResourceManager {
-
- final private List<ResourceListener> listeners = new ArrayList<ResourceListener>();
-
- final private Map<Resource, List<ResourceUser>> observers = new HashMap<Resource, List<ResourceUser>>();
-
- protected void dispose() {
- listeners.clear();
- observers.clear();
- }
-
- public void addObserver(ResourceUser resourceUser) {
- synchronized (PlatformResourceLoadedListener.class) {
- Resource resource = resourceUser.getResource();
- List<ResourceUser> list = observers.get(resource);
- if (list == null) {
- list = new ArrayList<ResourceUser>();
- observers.put(resource, list);
- }
- list.add(resourceUser);
- listeners.add(resourceUser.getListener());
- }
- }
-
- public void removeObserver(ResourceUser resourceUser) {
- synchronized (resourceLoadedListener) {
- Resource resource = resourceUser.getResource();
- List<ResourceUser> list = observers.get(resource);
- if (list == null) {
- return;
- }
- list.remove(resourceUser);
- if (list.isEmpty()) {
- try {
- resource.unload();
- observers.remove(resource);
- if (noMoreObserver() == false) {
- resource.load(Collections.EMPTY_MAP);
- }
- } catch (IOException ioe) {
- resource.getErrors().add(new DiagnosticResourceException(resource, ioe));
- }
- }
- listeners.remove(resourceUser.getListener());
- if (noMoreObserver()) {
- clear();
- }
- }
- }
-
- private void clear() {
- // no editor is actually open, so let's unload all the resources
- final TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
- try {
- editingDomain.runExclusive(new Runnable() {
-
- public void run() {
- ResourceSet resourceSet = editingDomain.getResourceSet();
- for (Iterator<Resource> it = resourceSet.getResources().iterator(); it.hasNext();) {
- Resource resource = it.next();
- resource.unload();
- it.remove();
- }
- }
- });
- if (EGFCorePlugin.getDefault().isDebugging()) {
- EGFPlatformPlugin.getDefault().logInfo(NLS.bind("''{0}'' _ clear", EGFCorePlugin.EDITING_DOMAIN_ID)); //$NON-NLS-1$
- }
- } catch (InterruptedException e) {
- EGFCorePlugin.getDefault().logError(e);
- }
- }
-
- private boolean noMoreObserver() {
- for (List<ResourceUser> users : observers.values()) {
- if (users.isEmpty() == false) {
- return false;
- }
- }
- return true;
- }
-
- public void removeResource(Resource resource) {
- if (resource == null) {
- throw new IllegalArgumentException();
- }
- synchronized (resourceLoadedListener) {
- boolean isDirty = false;
- // Check whether or not we are editing the current resource
- List<ResourceUser> users = observers.get(resource);
- if (users != null) {
- for (ResourceUser user : users) {
- // This state is propagated, the first user is enough to
- // check this state
- isDirty = user.isDirty();
- break;
- }
- }
- // Notify, use an iterator as a closing editor always remove its
- // listener
- // This we avoid any concurrent modification exception
- for (Iterator<ResourceListener> iterator = listeners.iterator(); iterator.hasNext();) {
- ResourceListener resourceListener = iterator.next();
- resourceListener.resourceDeleted(resource);
- }
- // Non dirty editors should close themselves while editing a
- // deleted resource if any
- if (isDirty == false) {
- resource.unload();
- }
- }
- }
-
- public void reloadResource(Resource resource) {
- if (resource == null) {
- throw new IllegalArgumentException();
- }
- synchronized (resourceLoadedListener) {
- try {
- resource.unload();
- resource.load(Collections.EMPTY_MAP);
- } catch (IOException ioe) {
- resource.getErrors().add(new DiagnosticResourceException(resource, ioe));
- }
- for (Iterator<ResourceListener> iterator = listeners.iterator(); iterator.hasNext();) {
- ResourceListener resourceListener = iterator.next();
- resourceListener.resourceReloaded(resource);
- }
- }
- }
-
- public void movedResource(Resource movedResource, URI newURI) {
- if (newURI == null) {
- throw new IllegalArgumentException();
- }
- final TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
- synchronized (resourceLoadedListener) {
- ResourceSet resourceSet = editingDomain.getResourceSet();
- Resource resource = resourceSet.getResource(newURI, false);
- // Resource who can't open a physical resource raise exception
- // but are loaded
- // in the resource set, its flag is also set to isLoaded
- // we need to unload it otherwise our resource set will be messy
- // (two resources with the same URI)
- if (resource != null && resource.getContents().size() == 0 && resource.getErrors().isEmpty() == false) {
- resource.unload();
- resourceSet.getResources().remove(resource);
- if (EGFCorePlugin.getDefault().isDebugging()) {
- EGFPlatformPlugin.getDefault().logInfo(NLS.bind("TargetPlatformResourceLoadedListener$ResourceManager.movedResource(...) - discard loaded empty resource with errors ''{0}''", //$NON-NLS-1$
- URIHelper.toString(newURI)));
- }
- // Load it in our resource set
- movedResource = editingDomain.getResourceSet().getResource(newURI, true);
- } else {
- if (movedResource != null) {
- movedResource.setURI(newURI);
- }
- }
- if (movedResource != null) {
- URI oldURI = movedResource.getURI();
- for (Iterator<ResourceListener> iterator = listeners.iterator(); iterator.hasNext();) {
- ResourceListener resourceListener = iterator.next();
- resourceListener.resourceMoved(movedResource, oldURI);
- }
- }
- }
- }
-
- public boolean resourceHasBeenExternallyChanged(Resource resource) {
- if (resource == null) {
- throw new IllegalArgumentException();
- }
- synchronized (resourceLoadedListener) {
- List<ResourceUser> users = observers.get(resource);
- if (users == null) {
- return false;
- }
- boolean resourceHasBeenExternallyChanged = false;
- // This state is propagated, the first user is enough to check
- // this state
- for (ResourceUser user : users) {
- resourceHasBeenExternallyChanged = user.resourceHasBeenExternallyChanged();
- break;
- }
- return resourceHasBeenExternallyChanged;
- }
- }
-
- public void populateUndoContext(IOperationHistory operationHistory, ObjectUndoContext undoContext, Resource resource) {
- if (resource == null || undoContext == null) {
- throw new IllegalArgumentException();
- }
- synchronized (resourceLoadedListener) {
- List<ResourceUser> users = observers.get(resource);
- if (users == null) {
- return;
- }
- // Operation History is propagated, the first user is enough to
- // retrieve it
- ObjectUndoContext innerUndoContext = null;
- for (ResourceUser user : users) {
- if (user.getUndoContext() != undoContext) {
- innerUndoContext = user.getUndoContext();
- break;
- }
- }
- // Populate
- if (innerUndoContext != null) {
- for (IUndoableOperation operation : operationHistory.getUndoHistory(innerUndoContext)) {
- operation.addContext(undoContext);
- }
- for (IUndoableOperation operation : operationHistory.getRedoHistory(innerUndoContext)) {
- operation.addContext(undoContext);
- }
- }
- }
- }
-
- }
-
- /**
- * This listens for platform changes.
- */
- protected IPlatformExtensionPointListener platformListener = new IPlatformExtensionPointListener() {
-
- public void platformExtensionPointChanged(IPlatformExtensionPointDelta delta) {
-
- synchronized (PlatformResourceLoadedListener.this) {
-
- TransactionalEditingDomain editingDomain = getEditingDomain();
-
- List<Resource> deltaChangedFcores = new UniqueEList<Resource>();
-
- Map<Resource, IPlatformFcore> deltaRemovedFcores = new HashMap<Resource, IPlatformFcore>();
-
- // Check if removed platform fcores are applicable
- for (IPlatformFcore fcore : delta.getRemovedPlatformExtensionPoints(IPlatformFcore.class)) {
- Resource resource = editingDomain.getResourceSet().getResource(fcore.getURI(), false);
- if (resource == null) {
- continue;
- }
- deltaRemovedFcores.put(resource, fcore);
- }
-
- // Check if added platform fcores are applicable
- // if a removed platform fcore is also detected it means a
- // changed resource
- // eg: changed means target versus workspace fcore
- for (IPlatformFcore fcore : delta.getAddedPlatformExtensionPoints(IPlatformFcore.class)) {
- Resource resource = editingDomain.getResourceSet().getResource(fcore.getURI(), false);
- if (resource == null) {
- continue;
- }
- // Resource who can't open a physical resource raise
- // exception but are loaded in the resource set
- // we need to unload it to get a chance to load it again
- if (resource.getContents().size() == 0 && resource.getErrors().isEmpty() == false) {
- // start substitution removed resource if applicable
- IPlatformFcore deletedFcore = deltaRemovedFcores.get(resource);
- if (deletedFcore != null) {
- deltaRemovedFcores.remove(resource);
- }
- // Remove previous on error resource
- resource.unload();
- resource.getResourceSet().getResources().remove(resource);
- if (EGFCorePlugin.getDefault().isDebugging()) {
- EGFPlatformPlugin.getDefault().logInfo(NLS.bind("TargetPlatformResourceLoadedListener.platformExtensionPointChanged(...) - discard loaded empty resource with errors ''{0}''", //$NON-NLS-1$
- fcore.toString()));
- }
- // Load it in our resource set, beware the URIConverter
- // should be updated accordingly
- resource = editingDomain.getResourceSet().getResource(fcore.getURI(), true);
- if (resource == null) {
- continue;
- }
- // end substitution removed resource if applicable
- if (deletedFcore != null) {
- deltaRemovedFcores.put(resource, deletedFcore);
- }
- }
- if (deltaRemovedFcores.remove(resource) != null) {
- deltaChangedFcores.add(resource);
- }
- }
-
- // Process Removed Fcores
- if (deltaRemovedFcores.isEmpty() == false) {
- for (Resource resource : deltaRemovedFcores.keySet()) {
- getResourceManager().removeResource(resource);
- }
- }
-
- // Target and workspace update, this is not detected by other
- // listeners
- // This is safe to do it here
- if (deltaChangedFcores.isEmpty() == false) {
- for (Resource resource : deltaChangedFcores) {
- getResourceManager().reloadResource(resource);
- }
- }
-
- }
-
- }
-
- };
-
- private PlatformResourceLoadedListener() {
- // TODO WIU est ce bien utile ?
- // EGFPlatformPlugin.getPlatformManager().addPlatformExtensionPointListener(_platformListener);
- PDECore.getDefault().getModelManager().addPluginModelListener(listener);
- }
-
- private TransactionalEditingDomain getEditingDomain() {
- return TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
- }
-
- public synchronized boolean handleResourcePersisted(Resource resource) {
- for (Iterator<ResourceListener> iterator = getResourceManager().listeners.iterator(); iterator.hasNext();) {
- ResourceListener resourceListener = iterator.next();
- resourceListener.internalUpdate(resource);
- }
- return true;
- }
-
- public synchronized boolean handleResourceMoved(Resource movedResource, URI newURI) {
- // check whether or not we face a moved fcore to non fcore
- boolean isFcore = IPlatformFcoreConstants.FCORE_FILE_EXTENSION.equals(movedResource.getURI().fileExtension());
- boolean isMovedToFcore = IPlatformFcoreConstants.FCORE_FILE_EXTENSION.equals(newURI.fileExtension());
- // Not sure here is we need to let process non fcore file
- if ((isFcore && isMovedToFcore) || isFcore == false) {
- // Moved resource are always in non dirty editors
- // when moving a dirty resource the platform request to save the
- // resource
- // if not saved the resource is not moved
- Resource resource = getEditingDomain().getResourceSet().getResource(movedResource.getURI(), false);
- if (resource != null || getEditingDomain().getResourceSet().getResource(newURI, false) != null) {
- // Notify moved resource
- getResourceManager().movedResource(resource, newURI);
- }
- } else {
- // an fcore has moved to a non fcore resource, process a remove
- return handleResourceDeleted(movedResource);
- }
- return true;
- }
-
- public synchronized boolean handleResourceDeleted(Resource deletedResource) {
- IPlatformFcore fcore = EGFCorePlugin.getPlatformFcore(deletedResource);
- // Either a non Fcore resource or an already processed deleted fcore
- // from _platformListener
- if (fcore == null) {
- // _platformListener has been called first, Process workspace
- // removed fcores detected in _platformListener
- getResourceManager().removeResource(deletedResource);
- }
- return true;
- }
-
- public synchronized boolean handleResourceChanged(final Resource changedResource) {
- List<ResourceUser> users = getResourceManager().observers.get(changedResource);
- // No one edit this resource, process a standard reload
- if (users == null) {
- getResourceManager().reloadResource(changedResource);
- return true;
- }
- // Check the state of this edited resource
- boolean hasSavedResource = false;
- boolean isDirty = false;
- for (ResourceUser user : users) {
- // We need to deeply analyze users as anyone could have saved this
- // resource if any
- hasSavedResource |= user.userHasSavedResource();
- // This state is propagated, the first user is enough to check this
- // state
- isDirty |= user.isDirty();
- }
- // Nothing to do, we just reload the resource
- if (hasSavedResource == false && isDirty == false) {
- getResourceManager().reloadResource(changedResource);
- return true;
- }
- // Dirty resource
- if (hasSavedResource == false && isDirty) { // Give a chance to cancel
- // dirty editors while
- // reloading external
- // changed resource
- for (Iterator<ResourceListener> iterator = getResourceManager().listeners.iterator(); iterator.hasNext();) {
- ResourceListener resourceListener = iterator.next();
- resourceListener.externalUpdate(changedResource);
- }
- return true;
- }
- // Non dirty resource
- for (Iterator<ResourceListener> iterator = getResourceManager().listeners.iterator(); iterator.hasNext();) {
- ResourceListener resourceListener = iterator.next();
- resourceListener.internalUpdate(changedResource);
- }
- return true;
- }
-
- public synchronized void dispose() {
- PDECore.getDefault().getModelManager().removePluginModelListener(listener);
- EGFPlatformPlugin.getPlatformManager().removePlatformExtensionPointListener(platformListener);
- getResourceManager().dispose();
- resourceManager = null;
- }
-
- public class WorkspaceListener implements IPluginModelListener {
-
- public void modelsChanged(PluginModelDelta delta) {
- TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
- for (ModelEntry entry : delta.getChangedEntries()) {
- String id = entry.getId();
- for (Resource r : editingDomain.getResourceSet().getResources()) {
- if (id.equals(r.getURI().segment(1)))
- reloadResource(r);
- }
- }
- }
-
- private void reloadResource(Resource r) {
- System.out.println("reload " + r.getURI());
- r.unload();
- try {
- r.load(Collections.EMPTY_MAP);
- } catch (IOException e) {
- EGFPlatformPlugin.getDefault().logError(e);
- }
-
- }
-
- }
-
-}
+/**
+ * Copyright (c) 2009-2010 Thales Corporate Services S.A.S.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Thales Corporate Services S.A.S - initial API and implementation
+ */
+package org.eclipse.egf.core.domain;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.operations.IOperationHistory;
+import org.eclipse.core.commands.operations.IUndoableOperation;
+import org.eclipse.core.commands.operations.ObjectUndoContext;
+import org.eclipse.egf.common.helper.URIHelper;
+import org.eclipse.egf.core.EGFCorePlugin;
+import org.eclipse.egf.core.fcore.IPlatformFcore;
+import org.eclipse.egf.core.fcore.IPlatformFcoreConstants;
+import org.eclipse.egf.core.platform.EGFPlatformPlugin;
+import org.eclipse.egf.core.platform.pde.IPlatformExtensionPointDelta;
+import org.eclipse.egf.core.platform.pde.IPlatformExtensionPointListener;
+import org.eclipse.egf.core.workspace.EGFWorkspaceSynchronizer;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.pde.core.plugin.ModelEntry;
+import org.eclipse.pde.internal.core.IPluginModelListener;
+import org.eclipse.pde.internal.core.PDECore;
+import org.eclipse.pde.internal.core.PluginModelDelta;
+
+/**
+ * @author Thomas Guiu
+ *
+ */
+public final class PlatformResourceLoadedListener implements EGFWorkspaceSynchronizer.Delegate {
+
+ private static volatile PlatformResourceLoadedListener resourceLoadedListener = new PlatformResourceLoadedListener();
+
+ private static volatile ResourceManager resourceManager = new ResourceManager();
+
+ private final WorkspaceListener listener = new WorkspaceListener();
+
+ public static ResourceManager getResourceManager() {
+ return resourceManager;
+ }
+
+ public static PlatformResourceLoadedListener getResourceLoadedListener() {
+ return resourceLoadedListener;
+ }
+
+ public static interface ResourceUser {
+
+ public Resource getResource();
+
+ public ResourceListener getListener();
+
+ public boolean isDirty();
+
+ public boolean userHasSavedResource();
+
+ public boolean resourceHasBeenExternallyChanged();
+
+ public IOperationHistory getOperationHistory();
+
+ public ObjectUndoContext getUndoContext();
+
+ }
+
+ public static interface ResourceListener {
+
+ public void resourceDeleted(final Resource resource);
+
+ public void resourceMoved(final Resource resource, URI oldURI);
+
+ public void resourceReloaded(final Resource resource);
+
+ public void externalUpdate(final Resource resource);
+
+ public void internalUpdate(final Resource resource);
+
+ }
+
+ public static class ResourceManager {
+
+ final private List<ResourceListener> listeners = new ArrayList<ResourceListener>();
+
+ final private Map<Resource, List<ResourceUser>> observers = new HashMap<Resource, List<ResourceUser>>();
+
+ protected void dispose() {
+ listeners.clear();
+ observers.clear();
+ }
+
+ public void addObserver(ResourceUser resourceUser) {
+ synchronized (PlatformResourceLoadedListener.class) {
+ Resource resource = resourceUser.getResource();
+ List<ResourceUser> list = observers.get(resource);
+ if (list == null) {
+ list = new ArrayList<ResourceUser>();
+ observers.put(resource, list);
+ }
+ list.add(resourceUser);
+ listeners.add(resourceUser.getListener());
+ }
+ }
+
+ public void removeObserver(ResourceUser resourceUser) {
+ synchronized (resourceLoadedListener) {
+ Resource resource = resourceUser.getResource();
+ List<ResourceUser> list = observers.get(resource);
+ if (list == null) {
+ return;
+ }
+ list.remove(resourceUser);
+ if (list.isEmpty()) {
+ try {
+ resource.unload();
+ observers.remove(resource);
+ if (noMoreObserver() == false) {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ } catch (IOException ioe) {
+ resource.getErrors().add(new DiagnosticResourceException(resource, ioe));
+ }
+ }
+ listeners.remove(resourceUser.getListener());
+ if (noMoreObserver()) {
+ clear();
+ }
+ }
+ }
+
+ private void clear() {
+ // no editor is actually open, so let's unload all the resources
+ final TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
+ try {
+ editingDomain.runExclusive(new Runnable() {
+
+ public void run() {
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ for (Iterator<Resource> it = resourceSet.getResources().iterator(); it.hasNext();) {
+ Resource resource = it.next();
+ resource.unload();
+ it.remove();
+ }
+ }
+ });
+ if (EGFCorePlugin.getDefault().isDebugging()) {
+ EGFPlatformPlugin.getDefault().logInfo(NLS.bind("''{0}'' _ clear", EGFCorePlugin.EDITING_DOMAIN_ID)); //$NON-NLS-1$
+ }
+ } catch (InterruptedException e) {
+ EGFCorePlugin.getDefault().logError(e);
+ }
+ }
+
+ private boolean noMoreObserver() {
+ for (List<ResourceUser> users : observers.values()) {
+ if (users.isEmpty() == false) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public void removeResource(Resource resource) {
+ if (resource == null) {
+ throw new IllegalArgumentException();
+ }
+ synchronized (resourceLoadedListener) {
+ boolean isDirty = false;
+ // Check whether or not we are editing the current resource
+ List<ResourceUser> users = observers.get(resource);
+ if (users != null) {
+ for (ResourceUser user : users) {
+ // This state is propagated, the first user is enough to
+ // check this state
+ isDirty = user.isDirty();
+ break;
+ }
+ }
+ // Notify, use an iterator as a closing editor always remove its
+ // listener
+ // This we avoid any concurrent modification exception
+ for (Iterator<ResourceListener> iterator = listeners.iterator(); iterator.hasNext();) {
+ ResourceListener resourceListener = iterator.next();
+ resourceListener.resourceDeleted(resource);
+ }
+ // Non dirty editors should close themselves while editing a
+ // deleted resource if any
+ if (isDirty == false) {
+ resource.unload();
+ }
+ }
+ }
+
+ public void reloadResource(Resource resource) {
+ if (resource == null) {
+ throw new IllegalArgumentException();
+ }
+ synchronized (resourceLoadedListener) {
+ try {
+ resource.unload();
+ resource.load(Collections.EMPTY_MAP);
+ } catch (IOException ioe) {
+ resource.getErrors().add(new DiagnosticResourceException(resource, ioe));
+ }
+ for (Iterator<ResourceListener> iterator = listeners.iterator(); iterator.hasNext();) {
+ ResourceListener resourceListener = iterator.next();
+ resourceListener.resourceReloaded(resource);
+ }
+ }
+ }
+
+ public void movedResource(Resource movedResource, URI newURI) {
+ if (newURI == null) {
+ throw new IllegalArgumentException();
+ }
+ final TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
+ synchronized (resourceLoadedListener) {
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ Resource resource = resourceSet.getResource(newURI, false);
+ // Resource who can't open a physical resource raise exception
+ // but are loaded
+ // in the resource set, its flag is also set to isLoaded
+ // we need to unload it otherwise our resource set will be messy
+ // (two resources with the same URI)
+ if (resource != null && resource.getContents().size() == 0 && resource.getErrors().isEmpty() == false) {
+ resource.unload();
+ resourceSet.getResources().remove(resource);
+ if (EGFCorePlugin.getDefault().isDebugging()) {
+ EGFPlatformPlugin.getDefault().logInfo(NLS.bind("TargetPlatformResourceLoadedListener$ResourceManager.movedResource(...) - discard loaded empty resource with errors ''{0}''", //$NON-NLS-1$
+ URIHelper.toString(newURI)));
+ }
+ // Load it in our resource set
+ movedResource = editingDomain.getResourceSet().getResource(newURI, true);
+ } else {
+ if (movedResource != null) {
+ movedResource.setURI(newURI);
+ }
+ }
+ if (movedResource != null) {
+ URI oldURI = movedResource.getURI();
+ for (Iterator<ResourceListener> iterator = listeners.iterator(); iterator.hasNext();) {
+ ResourceListener resourceListener = iterator.next();
+ resourceListener.resourceMoved(movedResource, oldURI);
+ }
+ }
+ }
+ }
+
+ public boolean resourceHasBeenExternallyChanged(Resource resource) {
+ if (resource == null) {
+ throw new IllegalArgumentException();
+ }
+ synchronized (resourceLoadedListener) {
+ List<ResourceUser> users = observers.get(resource);
+ if (users == null) {
+ return false;
+ }
+ boolean resourceHasBeenExternallyChanged = false;
+ // This state is propagated, the first user is enough to check
+ // this state
+ for (ResourceUser user : users) {
+ resourceHasBeenExternallyChanged = user.resourceHasBeenExternallyChanged();
+ break;
+ }
+ return resourceHasBeenExternallyChanged;
+ }
+ }
+
+ public void populateUndoContext(IOperationHistory operationHistory, ObjectUndoContext undoContext, Resource resource) {
+ if (resource == null || undoContext == null) {
+ throw new IllegalArgumentException();
+ }
+ synchronized (resourceLoadedListener) {
+ List<ResourceUser> users = observers.get(resource);
+ if (users == null) {
+ return;
+ }
+ // Operation History is propagated, the first user is enough to
+ // retrieve it
+ ObjectUndoContext innerUndoContext = null;
+ for (ResourceUser user : users) {
+ if (user.getUndoContext() != undoContext) {
+ innerUndoContext = user.getUndoContext();
+ break;
+ }
+ }
+ // Populate
+ if (innerUndoContext != null) {
+ for (IUndoableOperation operation : operationHistory.getUndoHistory(innerUndoContext)) {
+ operation.addContext(undoContext);
+ }
+ for (IUndoableOperation operation : operationHistory.getRedoHistory(innerUndoContext)) {
+ operation.addContext(undoContext);
+ }
+ }
+ }
+ }
+
+ }
+
+ /**
+ * This listens for platform changes.
+ */
+ protected IPlatformExtensionPointListener platformListener = new IPlatformExtensionPointListener() {
+
+ public void platformExtensionPointChanged(IPlatformExtensionPointDelta delta) {
+
+ synchronized (PlatformResourceLoadedListener.this) {
+
+ TransactionalEditingDomain editingDomain = getEditingDomain();
+
+ List<Resource> deltaChangedFcores = new UniqueEList<Resource>();
+
+ Map<Resource, IPlatformFcore> deltaRemovedFcores = new HashMap<Resource, IPlatformFcore>();
+
+ // Check if removed platform fcores are applicable
+ for (IPlatformFcore fcore : delta.getRemovedPlatformExtensionPoints(IPlatformFcore.class)) {
+ Resource resource = editingDomain.getResourceSet().getResource(fcore.getURI(), false);
+ if (resource == null) {
+ continue;
+ }
+ deltaRemovedFcores.put(resource, fcore);
+ }
+
+ // Check if added platform fcores are applicable
+ // if a removed platform fcore is also detected it means a
+ // changed resource
+ // eg: changed means target versus workspace fcore
+ for (IPlatformFcore fcore : delta.getAddedPlatformExtensionPoints(IPlatformFcore.class)) {
+ Resource resource = editingDomain.getResourceSet().getResource(fcore.getURI(), false);
+ if (resource == null) {
+ continue;
+ }
+ // Resource who can't open a physical resource raise
+ // exception but are loaded in the resource set
+ // we need to unload it to get a chance to load it again
+ if (resource.getContents().size() == 0 && resource.getErrors().isEmpty() == false) {
+ // start substitution removed resource if applicable
+ IPlatformFcore deletedFcore = deltaRemovedFcores.get(resource);
+ if (deletedFcore != null) {
+ deltaRemovedFcores.remove(resource);
+ }
+ // Remove previous on error resource
+ resource.unload();
+ resource.getResourceSet().getResources().remove(resource);
+ if (EGFCorePlugin.getDefault().isDebugging()) {
+ EGFPlatformPlugin.getDefault().logInfo(NLS.bind("TargetPlatformResourceLoadedListener.platformExtensionPointChanged(...) - discard loaded empty resource with errors ''{0}''", //$NON-NLS-1$
+ fcore.toString()));
+ }
+ // Load it in our resource set, beware the URIConverter
+ // should be updated accordingly
+ resource = editingDomain.getResourceSet().getResource(fcore.getURI(), true);
+ if (resource == null) {
+ continue;
+ }
+ // end substitution removed resource if applicable
+ if (deletedFcore != null) {
+ deltaRemovedFcores.put(resource, deletedFcore);
+ }
+ }
+ if (deltaRemovedFcores.remove(resource) != null) {
+ deltaChangedFcores.add(resource);
+ }
+ }
+
+ // Process Removed Fcores
+ if (deltaRemovedFcores.isEmpty() == false) {
+ for (Resource resource : deltaRemovedFcores.keySet()) {
+ getResourceManager().removeResource(resource);
+ }
+ }
+
+ // Target and workspace update, this is not detected by other
+ // listeners
+ // This is safe to do it here
+ if (deltaChangedFcores.isEmpty() == false) {
+ for (Resource resource : deltaChangedFcores) {
+ getResourceManager().reloadResource(resource);
+ }
+ }
+
+ }
+
+ }
+
+ };
+
+ private PlatformResourceLoadedListener() {
+ // EGFPlatformPlugin.getPlatformManager().addPlatformExtensionPointListener(_platformListener);
+ PDECore.getDefault().getModelManager().addPluginModelListener(listener);
+ }
+
+ private TransactionalEditingDomain getEditingDomain() {
+ return TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
+ }
+
+ public synchronized boolean handleResourcePersisted(Resource resource) {
+ for (Iterator<ResourceListener> iterator = getResourceManager().listeners.iterator(); iterator.hasNext();) {
+ ResourceListener resourceListener = iterator.next();
+ resourceListener.internalUpdate(resource);
+ }
+ return true;
+ }
+
+ public synchronized boolean handleResourceMoved(Resource movedResource, URI newURI) {
+ // check whether or not we face a moved fcore to non fcore
+ boolean isFcore = IPlatformFcoreConstants.FCORE_FILE_EXTENSION.equals(movedResource.getURI().fileExtension());
+ boolean isMovedToFcore = IPlatformFcoreConstants.FCORE_FILE_EXTENSION.equals(newURI.fileExtension());
+ // Not sure here is we need to let process non fcore file
+ if ((isFcore && isMovedToFcore) || isFcore == false) {
+ // Moved resource are always in non dirty editors
+ // when moving a dirty resource the platform request to save the
+ // resource
+ // if not saved the resource is not moved
+ Resource resource = getEditingDomain().getResourceSet().getResource(movedResource.getURI(), false);
+ if (resource != null || getEditingDomain().getResourceSet().getResource(newURI, false) != null) {
+ // Notify moved resource
+ getResourceManager().movedResource(resource, newURI);
+ }
+ } else {
+ // an fcore has moved to a non fcore resource, process a remove
+ return handleResourceDeleted(movedResource);
+ }
+ return true;
+ }
+
+ public synchronized boolean handleResourceDeleted(Resource deletedResource) {
+ IPlatformFcore fcore = EGFCorePlugin.getPlatformFcore(deletedResource);
+ // Either a non Fcore resource or an already processed deleted fcore
+ // from _platformListener
+ if (fcore == null) {
+ // _platformListener has been called first, Process workspace
+ // removed fcores detected in _platformListener
+ getResourceManager().removeResource(deletedResource);
+ }
+ return true;
+ }
+
+ public synchronized boolean handleResourceChanged(final Resource changedResource) {
+ List<ResourceUser> users = getResourceManager().observers.get(changedResource);
+ // No one edit this resource, process a standard reload
+ if (users == null) {
+ getResourceManager().reloadResource(changedResource);
+ return true;
+ }
+ // Check the state of this edited resource
+ boolean hasSavedResource = false;
+ boolean isDirty = false;
+ for (ResourceUser user : users) {
+ // We need to deeply analyze users as anyone could have saved this
+ // resource if any
+ hasSavedResource |= user.userHasSavedResource();
+ // This state is propagated, the first user is enough to check this
+ // state
+ isDirty |= user.isDirty();
+ }
+ // Nothing to do, we just reload the resource
+ if (hasSavedResource == false && isDirty == false) {
+ getResourceManager().reloadResource(changedResource);
+ return true;
+ }
+ // Dirty resource
+ if (hasSavedResource == false && isDirty) { // Give a chance to cancel
+ // dirty editors while
+ // reloading external
+ // changed resource
+ for (Iterator<ResourceListener> iterator = getResourceManager().listeners.iterator(); iterator.hasNext();) {
+ ResourceListener resourceListener = iterator.next();
+ resourceListener.externalUpdate(changedResource);
+ }
+ return true;
+ }
+ // Non dirty resource
+ for (Iterator<ResourceListener> iterator = getResourceManager().listeners.iterator(); iterator.hasNext();) {
+ ResourceListener resourceListener = iterator.next();
+ resourceListener.internalUpdate(changedResource);
+ }
+ return true;
+ }
+
+ public synchronized void dispose() {
+ PDECore.getDefault().getModelManager().removePluginModelListener(listener);
+ EGFPlatformPlugin.getPlatformManager().removePlatformExtensionPointListener(platformListener);
+ getResourceManager().dispose();
+ resourceManager = null;
+ }
+
+ public class WorkspaceListener implements IPluginModelListener {
+
+ public void modelsChanged(PluginModelDelta delta) {
+ TransactionalEditingDomain editingDomain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(EGFCorePlugin.EDITING_DOMAIN_ID);
+ for (ModelEntry entry : delta.getChangedEntries()) {
+ String id = entry.getId();
+ for (Resource r : editingDomain.getResourceSet().getResources()) {
+ if (id.equals(r.getURI().segment(1)))
+ reloadResource(r);
+ }
+ }
+ }
+
+ private void reloadResource(Resource r) {
+ System.out.println("reload " + r.getURI());
+ r.unload();
+ try {
+ r.load(Collections.EMPTY_MAP);
+ } catch (IOException e) {
+ EGFPlatformPlugin.getDefault().logError(e);
+ }
+
+ }
+
+ }
+
+}
diff --git a/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/RuntimePlatformResourceSet.java b/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/RuntimePlatformResourceSet.java
index 6c55b8b..fa11acd 100644
--- a/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/RuntimePlatformResourceSet.java
+++ b/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/RuntimePlatformResourceSet.java
@@ -14,8 +14,7 @@
* @author Xavier Maysonnave
*
*/
-
-//TODO WIU a virer
+//kept for compatibility
public class RuntimePlatformResourceSet extends EgfResourceSet {
public RuntimePlatformResourceSet() {
diff --git a/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/TargetPlatformResourceSet.java b/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/TargetPlatformResourceSet.java
index 1419a9a..b5939ca 100644
--- a/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/TargetPlatformResourceSet.java
+++ b/plugins/org.eclipse.egf.core/src/org/eclipse/egf/core/domain/TargetPlatformResourceSet.java
@@ -15,7 +15,7 @@
*
*/
-//TODO a virer
+// kept for compatibility
public class TargetPlatformResourceSet extends EgfResourceSet {
}
diff --git a/plugins/org.eclipse.egf.model/generated/org/eclipse/egf/model/types/util/TypesValidator.java b/plugins/org.eclipse.egf.model/generated/org/eclipse/egf/model/types/util/TypesValidator.java
index 7c21f29..05f2050 100644
--- a/plugins/org.eclipse.egf.model/generated/org/eclipse/egf/model/types/util/TypesValidator.java
+++ b/plugins/org.eclipse.egf.model/generated/org/eclipse/egf/model/types/util/TypesValidator.java
@@ -936,17 +936,7 @@
InputStream inputStream = null;
// Try to open an InputStream
try {
- //TODO WIU switch runtime
- // if (typeURI.eResource() != null && typeURI.eResource() instanceof IPlatformFcoreProvider) {
- // IPlatformFcore fcore = ((IPlatformFcoreProvider) typeURI.eResource()).getIPlatformFcore();
- // if (fcore != null && fcore.isRuntime()) {
- // inputStream = EGFPlatformPlugin.getRuntimePlatformURIConverter().createInputStream(uri);
- // } else {
- // inputStream = EGFPlatformPlugin.getPlatformURIConverter().createInputStream(uri);
- // }
- // } else {
inputStream = EGFPlatformPlugin.getPlatformURIConverter().createInputStream(uri);
- // }
} catch (IOException exception) {
valid = false;
}
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/buckminster.cspec b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/buckminster.cspec
index f6aded1..c39fe9a 100644
--- a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/buckminster.cspec
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/buckminster.cspec
@@ -4,6 +4,16 @@
-->
<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="BuildStep_10" componentType="buckminster" version="1.0.0">
<cs:dependencies>
+ <cs:dependency name="org.eclipse.egf.test" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.portfolio.task.ant.test" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.sdk" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.examples" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.portfolio.acceleo3" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.portfolio.acceleo3.examples" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.portfolio.atl" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.portfolio.atl.examples" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.portfolio.genchain.ecoretools" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.egf.releng2" componentType="osgi.bundle"/>
<cs:dependency name="org.eclipse.equinox.executable" componentType="eclipse.feature"/>
<cs:dependency name="org.eclipse.rcp" componentType="eclipse.feature"/>
</cs:dependencies>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.rmap b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.rmap
index 8528f57..f573c00 100644
--- a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.rmap
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.rmap
@@ -22,8 +22,204 @@
</searchPath>
- <locator searchPathRef="BuildStep_10_UpdateSiteBuildLocation_1" failOnError="false" />
- <searchPath name="BuildStep_10_UpdateSiteBuildLocation_1">
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_1" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_1">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/plugins/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/plugins/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,plugins/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_2" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_2">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/doc/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/doc/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,doc/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_3" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_3">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/examples/workspace/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/examples/workspace/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,examples/workspace/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_4" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_4">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/features/{1}.feature">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/features/{1}.feature">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,features/{1}.feature">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_5" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_5">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/portfolio/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/portfolio/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,portfolio/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_6" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_6">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/tests/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/tests/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,tests/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_GITBuildLocation_7" pattern="^org\.eclipse\.egf.*" failOnError="false" />
+ <searchPath name="BuildStep_10_GITBuildLocation_7">
+ <!-- provider for windows if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file:/{0}/git/git_eclipse/releng/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- provider for unix if checkouted with Hudson -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="local" source="true">
+ <uri format="file://{0}/git/git_eclipse/releng/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ <!-- standalone provider -->
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="git" source="true">
+ <property key="git.remote.uri" value="https://:@git.eclipse.org/r/egf/org.eclipse.emf.egf"/>
+ <property key="git.auto.fetch" value="true"/>
+ <uri format="{0}/git,releng/{1}">
+ <bc:propertyRef key="build.root" />
+ <bc:propertyRef key="buckminster.component" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_UpdateSiteBuildLocation_8" failOnError="false" />
+ <searchPath name="BuildStep_10_UpdateSiteBuildLocation_8">
<provider componentTypes="eclipse.feature,osgi.bundle" readerType="p2" source="false" mutable="false">
<uri format="{0}">
<bc:replace>
@@ -34,4 +230,30 @@
</provider>
</searchPath>
+
+ <locator searchPathRef="BuildStep_10_UpdateSiteBuildLocation_9" failOnError="false" />
+ <searchPath name="BuildStep_10_UpdateSiteBuildLocation_9">
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="p2" source="false" mutable="false">
+ <uri format="{0}">
+ <bc:replace>
+ <bc:constant value="${ecoretoolsSiteURL}" />
+ <bc:match pattern="\\" replacement="/" />
+ </bc:replace>
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_10_UpdateSiteBuildLocation_10" pattern="^" failOnError="false" />
+ <searchPath name="BuildStep_10_UpdateSiteBuildLocation_10">
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="p2" source="false" mutable="false">
+ <uri format="{0}">
+ <bc:replace>
+ <bc:constant value="${siriusSiteURL}" />
+ <bc:match pattern="\\" replacement="/" />
+ </bc:replace>
+ </uri>
+ </provider>
+ </searchPath>
+
</rmap>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.target b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.target
index 0575399..4de7f84 100644
--- a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.target
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_10/build.target
@@ -7,5 +7,7 @@
<target name="build.target">
<locations>
<location path="${workspace_loc}/../tp" type="Directory"/>
+ <location path="${workspace_loc}/../tp" type="Directory"/>
+ <location path="${workspace_loc}/../tp" type="Directory"/>
</locations>
</target>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/buckminster.ant b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/buckminster.ant
new file mode 100644
index 0000000..31fdf18
--- /dev/null
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/buckminster.ant
@@ -0,0 +1,7 @@
+<project>
+ <import file="${buckminster.pdetasks}"/>
+
+ <target name="convertSiteToRuntime">
+ <buckminster.convertSiteToRuntime siteDir="${siteDir}" />
+ </target>
+</project>
\ No newline at end of file
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/buckminster.cspec b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/buckminster.cspec
new file mode 100644
index 0000000..b1b3f13
--- /dev/null
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/buckminster.cspec
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file was generated by Eclipse EGF
+-->
+<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="BuildStep_12" componentType="buckminster" version="1.0.0">
+ <cs:dependencies>
+ <cs:dependency name="org.eclipse.equinox.executable" componentType="eclipse.feature"/>
+ <cs:dependency name="org.eclipse.rcp" componentType="eclipse.feature"/>
+ </cs:dependencies>
+
+ <cs:actions>
+ <cs:public name="convertSiteToRuntime" actor="ant">
+ <cs:actorProperties>
+ <cs:property key="buildFile" value="buckminster.ant"/>
+ <cs:property key="targets" value="convertSiteToRuntime"/>
+ </cs:actorProperties>
+ </cs:public>
+ </cs:actions>
+</cs:cspec>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.cquery b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.cquery
new file mode 100644
index 0000000..82f777d
--- /dev/null
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.cquery
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file was generated by Eclipse EGF
+-->
+<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="build.rmap">
+ <cq:rootRequest name="BuildStep_12" componentType="buckminster"/>
+
+ <!-- we ignore source plugin and feature by default -->
+ <cq:advisorNode namePattern=".*\.source" skipComponent="true"/>
+
+ <cq:advisorNode namePattern=".*" useMaterialization="false" useTargetPlatform="false"/>
+</cq:componentQuery>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.mspec b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.mspec
new file mode 100644
index 0000000..a356729
--- /dev/null
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.mspec
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file was generated by Eclipse EGF
+-->
+<mspec:mspec xmlns:mspec="http://www.eclipse.org/buckminster/MetaData-1.0" materializer="p2" name="build.mspec" url="build.cquery">
+ <mspec:mspecNode materializer="workspace" namePattern="" filter="(buckminster.source=true)"/>
+</mspec:mspec>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.rmap b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.rmap
new file mode 100644
index 0000000..52216b2
--- /dev/null
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.rmap
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file was generated by Eclipse EGF
+-->
+<rmap xmlns="http://www.eclipse.org/buckminster/RMap-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mp="http://www.eclipse.org/buckminster/MavenProvider-1.0"
+ xmlns:pmp="http://www.eclipse.org/buckminster/PDEMapProvider-1.0" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
+
+ <locator searchPathRef="buckminster" failOnError="false" />
+ <searchPath name="buckminster">
+ <!-- buckminster provider for windows -->
+ <provider componentTypes="buckminster" readerType="local" source="true">
+ <uri format="file:/{0}/buckminster_BuildStep_12">
+ <bc:propertyRef key="relengDir" />
+ </uri>
+ </provider>
+ <!-- buckminster provider for unix -->
+ <provider componentTypes="buckminster" readerType="local" source="true">
+ <uri format="file://{0}/buckminster_BuildStep_12">
+ <bc:propertyRef key="relengDir" />
+ </uri>
+ </provider>
+ </searchPath>
+
+
+ <locator searchPathRef="BuildStep_12_UpdateSiteBuildLocation_1" failOnError="false" />
+ <searchPath name="BuildStep_12_UpdateSiteBuildLocation_1">
+ <provider componentTypes="eclipse.feature,osgi.bundle" readerType="p2" source="false" mutable="false">
+ <uri format="{0}">
+ <bc:replace>
+ <bc:constant value="${updateSiteURL}" />
+ <bc:match pattern="\\" replacement="/" />
+ </bc:replace>
+ </uri>
+ </provider>
+ </searchPath>
+
+</rmap>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.target b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.target
new file mode 100644
index 0000000..0575399
--- /dev/null
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/buckminster_BuildStep_12/build.target
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+This file was generated by Eclipse EGF
+-->
+<?pde version="3.5"?>
+
+<target name="build.target">
+ <locations>
+ <location path="${workspace_loc}/../tp" type="Directory"/>
+ </locations>
+</target>
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.properties b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.properties
index afd5b75..c75b027 100644
--- a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.properties
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.properties
@@ -1,52 +1,52 @@
#This file was generated by Eclipse EGF
-
-#site servers
-eclipse.download.prefix=http://download.eclipse.org
-cloudsmith.download.prefix=http://download.cloudsmith.com
-polarion.download.prefix=http://community.polarion.com
-
-#director
-director.url=${eclipse.download.prefix}/tools/buckminster/products/director_latest.zip
-
-#buckminster installation
-buckminster.release=4.2
-bm.headless.site=${eclipse.download.prefix}/tools/buckminster/headless-${buckminster.release}
-bm.external.site=${cloudsmith.download.prefix}/buckminster/external-${buckminster.release}
-polarion.site=${polarion.download.prefix}/projects/subversive/download/eclipse/2.0/update-site/
-
-#egf installation
-egf.release=helios
-egf.site=${eclipse.download.prefix}/egf/updates/${egf.release}/official/
-egf.eclipse.site=${eclipse.download.prefix}/releases/${egf.release}
-
-#buckminster build
-buckminster.loglevel=INFO
-buckminster.output.root=${result}/output
-buckminster.temp.root=${result}/temp
-
-#buckminster qualifier
-qualifier.replacement.*=generator:buildTimestamp
-generator.buildTimestamp.format='v'yyyyMMdd-HHmm
-
-#buckminster signing
-signing.type=eclipse.local
-eclipse.staging.area=${result}/signing
-site.pack200=true
-site.retain.unpacked=true
-
-#buckminster : do not generate version range in manifest.mf and content.jar
-pde.bundle.range.generation=false
-
-build.root=${relengDir}/../workspace
-tools=${build.root}/tools
-result=${build.root}/result
-publish=${result}/publish
-workspace=${result}/workspace
-timestamp=${myTimestamp}
-releaseName=mars
-updateSiteURL=${eclipse.download.prefix}/releases/${releaseName}
-ecoretoolsSiteURL=${eclipse.download.prefix}/ecoretools/updates/nightly/3.0.x/luna
-siriusSiteURL=http://download.eclipse.org/sirius/updates/milestones/3.0.0rc2/mars
-eclipse.download.prefix=file:/home/data/httpd/download.eclipse.org
-eclipse.staging.area=/shared/download-staging.priv/modeling/egf/
-git.branch=master
+
+#site servers
+eclipse.download.prefix=http://download.eclipse.org
+cloudsmith.download.prefix=http://download.cloudsmith.com
+polarion.download.prefix=http://community.polarion.com
+
+#director
+director.url=${eclipse.download.prefix}/tools/buckminster/products/director_latest.zip
+
+#buckminster installation
+buckminster.release=4.2
+bm.headless.site=${eclipse.download.prefix}/tools/buckminster/headless-${buckminster.release}
+bm.external.site=${cloudsmith.download.prefix}/buckminster/external-${buckminster.release}
+polarion.site=${polarion.download.prefix}/projects/subversive/download/eclipse/2.0/update-site/
+
+#egf installation
+egf.release=helios
+egf.site=${eclipse.download.prefix}/egf/updates/${egf.release}/official/
+egf.eclipse.site=${eclipse.download.prefix}/releases/${egf.release}
+
+#buckminster build
+buckminster.loglevel=INFO
+buckminster.output.root=${result}/output
+buckminster.temp.root=${result}/temp
+
+#buckminster qualifier
+qualifier.replacement.*=generator:buildTimestamp
+generator.buildTimestamp.format='v'yyyyMMdd-HHmm
+
+#buckminster signing
+signing.type=eclipse.local
+eclipse.staging.area=${result}/signing
+site.pack200=true
+site.retain.unpacked=true
+
+#buckminster : do not generate version range in manifest.mf and content.jar
+pde.bundle.range.generation=false
+
+build.root=${relengDir}/../workspace
+tools=${build.root}/tools
+result=${build.root}/result
+publish=${result}/publish
+workspace=${result}/workspace
+timestamp=${myTimestamp}
+releaseName=mars
+updateSiteURL=${eclipse.download.prefix}/releases/${releaseName}
+ecoretoolsSiteURL=${eclipse.download.prefix}/ecoretools/updates/nightly/3.0.x/luna
+siriusSiteURL=http://download.eclipse.org/sirius/updates/milestones/3.0.0rc2/mars
+eclipse.download.prefix=file:/home/data/httpd/download.eclipse.org
+eclipse.staging.area=/shared/download-staging.priv/modeling/egf/
+git.branch=master
diff --git a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.xml b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.xml
index 922f80d..993599c 100644
--- a/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.xml
+++ b/releng/org.eclipse.egf.releng2/jobs/buckminster-egf-mars/releng/build.xml
@@ -315,14 +315,14 @@
</echoproperties>
</target>
- <target name="all" depends="CleanStep_1,CleanStep_2,BuildStep_3,PublishStep_4,PublishStep_5,InstallStep_6,AntStep_7,CleanStep_8,BuildStep_9,AntStep_10,BuildStep_11,TestStep_12,TestStep_13,EgfStep_14,PublishStep_15,EgfStep_16,PublishStep_17,EgfStep_18,PublishStep_19,PublishStep_20,AggregateStep_21,AntStep_22,JavadocStep_23" />
+ <target name="all" depends="CleanStep_1,CleanStep_2,BuildStep_3,PublishStep_4,PublishStep_5,InstallStep_6,InstallStep_7,AntStep_8,CleanStep_9,BuildStep_10,AntStep_11,BuildStep_12,TestStep_13,TestStep_14,EgfStep_15,PublishStep_16,EgfStep_17,PublishStep_18,EgfStep_19,PublishStep_20,PublishStep_21,AggregateStep_22,AntStep_23,JavadocStep_24" />
<target name="CleanStep_1" >
<antcall target="clean.result" />
</target>
<target name="CleanStep_2" >
<antcall target="clean.workspace" />
</target>
- <target name="CleanStep_8" >
+ <target name="CleanStep_9" >
<antcall target="clean.result" />
</target>
<target name="BuildStep_3" depends="init,install.buckminster">
@@ -362,7 +362,7 @@
</buckminster>
</target>
- <target name="BuildStep_9" depends="init,install.buckminster">
+ <target name="BuildStep_10" depends="init,install.buckminster">
<echo message="Importing projects into workspace ${workspace} and binaries into target platform" />
<echo message="install JRE ${env.JAVA_HOME}" />
@@ -378,14 +378,14 @@
<buckminster command="importtargetdefinition">
<cmdargs>
<arg value="--active" />
- <arg value="${relengDir}/buckminster_BuildStep_9/build.target" />
+ <arg value="${relengDir}/buckminster_BuildStep_10/build.target" />
</cmdargs>
</buckminster>
<echo message="provision : import projects in workspace" />
<buckminster command="import">
<!-- Uncomment to debug <globargs><jvmarg value="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"/></globargs> -->
<cmdargs>
- <arg value="${relengDir}/buckminster_BuildStep_9/build.mspec" />
+ <arg value="${relengDir}/buckminster_BuildStep_10/build.mspec" />
</cmdargs>
</buckminster>
@@ -393,7 +393,7 @@
<echo message="No builders invocation specified" />
</target>
- <target name="BuildStep_11" depends="init,install.buckminster">
+ <target name="BuildStep_12" depends="init,install.buckminster">
<echo message="Importing projects into workspace ${workspace} and binaries into target platform" />
<echo message="install JRE ${env.JAVA_HOME}" />
@@ -409,14 +409,14 @@
<buckminster command="importtargetdefinition">
<cmdargs>
<arg value="--active" />
- <arg value="${relengDir}/buckminster_BuildStep_11/build.target" />
+ <arg value="${relengDir}/buckminster_BuildStep_12/build.target" />
</cmdargs>
</buckminster>
<echo message="provision : import projects in workspace" />
<buckminster command="import">
<!-- Uncomment to debug <globargs><jvmarg value="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y"/></globargs> -->
<cmdargs>
- <arg value="${relengDir}/buckminster_BuildStep_11/build.mspec" />
+ <arg value="${relengDir}/buckminster_BuildStep_12/build.mspec" />
</cmdargs>
</buckminster>
@@ -488,7 +488,7 @@
</target>
- <target name="PublishStep_15" depends="init,install.buckminster" >
+ <target name="PublishStep_16" depends="init,install.buckminster" >
<echo message="Generate Site"/>
@@ -517,7 +517,7 @@
</target>
- <target name="PublishStep_17" depends="init,install.buckminster" >
+ <target name="PublishStep_18" depends="init,install.buckminster" >
<echo message="Generate Site"/>
@@ -546,7 +546,7 @@
</target>
- <target name="PublishStep_19" depends="init,install.buckminster" >
+ <target name="PublishStep_20" depends="init,install.buckminster" >
<echo message="Generate Site"/>
@@ -575,7 +575,7 @@
</target>
- <target name="PublishStep_20" depends="init,install.buckminster" >
+ <target name="PublishStep_21" depends="init,install.buckminster" >
<echo message="Generate Site"/>
@@ -604,26 +604,12 @@
</target>
- <target name="TestStep_12" depends="init,install.buckminster">
- <echo message="Running Junit tests " />
- <buckminster command="junit">
- <cmdargs>
- <arg value="-l" />
- <arg value="org.eclipse.egf.core.test/EGF_Core_Tests.launch" />
- <arg value="-o" />
- <arg value="${result}/testReportTestStep_12.xml" />
- <arg value="--terseXML" />
- <arg value="--flatXML"/>
- </cmdargs>
- </buckminster>
- </target>
-
<target name="TestStep_13" depends="init,install.buckminster">
<echo message="Running Junit tests " />
<buckminster command="junit">
<cmdargs>
<arg value="-l" />
- <arg value="org.eclipse.egf.portfolio.task.ant.test/Ant_Tests.launch" />
+ <arg value="org.eclipse.egf.core.test/EGF_Core_Tests.launch" />
<arg value="-o" />
<arg value="${result}/testReportTestStep_13.xml" />
<arg value="--terseXML" />
@@ -632,8 +618,22 @@
</buckminster>
</target>
+ <target name="TestStep_14" depends="init,install.buckminster">
+ <echo message="Running Junit tests " />
+ <buckminster command="junit">
+ <cmdargs>
+ <arg value="-l" />
+ <arg value="org.eclipse.egf.portfolio.task.ant.test/Ant_Tests.launch" />
+ <arg value="-o" />
+ <arg value="${result}/testReportTestStep_14.xml" />
+ <arg value="--terseXML" />
+ <arg value="--flatXML"/>
+ </cmdargs>
+ </buckminster>
+ </target>
- <target name="AntStep_7">
+
+ <target name="AntStep_8">
<antcall target="copy_egf_to_tools"/>
</target>
@@ -644,7 +644,7 @@
</copy>
</target>
- <target name="AntStep_10" depends="init,install.egf" >
+ <target name="AntStep_11" depends="init,install.egf" >
<anteclipse target="recompile_egf_patterns" />
</target>
@@ -656,7 +656,7 @@
</target>
- <target name="AntStep_22">
+ <target name="AntStep_23">
<antcall target="stats"/>
</target>
@@ -678,7 +678,7 @@
<delete file="${p2.site.path}/artifacts.xml.orig" />
</target>
- <target name="JavadocStep_23">
+ <target name="JavadocStep_24">
<delete dir="${build.root}/../javadoc" />
<javadoc
destdir="${build.root}/../javadoc"
@@ -709,7 +709,7 @@
</javadoc>
</target>
- <target name="EgfStep_14" depends="init,install.egf">
+ <target name="EgfStep_15" depends="init,install.egf">
<egf>
<globargs>
<jvmarg value="-Degf.target.bundle.priority=true" />
@@ -722,7 +722,7 @@
</activities>
</egf>
</target>
- <target name="EgfStep_16" depends="init,install.egf">
+ <target name="EgfStep_17" depends="init,install.egf">
<egf>
<globargs>
<jvmarg value="-Degf.target.bundle.priority=true" />
@@ -735,7 +735,7 @@
</activities>
</egf>
</target>
- <target name="EgfStep_18" depends="init,install.egf">
+ <target name="EgfStep_19" depends="init,install.egf">
<egf>
<globargs>
<jvmarg value="-Degf.target.bundle.priority=true" />
@@ -748,15 +748,15 @@
</activities>
</egf>
</target>
- <target name="AggregateStep_21" depends="init,install.egf" >
- <anteclipse target="AggregateStep_21_dropins" />
- <anteclipse target="AggregateStep_21_sitep2" />
+ <target name="AggregateStep_22" depends="init,install.egf" >
+ <anteclipse target="AggregateStep_22_dropins" />
+ <anteclipse target="AggregateStep_22_sitep2" />
</target>
- <target name="AggregateStep_21_dropins">
+ <target name="AggregateStep_22_dropins">
</target>
- <target name="AggregateStep_21_sitep2">
+ <target name="AggregateStep_22_sitep2">
<!-- see http://wiki.eclipse.org/Equinox/p2/Ant_Tasks -->
<p2.mirror>
<repository location="file:/${publish}/org.eclipse.egf.site/site.p2" name="buckminster-egf-mars/org.eclipse.egf.site" />
@@ -800,15 +800,56 @@
<arg value="-r" />
<arg value="${updateSiteURL}" />
- <arg value="-r" />
- <arg value="file:/${publish}/org.eclipse.egf/site.p2" />
- <arg value="-r" />
- <arg value="file:/${publish}/org.eclipse.egf.releng/site.p2" />
<arg value="-i" />
<arg value="org.eclipse.platform.ide" />
+
+ </args>
+ </eclipse.launch>
+ </target>
+ <target name="InstallStep_7" depends="init,install.director" >
+ <eclipse.launch app="director">
+ <args>
+ <jvmarg value="-Declipse.p2.mirrors=false" />
+ <jvmarg value="-Xmx1024m"/>
+ <jvmarg value="-XX:MaxPermSize=256m"/>
+
+ <jvmarg value="-Dhttp.proxyHost=proxy.eclipse.org"/>
+ <jvmarg value="-Dhttp.proxyPort=9898"/>
+ <jvmarg value="-Dhttps.proxyHost=proxy.eclipse.org"/>
+ <jvmarg value="-Dhttps.proxyPort=9898"/>
+ <jvmarg value="-Dhttp.nonProxyHosts=*.eclipse.org"/>
+ <jvmarg value="-Dhttps.nonProxyHosts=*.eclipse.org"/>
+ <jvmarg value="-Dftp.proxyHost=proxy.eclipse.org"/>
+ <jvmarg value="-Dftp.proxyPort=9898"/>
+ <jvmarg value="-Dftp.nonProxyHosts=*.eclipse.org"/>
+
+
+
+ <arg value="-roaming" />
+ <arg value="-profileProperties" />
+ <arg value="org.eclipse.update.install.features=true " />
+
+ <arg value="-d" />
+ <arg value="${publish}/egf" />
+
+ <arg value="-p" />
+ <arg value="EGF" />
+
+ <arg value="-r" />
+ <arg value="${updateSiteURL}" />
+
+ <arg value="-r" />
+ <arg value="file:/${publish}/org.eclipse.egf/site.p2" />
+ <arg value="-r" />
+ <arg value="file:/${publish}/org.eclipse.egf.releng/site.p2" />
+
+ <arg value="-i" />
+ <arg value="org.eclipse.egf.feature.group" />
+
+
<arg value="-i" />
<arg value="org.eclipse.egf.feature.group" />
<arg value="-i" />
diff --git a/releng/org.eclipse.egf.releng2/model/buckminster-egf-mars.egfbuild b/releng/org.eclipse.egf.releng2/model/buckminster-egf-mars.egfbuild
index 5298b95..db34202 100644
--- a/releng/org.eclipse.egf.releng2/model/buckminster-egf-mars.egfbuild
+++ b/releng/org.eclipse.egf.releng2/model/buckminster-egf-mars.egfbuild
@@ -21,10 +21,14 @@
</steps>
<steps xsi:type="buildstep:PublishStep" xmi:id="_s3vmwKSsEeWdJq8DhT0Nfw" component="_wQp78KSvEeWdJq8DhT0Nfw"/>
<steps xsi:type="buildstep:PublishStep" xmi:id="_-TnB8AF8EeGO5KzPHjNKFQ" component="_2fryrgF8EeGO5KzPHjNKFQ"/>
- <steps xsi:type="buildstep:InstallStep" xmi:id="_BfnD4AF9EeGO5KzPHjNKFQ" id="egf" profile="EGF" resultSteps="_-TnB8AF8EeGO5KzPHjNKFQ _s3vmwKSsEeWdJq8DhT0Nfw">
+ <steps xsi:type="buildstep:InstallStep" xmi:id="_BfnD4AF9EeGO5KzPHjNKFQ" id="egf" profile="EGF">
<updateSiteUrls>${updateSiteURL}</updateSiteUrls>
<productNames>org.eclipse.platform.ide</productNames>
</steps>
+ <steps xsi:type="buildstep:InstallStep" xmi:id="_27Q7ULXdEeWcK7feYwOw2Q" id="egf" profile="EGF" resultSteps="_-TnB8AF8EeGO5KzPHjNKFQ _s3vmwKSsEeWdJq8DhT0Nfw" p2_os="">
+ <updateSiteUrls>${updateSiteURL}</updateSiteUrls>
+ <featureNames>org.eclipse.egf</featureNames>
+ </steps>
<steps xsi:type="buildstep:AntStep" xmi:id="_bfnpIAF9EeGO5KzPHjNKFQ" targetName="copy_egf_to_tools" xml="<target name="copy_egf_to_tools">
	<delete dir="${tools}/egf"/>
	<copy todir="${tools}/egf">
		<fileset dir="${publish}/egf"/>
	</copy>
</target>"/>
<steps xsi:type="buildstep:CleanStep" xmi:id="_Y0Q2IAF9EeGO5KzPHjNKFQ" type="Result"/>
<steps xsi:type="buildstep:BuildStep" xmi:id="_VP8DASR_EeCpI_U_Er6QNA" noBuildersInvocation="true">