diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.jena/plugin.xml b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.jena/plugin.xml
index 5ad5679c3..dfd2d151e 100644
--- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.jena/plugin.xml
+++ b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.jena/plugin.xml
@@ -13,8 +13,7 @@
+ * In this test we check the existence of the Jena-based ones. + * The processors are registered via Java SPI. + * + * @author akos.kitta + */ +@RunWith(XtextRunner) +@InjectWith(SADLInjectorProvider) +class GH_154_CheckProcessorsTest extends Assert { + + @Inject + SadlModelProcessorProvider modelProcessorProvider; + + @Inject + SadlInferenceProcessorProvider inferenceProcessorProvider + + @Inject + SadlImportProcessorProvider importProcessorProvider + + @Test + def void checkJenaModelProcessor() { + modelProcessorProvider.allProcessors.filter(JenaBasedSadlModelProcessor).empty.assertFalse; + } + + @Test + def void checkJenaInferenceProcessor() { + inferenceProcessorProvider.allProcessors.filter(JenaBasedSadlInferenceProcessor).empty.assertFalse; + } + + @Test + def void checkNotNullJenaImportProcessor() { + importProcessorProvider.allProcessors.filter(JenaBasedSadlImportProcessor).empty.assertFalse; + } + +} diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/META-INF/MANIFEST.MF b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/META-INF/MANIFEST.MF index 8c6d8504d..15b3927af 100644 --- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/META-INF/MANIFEST.MF +++ b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/META-INF/MANIFEST.MF @@ -13,7 +13,8 @@ Require-Bundle: com.ge.research.sadl.ui, org.eclipse.xtext.testing, org.eclipse.xtext.junit4, org.eclipse.xtext.xbase.testing, - org.junit;bundle-version="4.12.0" + org.junit;bundle-version="4.12.0", + com.ge.research.sadl.jena;bundle-version="3.1.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: com.ge.research.sadl.ui.tests;x-internal=true Import-Package: org.hamcrest.core, diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/src/com/ge/research/sadl/ui/tests/GH_154_CheckProcessorsPluginTest.xtend b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/src/com/ge/research/sadl/ui/tests/GH_154_CheckProcessorsPluginTest.xtend new file mode 100644 index 000000000..ce5294313 --- /dev/null +++ b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/src/com/ge/research/sadl/ui/tests/GH_154_CheckProcessorsPluginTest.xtend @@ -0,0 +1,81 @@ +/************************************************************************ + * Copyright © 2007-2017 - General Electric Company, All Rights Reserved + * + * Project: SADL + * + * Description: The Semantic Application Design Language (SADL) is a + * language for building semantic models and expressing rules that + * capture additional domain knowledge. The SADL-IDE (integrated + * development environment) is a set of Eclipse plug-ins that + * support the editing and testing of semantic models using the + * SADL language. + * + * This software is distributed "AS-IS" without ANY WARRANTIES + * and licensed under the Eclipse Public License - v 1.0 + * which is available at http://www.eclipse.org/org/documents/epl-v10.php + * + ***********************************************************************/ +package com.ge.research.sadl.ui.tests + +import com.ge.research.sadl.jena.JenaBasedSadlImportProcessor +import com.ge.research.sadl.jena.JenaBasedSadlInferenceProcessor +import com.ge.research.sadl.jena.JenaBasedSadlModelProcessor +import com.ge.research.sadl.processing.SadlImportProcessorProvider +import com.ge.research.sadl.processing.SadlInferenceProcessorProvider +import com.ge.research.sadl.processing.SadlModelProcessorProvider +import com.google.inject.Inject +import org.eclipse.core.runtime.Platform +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.junit.Assert +import org.junit.BeforeClass +import org.junit.Test +import org.junit.runner.RunWith + +/** + * Test for checking whether any SADL model, inference, and import + * processors are available in the Eclipse-based case. + * + *
+ * In this test we check the existence of the Jena-based ones.
+ * The processors are registered via Eclipse-based extension points.
+ *
+ * @author akos.kitta
+ */
+@RunWith(XtextRunner)
+@InjectWith(SADLUiInjectorProvider)
+class GH_154_CheckProcessorsPluginTest extends Assert {
+
+ @Inject
+ SadlModelProcessorProvider modelProcessorProvider;
+
+ @Inject
+ SadlInferenceProcessorProvider inferenceProcessorProvider
+
+ @Inject
+ SadlImportProcessorProvider importProcessorProvider;
+
+ @BeforeClass
+ static def void assertRunningPlatform() {
+ assertTrue('These tests require a running Eclipse platform.
+ Execute them as a JUnit Plug-in Test.
+ If you see this error from Maven, then please configure your POM to use Tycho Surefire correctly for test execution.',
+ Platform.isRunning);
+ }
+
+ @Test
+ def void checkJenaModelProcessor() {
+ modelProcessorProvider.allProcessors.filter(JenaBasedSadlModelProcessor).empty.assertFalse;
+ }
+
+ @Test
+ def void checkJenaInferenceProcessor() {
+ inferenceProcessorProvider.allProcessors.filter(JenaBasedSadlInferenceProcessor).empty.assertFalse;
+ }
+
+ @Test
+ def void checkNotNullJenaImportProcessor() {
+ importProcessorProvider.allProcessors.filter(JenaBasedSadlImportProcessor).empty.assertFalse;
+ }
+
+}
diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/src/com/ge/research/sadl/ui/tests/HelloMaven.xtend b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/src/com/ge/research/sadl/ui/tests/HelloMaven.xtend
deleted file mode 100644
index 3eed31e7b..000000000
--- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui.tests/src/com/ge/research/sadl/ui/tests/HelloMaven.xtend
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.ge.research.sadl.ui.tests
-
-class HelloMaven {
-
-}
\ No newline at end of file
diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/META-INF/MANIFEST.MF b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/META-INF/MANIFEST.MF
index 5fb9215d0..91bd078d4 100644
--- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/META-INF/MANIFEST.MF
+++ b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/META-INF/MANIFEST.MF
@@ -34,7 +34,6 @@ Export-Package: com.ge.research.sadl.ui,
com.ge.research.sadl.ui.labeling,
com.ge.research.sadl.ui.outline,
com.ge.research.sadl.ui.preferences,
- com.ge.research.sadl.ui.processing,
com.ge.research.sadl.ui.quickfix,
com.ge.research.sadl.ui.syntaxcoloring,
com.ge.research.sadl.ui.visualize
diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/imports/OwlImportOperation.java b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/imports/OwlImportOperation.java
index 27c8d253a..e8332af7e 100644
--- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/imports/OwlImportOperation.java
+++ b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/imports/OwlImportOperation.java
@@ -14,7 +14,6 @@
import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
@@ -23,8 +22,6 @@
import java.util.List;
import java.util.zip.ZipEntry;
-import javax.activation.DataSource;
-
//import org.eclipse.core.filesystem.URIUtil;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -38,7 +35,6 @@
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IExecutableExtension;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -65,8 +61,6 @@
import com.ge.research.sadl.processing.ISadlImportProcessor;
import com.ge.research.sadl.processing.SadlImportProcessorProvider;
import com.ge.research.sadl.ui.internal.SadlActivator;
-import com.ge.research.sadl.ui.processing.ExtensionPointBasedSadlImportProcessorProvider;
-import com.ge.research.sadl.utils.ResourceManager;
import com.google.inject.Inject;
import com.google.inject.Injector;
diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/processing/ExtensionPointBasedSadlImportProcessorProvider.xtend b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/processing/ExtensionPointBasedSadlImportProcessorProvider.xtend
deleted file mode 100644
index 0cb2b6935..000000000
--- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl.ui/src/com/ge/research/sadl/ui/processing/ExtensionPointBasedSadlImportProcessorProvider.xtend
+++ /dev/null
@@ -1,47 +0,0 @@
-/************************************************************************
- * Copyright © 2007-2016 - General Electric Company, All Rights Reserved
- *
- * Project: SADL
- *
- * Description: The Semantic Application Design Language (SADL) is a
- * language for building semantic models and expressing rules that
- * capture additional domain knowledge. The SADL-IDE (integrated
- * development environment) is a set of Eclipse plug-ins that
- * support the editing and testing of semantic models using the
- * SADL language.
- *
- * This software is distributed "AS-IS" without ANY WARRANTIES
- * and licensed under the Eclipse Public License - v 1.0
- * which is available at http://www.eclipse.org/org/documents/epl-v10.php
- *
- ***********************************************************************/
-package com.ge.research.sadl.ui.processing
-
-import com.ge.research.sadl.processing.SadlImportProcessorProvider
-import com.ge.research.sadl.processing.ISadlImportProcessor
-import com.google.inject.Provider
-import org.eclipse.core.runtime.RegistryFactory
-import com.google.inject.Inject
-import com.google.inject.Injector
-
-class ExtensionPointBasedSadlImportProcessorProvider extends SadlImportProcessorProvider {
-
- static val EXTENSION_ID = 'com.ge.research.sadl.ui.sadl_import_processor'
-
- @Inject Injector injector;
-
- override getAllProviders() {
- val registry = RegistryFactory.getRegistry();
- val configElements = registry.getConfigurationElementsFor(EXTENSION_ID).toList
- return configElements.map [ configElement |
- new Provider Type of the provided processor.
+ * @param
+ * {
+abstract class AbstractSadlProcessorProvider {
static val LOGGER = LoggerFactory.getLogger(AbstractSadlProcessorProvider);
static val CONFIGURATION_ELEMENT_NAME = 'class';
@@ -62,9 +66,9 @@ abstract class AbstractSadlProcessorProvider {
}
/**
- * Returns with the processor for the given resource argument.
+ * Returns with the processor for the given subject argument.
*/
- protected def P getProcessor(Resource resource);
+ def P getProcessor(R subject);
/**
* Returns with a view of all available processor instances.
diff --git a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl/src/com/ge/research/sadl/processing/SadlImportProcessorProvider.xtend b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl/src/com/ge/research/sadl/processing/SadlImportProcessorProvider.xtend
index e4afcc6ce..ea1527770 100644
--- a/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl/src/com/ge/research/sadl/processing/SadlImportProcessorProvider.xtend
+++ b/sadl3/com.ge.research.sadl.parent/com.ge.research.sadl/src/com/ge/research/sadl/processing/SadlImportProcessorProvider.xtend
@@ -1,38 +1,48 @@
/************************************************************************
* Copyright © 2007-2016 - General Electric Company, All Rights Reserved
- *
+ *
* Project: SADL
- *
+ *
* Description: The Semantic Application Design Language (SADL) is a
* language for building semantic models and expressing rules that
* capture additional domain knowledge. The SADL-IDE (integrated
* development environment) is a set of Eclipse plug-ins that
* support the editing and testing of semantic models using the
* SADL language.
- *
+ *
* This software is distributed "AS-IS" without ANY WARRANTIES
* and licensed under the Eclipse Public License - v 1.0
* which is available at http://www.eclipse.org/org/documents/epl-v10.php
- *
+ *
***********************************************************************/
package com.ge.research.sadl.processing
-import com.google.inject.Provider
-import java.util.Set
+import com.google.common.base.Optional
+import com.google.inject.Inject
+import com.google.inject.Injector
import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.emf.ecore.resource.ResourceSet
import org.eclipse.xtend.lib.annotations.Data
import org.eclipse.xtext.util.internal.EmfAdaptable
-class SadlImportProcessorProvider {
-
+/**
+ * SADL import processor for both the headless and the Eclipse-based use-cases.
+ */
+class SadlImportProcessorProvider extends AbstractSadlProcessorProvider