From: Bruno Sinou Date: Mon, 8 Nov 2010 16:14:14 +0000 (+0000) Subject: + refactor to separate runtime and module project under eclipse plugin. X-Git-Tag: argeo-slc-2.1.7~1105 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=f411ec26ec7db2cb5cbce91ead9d27f525eb990a;p=gpl%2Fargeo-slc.git + refactor to separate runtime and module project under eclipse plugin. + add some pom to prepare the deployment + clean client rcp & ui project (change src & target folder) git-svn-id: https://svn.argeo.org/slc/trunk@3875 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/eclipse/plugins/org.argeo.slc.client.core/.classpath b/eclipse/plugins/org.argeo.slc.client.core/.classpath deleted file mode 100644 index 92f19d2ff..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/eclipse/plugins/org.argeo.slc.client.core/.project b/eclipse/plugins/org.argeo.slc.client.core/.project deleted file mode 100644 index 83312680f..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.argeo.slc.client.core - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 91bcc67af..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -#Tue Sep 28 09:36:19 CEST 2010 -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.pde.core.prefs b/eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.pde.core.prefs deleted file mode 100644 index bcfe289e2..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/.settings/org.eclipse.pde.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Wed Sep 22 12:21:25 CEST 2010 -eclipse.preferences.version=1 -pluginProject.extensions=false -resolve.requirebundle=false diff --git a/eclipse/plugins/org.argeo.slc.client.core/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.client.core/META-INF/MANIFEST.MF deleted file mode 100644 index 4db1c56c3..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,28 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Core -Bundle-SymbolicName: org.argeo.slc.client.core -Bundle-Version: 1.0.0.qualifier -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Export-Package: org.argeo.slc.client.aspects, - org.argeo.slc.client.contentprovider -Require-Bundle: org.springframework.orm;bundle-version="2.5.6", - org.eclipse.ui;resolution:=optional -Import-Package: org.apache.commons.io;version="1.4.0", - org.apache.commons.logging;version="1.1.1", - org.argeo.eclipse.spring, - org.argeo.eclipse.ui, - org.argeo.slc.client.ui, - org.argeo.slc.core.structure.tree, - org.argeo.slc.core.test.tree, - org.argeo.slc.dao.process, - org.argeo.slc.dao.test.tree, - org.argeo.slc.process, - org.argeo.slc.test, - org.aspectj.lang, - org.aspectj.lang.annotation, - org.hibernate, - org.hibernate.classic, - org.springframework.beans.factory;version="2.5.6.SEC01", - org.springframework.transaction;version="2.5.6.SEC01" - diff --git a/eclipse/plugins/org.argeo.slc.client.core/build.properties b/eclipse/plugins/org.argeo.slc.client.core/build.properties deleted file mode 100644 index 5fc538bc8..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -source.. = src/main/java/ -output.. = target/classes/ -bin.includes = META-INF/,\ - . diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/aspects/ContentProviderAspect.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/aspects/ContentProviderAspect.java deleted file mode 100644 index 5f853b62f..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/aspects/ContentProviderAspect.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.argeo.slc.client.aspects; - -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.eclipse.ui.internal.ViewSite; -import org.hibernate.LockMode; -import org.hibernate.SessionFactory; - -/** - * Intercepts all calls to get methods of the - * org.argeo.slc.client.contentprovider package to insure that objects that are - * to be rendered in views are correctly linked to the hibernate session. - * - * @author bsinou - * - */ - -@Aspect -public class ContentProviderAspect { - - // private final static Log log = LogFactory - // .getLog(ContentProviderAspect.class); - - private SessionFactory sessionFactory; - - // We select here only getters from classes of the contentprovider package - // that need to get data from hibernate - - // PointCuts - @Pointcut("(execution (* org.argeo.slc.client.contentprovider.ProcessListTableLabelProvider.get*(..)) && args(o,..))" - + " || (execution (* org.argeo.slc.client.contentprovider.ProcessDetailContentProvider.get*(..)) && args(o,..))" - + " || (execution (* org.argeo.slc.client.contentprovider.ResultDetailContentProvider.getElements(..)) && args(o,..))") - void contentProviderGetterWrapper(Object o) { - } - - // Advices - @Around("contentProviderGetterWrapper(o)") - public Object aroundGetWrapper(ProceedingJoinPoint thisJoinPoint, Object o) - throws Throwable { - -// if (o instanceof ViewSite) { -// return thisJoinPoint.proceed(); -// } - - // TODO : find a mean to handle session & manager with txManager - // in order to not have to re-begin a transaction here. - sessionFactory.getCurrentSession().beginTransaction(); - - // reassociate a transient instance with a session (LockMode.NONE). - sessionFactory.getCurrentSession().lock(o, LockMode.NONE); - - Object result = thisJoinPoint.proceed(); - sessionFactory.getCurrentSession().getTransaction().commit(); - return result; - } - - // IoC - public void setSessionFactory(SessionFactory sessionFactory) { - this.sessionFactory = sessionFactory; - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessDetailContentProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessDetailContentProvider.java deleted file mode 100644 index 497e29851..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessDetailContentProvider.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.argeo.slc.client.contentprovider; - -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.slc.process.RealizedFlow; -import org.argeo.slc.process.SlcExecution; -import org.argeo.slc.process.SlcExecutionStep; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.Viewer; - -/** - * Basic tree view of the chosen process details. For now, only a basic list of - * details is displayed, not a tree. - */ -public class ProcessDetailContentProvider implements ITreeContentProvider { - private final static Log log = LogFactory - .getLog(ProcessDetailContentProvider.class); - - private SlcExecution slcExecution; - - // private List slcAgents; - - public Object[] getChildren(Object parent) { - if (parent instanceof SlcExecution) { - slcExecution = (SlcExecution) parent; - - List steps = slcExecution.getSteps(); - List realizedFlows = slcExecution.getRealizedFlows(); - - for (int i = 0; i < steps.size(); i++) { - log.debug("step[" + i + "] : " + steps.get(i).getType()); - } - for (int i = 0; i < realizedFlows.size(); i++) { - log.debug("step[" + i + "] : " - + realizedFlows.get(i).toString()); - } - - log.debug(" Realized flows : "); - return steps.toArray(); - } - // if (parent instanceof ExecutionModuleNode) { - // ExecutionModuleNode executionModuleNode = (ExecutionModuleNode) - // parent; - // ExecutionModuleDescriptor emd = - // executionModuleNode.getDescriptor(); - // emd = executionModuleNode.getAgentNode().getAgent() - // .getExecutionModuleDescriptor(emd.getName(), - // emd.getVersion()); - // executionModuleNode.cacheDescriptor(emd); - // // for (String flowName : - // executionModuleNode.getFlowDescriptors() - // // .keySet()) { - // // executionModuleNode.addChild(new FlowNode(flowName, - // // executionModuleNode)); - // // } - // return executionModuleNode.getChildren(); - // } else if (parent instanceof AgentNode) { - // AgentNode agentNode = (AgentNode) parent; - // - // if (log.isTraceEnabled()) - // log.trace("Scan agent " + agentNode); - // - // agentNode.clearChildren(); - // for (ExecutionModuleDescriptor desc : agentNode.getAgent() - // .listExecutionModuleDescriptors()) { - // agentNode.addChild(new ExecutionModuleNode(agentNode, desc)); - // } - // - // return agentNode.getChildren(); - // } else if (parent instanceof TreeParent) { - // return ((TreeParent) parent).getChildren(); - // } else if (parent instanceof FlowNode) { - // return new Object[0]; - // } else { - // List agentNodes = new ArrayList(); - // for (SlcAgent slcAgent : slcAgents) { - // agentNodes.add(new AgentNode(slcAgent)); - // } - // return agentNodes.toArray(); - // } - return null; - } - - public Object getParent(Object node) { - // if (node instanceof TreeObject) { - // return ((TreeObject) node).getParent(); - // } - return null; - } - - public boolean hasChildren(Object parent) { - return false; - } - - public void inputChanged(Viewer v, Object oldInput, Object newInput) { - } - - public void dispose() { - } - - public Object[] getElements(Object parent) { - // return getChildren(parent); - // Here we must duplicate the code otherwise the inner call to method - // getChildren(parent); is not intercepted by AspectJ - if (parent instanceof SlcExecution) { - slcExecution = (SlcExecution) parent; - - List steps = slcExecution.getSteps(); - List realizedFlows = slcExecution.getRealizedFlows(); - - for (int i = 0; i < steps.size(); i++) { - log.debug("step[" + i + "] : " + steps.get(i).getType()); - } - for (int i = 0; i < realizedFlows.size(); i++) { - log.debug("step[" + i + "] : " - + realizedFlows.get(i).toString()); - } - - log.debug(" Realized flows : "); - return steps.toArray(); - } - return null; - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListStructuredContentProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListStructuredContentProvider.java deleted file mode 100644 index eecf749a1..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListStructuredContentProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.argeo.slc.client.contentprovider; - -import java.util.List; - -import org.argeo.slc.process.SlcExecution; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.Viewer; - -/** - * @author bsinou - * - * Fill ProcessList view. Deported in an external bundle so that main - * slc ui bundle does not depend on DB implementation. - */ -public class ProcessListStructuredContentProvider implements - IStructuredContentProvider { - - public void inputChanged(Viewer arg0, Object arg1, Object arg2) { - } - - public void dispose() { - } - - @SuppressWarnings("unchecked") - public Object[] getElements(Object obj) { - if (obj instanceof List) { - return ((List) obj).toArray(); - } else { - return new Object[0]; - } - } - - public String getColumnText(Object obj, int index) { - return null; - } - -} diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListTableLabelProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListTableLabelProvider.java deleted file mode 100644 index 049128389..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ProcessListTableLabelProvider.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.argeo.slc.client.contentprovider; - -import org.argeo.slc.process.SlcExecution; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.swt.graphics.Image; - -/** - * @author bsinou - * - * Fill ProcessList view. Deported in an external bundle so that main - * slc ui bundle does not depend on DB implementation. - */ -public class ProcessListTableLabelProvider extends LabelProvider implements - ITableLabelProvider { - public String getColumnText(Object obj, int index) { - // log.debug(sessionFactory.getClass().toString()); - - SlcExecution se = (SlcExecution) obj; - switch (index) { - - case 0: - return getText(se.getStartDate()); - case 1: - return se.getHost(); - case 2: - return se.getUuid(); - case 3: - return se.currentStep().getType(); - } - return getText(obj); - } - - public Image getColumnImage(Object obj, int index) { - return null; - } - -} diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ResultDetailContentProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ResultDetailContentProvider.java deleted file mode 100644 index fef065ea5..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ResultDetailContentProvider.java +++ /dev/null @@ -1,229 +0,0 @@ -package org.argeo.slc.client.contentprovider; - -import java.util.List; -import java.util.SortedMap; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.eclipse.ui.TreeObject; -import org.argeo.eclipse.ui.TreeParent; -import org.argeo.slc.core.structure.tree.TreeSPath; -import org.argeo.slc.core.test.tree.PartSubList; -import org.argeo.slc.core.test.tree.TreeTestResult; -import org.argeo.slc.test.TestResultPart; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.Viewer; - -/** - * Basic tree view of the chosen process details - */ -public class ResultDetailContentProvider implements ITreeContentProvider { - private final static Log log = LogFactory - .getLog(ResultDetailContentProvider.class); - - private TreeTestResult treeTestResult; - - public Object[] getChildren(Object parent) { - if (parent instanceof TreeTestResult) { - log.error("We should not reach this point."); - return null; - } - - if (parent instanceof TreeParent) { - return ((TreeParent) parent).getChildren(); - } - - if (parent instanceof ResultPartNode) { - // we reached a leaf - return null; - } - return null; - } - - public Object getParent(Object node) { - if (node instanceof TreeObject) { - return ((TreeObject) node).getParent(); - } - return null; - } - - public boolean hasChildren(Object parent) { - if (parent instanceof TreeParent && ((TreeParent) parent).isLoaded()) { - return ((TreeParent) parent).hasChildren(); - } - return false; - } - - public void inputChanged(Viewer v, Object oldInput, Object newInput) { - } - - public void dispose() { - } - - public Object[] getElements(Object parent) { - if (parent instanceof TreeTestResult) { - treeTestResult = (TreeTestResult) parent; - - // We wrap domain object in ViewSpecificObjects. - ResultTreeParent root = new ResultTreeParent("Test " - + treeTestResult.getUuid()); - SortedMap partSubLists = treeTestResult - .getResultParts(); - - for (TreeSPath key : partSubLists.keySet()) { - String relPath = key.getAsUniqueString(); - - // get rid of '/' that begins every TreeSPath Unique string - relPath = relPath.substring(1); - String[] pathes = relPath.split("/"); // parse the TreeSPath - ResultTreeParent curTreeParent = root; - - // We create intermediate folders if needed - for (int i = 0; i < pathes.length; i++) { - if (log.isDebugEnabled()) - log.debug("i = " + i + " - " + pathes[i]); - - if (curTreeParent.getChildByName(pathes[i]) == null) { - ResultTreeParent child = new ResultTreeParent(pathes[i]); - curTreeParent.addChild(child); - curTreeParent = child; - } else - curTreeParent = (ResultTreeParent) curTreeParent - .getChildByName(pathes[i]); - } - - // We create leafs - List parts = partSubLists.get(key).getParts(); - for (TestResultPart part : parts) { - ResultPartNode node = new ResultPartNode(part.toString(), - part.getStatus(), part.getMessage(), - part.getExceptionMessage()); - curTreeParent.addChild(node); - } - } - - // We must set status isPassed for each node. - setIsPassed(root); - return root.getChildren(); - } - return null; - } - - public void setIsPassed(StatusAware node) { - - if (node instanceof ResultTreeObject) { - ResultTreeObject rto = (ResultTreeObject) node; - rto.isPassed = rto.isPassed(); - return; - } - if (node instanceof ResultTreeParent) { - ResultTreeParent rtp = (ResultTreeParent) node; - // we dig the tree recursivly - for (TreeObject to : rtp.getChildren()) - setIsPassed((StatusAware) to); - // we set is passed - for (TreeObject to : rtp.getChildren()) { - if (!((StatusAware) to).isPassed()) { - rtp.isPassed = false; - return; - } - } - return; - } - } - - // To enable display of color to show if a test is passed or not even when - // hidden. We say a test is in error if its status is FAILED or ERROR (e.g, - // if it has not executed completely due to technical problems). - public interface StatusAware { - public void setPassed(boolean isPassed); - - public boolean isPassed(); - } - - public class ResultTreeParent extends TreeParent implements StatusAware { - - public ResultTreeParent(String name) { - super(name); - } - - private boolean isPassed = true; - - public void setPassed(boolean isPassed) { - this.isPassed = isPassed; - } - - public boolean isPassed() { - return isPassed; - } - } - - public class ResultTreeObject extends TreeObject implements StatusAware { - - public ResultTreeObject(String name) { - super(name); - } - - private boolean isPassed = true; - - public void setPassed(boolean isPassed) { - this.isPassed = isPassed; - } - - public boolean isPassed() { - return isPassed; - } - } - - // Specific inner classes - public class ResultPartNode extends ResultTreeObject { - - private String status; - private String message; - private String exceptionMessage; - - public ResultPartNode(String label, Integer status, String message) { - super(label); - handleStatus(status); - this.message = message; - } - - public ResultPartNode(String label, Integer status, String message, - String exceptionMessage) { - super(label); - handleStatus(status); - this.message = message; - this.exceptionMessage = exceptionMessage; - } - - private void handleStatus(Integer status) { - switch (status) { - case 0: - this.status = "PASSED"; - setPassed(true); - break; - case 1: - this.status = "FAILED"; - setPassed(false); - break; - case 2: - this.status = "ERROR"; - setPassed(false); - break; - } - // for the moment being we don't have a relevant label - } - - public String getStatus() { - return status; - } - - public String getMessage() { - return message; - } - - public String getExceptionMessage() { - return exceptionMessage; - } - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ResultDetailLabelProvider.java b/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ResultDetailLabelProvider.java deleted file mode 100644 index 01e506b51..000000000 --- a/eclipse/plugins/org.argeo.slc.client.core/src/main/java/org/argeo/slc/client/contentprovider/ResultDetailLabelProvider.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.argeo.slc.client.contentprovider; - -import org.argeo.eclipse.ui.TreeParent; -import org.argeo.slc.client.contentprovider.ResultDetailContentProvider.ResultPartNode; -import org.argeo.slc.client.contentprovider.ResultDetailContentProvider.StatusAware; -import org.argeo.slc.client.ui.ClientUiPlugin; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.swt.graphics.Image; - -/** - * @author bsinou - * - * Fill ResultDetail view. Deported in an external bundle so that main - * slc ui bundle does not depend on DB implementation. - */ -public class ResultDetailLabelProvider extends LabelProvider implements - ITableLabelProvider { - // private static final Log log = LogFactory - // .getLog(ResultDetailLabelProvider.class); - - public String getColumnText(Object obj, int index) { - - if (obj instanceof TreeParent) { - if (index == 0) - return ((TreeParent) obj).getName(); - else - return null; - } - - if (obj instanceof ResultPartNode) { - ResultPartNode rpn = (ResultPartNode) obj; - switch (index) { - case 0: - return rpn.toString(); - case 1: - return rpn.getStatus().toString(); - case 2: - return rpn.getMessage(); - case 3: - return rpn.getExceptionMessage(); - } - return getText(obj); - } - return null; - } - - public Image getImage(Object element) { - if (element instanceof StatusAware) { - if (((StatusAware) element).isPassed()) - return ClientUiPlugin.getDefault().getImageRegistry() - .get("passedTest"); - else - return ClientUiPlugin.getDefault().getImageRegistry() - .get("failedTest"); - } - return null; - } - - public Image getColumnImage(Object obj, int index) { - if (index == 0) - return getImage(obj); - else - return null; - } -}