Remove custom LcDsl pre-/post- build logic

This should not be required if .lc files are structured correctly.

Change-Id: Iccddb1b14f4300d8d30160882d77585c9389d4fe
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
diff --git a/org.eclipse.tea.library.build.lcdsl/META-INF/MANIFEST.MF b/org.eclipse.tea.library.build.lcdsl/META-INF/MANIFEST.MF
index d71978e..c93eb49 100644
--- a/org.eclipse.tea.library.build.lcdsl/META-INF/MANIFEST.MF
+++ b/org.eclipse.tea.library.build.lcdsl/META-INF/MANIFEST.MF
@@ -22,11 +22,7 @@
  org.eclipse.tea.core.ui
 Bundle-ActivationPolicy: lazy
 Service-Component: OSGI-INF/org.eclipse.tea.library.build.lcdsl.tasks.chains.TaskChainBuildAnyFeatureSite.xml,
- OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementVisitor.xml,
- OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementFactory.xml,
- OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementWiring.xml,
  OSGI-INF/org.eclipse.tea.library.build.lcdsl.tasks.p2.ProductBuildTaskChain.xml
-Export-Package: org.eclipse.tea.library.build.lcdsl.internal;x-internal:=true,
- org.eclipse.tea.library.build.lcdsl.tasks,
+Export-Package: org.eclipse.tea.library.build.lcdsl.tasks,
  org.eclipse.tea.library.build.lcdsl.tasks.chains,
  org.eclipse.tea.library.build.lcdsl.tasks.p2
diff --git a/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementFactory.xml b/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementFactory.xml
deleted file mode 100644
index 0a4b549..0000000
--- a/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementFactory.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementFactory">
-   <service>
-      <provide interface="org.eclipse.tea.library.build.services.TeaBuildElementFactory"/>
-   </service>
-   <implementation class="org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementFactory"/>
-</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementVisitor.xml b/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementVisitor.xml
deleted file mode 100644
index 9d352d9..0000000
--- a/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementVisitor.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementVisitor">
-   <service>
-      <provide interface="org.eclipse.tea.library.build.services.TeaBuildVisitor"/>
-   </service>
-   <implementation class="org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementVisitor"/>
-</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementWiring.xml b/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementWiring.xml
deleted file mode 100644
index 16c4d1e..0000000
--- a/org.eclipse.tea.library.build.lcdsl/OSGI-INF/org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementWiring.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementWiring">
-   <service>
-      <provide interface="org.eclipse.tea.library.build.services.TeaDependencyWireFactory"/>
-   </service>
-   <implementation class="org.eclipse.tea.library.build.lcdsl.internal.TeaLcDslElementWiring"/>
-</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElement.java b/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElement.java
deleted file mode 100644
index d790076..0000000
--- a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElement.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2017 SSI Schaefer IT Solutions GmbH and others.
- *  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:
- *      SSI Schaefer IT Solutions GmbH
- *******************************************************************************/
-package org.eclipse.tea.library.build.lcdsl.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.tea.library.build.chain.TeaBuildElement;
-import org.eclipse.tea.library.build.util.TeaBuildUtil;
-import org.eclipse.xtext.ui.XtextProjectHelper;
-
-public class TeaLcDslElement extends TeaBuildElement {
-
-	static final String NAME_PRE = "LcDsl: Prepare launch configurations";
-	static final String NAME_POST = "LcDsl: Update launch configurations";
-
-	private final List<IProject> projects = new ArrayList<>();
-	private final String name;
-
-	public TeaLcDslElement(String name) {
-		this.name = name;
-	}
-
-	public void add(IProject toBuild) {
-		projects.add(toBuild);
-	}
-
-	public void execute() {
-		TeaBuildUtil.tryCompile(projects);
-	}
-
-	@Override
-	public String getName() {
-		return name;
-	}
-
-	static boolean hasLc(IProject prj) {
-		if (XtextProjectHelper.hasNature(prj)) {
-			// look for .lc files
-			AtomicBoolean hasLc = new AtomicBoolean();
-			try {
-				prj.accept((res) -> {
-					if (hasLc.get()) {
-						return false; // cancel ASAP
-					}
-					if (res.getType() == IResource.FOLDER || res.getType() == IResource.PROJECT) {
-						return true;
-					}
-					if (res.getType() == IResource.FILE && res.getName().endsWith(".lc")) {
-						hasLc.set(true);
-					}
-					return false;
-				});
-			} catch (CoreException e) {
-				throw new RuntimeException("cannot visit " + prj + "'s resources", e);
-			}
-			return hasLc.get();
-		}
-		return false;
-	}
-
-}
diff --git a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementFactory.java b/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementFactory.java
deleted file mode 100644
index ed5a999..0000000
--- a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2017 SSI Schaefer IT Solutions GmbH and others.
- *  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:
- *      SSI Schaefer IT Solutions GmbH
- *******************************************************************************/
-package org.eclipse.tea.library.build.lcdsl.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.tea.library.build.chain.TeaBuildChain;
-import org.eclipse.tea.library.build.chain.TeaBuildElement;
-import org.eclipse.tea.library.build.services.TeaBuildElementFactory;
-import org.osgi.service.component.annotations.Component;
-
-@Component
-public class TeaLcDslElementFactory implements TeaBuildElementFactory {
-
-	@Override
-	public Collection<TeaBuildElement> createElements(TeaBuildChain chain, IProject prj) {
-		Collection<TeaBuildElement> result = null;
-		if (TeaLcDslElement.hasLc(prj)) {
-			TeaLcDslElement pre = (TeaLcDslElement) chain.getElementFor(TeaLcDslElement.NAME_PRE);
-			TeaLcDslElement post = (TeaLcDslElement) chain.getElementFor(TeaLcDslElement.NAME_POST);
-			if (pre == null) {
-				// need a pre and a post element
-				result = new ArrayList<>();
-				pre = new TeaLcDslElement(TeaLcDslElement.NAME_PRE);
-				post = new TeaLcDslElement(TeaLcDslElement.NAME_POST);
-				result.add(pre);
-				result.add(post);
-			}
-
-			pre.add(prj);
-			post.add(prj);
-		}
-		return result;
-	}
-
-}
diff --git a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementVisitor.java b/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementVisitor.java
deleted file mode 100644
index a93409f..0000000
--- a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementVisitor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2017 SSI Schaefer IT Solutions GmbH and others.
- *  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:
- *      SSI Schaefer IT Solutions GmbH
- *******************************************************************************/
-package org.eclipse.tea.library.build.lcdsl.internal;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.tea.core.services.TaskingLog;
-import org.eclipse.tea.library.build.chain.TeaBuildElement;
-import org.eclipse.tea.library.build.services.TeaBuildVisitor;
-import org.osgi.service.component.annotations.Component;
-
-@Component
-public class TeaLcDslElementVisitor implements TeaBuildVisitor {
-
-	private TaskingLog log;
-
-	@Execute
-	public void init(TaskingLog log) {
-		this.log = log;
-	}
-
-	@Override
-	public Map<TeaBuildElement, IStatus> visit(List<TeaBuildElement> elements) {
-		return visitEach(elements, TeaLcDslElement.class, e -> {
-			log.info("preparing LcDsl launch configurations...");
-			e.execute();
-			return Status.OK_STATUS;
-		});
-	}
-
-}
diff --git a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementWiring.java b/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementWiring.java
deleted file mode 100644
index 3fed60c..0000000
--- a/org.eclipse.tea.library.build.lcdsl/src/org/eclipse/tea/library/build/lcdsl/internal/TeaLcDslElementWiring.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2017 SSI Schaefer IT Solutions GmbH and others.
- *  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:
- *      SSI Schaefer IT Solutions GmbH
- *******************************************************************************/
-package org.eclipse.tea.library.build.lcdsl.internal;
-
-import org.eclipse.tea.library.build.chain.TeaBuildChain;
-import org.eclipse.tea.library.build.chain.TeaUnhandledElement;
-import org.eclipse.tea.library.build.services.TeaDependencyWireFactory;
-import org.osgi.service.component.annotations.Component;
-
-@Component
-public class TeaLcDslElementWiring implements TeaDependencyWireFactory {
-
-	@Override
-	public void createWires(TeaBuildChain chain) {
-		TeaLcDslElement pre = (TeaLcDslElement) chain.getElementFor(TeaLcDslElement.NAME_PRE);
-		TeaLcDslElement post = (TeaLcDslElement) chain.getElementFor(TeaLcDslElement.NAME_POST);
-		if (pre != null && post != null) {
-			chain.getAllElements().forEach(e -> {
-				if (e instanceof TeaUnhandledElement) {
-					return;
-				}
-
-				// pre should be first, all others have a dependency
-				if (e != pre) {
-					e.addDependencyWire(pre.createWire());
-				}
-
-				// post has a dependency to all others.
-				if (post != e) {
-					post.addDependencyWire(e.createWire());
-				}
-			});
-
-		}
-	}
-
-}