Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyTreeLabelProvider.java Mon Nov 18 12:19:31 2019 @@ -29,6 +29,7 @@ import org.apache.uima.cas.Type; import org.apache.uima.cas.TypeSystem; import org.apache.uima.ruta.explain.ExplainConstants; import org.apache.uima.ruta.explain.tree.IExplainTreeNode; +import org.apache.uima.ruta.type.ProfiledAnnotation; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; @@ -37,12 +38,12 @@ import org.eclipse.swt.graphics.Image; public class ApplyTreeLabelProvider extends LabelProvider implements ILabelProvider { private DecimalFormat dfTime = new DecimalFormat("###,###,##0.000", - DecimalFormatSymbols.getInstance(Locale.ENGLISH));; + DecimalFormatSymbols.getInstance(Locale.ENGLISH)); private DecimalFormat dfPercentage = new DecimalFormat("##0.00", - DecimalFormatSymbols.getInstance(Locale.ENGLISH));; + DecimalFormatSymbols.getInstance(Locale.ENGLISH)); - private ApplyViewPage owner; + protected ApplyViewPage owner; ImageDescriptor blockApply; @@ -111,9 +112,10 @@ public class ApplyTreeLabelProvider exte IExplainTreeNode parentNode = debugNode.getParent(); if (parentNode != null) { FeatureStructure parent = parentNode.getFeatureStructure(); - if (parent != null) { - long parentTime = parent.getLongValue(f4); - if(parentTime>0) { + if (parent instanceof ProfiledAnnotation) { + // TODO FSArray break in inlined by purpose? + long parentTime = ((ProfiledAnnotation) parent).getTime(); + if (parentTime > 0) { percent = (took / (parentTime / 1000.0)) * 100.0; } }
Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/apply/ApplyViewPage.java Mon Nov 18 12:19:31 2019 @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.uima.cas.CASException; import org.apache.uima.cas.Feature; import org.apache.uima.cas.FeatureStructure; import org.apache.uima.cas.Type; @@ -32,6 +33,7 @@ import org.apache.uima.caseditor.editor. import org.apache.uima.caseditor.editor.ICasDocument; import org.apache.uima.caseditor.editor.ICasDocumentListener; import org.apache.uima.caseditor.editor.ICasEditorInputListener; +import org.apache.uima.jcas.JCas; import org.apache.uima.ruta.addons.RutaAddonsPlugin; import org.apache.uima.ruta.engine.RutaEngine; import org.apache.uima.ruta.explain.ExplainConstants; @@ -105,6 +107,23 @@ public class ApplyViewPage extends Page image = desc.createImage(); name = ExplainConstants.RULE_APPLY_TYPE; images.put(name, image); + images.put(ExplainConstants.INLINED_AS_ACTION, image); + + desc = RutaAddonsPlugin.getImageDescriptor("/icons/arrow_left.png"); + image = desc.createImage(); + images.put(ExplainConstants.INLINED_AS_CONDITION, image); + + desc = RutaAddonsPlugin.getImageDescriptor("/icons/chart_organisation.png"); + image = desc.createImage(); + images.put(ExplainConstants.INLINED_ACTION_BLOCK, image); + + desc = RutaAddonsPlugin.getImageDescriptor("/icons/chart_organisation_add.png"); + image = desc.createImage(); + images.put(ExplainConstants.INLINED_CONDITION_BLOCK_MATCHED, image); + + desc = RutaAddonsPlugin.getImageDescriptor("/icons/chart_organisation_delete.png"); + image = desc.createImage(); + images.put(ExplainConstants.INLINED_CONDITION_BLOCK_FAILED, image); desc = RutaAddonsPlugin.getImageDescriptor("/icons/arrow_branch.png"); image = desc.createImage(); @@ -146,9 +165,12 @@ public class ApplyViewPage extends Page document.addChangeListener(this); - ExplainTree tree = new ExplainTree(document.getCAS()); + ExplainTree tree = new ExplainTree(getJCas()); + viewer.setAutoExpandLevel(2); - viewer.setInput(tree.getRoot()); + if (tree != null) { + viewer.setInput(tree.getRoot()); + } viewer.addDoubleClickListener(this); getSite().setSelectionProvider(viewer); getSite().getPage().addSelectionListener(this); @@ -156,6 +178,16 @@ public class ApplyViewPage extends Page viewer.refresh(); } + protected JCas getJCas() { + try { + return document.getCAS().getJCas(); + } catch (CASException e) { + RutaAddonsPlugin.error(e); + } + return null; + } + + @Override public void doubleClick(DoubleClickEvent event) { ISelection selection = event.getSelection(); if (!selection.isEmpty() && selection instanceof TreeSelection) { @@ -203,7 +235,6 @@ public class ApplyViewPage extends Page @Override public void dispose() { - super.dispose(); getSite().getPage().removeSelectionListener(this); editor.removeCasEditorInputListener(this); if (images != null) { @@ -211,6 +242,7 @@ public class ApplyViewPage extends Page each.dispose(); } } + super.dispose(); } public void mouseDown(final MouseEvent event) { @@ -225,10 +257,12 @@ public class ApplyViewPage extends Page } + @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { } + @Override public void casDocumentChanged(IEditorInput oldInput, ICasDocument oldDocument, IEditorInput newInput, ICasDocument newDocument) { // editor.removeCasEditorInputListener(this); @@ -240,32 +274,40 @@ public class ApplyViewPage extends Page } + @Override public void added(FeatureStructure newFeatureStructure) { } + @Override public void added(Collection<FeatureStructure> newFeatureStructure) { } + @Override public void removed(FeatureStructure deletedFeatureStructure) { } + @Override public void removed(Collection<FeatureStructure> deletedFeatureStructure) { } + @Override public void updated(FeatureStructure featureStructure) { } + @Override public void updated(Collection<FeatureStructure> featureStructure) { } + @Override public void changed() { Display.getDefault().syncExec(new Runnable() { + @Override public void run() { reloadTree(); } @@ -274,10 +316,11 @@ public class ApplyViewPage extends Page } private void reloadTree() { - ExplainTree tree = new ExplainTree(document.getCAS()); + ExplainTree tree = new ExplainTree(getJCas()); viewer.setInput(tree.getRoot()); } + @Override public void viewChanged(String oldViewName, String newViewName) { changed(); } Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/createdBy/CreatedByViewPage.java Mon Nov 18 12:19:31 2019 @@ -188,7 +188,6 @@ public class CreatedByViewPage extends P @Override public void dispose() { - super.dispose(); getSite().getPage().removeSelectionListener(this); editor.removeCasEditorInputListener(this); if (images != null) { @@ -196,6 +195,7 @@ public class CreatedByViewPage extends P each.dispose(); } } + super.dispose(); } public void mouseDown(final MouseEvent event) { Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementTreeContentProvider.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementTreeContentProvider.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementTreeContentProvider.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementTreeContentProvider.java Mon Nov 18 12:19:31 2019 @@ -19,21 +19,29 @@ package org.apache.uima.ruta.explain.element; +import java.util.ArrayList; +import java.util.List; + import org.apache.uima.ruta.explain.tree.IExplainTreeNode; +import org.apache.uima.ruta.explain.tree.InlinedRootNode; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; - public class ElementTreeContentProvider implements ITreeContentProvider { + @Override public Object[] getChildren(Object parentElement) { - if (parentElement instanceof IExplainTreeNode) { - IExplainTreeNode debugNode = (IExplainTreeNode) parentElement; - return debugNode.getChildren().toArray(); + List<Object> result = new ArrayList<Object>(); + IExplainTreeNode debugNode = (IExplainTreeNode) parentElement; + for (IExplainTreeNode each : debugNode.getChildren()) { + if (!(each instanceof InlinedRootNode)) { + result.add(each); + } } - return null; + return result.toArray(); } + @Override public Object getParent(Object element) { if (element instanceof IExplainTreeNode) { return ((IExplainTreeNode) element).getParent(); @@ -42,10 +50,12 @@ public class ElementTreeContentProvider } + @Override public Object[] getElements(Object element) { return getChildren(element); } + @Override public boolean hasChildren(Object parentElement) { if (parentElement instanceof IExplainTreeNode) { IExplainTreeNode debugNode = (IExplainTreeNode) parentElement; @@ -54,9 +64,11 @@ public class ElementTreeContentProvider return false; } + @Override public void dispose() { } + @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/element/ElementViewPage.java Mon Nov 18 12:19:31 2019 @@ -23,7 +23,6 @@ import java.util.HashMap; import java.util.Map; import org.apache.uima.caseditor.editor.AnnotationEditor; -import org.apache.uima.caseditor.editor.ICasDocument; import org.apache.uima.ruta.addons.RutaAddonsPlugin; import org.apache.uima.ruta.explain.ExplainConstants; import org.apache.uima.ruta.explain.failed.FailedView; @@ -48,25 +47,19 @@ public class ElementViewPage extends Pag private Map<String, Image> images; - private AnnotationEditor editor; - - private ICasDocument document; - public ElementViewPage(AnnotationEditor editor) { super(); - this.editor = editor; - this.document = editor.getDocument(); } @Override public void dispose() { - super.dispose(); getSite().getPage().removeSelectionListener(this); if (images != null) { for (Image each : images.values()) { each.dispose(); } } + super.dispose(); } private void initImages() { @@ -159,6 +152,7 @@ public class ElementViewPage extends Pag } } + @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { if (selection instanceof TreeSelection && (part instanceof MatchedView || part instanceof FailedView)) { Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/failed/FailedViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/failed/FailedViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/failed/FailedViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/failed/FailedViewPage.java Mon Nov 18 12:19:31 2019 @@ -26,6 +26,7 @@ import org.apache.uima.caseditor.editor. import org.apache.uima.ruta.addons.RutaAddonsPlugin; import org.apache.uima.ruta.explain.ExplainConstants; import org.apache.uima.ruta.explain.apply.ApplyView; +import org.apache.uima.ruta.explain.inlined.InlinedView; import org.apache.uima.ruta.explain.rulelist.RuleListView; import org.apache.uima.ruta.explain.selection.ExplainSelectionView; import org.apache.uima.ruta.explain.tree.BlockApplyNode; @@ -55,13 +56,13 @@ public class FailedViewPage extends Page @Override public void dispose() { - super.dispose(); getSite().getPage().removeSelectionListener(this); if (images != null) { for (Image each : images.values()) { each.dispose(); } } + super.dispose(); } private void initImages() { @@ -126,9 +127,11 @@ public class FailedViewPage extends Page } } + @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { if (selection instanceof TreeSelection - && (part instanceof ApplyView || part instanceof RuleListView || part instanceof ExplainSelectionView)) { + && (part instanceof ApplyView || part instanceof RuleListView + || part instanceof ExplainSelectionView || part instanceof InlinedView)) { TreeSelection ts = (TreeSelection) selection; Object firstElement = ts.getFirstElement(); Added: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeContentProvider.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeContentProvider.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeContentProvider.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeContentProvider.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +package org.apache.uima.ruta.explain.inlined; + +import org.apache.uima.ruta.explain.apply.ApplyTreeContentProvider; + +public class InlinedTreeContentProvider extends ApplyTreeContentProvider { + +} Added: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeLabelProvider.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeLabelProvider.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeLabelProvider.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedTreeLabelProvider.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +package org.apache.uima.ruta.explain.inlined; + +import org.apache.uima.cas.FeatureStructure; +import org.apache.uima.ruta.explain.ExplainConstants; +import org.apache.uima.ruta.explain.apply.ApplyTreeLabelProvider; +import org.apache.uima.ruta.explain.apply.ApplyViewPage; +import org.apache.uima.ruta.explain.tree.InlinedRuleBlockNode; +import org.apache.uima.ruta.type.DebugInlinedBlock; +import org.eclipse.swt.graphics.Image; + +public class InlinedTreeLabelProvider extends ApplyTreeLabelProvider { + + public InlinedTreeLabelProvider(ApplyViewPage owner) { + super(owner); + } + + @Override + public Image getImage(Object element) { + if (element instanceof InlinedRuleBlockNode) { + InlinedRuleBlockNode ruleBlockNode = (InlinedRuleBlockNode) element; + if (ruleBlockNode.isAsCondition()) { + if (ruleBlockNode.isMatched()) { + return owner.getImage(ExplainConstants.INLINED_CONDITION_BLOCK_MATCHED); + } else { + return owner.getImage(ExplainConstants.INLINED_CONDITION_BLOCK_FAILED); + } + } else { + return owner.getImage(ExplainConstants.INLINED_ACTION_BLOCK); + } + } + + return super.getImage(element); + } + + @Override + public String getText(Object element) { + if (element instanceof InlinedRuleBlockNode) { + InlinedRuleBlockNode node = (InlinedRuleBlockNode) element; + FeatureStructure fs = node.getFeatureStructure(); + if (fs instanceof DebugInlinedBlock) { + return ((DebugInlinedBlock) fs).getElement(); + } + } + + return super.getText(element); + } +} Added: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedView.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedView.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedView.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedView.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.uima.ruta.explain.inlined; + +import org.apache.uima.caseditor.editor.AnnotationEditor; +import org.apache.uima.caseditor.editor.CasEditorView; +import org.apache.uima.caseditor.editor.ICasEditor; +import org.eclipse.ui.part.IPageBookViewPage; + +public class InlinedView extends CasEditorView { + + public static final String ID = "org.apache.uima.ruta.explain.inlined"; + + public InlinedView() { + super("The instance view is currently not available."); + } + + @Override + protected IPageBookViewPage doCreatePage(ICasEditor editor) { + IPageBookViewPage result = null; + if (editor.getDocument() != null && editor instanceof AnnotationEditor) { + InlinedViewPage page = new InlinedViewPage((AnnotationEditor) editor); + result = page; + } + return result; + } + +} Added: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedViewPage.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedViewPage.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/inlined/InlinedViewPage.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.uima.ruta.explain.inlined; + +import org.apache.uima.caseditor.editor.AnnotationEditor; +import org.apache.uima.ruta.explain.apply.ApplyView; +import org.apache.uima.ruta.explain.apply.ApplyViewPage; +import org.apache.uima.ruta.explain.element.ElementView; +import org.apache.uima.ruta.explain.failed.FailedView; +import org.apache.uima.ruta.explain.matched.MatchedView; +import org.apache.uima.ruta.explain.rulelist.RuleListView; +import org.apache.uima.ruta.explain.selection.ExplainSelectionView; +import org.apache.uima.ruta.explain.tree.ExplainAbstractTreeNode; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.TreeSelection; +import org.eclipse.jface.viewers.TreeViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.ISelectionListener; +import org.eclipse.ui.IWorkbenchPart; + +public class InlinedViewPage extends ApplyViewPage implements ISelectionListener { + + public InlinedViewPage(AnnotationEditor editor) { + super(editor); + } + + @Override + public void createControl(Composite parent) { + viewer = new TreeViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL); + viewer.setContentProvider(new InlinedTreeContentProvider()); + viewer.setLabelProvider(new InlinedTreeLabelProvider(this)); + + document.addChangeListener(this); + + viewer.setAutoExpandLevel(2); + viewer.addDoubleClickListener(this); + getSite().setSelectionProvider(viewer); + getSite().getPage().addSelectionListener(this); + } + + public void inputChange(Object newInput) { + if (newInput == null || viewer == null || newInput == viewer.getInput()) { + return; + } + this.viewer.setInput(newInput); + this.viewer.refresh(); + } + + @Override + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + if (selection instanceof TreeSelection + && (part instanceof ApplyView || part instanceof RuleListView + || part instanceof ExplainSelectionView || part instanceof MatchedView + || part instanceof FailedView || part instanceof ElementView)) { + TreeSelection ts = (TreeSelection) selection; + Object firstElement = ts.getFirstElement(); + + if (firstElement instanceof ExplainAbstractTreeNode) { + inputChange(((ExplainAbstractTreeNode) firstElement).getInlined()); + } + } + } + +} Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/matched/MatchedViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/matched/MatchedViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/matched/MatchedViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/matched/MatchedViewPage.java Mon Nov 18 12:19:31 2019 @@ -26,6 +26,7 @@ import org.apache.uima.caseditor.editor. import org.apache.uima.ruta.addons.RutaAddonsPlugin; import org.apache.uima.ruta.explain.ExplainConstants; import org.apache.uima.ruta.explain.apply.ApplyView; +import org.apache.uima.ruta.explain.inlined.InlinedView; import org.apache.uima.ruta.explain.rulelist.RuleListView; import org.apache.uima.ruta.explain.selection.ExplainSelectionView; import org.apache.uima.ruta.explain.tree.BlockApplyNode; @@ -55,13 +56,13 @@ public class MatchedViewPage extends Pag @Override public void dispose() { - super.dispose(); getSite().getPage().removeSelectionListener(this); if (images != null) { for (Image each : images.values()) { each.dispose(); } } + super.dispose(); } private void initImages() { @@ -126,9 +127,11 @@ public class MatchedViewPage extends Pag } } + @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { if (selection instanceof TreeSelection - && (part instanceof ApplyView || part instanceof RuleListView || part instanceof ExplainSelectionView)) { + && (part instanceof ApplyView || part instanceof RuleListView + || part instanceof ExplainSelectionView || part instanceof InlinedView)) { TreeSelection ts = (TreeSelection) selection; Object firstElement = ts.getFirstElement(); Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/rulelist/RuleListViewPage.java Mon Nov 18 12:19:31 2019 @@ -114,6 +114,7 @@ public class RuleListViewPage extends Ap } } + @Override public void handleEvent(Event event) { if (event.widget == filterTextField && event.type == SWT.Modify) { manualFilter = filterTextField.getText(); @@ -163,7 +164,7 @@ public class RuleListViewPage extends Ap } private void reloadTree() { - ExplainTree tree = new ExplainTree(document.getCAS(), offset, true); + ExplainTree tree = new ExplainTree(getJCas(), offset, true); filterTree(tree); viewer.setInput(tree.getRoot()); viewer.refresh(); Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/selection/ExplainSelectionViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/selection/ExplainSelectionViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/selection/ExplainSelectionViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/selection/ExplainSelectionViewPage.java Mon Nov 18 12:19:31 2019 @@ -46,7 +46,7 @@ public class ExplainSelectionViewPage ex viewer.setContentProvider(new ApplyTreeContentProvider()); viewer.setLabelProvider(new ApplyTreeLabelProvider(this)); - viewer.setInput(new ApplyRootNode(null, document.getCAS().getTypeSystem())); + viewer.setInput(new ApplyRootNode(null, getJCas().getTypeSystem())); getSite().setSelectionProvider(viewer); getSite().getPage().addSelectionListener(this); @@ -57,7 +57,7 @@ public class ExplainSelectionViewPage ex if (selection instanceof StructuredSelection && part instanceof AnnotationEditor) { offset = editor.getCaretOffset(); if (offset >= 0) { - ExplainTree tree = new ExplainTree(document.getCAS(), offset); + ExplainTree tree = new ExplainTree(getJCas(), offset); viewer.setInput(tree.getRoot()); viewer.refresh(); } Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainAbstractTreeNode.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainAbstractTreeNode.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainAbstractTreeNode.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainAbstractTreeNode.java Mon Nov 18 12:19:31 2019 @@ -31,6 +31,8 @@ public abstract class ExplainAbstractTre private IExplainTreeNode parent; + private InlinedRootNode inlined; + private List<IExplainTreeNode> children; private FeatureStructure fs; @@ -44,14 +46,17 @@ public abstract class ExplainAbstractTre this.ts = ts; } + @Override public IExplainTreeNode getParent() { return parent; } + @Override public List<IExplainTreeNode> getChildren() { return children; } + @Override public boolean hasChildren() { if (children.size() > 0) { return true; @@ -59,18 +64,22 @@ public abstract class ExplainAbstractTre return false; } + @Override public void addChild(IExplainTreeNode child) { children.add(child); } + @Override public boolean removeChild(IExplainTreeNode child) { return children.remove(child); } + @Override public FeatureStructure getFeatureStructure() { return fs; } + @Override public TypeSystem getTypeSystem() { return ts; } @@ -80,15 +89,26 @@ public abstract class ExplainAbstractTre return fs.toString(); } + @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object getAdapter(Class adapter) { if (FeatureStructure.class.equals(adapter)) { return getFeatureStructure(); - } else if (AnnotationFS.class.equals(adapter) && getFeatureStructure() instanceof AnnotationFS) { + } else if (AnnotationFS.class.equals(adapter) + && getFeatureStructure() instanceof AnnotationFS) { return getFeatureStructure(); } return null; } + + @Override + public InlinedRootNode getInlined() { + return inlined; + } + + public void setInlined(InlinedRootNode inlined) { + this.inlined = inlined; + } } Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainTree.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainTree.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainTree.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/ExplainTree.java Mon Nov 18 12:19:31 2019 @@ -24,91 +24,61 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; -import org.apache.uima.cas.ArrayFS; -import org.apache.uima.cas.CAS; -import org.apache.uima.cas.Feature; import org.apache.uima.cas.FeatureStructure; -import org.apache.uima.cas.Type; import org.apache.uima.cas.TypeSystem; -import org.apache.uima.cas.text.AnnotationFS; -import org.apache.uima.fit.util.CasUtil; -import org.apache.uima.ruta.explain.ExplainConstants; +import org.apache.uima.fit.util.JCasUtil; +import org.apache.uima.jcas.JCas; +import org.apache.uima.jcas.cas.FSArray; +import org.apache.uima.ruta.type.DebugBlockApply; +import org.apache.uima.ruta.type.DebugEvaluatedCondition; +import org.apache.uima.ruta.type.DebugInlinedBlock; +import org.apache.uima.ruta.type.DebugRuleApply; +import org.apache.uima.ruta.type.DebugRuleElementMatch; +import org.apache.uima.ruta.type.DebugRuleElementMatches; +import org.apache.uima.ruta.type.DebugRuleMatch; +import org.apache.uima.ruta.type.DebugScriptApply; public class ExplainTree { private IExplainTreeNode root; - private Type ruleMatchType; - - private Type blockApplyType; - - private Type ruleApplyType; - - private Type ruleElementMatchType; - - private Type ruleElementMatchesType; - - private Type evaluatedConditionType; - - private Type matchedRuleMatchType; - - private Type failedRuleMatchType; - - public ExplainTree(CAS cas) { - this(cas, -1); + public ExplainTree(JCas jcas) { + this(jcas, -1); } - public ExplainTree(CAS cas, int offset) { - this(cas, offset, false); + public ExplainTree(JCas jcas, int offset) { + this(jcas, offset, false); if (offset >= 0) { prune(root); } } - public ExplainTree(CAS cas, int offset, boolean onlyRules) { - createTree(cas, offset, onlyRules); + public ExplainTree(JCas jcas, int offset, boolean onlyRules) { + createTree(jcas, offset, onlyRules); } public IExplainTreeNode getRoot() { return root; } - private void createTree(CAS cas, int offset, boolean onlyRules) { - TypeSystem ts = cas.getTypeSystem(); - Type scriptApplyType = ts.getType(ExplainConstants.SCRIPT_APPLY_TYPE); - - blockApplyType = ts.getType(ExplainConstants.BLOCK_APPLY_TYPE); - ruleApplyType = ts.getType(ExplainConstants.RULE_APPLY_TYPE); - ruleMatchType = ts.getType(ExplainConstants.RULE_MATCH_TYPE); - matchedRuleMatchType = ts.getType(ExplainConstants.MATCHED_RULE_MATCH_TYPE); - failedRuleMatchType = ts.getType(ExplainConstants.FAILED_RULE_MATCH_TYPE); - ruleElementMatchType = ts.getType(ExplainConstants.RULE_ELEMENT_MATCH_TYPE); - ruleElementMatchesType = ts.getType(ExplainConstants.RULE_ELEMENT_MATCHES_TYPE); - evaluatedConditionType = ts.getType(ExplainConstants.EVAL_CONDITION_TYPE); - - if (scriptApplyType == null) { - return; - } - - List<AnnotationFS> scriptApplies = new ArrayList<>(CasUtil.select(cas, scriptApplyType)); + private void createTree(JCas jcas, int offset, boolean onlyRules) { + TypeSystem ts = jcas.getTypeSystem(); + List<DebugScriptApply> scriptApplies = new ArrayList<>( + JCasUtil.select(jcas, DebugScriptApply.class)); // sort by creation time - Collections.sort(scriptApplies, new Comparator<AnnotationFS>() { + Collections.sort(scriptApplies, new Comparator<DebugScriptApply>() { @Override - public int compare(AnnotationFS o1, AnnotationFS o2) { - Feature feature = o1.getType().getFeatureByBaseName(ExplainConstants.TIME_STAMP); - if (feature == null || !o1.getType().equals(o2.getType())) { - return o1.getType().getName().compareTo(o2.getType().getName()); - } - long l1 = o1.getLongValue(feature); - long l2 = o2.getLongValue(feature); + public int compare(DebugScriptApply o1, DebugScriptApply o2) { + long l1 = o1.getTimestamp(); + long l2 = o2.getTimestamp(); return Long.compare(l1, l2); } }); root = new ApplyRootNode(null, ts); - for (AnnotationFS scriptApply : scriptApplies) { + for (DebugScriptApply scriptApply : scriptApplies) { buildTree(scriptApply, root, ts, offset, onlyRules); } @@ -116,23 +86,36 @@ public class ExplainTree { private void buildTree(FeatureStructure fs, IExplainTreeNode parent, TypeSystem ts, int offset, boolean onlyRules) { - if (blockApplyType != null && blockApplyType.equals(fs.getType())) { - processBlockApply((AnnotationFS) fs, parent, ts, offset, onlyRules); - } else if (ruleApplyType != null && ruleApplyType.equals(fs.getType())) { - processRuleApply((AnnotationFS) fs, parent, ts, offset, onlyRules); - } else if ((matchedRuleMatchType != null && matchedRuleMatchType.equals(fs.getType())) - || (failedRuleMatchType != null && failedRuleMatchType.equals(fs.getType()))) { - processRuleMatch((AnnotationFS) fs, parent, ts, offset, onlyRules); - } else if (ruleElementMatchesType != null && ruleElementMatchesType.equals(fs.getType())) { - processRuleElementMatches(fs, parent, ts, offset, onlyRules); - } else if (ruleElementMatchType != null && ruleElementMatchType.equals(fs.getType())) { - processRuleElementMatch((AnnotationFS) fs, parent, ts, offset, onlyRules); - } else if (evaluatedConditionType != null && evaluatedConditionType.equals(fs.getType())) { - processEvaluatedCondition(fs, parent, ts, offset, onlyRules); + if (fs instanceof DebugBlockApply) { + processBlockApply((DebugBlockApply) fs, parent, ts, offset, onlyRules); + } else if (fs instanceof DebugRuleApply) { + processRuleApply((DebugRuleApply) fs, parent, ts, offset, onlyRules); + } else if (fs instanceof DebugRuleMatch) { + processRuleMatch((DebugRuleMatch) fs, parent, ts, offset, onlyRules); + } else if (fs instanceof DebugRuleElementMatches) { + processRuleElementMatches((DebugRuleElementMatches) fs, parent, ts, offset, onlyRules); + } else if (fs instanceof DebugRuleElementMatch) { + processRuleElementMatch((DebugRuleElementMatch) fs, parent, ts, offset, onlyRules); + } else if (fs instanceof DebugEvaluatedCondition) { + processEvaluatedCondition((DebugEvaluatedCondition) fs, parent, ts, offset, onlyRules); + } + } + + private void buildInlinedBlock(boolean asCondition, DebugInlinedBlock debugInlinedBlock, + IExplainTreeNode parent, TypeSystem ts, int offset, boolean onlyRules) { + InlinedRuleBlockNode inlinedBlockNode = new InlinedRuleBlockNode(parent, debugInlinedBlock, + debugInlinedBlock.getAsCondition(), debugInlinedBlock.getMatched(), ts); + parent.addChild(inlinedBlockNode); + + FSArray inlinedRules = debugInlinedBlock.getInlinedRules(); + if (inlinedRules != null) { + for (FeatureStructure each : inlinedRules) { + buildTree(each, inlinedBlockNode, ts, offset, onlyRules); + } } } - private void processBlockApply(AnnotationFS fs, IExplainTreeNode parent, TypeSystem ts, + private void processBlockApply(DebugBlockApply fs, IExplainTreeNode parent, TypeSystem ts, int offset, boolean onlyRules) { if (offset >= 0 && (fs.getBegin() >= offset || fs.getEnd() <= offset)) { return; @@ -143,21 +126,19 @@ public class ExplainTree { parent.addChild(blockNode); processBlockRuleApply(fs, blockNode, ts, offset, onlyRules); } - Feature feature = blockApplyType.getFeatureByBaseName(ExplainConstants.INNER_APPLY); - FeatureStructure featureValue = fs.getFeatureValue(feature); - ArrayFS value = (ArrayFS) featureValue; - FeatureStructure[] fsarray = value.toArray(); - for (FeatureStructure each : fsarray) { - if (!onlyRules) { - buildTree(each, blockNode, ts, offset, onlyRules); - } else { - buildTree(each, parent, ts, offset, onlyRules); - } + if (fs.getInnerApply() != null) { + for (FeatureStructure each : fs.getInnerApply()) { + if (!onlyRules) { + buildTree(each, blockNode, ts, offset, onlyRules); + } else { + buildTree(each, parent, ts, offset, onlyRules); + } + } } } - private void processBlockRuleApply(AnnotationFS fs, BlockApplyNode parent, TypeSystem ts, + private void processBlockRuleApply(DebugBlockApply fs, BlockApplyNode parent, TypeSystem ts, int offset, boolean onlyRules) { if (offset >= 0 && (fs.getBegin() >= offset || fs.getEnd() <= offset)) { return; @@ -165,82 +146,66 @@ public class ExplainTree { RuleApplyNode ruleNode = new RuleApplyNode(parent, fs, ts); parent.setBlockRuleApply(ruleNode); - Feature feature = ruleApplyType.getFeatureByBaseName(ExplainConstants.RULES); - ArrayFS value = (ArrayFS) fs.getFeatureValue(feature); - if (value == null) - return; - FeatureStructure[] fsarray = value.toArray(); - MatchedRootNode matched = new MatchedRootNode(ruleNode, ts); FailedRootNode failed = new FailedRootNode(ruleNode, ts); ruleNode.addChild(matched); ruleNode.addChild(failed); - for (FeatureStructure eachRuleMatch : fsarray) { - Feature f = eachRuleMatch.getType().getFeatureByBaseName(ExplainConstants.MATCHED); - boolean matchedValue = eachRuleMatch.getBooleanValue(f); - if (matchedValue) { - buildTree(eachRuleMatch, matched, ts, offset, onlyRules); - } else { - buildTree(eachRuleMatch, failed, ts, offset, onlyRules); - } - - Feature df = eachRuleMatch.getType().getFeatureByBaseName(ExplainConstants.DELEGATES); - if (df != null) { - ArrayFS dv = (ArrayFS) eachRuleMatch.getFeatureValue(df); - if (dv != null) { - FeatureStructure[] da = dv.toArray(); - for (FeatureStructure delegateFS : da) { + if (fs.getRules() != null) { + for (FeatureStructure each : fs.getRules()) { + DebugRuleMatch eachRuleMatch = (DebugRuleMatch) each; + boolean matchedValue = eachRuleMatch.getMatched(); + if (matchedValue) { + buildTree(eachRuleMatch, matched, ts, offset, onlyRules); + } else { + buildTree(eachRuleMatch, failed, ts, offset, onlyRules); + } + if (eachRuleMatch.getDelegates() != null) { + for (FeatureStructure delegateFS : eachRuleMatch.getDelegates()) { buildTree(delegateFS, ruleNode, ts, offset, onlyRules); } } } - } + } - private void processRuleApply(AnnotationFS fs, IExplainTreeNode parent, TypeSystem ts, int offset, - boolean onlyRules) { + private void processRuleApply(DebugRuleApply fs, IExplainTreeNode parent, TypeSystem ts, + int offset, boolean onlyRules) { if (offset >= 0 && (fs.getBegin() >= offset || fs.getEnd() <= offset)) { return; } RuleApplyNode ruleNode = new RuleApplyNode(parent, fs, ts); parent.addChild(ruleNode); - Feature feature = ruleApplyType.getFeatureByBaseName(ExplainConstants.RULES); - ArrayFS value = (ArrayFS) fs.getFeatureValue(feature); - FeatureStructure[] fsarray = value.toArray(); - MatchedRootNode matched = new MatchedRootNode(ruleNode, ts); FailedRootNode failed = new FailedRootNode(ruleNode, ts); ruleNode.addChild(matched); ruleNode.addChild(failed); - for (FeatureStructure eachRuleMatch : fsarray) { - Feature f = eachRuleMatch.getType().getFeatureByBaseName(ExplainConstants.MATCHED); - boolean matchedValue = eachRuleMatch.getBooleanValue(f); - if (matchedValue) { - buildTree(eachRuleMatch, matched, ts, offset, onlyRules); - } else { - buildTree(eachRuleMatch, failed, ts, offset, onlyRules); - } - - Feature df = eachRuleMatch.getType().getFeatureByBaseName(ExplainConstants.DELEGATES); - if (df != null) { - ArrayFS dv = (ArrayFS) eachRuleMatch.getFeatureValue(df); - if (dv != null) { - FeatureStructure[] da = dv.toArray(); - for (FeatureStructure delegateFS : da) { + if (fs.getRules() != null) { + for (FeatureStructure each : fs.getRules()) { + DebugRuleMatch eachRuleMatch = (DebugRuleMatch) each; + boolean matchedValue = eachRuleMatch.getMatched(); + if (matchedValue) { + buildTree(eachRuleMatch, matched, ts, offset, onlyRules); + } else { + buildTree(eachRuleMatch, failed, ts, offset, onlyRules); + } + if (eachRuleMatch.getDelegates() != null) { + for (FeatureStructure delegateFS : eachRuleMatch.getDelegates()) { buildTree(delegateFS, ruleNode, ts, offset, onlyRules); } } } - + if (fs.getRules().size() == 1) { + mergeInlinedRuleBlockNodesOfChildren(ruleNode); + } } } - private void processRuleMatch(AnnotationFS fs, IExplainTreeNode parent, TypeSystem ts, int offset, - boolean onlyRules) { + private void processRuleMatch(DebugRuleMatch fs, IExplainTreeNode parent, TypeSystem ts, + int offset, boolean onlyRules) { if (offset >= 0 && (fs.getBegin() >= offset || fs.getEnd() <= offset)) { return; } @@ -250,74 +215,120 @@ public class ExplainTree { RuleElementRootNode remRoot = new RuleElementRootNode(matchNode, ts); matchNode.addChild(remRoot); - Feature feature = ruleMatchType.getFeatureByBaseName(ExplainConstants.ELEMENTS); - ArrayFS value = (ArrayFS) fs.getFeatureValue(feature); - if (value != null) { - FeatureStructure[] fsarray = value.toArray(); - for (FeatureStructure each : fsarray) { + if (fs.getElements() != null) { + for (FeatureStructure each : fs.getElements()) { buildTree(each, remRoot, ts, offset, onlyRules); } } + mergeInlinedRuleBlockNodesOfChildren(matchNode); } - private void processRuleElementMatches(FeatureStructure fs, IExplainTreeNode parent, + private void processRuleElementMatches(DebugRuleElementMatches fs, IExplainTreeNode parent, TypeSystem ts, int offset, boolean onlyRules) { RuleElementMatchesNode remsNode = new RuleElementMatchesNode(parent, fs, ts); parent.addChild(remsNode); - Feature feature = ruleElementMatchesType.getFeatureByBaseName(ExplainConstants.MATCHES); - ArrayFS value = (ArrayFS) fs.getFeatureValue(feature); - FeatureStructure[] fsarray = value.toArray(); - for (FeatureStructure each : fsarray) { - buildTree(each, remsNode, ts, offset, onlyRules); + if (fs.getMatches() != null) { + for (FeatureStructure each : fs.getMatches()) { + buildTree(each, remsNode, ts, offset, onlyRules); + } + } + + FSArray inlinedActionBlocks = fs.getInlinedActionBlocks(); + if (inlinedActionBlocks != null) { + InlinedRootNode inlinedRootNode = new InlinedRootNode(remsNode, ts); + remsNode.setInlined(inlinedRootNode); + for (FeatureStructure each : inlinedActionBlocks) { + if (each instanceof DebugInlinedBlock) { + buildInlinedBlock(false, (DebugInlinedBlock) each, inlinedRootNode, ts, offset, + onlyRules); + } + } } + mergeInlinedRuleBlockNodesOfChildren(remsNode); } - private void processRuleElementMatch(AnnotationFS fs, IExplainTreeNode parent, TypeSystem ts, - int offset, boolean onlyRules) { + private void processRuleElementMatch(DebugRuleElementMatch fs, IExplainTreeNode parent, + TypeSystem ts, int offset, boolean onlyRules) { if (offset >= 0 && (fs.getBegin() >= offset || fs.getEnd() <= offset)) { return; } RuleElementMatchNode remNode = new RuleElementMatchNode(parent, fs, ts); parent.addChild(remNode); - Feature feature = ruleElementMatchType.getFeatureByBaseName(ExplainConstants.BASE_CONDITION); - FeatureStructure base = fs.getFeatureValue(feature); - buildTree(base, remNode, ts, offset, onlyRules); - - feature = ruleElementMatchType.getFeatureByBaseName(ExplainConstants.CONDITIONS); - ArrayFS value = (ArrayFS) fs.getFeatureValue(feature); - if (value != null) { - FeatureStructure[] fsarray = value.toArray(); - for (FeatureStructure each : fsarray) { + DebugEvaluatedCondition baseCondition = fs.getBaseCondition(); + buildTree(baseCondition, remNode, ts, offset, onlyRules); + + if (fs.getConditions() != null) { + for (FeatureStructure each : fs.getConditions()) { buildTree(each, remNode, ts, offset, onlyRules); } } - feature = fs.getType().getFeatureByBaseName(ExplainConstants.ELEMENTS); - value = (ArrayFS) fs.getFeatureValue(feature); - if (value != null) { - FeatureStructure[] fsarray = value.toArray(); - for (FeatureStructure each : fsarray) { + if (fs.getElements() != null) { + for (FeatureStructure each : fs.getElements()) { buildTree(each, remNode, ts, offset, onlyRules); } } + FSArray inlinedConditionBlocks = fs.getInlinedConditionBlocks(); + if (inlinedConditionBlocks != null) { + InlinedRootNode inlinedRootNode = new InlinedRootNode(remNode, ts); + remNode.setInlined(inlinedRootNode); + for (FeatureStructure each : inlinedConditionBlocks) { + if (each instanceof DebugInlinedBlock) { + buildInlinedBlock(true, (DebugInlinedBlock) each, inlinedRootNode, ts, offset, onlyRules); + } + } + } + mergeInlinedRuleBlockNodesOfChildren(remNode); } - private void processEvaluatedCondition(FeatureStructure fs, IExplainTreeNode parent, + private void processEvaluatedCondition(DebugEvaluatedCondition fs, IExplainTreeNode parent, TypeSystem ts, int offset, boolean onlyRules) { ConditionNode condNode = new ConditionNode(parent, fs, ts); parent.addChild(condNode); - Feature feature = evaluatedConditionType.getFeatureByBaseName(ExplainConstants.CONDITIONS); - ArrayFS value = (ArrayFS) fs.getFeatureValue(feature); - if (value != null) { - FeatureStructure[] fsarray = value.toArray(); - for (FeatureStructure each : fsarray) { + if (fs.getConditions() != null) { + for (FeatureStructure each : fs.getConditions()) { buildTree(each, condNode, ts, offset, onlyRules); } } } + private void mergeInlinedRuleBlockNodesOfChildren(ExplainAbstractTreeNode parent) { + + List<IExplainTreeNode> list = new ArrayList<>(); + + for (IExplainTreeNode each : parent.getChildren()) { + collectInlinedBlockNodes(each, list); + } + InlinedRootNode inlinedRootNode = parent.getInlined(); + if (inlinedRootNode == null && !list.isEmpty()) { + inlinedRootNode = new InlinedRootNode(parent, parent.getTypeSystem()); + parent.setInlined(inlinedRootNode); + } + + if (inlinedRootNode != null) { + for (IExplainTreeNode each : list) { + if (!inlinedRootNode.getChildren().contains(each)) { + inlinedRootNode.addChild(each); + } + } + } + } + + private void collectInlinedBlockNodes(IExplainTreeNode node, List<IExplainTreeNode> result) { + if (node.getInlined() != null && node.getInlined().hasChildren()) { + // already collected down to this level + result.addAll(node.getInlined().getChildren()); + return; + } + + List<IExplainTreeNode> children = node.getChildren(); + for (IExplainTreeNode each : children) { + collectInlinedBlockNodes(each, result); + } + } + private void prune(IExplainTreeNode node) { if (node == null) { return; Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/IExplainTreeNode.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/IExplainTreeNode.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/IExplainTreeNode.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/IExplainTreeNode.java Mon Nov 18 12:19:31 2019 @@ -39,4 +39,7 @@ public interface IExplainTreeNode { FeatureStructure getFeatureStructure(); TypeSystem getTypeSystem(); + + ExplainAbstractTreeNode getInlined(); + } Added: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRootNode.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRootNode.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRootNode.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRootNode.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,34 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +package org.apache.uima.ruta.explain.tree; + +import org.apache.uima.cas.TypeSystem; + +public class InlinedRootNode extends ExplainAbstractTreeNode implements ExplainRootNode { + + public InlinedRootNode(IExplainTreeNode parent, TypeSystem ts) { + super(parent, null, ts); + } + + @Override + public String toString() { + return "Inlined"; + } +} Added: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRuleBlockNode.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRuleBlockNode.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRuleBlockNode.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/explain/tree/InlinedRuleBlockNode.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ + +package org.apache.uima.ruta.explain.tree; + +import org.apache.uima.cas.FeatureStructure; +import org.apache.uima.cas.TypeSystem; + +public class InlinedRuleBlockNode extends ExplainAbstractTreeNode { + + private final boolean asCondition; + + private final boolean matched; + + public InlinedRuleBlockNode(IExplainTreeNode parent, FeatureStructure fs, boolean asCondition, + boolean matched, TypeSystem ts) { + super(parent, fs, ts); + this.asCondition = asCondition; + this.matched = matched; + } + + @Override + public void addChild(IExplainTreeNode node) { + super.addChild(node); + } + + public boolean isAsCondition() { + return asCondition; + } + + public boolean isMatched() { + return matched; + } + +} Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/statistics/StatisticsViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/statistics/StatisticsViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/statistics/StatisticsViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/statistics/StatisticsViewPage.java Mon Nov 18 12:19:31 2019 @@ -74,12 +74,12 @@ public class StatisticsViewPage extends @Override public void dispose() { - super.dispose(); if (images != null) { for (Image each : images.values()) { each.dispose(); } } + super.dispose(); } private void initImages() { Modified: uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/evalDataTable/TypeTableSorter.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/evalDataTable/TypeTableSorter.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/evalDataTable/TypeTableSorter.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/testing/ui/views/evalDataTable/TypeTableSorter.java Mon Nov 18 12:19:31 2019 @@ -23,7 +23,7 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerSorter; public class TypeTableSorter extends ViewerSorter { - + private static final int ASCENDING = 0; private static final int DESCENDING = 1; @@ -32,13 +32,6 @@ public class TypeTableSorter extends Vie private int direction; - /** - * Does the sort. If it's a different column from the previous sort, do an - * ascending sort. If it's the same column as the last sort, toggle the sort - * direction. - * - * @param column - */ public void doSort(int column) { if (column == this.column) { // Same column as last sort; toggle the direction @@ -50,19 +43,13 @@ public class TypeTableSorter extends Vie } } - /** - * Compares the object for sorting - */ @Override public int compare(Viewer viewer, Object e1, Object e2) { int rc = 0; TypeEvalData td1 = (TypeEvalData) e1; TypeEvalData td2 = (TypeEvalData) e2; - - - - switch(column) { + switch (column) { case TypeEvalTableConst.COLUMN_TYPE_NAME: rc = td1.getTypeName().compareTo(td2.getTypeName()); break; @@ -76,50 +63,21 @@ public class TypeTableSorter extends Vie rc = td1.getFalseNegatives() - td2.getFalseNegatives(); break; case TypeEvalTableConst.COLUMN_PRECISION: - rc = Double.compare(td1.getPrecision() , td2.getPrecision()); + rc = Double.compare(td1.getPrecision(), td2.getPrecision()); break; case TypeEvalTableConst.COLUMN_RECALL: - rc = Double.compare(td1.getRecall() , td2.getRecall()); + rc = Double.compare(td1.getRecall(), td2.getRecall()); break; case TypeEvalTableConst.COLUMN_F1: - rc = Double.compare(td1.getFOne() , td2.getFOne());; + rc = Double.compare(td1.getFOne(), td2.getFOne()); + ; break; } - + if (direction == DESCENDING) rc = -rc; - return rc; - - -// int rc = 0; -// Player p1 = (Player) e1; -// Player p2 = (Player) e2; -// -// // Determine which column and do the appropriate sort -// switch (column) { -// case PlayerConst.COLUMN_FIRST_NAME: -// rc = collator.compare(p1.getFirstName(), p2.getFirstName()); -// break; -// case PlayerConst.COLUMN_LAST_NAME: -// rc = collator.compare(p1.getLastName(), p2.getLastName()); -// break; -// case PlayerConst.COLUMN_POINTS: -// rc = p1.getPoints() > p2.getPoints() ? 1 : -1; -// break; -// case PlayerConst.COLUMN_REBOUNDS: -// rc = p1.getRebounds() > p2.getRebounds() ? 1 : -1; -// break; -// case PlayerConst.COLUMN_ASSISTS: -// rc = p1.getAssists() > p2.getAssists() ? 1 : -1; -// break; -// } -// -// // If descending order, flip the direction -// if (direction == DESCENDING) -// rc = -rc; -// -// return rc; + return rc; } } Modified: uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/pom.xml URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/pom.xml?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/pom.xml (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/pom.xml Mon Nov 18 12:19:31 2019 @@ -134,6 +134,7 @@ <exclude>release.properties</exclude> <!-- release generated artifact --> <exclude>src/test/resources/ManualTests/*</exclude> <!-- test data --> <exclude>marker-file-identifying-*</exclude> + <exclude>META-INF/MANIFEST.MF</exclude> <exclude>issuesFixed/**</exclude> </excludes> </configuration> @@ -154,7 +155,7 @@ <instructions> <Bundle-SymbolicName>org.apache.uima.ruta.caseditor;singleton:=true</Bundle-SymbolicName> <Bundle-Activator>org.apache.uima.ruta.caseditor.RutaCasEditorPlugin</Bundle-Activator> - <Bundle-RequiredExecutionEnvironment>JavaSE-1.7</Bundle-RequiredExecutionEnvironment> + <Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment> <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> <_nouses>true</_nouses> <Export-Package> Modified: uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/AnnotationTreeViewPage.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/AnnotationTreeViewPage.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/AnnotationTreeViewPage.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/AnnotationTreeViewPage.java Mon Nov 18 12:19:31 2019 @@ -380,7 +380,6 @@ public class AnnotationTreeViewPage exte */ @Override public void dispose() { - super.dispose(); getSite().getPage().removeSelectionListener(this); editor.removeAnnotationListener(this); editor.getCasDocumentProvider().getTypeSystemPreferenceStore(editor.getEditorInput()) @@ -391,6 +390,7 @@ public class AnnotationTreeViewPage exte image.dispose(); } rutaImage.dispose(); + super.dispose(); } /* Modified: uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/FSTreeNode.java Mon Nov 18 12:19:31 2019 @@ -23,7 +23,6 @@ import java.util.Collections; import java.util.List; import java.util.Stack; -import org.apache.commons.lang3.StringUtils; import org.apache.uima.cas.ArrayFS; import org.apache.uima.cas.CAS; import org.apache.uima.cas.CommonArrayFS; @@ -41,7 +40,8 @@ public class FSTreeNode extends Abstract this(cas, parent, annotation, new Stack<Type>()); } - public FSTreeNode(CAS cas, ITreeNode parent, FeatureStructure annotation, Stack<Type> parentTypes) { + public FSTreeNode(CAS cas, ITreeNode parent, FeatureStructure annotation, + Stack<Type> parentTypes) { super(cas, parent); this.fs = annotation; parentTypes.push(fs.getType()); @@ -92,16 +92,22 @@ public class FSTreeNode extends Abstract } } } else if (featureValue instanceof CommonArrayFS) { - // handle all other kind of CommonArrayFS nodes (ArrayFS handled above) + // handle all other kind of CommonArrayFS nodes (ArrayFS handled above) CommonArrayFS array = (CommonArrayFS) featureValue; - String text = "[" + StringUtils.join(array.toStringArray(), ", ") + "]"; - parent.addChild(new ArrayFeatureTreeNode(this, f, text)); + String text = "Array" + "[" + array.size() + "]"; + PrimitiveFeatureTreeNode arrayNode = new PrimitiveFeatureTreeNode(this, f, text); + parent.addChild(arrayNode); + String[] stringArray = array.toStringArray(); + for (String string : stringArray) { + PrimitiveTreeNode stringNode = new PrimitiveTreeNode(arrayNode, string); + arrayNode.addChild(stringNode); + } } } else if (f.getRange().isPrimitive()) { if ("uima.cas.AnnotationBase:sofa".equals(f.getName())) { } else { - parent.addChild(new PrimitiveFeatureTreeNode(this, f, featureStructure - .getFeatureValueAsString(f))); + parent.addChild( + new PrimitiveFeatureTreeNode(this, f, featureStructure.getFeatureValueAsString(f))); } } else if (f.getRange() instanceof Type) { FeatureStructure featureValue = featureStructure.getFeatureValue(f); Added: uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/PrimitiveTreeNode.java URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/PrimitiveTreeNode.java?rev=1869967&view=auto ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/PrimitiveTreeNode.java (added) +++ uima/uv3/ruta-v3/trunk/ruta-ep-caseditor/src/main/java/org/apache/uima/ruta/caseditor/view/tree/PrimitiveTreeNode.java Mon Nov 18 12:19:31 2019 @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.uima.ruta.caseditor.view.tree; + +import java.util.Comparator; + +import org.apache.uima.cas.Type; + +public class PrimitiveTreeNode implements ITreeNode { + + private static final ITreeNode[] EMPTY_NODES = new ITreeNode[0]; + + private ITreeNode parent; + + private String value; + + public PrimitiveTreeNode(ITreeNode parent, String value) { + this.parent = parent; + this.value = value; + } + + @Override + public void addChild(ITreeNode child) { + // nothing to do + } + + @Override + public ITreeNode[] getChildren() { + return EMPTY_NODES; + } + + @Override + public String getName() { + return value; + } + + @Override + public ITreeNode getParent() { + return parent; + } + + @Override + public Type getType() { + return null; + } + + @Override + public boolean hasChildren() { + return false; + } + + @Override + public void sort(Comparator<ITreeNode> cp) { + // nothing to do + } + + @Override + @SuppressWarnings("unchecked") + public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) { + + if (PrimitiveTreeNode.class.equals(adapter)) { + return this; + } + + return null; + } + +} Modified: uima/uv3/ruta-v3/trunk/ruta-ep-core-ext/pom.xml URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-core-ext/pom.xml?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-core-ext/pom.xml (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-core-ext/pom.xml Mon Nov 18 12:19:31 2019 @@ -104,6 +104,7 @@ <excludes> <exclude>release.properties</exclude> <!-- release generated artifact --> <exclude>marker-file-identifying-*</exclude> + <exclude>META-INF/MANIFEST.MF</exclude> <exclude>issuesFixed/**</exclude> </excludes> </configuration> @@ -136,7 +137,7 @@ <Import-Package> </Import-Package> <Bundle-SymbolicName>org.apache.uima.ruta.core.ext;singleton:=true</Bundle-SymbolicName> - <Bundle-RequiredExecutionEnvironment>JavaSE-1.7</Bundle-RequiredExecutionEnvironment> + <Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment> <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> <Eclipse-ExtensibleAPI>true</Eclipse-ExtensibleAPI> <Eclipse-BuddyPolicy>registered</Eclipse-BuddyPolicy> Modified: uima/uv3/ruta-v3/trunk/ruta-ep-engine/pom.xml URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-engine/pom.xml?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-engine/pom.xml (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-engine/pom.xml Mon Nov 18 12:19:31 2019 @@ -81,6 +81,12 @@ licensed under the Common Public License <scope>compile</scope> </dependency> <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-text</artifactId> + <version>1.6</version> + <scope>compile</scope> + </dependency> + <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> @@ -176,13 +182,6 @@ licensed under the Common Public License <version>3.1.2.RELEASE</version> <scope>compile</scope> </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - <version>1.7.24</version> - <scope>compile</scope> - </dependency> - </dependencies> <scm> <url>http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-engine</url> @@ -210,6 +209,7 @@ licensed under the Common Public License <excludes> <exclude>release.properties</exclude> <!-- release generated artifact --> <exclude>marker-file-identifying-*</exclude> + <exclude>META-INF/MANIFEST.MF</exclude> <exclude>issuesFixed/**</exclude> </excludes> </configuration> @@ -235,7 +235,9 @@ licensed under the Common Public License org.apache.uima.ruta.descriptor, org.apache.uima.ruta.engine, org.apache.uima.ruta.expression, + org.apache.uima.ruta.expression.annotation, org.apache.uima.ruta.expression.bool, + org.apache.uima.ruta.expression.feature, org.apache.uima.ruta.expression.list, org.apache.uima.ruta.expression.number, org.apache.uima.ruta.expression.resource, @@ -260,12 +262,13 @@ licensed under the Common Public License org.antlr.runtime.tree, org.htmlparser, org.htmlparser.*, + org.apache.commons.text.*, org.apache.commons.lang3.*, + org.apache.commons.logging, org.apache.commons.io.*, org.apache.uima.fit.*, org.apache.commons.math3.*, - org.springframework.*, - org.slf4j.* + org.springframework.* </_exportcontents> <Import-Package> @@ -287,7 +290,7 @@ licensed under the Common Public License !javax.xml.stream.events, !javax.xml.stream.util, !javax.xml.transform, !javax.xml.transform.sax, !javax.xml.transform.stax, - !javax.xml.ws, !joptsimple, !net.sf.cglib.*, !net.sf.ehcache.*, + !javax.xml.ws, !javax.xml.*, !joptsimple, !net.sf.cglib.*, !net.sf.ehcache.*, !org.antlr.stringtemplate, !org.apache.avalon.framework.logger, !org.apache.log, !org.apache.log4j, !org.apache.log4j.xml, @@ -295,7 +298,7 @@ licensed under the Common Public License !org.joda.*, !org.jruby.*, !org.omg.CORBA, !org.springframework.instrument, !org.w3c.dom, !org.xml.sax, !org.xml.sax.ext, !org.xml.sax.helpers, - !org.aopalliance.*, !org.springframework.aop.*, !org.slf4j.* + !org.aopalliance.*, !org.springframework.aop.* </Import-Package> <!-- --> <Require-Bundle> org.apache.uima.runtime </Require-Bundle> @@ -317,7 +320,7 @@ licensed under the Common Public License <Embed-Dependency>*;scope=compile</Embed-Dependency> <!-- <Embed-Transitive>true</Embed-Transitive> --> <Bundle-SymbolicName>org.apache.uima.ruta.engine;singleton:=true</Bundle-SymbolicName> - <Bundle-RequiredExecutionEnvironment>JavaSE-1.7</Bundle-RequiredExecutionEnvironment> + <Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment> <Eclipse-ExtensibleAPI>true</Eclipse-ExtensibleAPI> <!-- <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> --> <Eclipse-BuddyPolicy>registered</Eclipse-BuddyPolicy> Modified: uima/uv3/ruta-v3/trunk/ruta-ep-ide-ui/pom.xml URL: http://svn.apache.org/viewvc/uima/uv3/ruta-v3/trunk/ruta-ep-ide-ui/pom.xml?rev=1869967&r1=1869966&r2=1869967&view=diff ============================================================================== --- uima/uv3/ruta-v3/trunk/ruta-ep-ide-ui/pom.xml (original) +++ uima/uv3/ruta-v3/trunk/ruta-ep-ide-ui/pom.xml Mon Nov 18 12:19:31 2019 @@ -239,6 +239,7 @@ <excludes> <exclude>release.properties</exclude> <!-- release generated artifact --> <exclude>marker-file-identifying-*</exclude> + <exclude>META-INF/MANIFEST.MF</exclude> <exclude>src/main/resources/org/apache/uima/ruta/ide/formatter/*.ruta</exclude> <!-- preview file --> <exclude>src/main/resources/org/apache/uima/ruta/ide/formatter/preferences/*.ruta</exclude> <!-- preview file --> <exclude>src/main/resources/org/apache/uima/ruta/ide/launching/*.ruta</exclude> <!-- preview file --> @@ -264,7 +265,7 @@ <instructions> <Bundle-SymbolicName>org.apache.uima.ruta.ide.ui;singleton:=true</Bundle-SymbolicName> <Bundle-Activator>org.apache.uima.ruta.ide.RutaIdeUIPlugin</Bundle-Activator> - <Bundle-RequiredExecutionEnvironment>JavaSE-1.7</Bundle-RequiredExecutionEnvironment> + <Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment> <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> <_nouses>true</_nouses> <Export-Package>
