Merge pull request #98 from jeandersonbc/master
authorJeanderson Barros Candido <jeandersonbc@gmail.com>
Wed, 11 Jul 2018 22:21:08 +0000 (19:21 -0300)
committerGitHub <noreply@github.com>
Wed, 11 Jul 2018 22:21:08 +0000 (19:21 -0300)
Support to Gradle Build and Repository Cleanup

46 files changed:
.classpath [deleted file]
.gitignore
.idea/.name [deleted file]
.idea/annotations.iml [deleted file]
.idea/artifacts/RunJPF.xml [deleted file]
.idea/artifacts/jpf.xml [deleted file]
.idea/artifacts/jpf_annotations.xml [deleted file]
.idea/artifacts/jpf_classes.xml [deleted file]
.idea/classes.iml [deleted file]
.idea/codeStyleSettings.xml [deleted file]
.idea/compiler.xml [deleted file]
.idea/copyright/profiles_settings.xml [deleted file]
.idea/encodings.xml [deleted file]
.idea/examples.iml [deleted file]
.idea/main.iml [deleted file]
.idea/misc.xml [deleted file]
.idea/modules.xml [deleted file]
.idea/peers.iml [deleted file]
.idea/runConfigurations/run_example_jpf.xml [deleted file]
.idea/runConfigurations/run_test.xml [deleted file]
.idea/scopes/scope_settings.xml [deleted file]
.idea/tests.iml [deleted file]
.idea/vcs.xml [deleted file]
.project [deleted file]
.travis.yml
META-INF/RunJPF/MANIFEST.MF [deleted file]
README.md
build.gradle [new file with mode: 0644]
build.properties [deleted file]
build.xml [deleted file]
eclipse/AntBuilder.launch [deleted file]
eclipse/run-JPF.launch [deleted file]
eclipse/test-JPF.launch [deleted file]
eclipse/update-JPF-siteproperties.launch [deleted file]
gradle/build-resources.gradle [new file with mode: 0644]
gradle/distribution.gradle [new file with mode: 0644]
gradle/ide-support.gradle [new file with mode: 0644]
gradle/source-sets.gradle [new file with mode: 0644]
gradle/wrapper/gradle-wrapper.jar [new file with mode: 0644]
gradle/wrapper/gradle-wrapper.properties [new file with mode: 0644]
gradlew [new file with mode: 0755]
gradlew.bat [new file with mode: 0644]
nbproject/ide-file-targets.xml [deleted file]
nbproject/project.xml [deleted file]
settings.gradle [new file with mode: 0644]
src/tests/ReporterResourcesTest.java [new file with mode: 0644]

diff --git a/.classpath b/.classpath
deleted file mode 100644 (file)
index 2721217..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="src" output="build/main" path="src/main"/>
-       <classpathentry kind="src" output="build/peers" path="src/peers"/>
-       <classpathentry kind="src" output="build/classes" path="src/classes"/>
-       <classpathentry kind="src" output="build/annotations" path="src/annotations"/>
-       <classpathentry kind="src" output="build/examples" path="src/examples"/>
-       <classpathentry kind="src" output="build/tests" path="src/tests"/>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-       <classpathentry kind="output" path="build"/>
-</classpath>
index 5607bfce48a42b5e58d4fe5c61ca8423f36c3983..50639fdf4ce857c168cce6426769a46b26331112 100644 (file)
@@ -1,7 +1,9 @@
 local.properties
 .version
+build.properties
 
 ####### General #######
+*.swo
 trace
 activity*.png
 *.class
@@ -12,6 +14,10 @@ activity*.png
 ####### Ant #######
 build/
 
+####### Gradle #######
+.gradle/
+reports/
+
 ####### Covers NetBeans IDE #######
 nbproject/private/
 nbbuild/
@@ -20,6 +26,7 @@ nbdist/
 .nb-gradle/
 
 ####### Covers Eclipse IDE #######
+.idea/
 .metadata
 tmp/
 *.tmp
@@ -29,8 +36,12 @@ tmp/
 .settings/
 .loadpath
 .recommenders
+.classpath
+.project
 
 ####### Covers JetBrains IDE: IntelliJ #######
+*.iml
+*.ipr
 
 # User-specific stuff:
 .idea/**/workspace.xml
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644 (file)
index 3836a03..0000000
+++ /dev/null
@@ -1 +0,0 @@
-jpf-core
\ No newline at end of file
diff --git a/.idea/annotations.iml b/.idea/annotations.iml
deleted file mode 100644 (file)
index f8666fe..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/annotations" />
-    <output-test url="file://$MODULE_DIR$/build/annotations" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/src/annotations">
-      <sourceFolder url="file://$MODULE_DIR$/src/annotations" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
diff --git a/.idea/artifacts/RunJPF.xml b/.idea/artifacts/RunJPF.xml
deleted file mode 100644 (file)
index 71c8dfa..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<component name="ArtifactManager">
-  <artifact type="jar" build-on-make="true" name="RunJPF">
-    <output-path>$PROJECT_DIR$/build</output-path>
-    <root id="archive" name="RunJPF.jar">
-      <element id="directory" name="META-INF">
-        <element id="file-copy" path="$PROJECT_DIR$/META-INF/RunJPF/MANIFEST.MF" />
-      </element>
-      <element id="directory" name="gov">
-        <element id="directory" name="nasa">
-          <element id="directory" name="jpf">
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/Config.class" />
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/Config$MissingRequiredKeyException.class" />
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/JPFClassLoader.class" />
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/JPFConfigException.class" />
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/JPFShell.class" />
-            <element id="directory" name="tool">
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/tool/Run.class" />
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/tool/RunJPF.class" />
-            </element>
-            <element id="directory" name="util">
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/JPFSiteUtils.class" />
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/FileUtils.class" />
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/StringMatcher.class" />
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/Pair.class" />
-            </element>
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/JPFException.class" />
-            <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/ConfigChangeListener.class" />
-          </element>
-        </element>
-      </element>
-    </root>
-  </artifact>
-</component>
\ No newline at end of file
diff --git a/.idea/artifacts/jpf.xml b/.idea/artifacts/jpf.xml
deleted file mode 100644 (file)
index d43581a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<component name="ArtifactManager">
-  <artifact type="jar" build-on-make="true" name="jpf">
-    <output-path>$PROJECT_DIR$/build</output-path>
-    <root id="archive" name="jpf.jar">
-      <element id="module-output" name="main" />
-      <element id="module-output" name="peers" />
-      <element id="module-output" name="annotations" />
-      <element id="directory" name="org">
-        <element id="directory" name="junit">
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/After.class" />
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/AfterClass.class" />
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/Before.class" />
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/BeforeClass.class" />
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/Ignore.class" />
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/Test$None.class" />
-          <element id="file-copy" path="$PROJECT_DIR$/build/classes/org/junit/Test.class" />
-        </element>
-      </element>
-    </root>
-  </artifact>
-</component>
\ No newline at end of file
diff --git a/.idea/artifacts/jpf_annotations.xml b/.idea/artifacts/jpf_annotations.xml
deleted file mode 100644 (file)
index 0e485a2..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<component name="ArtifactManager">
-  <artifact type="jar" build-on-make="true" name="jpf-annotations">
-    <output-path>$PROJECT_DIR$/build</output-path>
-    <root id="archive" name="jpf-annotations.jar">
-      <element id="module-output" name="annotations" />
-    </root>
-  </artifact>
-</component>
\ No newline at end of file
diff --git a/.idea/artifacts/jpf_classes.xml b/.idea/artifacts/jpf_classes.xml
deleted file mode 100644 (file)
index 42eabbb..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<component name="ArtifactManager">
-  <artifact type="jar" build-on-make="true" name="jpf-classes">
-    <output-path>$PROJECT_DIR$/build</output-path>
-    <root id="archive" name="jpf-classes.jar">
-      <element id="module-output" name="classes" />
-      <element id="module-output" name="annotations" />
-      <element id="directory" name="gov">
-        <element id="directory" name="nasa">
-          <element id="directory" name="jpf">
-            <element id="directory" name="vm">
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/vm/Verify.class" />
-            </element>
-            <element id="directory" name="util">
-              <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/TypeRef.class" />
-              <element id="directory" name="test">
-                <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/test/TestJPF.class" />
-                <element id="file-copy" path="$PROJECT_DIR$/build/main/gov/nasa/jpf/util/test/TestMultiProcessJPF.class" />
-              </element>
-            </element>
-          </element>
-        </element>
-      </element>
-    </root>
-  </artifact>
-</component>
\ No newline at end of file
diff --git a/.idea/classes.iml b/.idea/classes.iml
deleted file mode 100644 (file)
index d41594e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/classes" />
-    <output-test url="file://$MODULE_DIR$/build/classes" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/src/classes">
-      <sourceFolder url="file://$MODULE_DIR$/src/classes" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="annotations" />
-    <orderEntry type="module" module-name="main" />
-  </component>
-</module>
diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
deleted file mode 100644 (file)
index 7fb8ed0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectCodeStyleSettingsManager">
-    <option name="PER_PROJECT_SETTINGS">
-      <value>
-        <XML>
-          <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
-        </XML>
-      </value>
-    </option>
-    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644 (file)
index 8e650cc..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="CompilerConfiguration">
-    <option name="DEFAULT_COMPILER" value="Javac" />
-    <resourceExtensions />
-    <wildcardResourcePatterns>
-      <entry name="!?*.java" />
-      <entry name="!?*.form" />
-      <entry name="!?*.class" />
-      <entry name="!?*.groovy" />
-      <entry name="!?*.scala" />
-      <entry name="!?*.flex" />
-      <entry name="!?*.kt" />
-      <entry name="!?*.clj" />
-    </wildcardResourcePatterns>
-    <annotationProcessing>
-      <profile default="true" name="Default" enabled="false">
-        <processorPath useClasspath="true" />
-      </profile>
-    </annotationProcessing>
-    <bytecodeTargetLevel target="1.8" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644 (file)
index e7bedf3..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<component name="CopyrightManager">
-  <settings default="" />
-</component>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644 (file)
index d821048..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
-</project>
\ No newline at end of file
diff --git a/.idea/examples.iml b/.idea/examples.iml
deleted file mode 100644 (file)
index 1d41ef7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/examples" />
-    <output-test url="file://$MODULE_DIR$/build/examples" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/src/examples">
-      <sourceFolder url="file://$MODULE_DIR$/src/examples" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="annotations" />
-    <orderEntry type="module" module-name="main" />
-    <orderEntry type="module" module-name="peers" />
-  </component>
-</module>
diff --git a/.idea/main.iml b/.idea/main.iml
deleted file mode 100644 (file)
index c393d6a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/main" />
-    <output-test url="file://$MODULE_DIR$/build/main" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/src/main">
-      <sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="annotations" />
-  </component>
-</module>
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644 (file)
index 4bda5bf..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ClientPropertiesManager">
-    <properties class="javax.swing.AbstractButton">
-      <property name="hideActionText" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JComponent">
-      <property name="html.disable" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JEditorPane">
-      <property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
-      <property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
-      <property name="charset" class="java.lang.String" />
-    </properties>
-    <properties class="javax.swing.JList">
-      <property name="List.isFileList" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JPasswordField">
-      <property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JSlider">
-      <property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
-      <property name="JSlider.isFilled" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JTable">
-      <property name="Table.isFileList" class="java.lang.Boolean" />
-      <property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
-      <property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JToolBar">
-      <property name="JToolBar.isRollover" class="java.lang.Boolean" />
-    </properties>
-    <properties class="javax.swing.JTree">
-      <property name="JTree.lineStyle" class="java.lang.String" />
-    </properties>
-    <properties class="javax.swing.text.JTextComponent">
-      <property name="caretAspectRatio" class="java.lang.Double" />
-      <property name="caretWidth" class="java.lang.Integer" />
-    </properties>
-  </component>
-  <component name="EntryPointsManager">
-    <entry_points version="2.0" />
-  </component>
-  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
-    <OptionsSetting value="true" id="Add" />
-    <OptionsSetting value="true" id="Remove" />
-    <OptionsSetting value="true" id="Checkout" />
-    <OptionsSetting value="true" id="Update" />
-    <OptionsSetting value="true" id="Status" />
-    <OptionsSetting value="true" id="Edit" />
-    <ConfirmationsSetting value="0" id="Add" />
-    <ConfirmationsSetting value="0" id="Remove" />
-  </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
-    <output url="file://$PROJECT_DIR$/build" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644 (file)
index 769a3f3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/annotations.iml" filepath="$PROJECT_DIR$/.idea/annotations.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/classes.iml" filepath="$PROJECT_DIR$/.idea/classes.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/examples.iml" filepath="$PROJECT_DIR$/.idea/examples.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/main.iml" filepath="$PROJECT_DIR$/.idea/main.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/peers.iml" filepath="$PROJECT_DIR$/.idea/peers.iml" />
-      <module fileurl="file://$PROJECT_DIR$/.idea/tests.iml" filepath="$PROJECT_DIR$/.idea/tests.iml" />
-    </modules>
-  </component>
-</project>
\ No newline at end of file
diff --git a/.idea/peers.iml b/.idea/peers.iml
deleted file mode 100644 (file)
index 23675dd..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/peers" />
-    <output-test url="file://$MODULE_DIR$/build/peers" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/src/peers">
-      <sourceFolder url="file://$MODULE_DIR$/src/peers" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="main" />
-    <orderEntry type="module" module-name="annotations" />
-  </component>
-</module>
diff --git a/.idea/runConfigurations/run_example_jpf.xml b/.idea/runConfigurations/run_example_jpf.xml
deleted file mode 100644 (file)
index 78a37b9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="run-example-jpf" type="ContextRunConfiguration" factoryName="ContextRun">
-    <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-    <option name="MAIN_CLASS_NAME" value="gov.nasa.jpf.JPF" />
-    <option name="VM_PARAMETERS" value="-Xmx1024m -ea" />
-    <option name="PROGRAM_PARAMETERS" value="$FilePath$" />
-    <option name="WORKING_DIRECTORY" value="" />
-    <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-    <option name="ALTERNATIVE_JRE_PATH" value="" />
-    <option name="ENABLE_SWING_INSPECTOR" value="false" />
-    <option name="ENV_VARIABLES" />
-    <option name="PASS_PARENT_ENVS" value="true" />
-    <module name="examples" />
-    <envs />
-    <RunnerSettings RunnerId="Debug">
-      <option name="DEBUG_PORT" value="" />
-      <option name="TRANSPORT" value="0" />
-      <option name="LOCAL" value="true" />
-    </RunnerSettings>
-    <RunnerSettings RunnerId="Run" />
-    <ConfigurationWrapper RunnerId="Debug" />
-    <ConfigurationWrapper RunnerId="Run" />
-    <method />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.idea/runConfigurations/run_test.xml b/.idea/runConfigurations/run_test.xml
deleted file mode 100644 (file)
index fa0eace..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="run-test" type="ContextRunConfiguration" factoryName="ContextRun">
-    <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
-    <option name="MAIN_CLASS_NAME" value="gov.nasa.jpf.tool.RunTest" />
-    <option name="VM_PARAMETERS" value="-Xmx1024m -ea" />
-    <option name="PROGRAM_PARAMETERS" value="$FileClass$ $SelectedText$" />
-    <option name="WORKING_DIRECTORY" value="" />
-    <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-    <option name="ALTERNATIVE_JRE_PATH" value="" />
-    <option name="ENABLE_SWING_INSPECTOR" value="false" />
-    <option name="ENV_VARIABLES" />
-    <option name="PASS_PARENT_ENVS" value="true" />
-    <module name="tests" />
-    <envs />
-    <RunnerSettings RunnerId="Run" />
-    <ConfigurationWrapper RunnerId="Run" />
-    <method />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
deleted file mode 100644 (file)
index 922003b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<component name="DependencyValidationManager">
-  <state>
-    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
-  </state>
-</component>
\ No newline at end of file
diff --git a/.idea/tests.iml b/.idea/tests.iml
deleted file mode 100644 (file)
index ac9f595..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/build/tests" />
-    <output-test url="file://$MODULE_DIR$/build/tests" />
-    <exclude-output />
-    <content url="file://$MODULE_DIR$/src/tests">
-      <sourceFolder url="file://$MODULE_DIR$/src/tests" isTestSource="false" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="module" module-name="annotations" />
-    <orderEntry type="module" module-name="main" />
-    <orderEntry type="module" module-name="classes" />
-    <orderEntry type="module" module-name="peers" />
-  </component>
-</module>
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644 (file)
index e161617..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$" vcs="hg4idea" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/.project b/.project
deleted file mode 100644 (file)
index d43fdf8..0000000
--- a/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>jpf-core</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-      <arguments>
-      </arguments>
-    </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-                       <arguments>
-                               <dictionary>
-                                       <key>LaunchConfigHandle</key>
-                                       <value>&lt;project&gt;/eclipse/AntBuilder.launch</value>
-                               </dictionary>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-       </natures>
-</projectDescription>
index f55afb8a9c579811098f8f6f83904425b494314f..dd6b29add74e5f3b1d306618c869bcbc6efdb01f 100644 (file)
@@ -1,17 +1,21 @@
 language: java
-before_install:
-  - mkdir ~/junit
-  - ln -s /usr/share/java/junit4.jar ~/junit
-  - ln -s /usr/share/java/hamcrest-core.jar ~/junit
-  - export JUNIT_HOME=~/junit
-
-install: ant test
 
 jdk:
   - oraclejdk8
 
+script:
+  - ./gradlew check
+
+before_cache:
+  - rm -f  $HOME/.gradle/caches/modules-2/modules-2.lock
+  - rm -fr $HOME/.gradle/caches/*/plugin-resolution/
+
+cache:
+  directories:
+    - $HOME/.gradle/caches/
+    - $HOME/.gradle/wrapper/
+
 addons:
   apt:
     packages:
       - oracle-java8-installer
-      - junit4
\ No newline at end of file
diff --git a/META-INF/RunJPF/MANIFEST.MF b/META-INF/RunJPF/MANIFEST.MF
deleted file mode 100644 (file)
index a270c0c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: gov.nasa.jpf.tool.RunJPF
-
index f57ccbedf3fefae8ce70663067938a8f18c9c496..0948404a7390ddb1de23a075c56f2870d5e262c8 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
-# Java PathFinder [![Build Status](https://travis-ci.org/javapathfinder/jpf-core.svg?branch=master)](https://travis-ci.org/javapathfinder/jpf-core)
-
+# Java PathFinder
+[![Build Status](https://travis-ci.org/javapathfinder/jpf-core.svg?branch=master)](https://travis-ci.org/javapathfinder/jpf-core)
+[![codecov](https://codecov.io/gh/javapathfinder/jpf-core/branch/master/graph/badge.svg)](https://codecov.io/gh/javapathfinder/jpf-core)
 
 An extensible software model checking framework for Java bytecode programs
 
diff --git a/build.gradle b/build.gradle
new file mode 100644 (file)
index 0000000..03f03ef
--- /dev/null
@@ -0,0 +1,229 @@
+apply plugin: "java"
+
+def getCurrentVersion() {
+    "DEVELOPMENT-SNAPSHOT"
+}
+
+version = currentVersion
+
+sourceCompatibility = 1.8
+targetCompatibility = 1.8
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    testImplementation "junit:junit:4.12"
+}
+
+ext.manifestCommonAttrbutes = manifest {
+    attributes(
+        "Built-By": System.getProperty("user.name"),
+        "Implementation-Vendor": "NASA Ames Research Center",
+        "Implementation-Version": version
+    )
+}
+
+apply from: "gradle/ide-support.gradle"
+apply from: "gradle/distribution.gradle"
+apply from: "gradle/source-sets.gradle"
+apply from: "gradle/build-resources.gradle"
+
+task compile {
+    group = "JPF Build"
+    description = "Compiles all JPF core sources."
+
+    // These are automatic generated tasks from the Java Gradle Plugin.
+    // Gradle is able to infer the order of the source sets
+    // due to the compileClasspath attribute
+    dependsOn compileTestJava
+    dependsOn compileExamplesJava
+}
+
+task createJpfClassesJar(type: Jar) {
+    archiveName = "jpf-classes.jar"
+    destinationDir = file("${buildDir}")
+
+    group = "JPF Jars"
+    description = "Creates the ${archiveName} file."
+
+    dependsOn compile
+    dependsOn copyResources
+
+    from sourceSets.classes.java.outputDir
+    from sourceSets.annotations.java.outputDir
+    from(sourceSets.main.java.outputDir) {
+        include "gov/nasa/jpf/JPFShell.class"
+        include "gov/nasa/jpf/vm/Verify.class"
+        include "gov/nasa/jpf/util/TypeRef.class"
+        include "gov/nasa/jpf/util/test/TestJPF.class"
+        include "gov/nasa/jpf/util/test/TestMultiProcessJPF.class"
+        include "gov/nasa/jpf/util/test/TestJPFHelper.class"
+    }
+}
+
+task createJpfJar(type: Jar) {
+    archiveName = "jpf.jar"
+    destinationDir = file("${buildDir}")
+
+    group = "JPF Jars"
+    description = "Creates the ${archiveName} file."
+
+    dependsOn compile
+    dependsOn copyResources
+
+    from sourceSets.main.java.outputDir
+    from sourceSets.peers.java.outputDir
+    from sourceSets.annotations.java.outputDir
+    from(sourceSets.classes.java.outputDir) {
+        include "org/junit/*.class"
+    }
+
+    manifest {
+        attributes "Implementation-Title": "Java Pathfinder core system"
+        from manifestCommonAttrbutes
+    }
+}
+
+task createAnnotationsJar(type: Jar) {
+    archiveName = "jpf-annotations.jar"
+    destinationDir = file("${buildDir}")
+
+    group = "JPF Jars"
+    description = "Creates the ${archiveName} file."
+
+    dependsOn compile
+    dependsOn copyResources
+
+    from sourceSets.annotations.java.outputDir
+}
+
+task createClassloaderSpecificTestsJar(type: Jar) {
+    archiveName = "classloader_specific_tests.jar"
+    destinationDir = file("${buildDir}")
+
+    group = "JPF Jars"
+    description = "Creates the ${archiveName} file."
+
+    dependsOn compile
+    dependsOn copyResources
+
+    from(sourceSets.test.java.outputDir) {
+        include "classloader_specific_tests/*.class"
+    }
+}
+
+task createRunJpfJar(type: Jar) {
+    archiveName = "RunJPF.jar"
+    destinationDir = file("${buildDir}")
+
+    description = "Creates the ${archiveName} file."
+    group = "JPF Jars"
+
+    dependsOn compile
+    dependsOn copyResources
+
+    from(sourceSets.main.java.outputDir) {
+        include "gov/nasa/jpf/tool/Run.class"
+        include "gov/nasa/jpf/tool/RunJPF.class"
+        include "gov/nasa/jpf/Config.class"
+        include "gov/nasa/jpf/ConfigChangeListener.class"
+        include "gov/nasa/jpf/Config\$MissingRequiredKeyException.class"
+        include "gov/nasa/jpf/JPFClassLoader.class"
+        include "gov/nasa/jpf/JPFShell.class"
+        include "gov/nasa/jpf/JPFException.class"
+        include "gov/nasa/jpf/JPFConfigException.class"
+        include "gov/nasa/jpf/JPFTargetException.class"
+        include "gov/nasa/jpf/util/JPFSiteUtils.class"
+        include "gov/nasa/jpf/util/FileUtils.class"
+        include "gov/nasa/jpf/util/StringMatcher.class"
+        include "gov/nasa/jpf/util/Pair.class"
+    }
+    manifest {
+        attributes(
+            "Implementation-Title": "Java Pathfinder core launch system",
+            "Main-Class": "gov.nasa.jpf.tool.RunJPF"
+        )
+        from manifestCommonAttrbutes
+    }
+}
+
+task createRunTestJar(type: Jar) {
+    archiveName = "RunTest.jar"
+    destinationDir = file("${buildDir}")
+
+    description = "Creates the ${archiveName} file."
+    group = "JPF Jars"
+
+    dependsOn compile
+    dependsOn copyResources
+
+    from(sourceSets.main.java.outputDir) {
+        include "gov/nasa/jpf/tool/Run.class"
+        include "gov/nasa/jpf/tool/RunTest.class"
+        include "gov/nasa/jpf/tool/RunTest\$Failed.class"
+        include "gov/nasa/jpf/Config.class"
+        include "gov/nasa/jpf/ConfigChangeListener.class"
+        include "gov/nasa/jpf/Config\$MissingRequiredKeyException.class"
+        include "gov/nasa/jpf/JPFClassLoader.class"
+        include "gov/nasa/jpf/JPFException.class"
+        include "gov/nasa/jpf/JPFConfigException.class"
+        include "gov/nasa/jpf/util/JPFSiteUtils.class"
+        include "gov/nasa/jpf/util/FileUtils.class"
+        include "gov/nasa/jpf/util/StringMatcher.class"
+        include "gov/nasa/jpf/util/DevNullPrintStream.class"
+    }
+    manifest {
+        attributes(
+            "Implementation-Title": "Java Pathfinder test launch system",
+            "Main-Class": "gov.nasa.jpf.tool.RunTest"
+        )
+        from manifestCommonAttrbutes
+    }
+}
+
+task buildJars {
+    group = "JPF Build"
+    description = "Generates all core JPF jar files."
+
+    dependsOn createClassloaderSpecificTestsJar
+    dependsOn createAnnotationsJar
+    dependsOn createJpfClassesJar
+    dependsOn createJpfJar
+    dependsOn createRunJpfJar
+    dependsOn createRunTestJar
+}
+
+test {
+    description = "Runs core regression tests."
+
+    dependsOn buildJars
+
+    forkEvery = 1
+    enableAssertions = true
+    maxHeapSize = "1024m"
+
+    include "**/*Test.class"
+    exclude "**/SplitInputStreamTest.class"
+    exclude "**/JPF_*.class"
+
+    testLogging {
+        events "passed", "skipped", "failed"
+    }
+
+    afterSuite { testDescriptor, result ->
+        if (!testDescriptor.parent) {
+            println "Test Execution: ${result.resultType}"
+
+            def summaryFields = ["${result.testCount} tests",
+                                 "${result.successfulTestCount} passed",
+                                 "${result.failedTestCount} failed",
+                                 "${result.skippedTestCount} skipped"]
+
+            println "Summary: " + summaryFields.join(", ")
+        }
+    }
+}
+
+defaultTasks "buildJars"
diff --git a/build.properties b/build.properties
deleted file mode 100644 (file)
index 6602f96..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#JPF core build info
-#Fri Jan 13 13:32:58 PST 2012
-
-revision=647\:b8b86ac8f503
-
-date.tip=2012-01-13 13\:30 -0800
-
-author=Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
-
-repository=file\://flyer/Users/pmehlitz/projects/eclipse/jpf-core
-
-upstream=http\://babelfish.arc.nasa.gov/hg/jpf/jpf-core
-
-java.version=1.6.0_26
-
-os.arch=x86_64
-
-os.name=Mac OS X
-
-os.version=10.5.8
-
-user.country=US
diff --git a/build.xml b/build.xml
deleted file mode 100644 (file)
index ca73885..0000000
--- a/build.xml
+++ /dev/null
@@ -1,456 +0,0 @@
-<?xml version="1.0" ?>
-
-<!--
-  build.xml - the JPF core build script
-              using Ant (http://jakarta.apache.org/ant)
-  public targets:
-
-    build (default)   compile classes and build JPF jar files
-    compile           compile JPF and its specific (modeled) environment libraries
-    test              run all JPF tests
-    clean             remove the files that have been generated by the build process
-    buildinfo         create buildinfo properties file
--->
-
-<project name="jpf-core" default="build" basedir=".">
-
-  <!-- ===================== ===== COMMON SECTION ========================== -->
-
-  <!-- 
-    local props have to come first, because Ant properties are immutable
-    NOTE: this file is local - it is never in the repository!
-  -->
-  <property file="local.properties"/>
-  <property environment="env"/>
-  
-  <!-- compiler settings -->
-  <property name="debug"         value="on"/>
-  <property name="deprecation"   value="on"/>
-
-  <uptodate property="build_uptodate" targetfile="build/main/gov/nasa/jpf/build.properties" srcfile="build.properties"/>
-
-
-  <!-- generic classpath settings -->
-  <path id="lib.path">
-    <pathelement location="build/main"/>
-    <pathelement location="build/peers"/>
-    <pathelement location="build/annotations"/>
-    <fileset dir=".">
-         <include name="lib/*.jar"/>
-    </fileset>
-  </path>
-
-
-  <!-- init: common initialization -->
-  <target name="-init">
-    <tstamp/>
-
-    <mkdir dir="build"/>               <!-- the build root -->
-    
-    <!-- the things that have to be in the classpath of whatever runs Ant -->
-    <available property="have_javac" classname="com.sun.tools.javac.Main"/>
-    <fail unless="have_javac">no javac was found __or__ check http://babelfish.arc.nasa.gov/trac/jpf/wiki/install/build for possible solutions</fail>
-
-
-    <available file="src/main"        type="dir" property="have_main"/>
-    <available file="src/annotations" type="dir" property="have_annotations"/>
-    <available file="src/peers"       type="dir" property="have_peers"/>
-    <available file="src/classes"     type="dir" property="have_classes"/>
-    <available file="src/tests"       type="dir" property="have_tests"/>
-    <available file="src/examples"    type="dir" property="have_examples"/>
-
-    <available file=".hg"             type="dir" property="have_hg"/>
-
-    <!-- for the core, it's a fail if any of these is missing -->
-    <fail unless="have_main">no src/main</fail>
-    <fail unless="have_annotations">no src/annotations</fail>
-    <fail unless="have_peers">no src/peers</fail>
-    <fail unless="have_classes">no src/classes</fail>
-    <fail unless="have_tests">no src/tests</fail>
-    <fail unless="have_examples">no src/examples</fail>
-
-    <condition property="have_java8">
-        <equals arg1="${ant.java.version}" arg2="1.8"/>
-    </condition>
-
-  </target>
-
-
-  <!-- ======================= COMPILE SECTION ============================= -->
-    
-  <!-- public compile -->
-  <target name="compile" depends="-init,-compile-annotations,-compile-main,-compile-peers,-compile-classes,-compile-tests,-compile-examples"
-          description="compile all JPF core sources" >
-         <copy file="build.properties" todir="build/main/gov/nasa/jpf" failonerror="false"/>
-  </target>
-
-  <target name="-compile-annotations" if="have_annotations">
-    <mkdir dir="build/annotations"/>
-    <javac srcdir="src/annotations" destdir="build/annotations" includeantruntime="false"
-           debug="${debug}" deprecation="${deprecation}" classpath=""/>
-  </target>
-
-  <target name="-compile-main" if="have_main">
-    <mkdir dir="build/main"/>
-    <javac srcdir="src/main" destdir="build/main" includeantruntime="false"
-           debug="${debug}" deprecation="${deprecation}" classpathref="lib.path">
-       <!--
-        <compilerarg value="-XDenableSunApiLintControl"/>
-        <compilerarg value="-Xlint:all"/>
-        -->
-    </javac>
-
-  </target>
-  
-  <target name="-compile-peers" if="have_peers" depends="-compile-main" >
-    <mkdir dir="build/peers"/>
-    <javac srcdir="src/peers" destdir="build/peers" includeantruntime="false"
-           debug="${debug}" deprecation="${deprecation}" classpathref="lib.path">
-       <compilerarg value="-XDenableSunApiLintControl"/>
-       <compilerarg value="-Xlint:all,-sunapi,-serial"/>       
-     </javac>
-  </target>
-  
-  <target name="-compile-classes" if="have_classes" depends="-compile-annotations,-compile-main" >
-    <mkdir dir="build/classes"/>
-    <javac srcdir="src/classes" destdir="build/classes" includeantruntime="false"
-           debug="${debug}" deprecation="${deprecation}">
-      <compilerarg value="-XDenableSunApiLintControl"/>
-      <compilerarg value="-Xlint:all,-sunapi"/>   
-      <classpath>
-        <path refid="lib.path"/>
-        <pathelement location="build/annotations"/>
-      </classpath>
-    </javac>
-  </target>
-  
-  <target name="-compile-tests" if="have_tests" depends="-compile-annotations,-compile-main,-compile-classes">
-    <mkdir dir="build/tests"/>
-
-    <javac sourcepath="" srcdir="src/tests" destdir="build/tests" includeantruntime="false"
-           debug="${debug}" deprecation="${deprecation}"
-           includes="*,gov/nasa/jpf/**,classloader_specific_tests/**">
-      <compilerarg value="-XDenableSunApiLintControl"/>
-      <compilerarg value="-Xlint:all,-sunapi,-serial,-rawtypes,-unchecked"/>
-
-      <include name="*gov/nasa/jpf/**"/>
-      <include name="classloader_specific_tests/**"/>
-      <include name="java8/**" if="have_java8"/>
-
-      <classpath>
-        <path refid="lib.path"/>
-        <pathelement location="build/annotations"/>
-        <pathelement location="build/classes"/>
-      </classpath>       
-    </javac>
-  </target>
-
-  <target name="-compile-examples" if="have_examples" depends="-compile-annotations,-compile-main">
-    <mkdir dir="build/examples" />
-    <javac srcdir="src/examples" destdir="build/examples" includeantruntime="false"
-           debug="${debug}" deprecation="${deprecation}"
-           classpathref="lib.path"/>
-  </target>
-
-  
-  <!-- ======================= MISC SECTION ================================ -->
-  
-  <target name="-version" if="have_hg">
-    <exec executable="hg" outputproperty="version" searchpath="true" failonerror="false" failifexecutionfails="false">
-      <arg value="identify"/>
-      <arg value="-n"/> 
-    </exec>
-       
-    <!-- .version is in .hgignore -->
-    <echo message="${version}${line.separator}" file=".version"/>
-  </target>
-       
-  <!-- build jars -->
-  <target name="build" depends="-cond-clean,compile,-version"
-        description="generate the core JPF jar files" >
-
-    <copy file=".version" todir="build/main/gov/nasa/jpf" failonerror="false"/>
-
-    <jar jarfile="build/jpf-classes.jar">
-      <fileset dir="build/classes"/>
-      <fileset dir="build/annotations"/>
-
-      <fileset dir="build/main">
-          <!-- we need this one in case a SUT uses the Verify API -->
-          <include name="gov/nasa/jpf/vm/Verify.class"/>
-
-          <!-- these are required if we run TestJPF derived test classes -->
-          <include name="gov/nasa/jpf/JPFShell.class"/>
-          <include name="gov/nasa/jpf/util/TypeRef.class"/>
-          <include name="gov/nasa/jpf/util/test/TestJPF.class"/>
-          <include name="gov/nasa/jpf/util/test/TestMultiProcessJPF.class"/>
-          <include name="gov/nasa/jpf/util/test/TestJPFHelper.class"/>
-      </fileset>
-    </jar>
-
-    <jar jarfile="build/jpf.jar" index="true">
-      <fileset dir="build/main"/>
-      <fileset dir="build/peers"/>
-      <!-- this is redundant, but if JPF is executed from java.class.path it wouldn't find annotations -->
-      <fileset dir="build/annotations"/>
-      
-      <!-- this is for annotations used by JPF regression tests, which can also be executed outside of junit -->
-      <fileset dir="build/classes">
-          <include name="org/junit/*.class"/>
-      </fileset>
-      
-      <manifest>
-        <attribute name="Built-By" value="${user.name}"/>
-        <attribute name="Implementation-Vendor" value="NASA Ames Research Center"/>
-        <attribute name="Implementation-Title" value="Java Pathfinder core system"/>
-        <attribute name="Implementation-Version" value="${jpf.version}"/>
-      </manifest>
-    </jar>
-
-    <!-- optional jar that contains annotations to be used in non-JPF dependent apps -->
-    <jar jarfile="build/jpf-annotations.jar">
-      <fileset dir="build/annotations"/>
-    </jar>
-
-    <!-- this jar is needed to test classloaders, it is used by URLClassLoaderTest -->
-    <jar jarfile="build/classloader_specific_tests.jar">
-      <fileset dir="build/tests">
-        <include name="classloader_specific_tests/*.class"/>
-         </fileset>
-    </jar>
-
-    <jar jarfile="build/RunJPF.jar">
-      <fileset dir="build/main">
-        <include name="gov/nasa/jpf/tool/Run.class"/>
-        <include name="gov/nasa/jpf/tool/RunJPF.class"/>
-        <include name="gov/nasa/jpf/Config.class"/>
-        <include name="gov/nasa/jpf/ConfigChangeListener.class"/>
-        <include name="gov/nasa/jpf/Config$MissingRequiredKeyException.class"/>
-        <include name="gov/nasa/jpf/JPFClassLoader.class"/>
-        <include name="gov/nasa/jpf/JPFShell.class"/>
-        <include name="gov/nasa/jpf/JPFException.class"/>
-        <include name="gov/nasa/jpf/JPFConfigException.class"/>
-        <include name="gov/nasa/jpf/JPFTargetException.class"/>
-        <include name="gov/nasa/jpf/util/JPFSiteUtils.class"/>
-        <include name="gov/nasa/jpf/util/FileUtils.class"/>
-        <include name="gov/nasa/jpf/util/StringMatcher.class"/>
-        <include name="gov/nasa/jpf/util/Pair.class"/>        
-      </fileset>
-      
-      <manifest>
-        <attribute name="Built-By" value="${user.name}"/>
-        <attribute name="Implementation-Vendor" value="NASA Ames Research Center"/>
-        <attribute name="Implementation-Title" value="Java Pathfinder core launch system"/>
-        <attribute name="Implementation-Version" value="${jpf.version}"/>
-        <attribute name="Main-Class" value="gov.nasa.jpf.tool.RunJPF"/>
-      </manifest>
-    </jar>
-
-    <jar jarfile="build/RunTest.jar">
-      <fileset dir="build/main">
-        <include name="gov/nasa/jpf/tool/Run.class"/>
-        <include name="gov/nasa/jpf/tool/RunTest.class"/>
-        <include name="gov/nasa/jpf/tool/RunTest$Failed.class"/>
-        <include name="gov/nasa/jpf/Config.class"/>
-        <include name="gov/nasa/jpf/ConfigChangeListener.class"/>
-        <include name="gov/nasa/jpf/Config$MissingRequiredKeyException.class"/>
-        <include name="gov/nasa/jpf/JPFClassLoader.class"/>
-        <include name="gov/nasa/jpf/JPFException.class"/>
-        <include name="gov/nasa/jpf/JPFConfigException.class"/>
-        <include name="gov/nasa/jpf/util/JPFSiteUtils.class"/>
-        <include name="gov/nasa/jpf/util/FileUtils.class"/>
-        <include name="gov/nasa/jpf/util/StringMatcher.class"/>
-        <include name="gov/nasa/jpf/util/DevNullPrintStream.class"/>
-      </fileset>
-      <manifest>
-        <attribute name="Built-By" value="${user.name}"/>
-        <attribute name="Implementation-Vendor" value="NASA Ames Research Center"/>
-        <attribute name="Implementation-Title" value="Java Pathfinder test launch system"/>
-        <attribute name="Implementation-Version" value="${jpf.version}"/>
-        <attribute name="Main-Class" value="gov.nasa.jpf.tool.RunTest"/>
-      </manifest>
-    </jar>
-
-  </target>
-
-
-  <!-- public clean: cleanup from previous tasks/builds -->
-  <target name="clean"
-          description="remove all build artifacts and temporary files">
-    <delete dir="build" failonerror="false"/>
-    <delete dir="tmp" failonerror="false"/>
-    <delete>
-      <fileset dir="." includes="**/*~" defaultexcludes="no" />
-      <fileset dir="." includes="**/*.bak" defaultexcludes="no" />
-      <fileset dir="." includes="**/error.xml" />
-    </delete>
-  </target>
-
-  <target name="-cond-clean" unless="build_uptodate"
-          description="remove all build artifacts and temporaries if build.properties has been changed">
-    <antcall target="clean"/>
-  </target>
-
-
-  <!-- generate buildinfo file  -->
-  <target name="buildinfo" description="create buildinfo properties">
-
-    <!-- make this fail if there are uncommitted changes -->
-    <exec executable="hg" outputproperty="uncommitted_changes" failifexecutionfails="true">
-      <arg value="status"/>
-    </exec>
-    <condition property="have_uncommitted_changes">
-      <length string="${uncommitted_changes}" trim="true" when="greater" length="0"/>
-    </condition>
-<!--
-    <fail if="have_uncommitted_changes">hg status shows uncommitted changes:
-      ${uncommitted_changes}
-    </fail>
--->
-    <exec executable="hg" outputproperty="hg.tip.id" failifexecutionfails="false">
-      <arg value="tip"/>
-      <arg value="--template"/>
-      <arg value="{rev}:{node|short}\n"/>
-    </exec>
-    <exec executable="hg" outputproperty="hg.author" failifexecutionfails="false">
-      <arg value="tip"/>
-      <arg value="--template"/>
-      <arg value="{author}\n"/>
-    </exec>
-    <exec executable="hg" outputproperty="hg.tip.date" failifexecutionfails="false">
-      <arg value="tip"/>
-      <arg value="--template"/>
-      <arg value="{date|isodate}\n"/>
-    </exec>
-    <exec executable="hg" outputproperty="hg.paths.default" failifexecutionfails="false">
-      <arg value="showconfig"/>
-      <arg value="paths.default"/>
-    </exec>
-    
-    <exec executable="hostname" failifexecutionfails="false" outputproperty="env.COMPUTERNAME"/>
-    <property name="hostname" value="${env.COMPUTERNAME}"/>  <!-- Windows doesn't have hostname -->
-
-    <!-- it seems the 'propertyfile' task just appends -->
-    <delete file="build.properties" failonerror="false"/>
-
-    <propertyfile file="build.properties" comment="JPF core build info">
-      <entry key="revision" value="${hg.tip.id}"/>
-      <entry key="date.tip" value="${hg.tip.date}"/>
-
-      <entry key="author" value="${hg.author}"/>
-      <entry key="repository" value="file://${hostname}${basedir}"/>
-      <entry key="upstream" value="${hg.paths.default}"/>
-
-      <entry key="java.version" value="${java.version}"/>
-
-      <entry key="os.arch" value="${os.arch}"/>
-      <entry key="os.name" value="${os.name}"/>
-      <entry key="os.version" value="${os.version}"/>
-      <entry key="user.country" value="${user.country}"/>
-
-    </propertyfile>
-
-  </target>
-
-  <target name="dist" description="build binary distribution">
-    <delete file="build/${ant.project.name}*.zip"/>
-       
-    <exec executable="hg" outputproperty="hg.tip.rev" failifexecutionfails="false">
-      <arg value="tip"/>
-      <arg value="--template"/>
-      <arg value="-r{rev}"/>
-    </exec>
-       
-    <!-- 2do this seems stupid - there needs to be a better way to re-base (zip basedir fails miserably) -->
-    <zip destfile="build/${ant.project.name}${hg.tip.rev}.zip" update="false" excludes="*">
-      <zipfileset file="jpf.properties"  prefix="${ant.project.name}"/>
-      <zipfileset file="build.properties"  prefix="${ant.project.name}"/>
-      <zipfileset dir="lib"  prefix="${ant.project.name}/lib"/>
-      <zipfileset dir="bin"  prefix="${ant.project.name}/bin" filemode="754"/>
-      <zipfileset dir="build" includes="*.jar" prefix="${ant.project.name}/build"/>
-    </zip>
-  </target>
-
-  <target name="src-dist" description="build source distribution">
-    <delete file="build/${ant.project.name}*-src.zip"/>
-    
-    <exec executable="hg" outputproperty="hg.tip.rev" failifexecutionfails="false">
-      <arg value="tip"/>
-      <arg value="--template"/>
-      <arg value="-r{rev}"/>
-    </exec>
-       
-    <zip destfile="build/${ant.project.name}${hg.tip.rev}-src.zip" update="false" excludes="*" whenempty="skip">
-      <zipfileset file="jpf.properties"  prefix="${ant.project.name}"/>
-      <zipfileset file="build.properties"  prefix="${ant.project.name}"/>
-      <zipfileset file="build.xml"  prefix="${ant.project.name}"/>
-       <zipfileset file="LICENSE-2.0.txt"  prefix="${ant.project.name}"/>
-      <zipfileset file="README"  prefix="${ant.project.name}"/>
-      <zipfileset dir="src" prefix="${ant.project.name}/src"/>
-      <zipfileset dir="lib"  prefix="${ant.project.name}/lib" erroronmissingdir="false"/>
-      <zipfileset dir="bin"  prefix="${ant.project.name}/bin" filemode="754"/>
-      <zipfileset dir="tools" prefix="${ant.project.name}/tools" erroronmissingdir="false"/>
-
-      <!-- IDE related configuration files -->
-      <zipfileset file=".project"  prefix="${ant.project.name}"/>
-      <zipfileset file=".classpath"  prefix="${ant.project.name}"/>
-      <zipfileset dir="eclipse" prefix="${ant.project.name}/eclipse"/>
-
-      <zipfileset dir="nbproject" prefix="${ant.project.name}/nbproject"/>
-    </zip>
-  </target>
-
-  <!-- ======================= TEST SECTION ================================ -->
-
-
-
-  <target name="test" depends="build"
-          description="run core regression tests" if="have_tests">
-          
-    <!-- note this can be directly set in local.properties, which overrides this setting -->
-    <property name="junit.home" value="${env.JUNIT_HOME}"/>
-    
-    <condition property="junit.usefile">
-      <!-- don't set if this is running from within an IDE that collects output -->
-      <not>
-        <isset property="netbeans.home"/>  
-      </not>
-    </condition>
-    
-    <junit printsummary="on" showoutput="off" 
-           haltonfailure="no" logfailedtests="true" failureproperty="test.failed" 
-           dir="${basedir}" fork="yes" forkmode="perTest" maxmemory="1024m" outputtoformatters="true">
-      <formatter type="plain" usefile="${junit.usefile}"/>
-
-      <assertions>
-        <enable/>
-      </assertions>
-
-      <classpath>
-        <path refid="lib.path"/>
-        <pathelement location="build/tests"/>
-        <pathelement location="build/classes"/>
-        <pathelement location="build/annotations"/>
-        
-        <fileset dir="${junit.home}">
-          <include name="**/*.jar"/>
-        </fileset>  
-      </classpath>
-
-      <batchtest todir="build/tests">
-        <fileset dir="build/tests">
-          <exclude name="**/JPF_*.class"/>
-          <include name="**/*Test.class"/>
-               
-          <exclude name="**/SplitInputStreamTest.class"/>
-        </fileset>
-      </batchtest>
-
-    </junit>
-
-    <fail if="test.failed" />
-   
-  </target>
-
-  
-</project>
diff --git a/eclipse/AntBuilder.launch b/eclipse/AntBuilder.launch
deleted file mode 100644 (file)
index f66e685..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">\r
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>\r
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>\r
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="true"/>\r
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"/>\r
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"/>\r
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>\r
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.ui.antsupport.InternalAntRunner"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jpf-core"/>\r
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${build_project}/build.xml"/>\r
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>\r
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>\r
-<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>\r
-</launchConfiguration>\r
diff --git a/eclipse/run-JPF.launch b/eclipse/run-JPF.launch
deleted file mode 100644 (file)
index e599ce9..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/jpf-core/src/main/gov/nasa/jpf/tool/RunJPF.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;sourceLookupDirector&gt;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#10;&amp;lt;javaProject name=&amp;quot;jpf-core&amp;quot;/&amp;gt;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#10;&amp;lt;packageFragmentRoot handle=&amp;quot;=jpf-core/lib\/junit-4.10.jar&amp;quot;/&amp;gt;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot&quot;/&gt;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#10;&amp;lt;default/&amp;gt;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#10;&lt;/sourceContainers&gt;&#10;&lt;/sourceLookupDirector&gt;&#10;"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;jpf-core&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;jpf-core&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${resource_loc}/build/main&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${resource_loc}/build/peers&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${resource_loc}/lib/*&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${resource_loc}/build/tests&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${resource_loc}/build/examples&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="gov.nasa.jpf.tool.RunJPF"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="&quot;${resource_loc}&quot;"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jpf-core"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024m -ea"/>
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/>
-</launchConfiguration>
diff --git a/eclipse/test-JPF.launch b/eclipse/test-JPF.launch
deleted file mode 100644 (file)
index e7e33e9..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/jpf-core/src/main/gov/nasa/jpf/tool/RunTest.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;sourceLookupDirector&gt;&#10;&lt;sourceContainers duplicates=&quot;true&quot;&gt;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#10;&amp;lt;default/&amp;gt;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#10;&lt;/sourceContainers&gt;&#10;&lt;/sourceLookupDirector&gt;&#10;"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;jpf-core&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;jpf-core&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${project_loc}/build/main&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${project_loc}/peers&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${project_loc}/lib/*&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${project_loc}/build/tests&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${project_loc}/build/examples&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="gov.nasa.jpf.tool.RunTest"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="${java_type_name} ${string_prompt}"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jpf-core"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048m -ea"/>
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/>
-</launchConfiguration>
diff --git a/eclipse/update-JPF-siteproperties.launch b/eclipse/update-JPF-siteproperties.launch
deleted file mode 100644 (file)
index 65d3b94..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/jpf-core/src/main/gov/nasa/jpf/tool/RunJPF.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="gov.nasa.jpf.tool.RunJPF"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-addproject"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="jpf-core"/>
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${project_loc}"/>
-</launchConfiguration>
diff --git a/gradle/build-resources.gradle b/gradle/build-resources.gradle
new file mode 100644 (file)
index 0000000..272005f
--- /dev/null
@@ -0,0 +1,50 @@
+task generateVersion {
+    group = "JPF Build Resources"
+    description = "Generates the .version file with the current revision hash"
+    doLast {
+        def revision = "git rev-parse HEAD".execute().text
+        new File(".version").withWriter("utf-8") { writer ->
+            writer.writeLine revision
+        }
+    }
+}
+
+task generateBuildInfo {
+    group = "JPF Build Resources"
+    description = "Generates the build.properties file."
+    doLast {
+
+        Properties info = new Properties()
+
+        def status  = "git status --short".execute().text.trim()
+        def revision = "git rev-parse --short HEAD".execute().text.trim()
+        def userName = ["git", "log", "-1", "--format=%an <%ae>"].execute().text.trim()
+        def date = "git log -1 --format=%ci".execute().text.trim()
+
+        info.setProperty("revision", revision)
+        info.setProperty("date", date)
+        info.setProperty("author", userName)
+        info.setProperty("os.arch", System.getProperty("os.arch"))
+        info.setProperty("os.name", System.getProperty("os.name"))
+        info.setProperty("user.country", System.getProperty("user.country"))
+        info.setProperty("java.version", System.getProperty("java.version"))
+
+        def writer = new File("build.properties").newWriter("utf-8")
+        info.store(writer, "JPF core build info")
+        writer.close()
+    }
+}
+
+task copyResources(type: Copy) {
+    group = "JPF Build Resources"
+    description = "Copies .version and build.properties files to the build directory."
+
+    dependsOn generateBuildInfo
+    dependsOn generateVersion
+
+    from "build.properties"
+    into sourceSets.main.java.outputDir.path + "/gov/nasa/jpf"
+
+    from ".version"
+    into sourceSets.main.java.outputDir.path + "/gov/nasa/jpf"
+}
diff --git a/gradle/distribution.gradle b/gradle/distribution.gradle
new file mode 100644 (file)
index 0000000..f01d9ad
--- /dev/null
@@ -0,0 +1,45 @@
+task srcDist(type: Zip) {
+    group = "JPF Distribution"
+    description = "Builds the source distribution."
+
+    baseName = project.name
+    version = project.version
+    classifier = "src"
+    extension = "zip"
+
+    destinationDir = buildDir
+    includeEmptyDirs = false
+
+    from projectDir
+    include "build.gradle"
+    include "settings.gradle"
+    include "gradlew"
+    include "gradlew.bat"
+    include "gradle/**/*"
+    include "src/**/*"
+    include "bin/**/*"
+    include "jpf.properties"
+    include "build.properties"
+    include "LICENSE-2.0.txt"
+    include "README.md"
+}
+
+task dist(type: Zip) {
+    group = "JPF Distribution"
+    description = "Builds binary distribution."
+
+    baseName = project.name
+    version = project.version
+    extension = "zip"
+
+    destinationDir = buildDir
+    includeEmptyDirs = false
+
+    from projectDir
+    include "jpf.properties"
+    include "build.properties"
+    include "bin/**/*"
+    include "lib/**/*"
+    include "${buildDir.name}/**/*.jar"
+}
+
diff --git a/gradle/ide-support.gradle b/gradle/ide-support.gradle
new file mode 100644 (file)
index 0000000..2ce7adb
--- /dev/null
@@ -0,0 +1,19 @@
+apply plugin: "eclipse"
+
+eclipse {
+    group = "JPF IDE Support"
+
+    project {
+        natures = ["org.eclipse.buildship.core.gradleprojectnature"]
+    }
+    classpath {
+        defaultOutputDir = buildDir
+        file {
+            whenMerged { classpath ->
+                classpath.entries.findAll{ entry -> entry.kind == "src" }*.every { srcNode ->
+                    srcNode.output = srcNode.output.replace("bin", "${buildDir.name}")
+                }
+            }
+        }
+    }
+}
diff --git a/gradle/source-sets.gradle b/gradle/source-sets.gradle
new file mode 100644 (file)
index 0000000..76d2ced
--- /dev/null
@@ -0,0 +1,32 @@
+sourceSets {
+    annotations {
+        java.srcDirs = ["src/annotations"]
+        java.outputDir = file("${buildDir}/annotations")
+    }
+    main {
+        java.srcDirs = ["src/main"]
+        java.outputDir = file("${buildDir}/main")
+        compileClasspath += sourceSets.annotations.output
+    }
+    examples {
+        java.srcDirs = ["src/examples"]
+        java.outputDir = file("${buildDir}/examples")
+        compileClasspath += sourceSets.main.output
+    }
+    classes {
+        java.srcDirs = ["src/classes"]
+        java.outputDir = file("${buildDir}/classes")
+        compileClasspath += sourceSets.main.output + sourceSets.annotations.output
+    }
+    peers {
+        java.srcDirs = ["src/peers"]
+        java.outputDir = file("${buildDir}/peers")
+        compileClasspath += sourceSets.main.output + sourceSets.annotations.output
+    }
+    test {
+        java.srcDirs = ["src/tests"]
+        java.outputDir = file("${buildDir}/tests")
+        compileClasspath += sourceSets.annotations.output + sourceSets.classes.output + sourceSets.peers.output
+        runtimeClasspath += compileClasspath
+    }
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644 (file)
index 0000000..91ca28c
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644 (file)
index 0000000..d2c45a4
--- /dev/null
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755 (executable)
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644 (file)
index 0000000..e95643d
--- /dev/null
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off\r
+@rem ##########################################################################\r
+@rem\r
+@rem  Gradle startup script for Windows\r
+@rem\r
+@rem ##########################################################################\r
+\r
+@rem Set local scope for the variables with windows NT shell\r
+if "%OS%"=="Windows_NT" setlocal\r
+\r
+set DIRNAME=%~dp0\r
+if "%DIRNAME%" == "" set DIRNAME=.\r
+set APP_BASE_NAME=%~n0\r
+set APP_HOME=%DIRNAME%\r
+\r
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\r
+set DEFAULT_JVM_OPTS=\r
+\r
+@rem Find java.exe\r
+if defined JAVA_HOME goto findJavaFromJavaHome\r
+\r
+set JAVA_EXE=java.exe\r
+%JAVA_EXE% -version >NUL 2>&1\r
+if "%ERRORLEVEL%" == "0" goto init\r
+\r
+echo.\r
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\r
+echo.\r
+echo Please set the JAVA_HOME variable in your environment to match the\r
+echo location of your Java installation.\r
+\r
+goto fail\r
+\r
+:findJavaFromJavaHome\r
+set JAVA_HOME=%JAVA_HOME:"=%\r
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe\r
+\r
+if exist "%JAVA_EXE%" goto init\r
+\r
+echo.\r
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%\r
+echo.\r
+echo Please set the JAVA_HOME variable in your environment to match the\r
+echo location of your Java installation.\r
+\r
+goto fail\r
+\r
+:init\r
+@rem Get command-line arguments, handling Windows variants\r
+\r
+if not "%OS%" == "Windows_NT" goto win9xME_args\r
+\r
+:win9xME_args\r
+@rem Slurp the command line arguments.\r
+set CMD_LINE_ARGS=\r
+set _SKIP=2\r
+\r
+:win9xME_args_slurp\r
+if "x%~1" == "x" goto execute\r
+\r
+set CMD_LINE_ARGS=%*\r
+\r
+:execute\r
+@rem Setup the command line\r
+\r
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar\r
+\r
+@rem Execute Gradle\r
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%\r
+\r
+:end\r
+@rem End local scope for the variables with windows NT shell\r
+if "%ERRORLEVEL%"=="0" goto mainEnd\r
+\r
+:fail\r
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\r
+rem the _cmd.exe /c_ return code!\r
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1\r
+exit /b 1\r
+\r
+:mainEnd\r
+if "%OS%"=="Windows_NT" endlocal\r
+\r
+:omega\r
diff --git a/nbproject/ide-file-targets.xml b/nbproject/ide-file-targets.xml
deleted file mode 100644 (file)
index 255a0d1..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project basedir=".." name="jpf-core-IDE">
-
-    <path id="base.path">
-        <pathelement location="build/main"/>
-        <pathelement location="build/peers"/>
-        <pathelement location="build/annotations"/>
-        <pathelement location="build/tests"/>
-        <fileset dir=".">
-            <include name="lib/*.jar"/>
-        </fileset>
-    </path>
-
-    <sourcepath id="source.path">
-      <pathelement location="src/main"/>
-      <pathelement location="src/peers"/>
-    </sourcepath>
-
-<!--
-    <property name="testrunner" value="gov.nasa.jpf.util.test.TestJPF"/>
--->
-    <property name="testrunner" value="gov.nasa.jpf.tool.RunTest"/>
-    
-
-    <!-- TODO: do we really have to duplicate this for each container dir? -->
-    <!-- TODO: !!! automatic recompile doesn't work, this is a NetBeans/Ant problem !!! -->
-
-    <!-- (more info: http://www.netbeans.org/kb/articles/freeform-config.html#runsingle) -->
-
-    <target name="test-project">
-        <!-- we need to set the formatter 'usefile' attribute
-             or the NB test runner will not show any tests -->
-        <property name="junit.usefile" value="false"/>
-        <ant antfile="build.xml" inheritall="true" target="test"/>
-    </target>
-
-
-    <!-- 'main' targets -->
-    <target name="run-selected-main">
-        <fail unless="run.class">Must set property 'run.class'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-        <input message="please enter arguments" addproperty="arg.input"/>
-        <java classname="${run.class}" failonerror="true" fork="true">
-            <classpath>
-                <path refid="base.path"/>
-            </classpath>
-            <jvmarg value="-ea"/>
-            <arg line="${arg.input}"/>
-        </java>
-    </target>
-
-    <target name="debug-selected-main">
-        <fail unless="debug.class">Must set property 'debug.class'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-
-        <path id="cp.main">
-           <path refid="base.path"/>
-        </path>
-        <sourcepath id="sp.main">
-           <path refid="source.path"/>
-        </sourcepath>
-
-
-        <nbjpdastart addressproperty="jpda.address" name="${debug.class}" transport="dt_socket">
-            <classpath refid="cp.main"/>
-            <sourcepath refid="sp.main"/>
-        </nbjpdastart>
-
-        <input message="please enter arguments" addproperty="arg.input"/>
-
-        <java classname="${debug.class}" fork="true" >
-            <classpath refid="cp.main"/>
-            <jvmarg value="-ea"/>
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
-            <arg line="${arg.input}"/>
-        </java>
-    </target>
-
-
-    <!-- 'example' targets -->
-    <target name="run-selected-example">
-        <fail unless="run.class">Must set property 'run.class'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-        <input message="please enter arguments" addproperty="arg.input"/>
-        <java classname="${run.class}" failonerror="true" fork="true">
-            <classpath>
-                <pathelement location="build/examples"/>
-                <path refid="base.path"/>
-            </classpath>
-            <jvmarg value="-ea"/>
-            <arg line="${arg.input}"/>
-        </java>
-    </target>
-
-    <target name="debug-selected-example">
-        <fail unless="debug.class">Must set property 'debug.class'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-
-        <path id="cp.examples">
-           <pathelement location="build/examples"/>
-           <path refid="base.path"/>
-        </path>
-        <sourcepath id="sp.examples">
-           <pathelement location="src/examples"/>
-           <path refid="source.path"/>
-        </sourcepath>
-
-
-        <nbjpdastart addressproperty="jpda.address" name="${debug.class}" transport="dt_socket">
-            <classpath refid="cp.examples"/>
-            <sourcepath refid="sp.examples"/>
-        </nbjpdastart>
-
-        <input message="please enter arguments" addproperty="arg.input"/>
-
-        <java classname="${debug.class}" fork="true" >
-            <classpath refid="cp.examples"/>
-            <jvmarg value="-ea"/>
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
-            <arg line="${arg.input}"/>
-        </java>
-    </target>
-
-    <target name="run-selected-example-jpf">
-        <fail unless="jpf.config">Must set property 'jpf.config'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-        <!-- -->
-        <java classname="gov.nasa.jpf.JPF" failonerror="true" fork="true">
-            <arg value="${jpf.config}"/>
-            <classpath>
-                <pathelement location="build/examples"/>
-                <path refid="base.path"/>
-            </classpath>
-        </java>
-    </target>
-
-    <target name="debug-selected-example-jpf">
-        <fail unless="jpf.config">Must set property 'jpf.config'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-
-        <path id="cp.examples">
-           <pathelement location="build/examples"/>
-           <path refid="base.path"/>
-        </path>
-        <sourcepath id="sp.examples">
-           <pathelement location="src/examples"/>
-           <path refid="source.path"/>
-        </sourcepath>
-
-        <nbjpdastart addressproperty="jpda.address" name="${jpf.config}" transport="dt_socket">
-            <classpath refid="cp.examples"/>
-            <sourcepath refid="sp.examples"/>
-        </nbjpdastart>
-
-        <java classname="gov.nasa.jpf.JPF" fork="true">
-            <classpath refid="cp.examples"/>
-            <jvmarg value="-ea"/>
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
-            <arg value="-c"/>
-            <arg value="${jpf.config}"/>
-        </java>
-    </target>
-
-
-    <!-- 'test' targets -->
-    <target name="run-selected-test">
-        <fail unless="run.class">Must set property 'run.class'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-        <input message="please enter arguments" addproperty="arg.input"/>
-        <java classname="${testrunner}" failonerror="true" fork="true">
-            <classpath>
-                <pathelement location="build/tests"/>
-                <path refid="base.path"/>
-            </classpath>
-            <jvmarg value="-ea"/>
-            <arg value="${run.class}"/>
-            <arg line="${arg.input}"/>
-        </java>
-    </target>
-
-    <target name="debug-selected-test">
-        <fail unless="debug.class">Must set property 'debug.class'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-
-        <path id="cp.tests">
-          <pathelement location="build/tests"/>
-          <path refid="base.path"/>
-        </path>
-        <sourcepath id="sp.tests">
-          <pathelement location="src/tests"/>
-          <path refid="source.path"/>
-        </sourcepath>
-
-        <nbjpdastart addressproperty="jpda.address" name="${debug.class}" transport="dt_socket">
-            <classpath refid="cp.tests"/>
-            <sourcepath refid="sp.tests"/>
-        </nbjpdastart>
-
-        <input message="please enter arguments" addproperty="arg.input"/>
-
-        <java classname="${testrunner}" fork="true">
-            <classpath refid="cp.tests"/>
-            <jvmarg value="-ea"/>
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
-            <arg value="${debug.class}"/>
-            <arg line="${arg.input}"/>
-        </java>
-    </target>
-
-    <target name="run-selected-test-jpf">
-        <fail unless="jpf.config">Must set property 'jpf.config'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-        <java classname="gov.nasa.jpf.JPF" failonerror="true" fork="true">
-            <jvmarg value="-ea"/>
-            <arg value="${jpf.config}"/>
-            <classpath>
-                <pathelement location="build/tests"/>
-                <path refid="base.path"/>
-            </classpath>
-        </java>
-    </target>
-
-    <target  name="debug-selected-test-jpf">
-        <fail unless="jpf.config">Must set property 'jpf.config'</fail>
-        <ant antfile="build.xml" inheritall="false" target="compile"/>
-
-        <path id="cp.tests">
-          <pathelement location="build/tests"/>
-          <path refid="base.path"/>
-        </path>
-        <sourcepath id="sp.tests">
-          <pathelement location="src/tests"/>
-          <path refid="source.path"/>
-        </sourcepath>
-
-        <nbjpdastart addressproperty="jpda.address" name="${jpf.config}" transport="dt_socket">
-            <classpath refid="cp.tests"/>
-            <sourcepath refid="sp.tests"/>
-        </nbjpdastart>
-
-        <java classname="gov.nasa.jpf.JPF" fork="true">
-            <classpath refid="cp.tests"/>
-            <jvmarg value="-ea"/>
-            <jvmarg value="-Xdebug"/>
-            <jvmarg value="-Xrunjdwp:transport=dt_socket,address=${jpda.address}"/>
-            <arg value="-c"/>
-            <arg value="${jpf.config}"/>
-        </java>
-    </target>
-
-</project>
diff --git a/nbproject/project.xml b/nbproject/project.xml
deleted file mode 100644 (file)
index 69ebf85..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://www.netbeans.org/ns/project/1">
-    <type>org.netbeans.modules.ant.freeform</type>
-    <configuration>
-        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
-            <name>jpf-core</name>
-        </general-data>
-        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
-            <!-- Do not use Project Properties customizer when editing this file manually. -->
-            <name>jpf-core</name>
-            <properties/>
-            <folders>
-                <source-folder>
-                    <label>jpf-core</label>
-                    <location>.</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>src/main</label>
-                    <type>java</type>
-                    <location>src/main</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>src/peers</label>
-                    <type>java</type>
-                    <location>src/peers</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>src/annotations</label>
-                    <type>java</type>
-                    <location>src/annotations</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>src/classes</label>
-                    <type>java</type>
-                    <location>src/classes</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>src/tests</label>
-                    <type>java</type>
-                    <location>src/tests</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>src/examples</label>
-                    <type>java</type>
-                    <location>src/examples</location>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-            </folders>
-            <ide-actions>
-                <action name="build">
-                    <target>build</target>
-                </action>
-                <action name="clean">
-                    <target>clean</target>
-                </action>
-                <action name="test">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>test-project</target>
-                </action>
-                <action name="rebuild">
-                    <target>clean</target>
-                    <target>build</target>
-                </action>
-                <!--  run single file actions -->
-                <!-- run stuff in main -->
-                <action name="run.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>run-selected-main</target>
-                    <context>
-                        <property>run.class</property>
-                        <folder>src/main</folder>
-                        <pattern>\.java$</pattern>
-                        <format>java-name</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="debug.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>debug-selected-main</target>
-                    <context>
-                        <property>debug.class</property>
-                        <folder>src/main</folder>
-                        <pattern>\.java$</pattern>
-                        <format>java-name</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <!-- run stuff in examples -->
-                <action name="run.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>run-selected-example</target>
-                    <context>
-                        <property>run.class</property>
-                        <folder>src/examples</folder>
-                        <pattern>\.java$</pattern>
-                        <format>java-name</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="debug.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>debug-selected-example</target>
-                    <context>
-                        <property>debug.class</property>
-                        <folder>src/examples</folder>
-                        <pattern>\.java$</pattern>
-                        <format>java-name</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="run.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>run-selected-example-jpf</target>
-                    <context>
-                        <property>jpf.config</property>
-                        <folder>src/examples</folder>
-                        <pattern>\.jpf$</pattern>
-                        <format>absolute-path</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="debug.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>debug-selected-example-jpf</target>
-                    <context>
-                        <property>jpf.config</property>
-                        <folder>src/examples</folder>
-                        <pattern>\.jpf$</pattern>
-                        <format>absolute-path</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <!-- run stuff in test -->
-                <action name="run.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>run-selected-test</target>
-                    <context>
-                        <property>run.class</property>
-                        <folder>src/tests</folder>
-                        <pattern>\.java$</pattern>
-                        <format>java-name</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="debug.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>debug-selected-test</target>
-                    <context>
-                        <property>debug.class</property>
-                        <folder>src/tests</folder>
-                        <pattern>\.java$</pattern>
-                        <format>java-name</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="run.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>run-selected-test-jpf</target>
-                    <context>
-                        <property>jpf.config</property>
-                        <folder>src/tests</folder>
-                        <pattern>\.jpf$</pattern>
-                        <format>absolute-path</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-                <action name="debug.single">
-                    <script>nbproject/ide-file-targets.xml</script>
-                    <target>debug-selected-test-jpf</target>
-                    <context>
-                        <property>jpf.config</property>
-                        <folder>src/tests</folder>
-                        <pattern>\.jpf$</pattern>
-                        <format>absolute-path</format>
-                        <arity>
-                            <one-file-only/>
-                        </arity>
-                    </context>
-                </action>
-            </ide-actions>
-            <export>
-                <type>folder</type>
-                <location>build/main</location>
-                <build-target>build</build-target>
-            </export>
-            <export>
-                <type>folder</type>
-                <location>build/peers</location>
-                <build-target>build</build-target>
-            </export>
-            <export>
-                <type>folder</type>
-                <location>build/classes</location>
-                <build-target>build</build-target>
-            </export>
-            <export>
-                <type>folder</type>
-                <location>build/examples</location>
-                <build-target>build</build-target>
-            </export>
-            <export>
-                <type>folder</type>
-                <location>build/annotations</location>
-                <build-target>build</build-target>
-            </export>
-            <export>
-                <type>folder</type>
-                <location>build/tests</location>
-                <build-target>build</build-target>
-            </export>
-            <view>
-                <items>
-                    <source-folder style="packages">
-                        <label>src/main</label>
-                        <location>src/main</location>
-                    </source-folder>
-                    <source-folder style="packages">
-                        <label>src/peers</label>
-                        <location>src/peers</location>
-                    </source-folder>
-                    <source-folder style="packages">
-                        <label>src/annotations</label>
-                        <location>src/annotations</location>
-                    </source-folder>
-                    <source-folder style="packages">
-                        <label>src/classes</label>
-                        <location>src/classes</location>
-                    </source-folder>
-                    <source-folder style="packages">
-                        <label>src/tests</label>
-                        <location>src/tests</location>
-                    </source-folder>
-                    <source-folder style="packages">
-                        <label>src/examples</label>
-                        <location>src/examples</location>
-                    </source-folder>
-                    <source-file>
-                        <location>build.xml</location>
-                    </source-file>
-                </items>
-                <context-menu>
-                    <ide-action name="build"/>
-                    <ide-action name="rebuild"/>
-                    <ide-action name="clean"/>
-                    <ide-action name="test"/>
-                </context-menu>
-            </view>
-            <subprojects/>
-        </general-data>
-        <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/4">
-            <compilation-unit>
-                <package-root>src/main</package-root>
-                <classpath mode="compile">build/annotations</classpath>
-                <built-to>build/main</built-to>
-                <source-level>1.8</source-level>
-            </compilation-unit>
-            <compilation-unit>
-                <package-root>src/peers</package-root>
-                <classpath mode="compile">build/annotations;build/main</classpath>
-                <built-to>build/peers</built-to>
-                <source-level>1.8</source-level>
-            </compilation-unit>
-            <compilation-unit>
-                <package-root>src/classes</package-root>
-                <classpath mode="compile">build/annotations;build/main</classpath>
-                <built-to>build/classes</built-to>
-                <source-level>1.8</source-level>
-            </compilation-unit>
-            <compilation-unit>
-                <package-root>src/examples</package-root>
-                <unit-tests/>
-                <classpath mode="compile">build/main</classpath>
-                <built-to>build/examples</built-to>
-                <source-level>1.8</source-level>
-            </compilation-unit>
-            <compilation-unit>
-                <package-root>src/annotations</package-root>
-                <built-to>build/annotations</built-to>
-                <source-level>1.8</source-level>
-            </compilation-unit>
-            <compilation-unit>
-                <package-root>src/tests</package-root>
-                <unit-tests/>
-                <classpath mode="compile">build/main:build/annotations:build/peers:build/classes</classpath>
-                <built-to>build/tests</built-to>
-                <source-level>1.8</source-level>
-            </compilation-unit>
-        </java-data>
-        <preferences xmlns="http://www.netbeans.org/ns/auxiliary-configuration-preferences/1">
-            <module name="org-netbeans-modules-editor-indent">
-                <node name="CodeStyle">
-                    <property name="usedProfile" value="default"/>
-                    <node name="project">
-                        <property name="tab-size" value="8"/>
-                        <property name="text-limit-width" value="80"/>
-                    </node>
-                </node>
-            </module>
-        </preferences>
-    </configuration>
-</project>
diff --git a/settings.gradle b/settings.gradle
new file mode 100644 (file)
index 0000000..fdd2f22
--- /dev/null
@@ -0,0 +1 @@
+rootProject.name = 'jpf-core'
diff --git a/src/tests/ReporterResourcesTest.java b/src/tests/ReporterResourcesTest.java
new file mode 100644 (file)
index 0000000..b3662ff
--- /dev/null
@@ -0,0 +1,55 @@
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import gov.nasa.jpf.Config;
+import gov.nasa.jpf.JPF;
+import gov.nasa.jpf.util.test.TestJPF;
+
+/**
+ * This is a plain JUnit test to check whether required resource files exist on
+ * JPF classpath.
+ *
+ * @author Jeanderson Candido
+ *
+ */
+public class ReporterResourcesTest extends TestJPF {
+
+  private JPF jpf;
+
+  @Before
+  public void setup() {
+    String[] configArgs = { "+vm.class=.vm.MultiProcessVM", "+target.1=HelloWorld", "+target.2=HelloWorld" };
+    this.jpf = new JPF(new Config(configArgs));
+  }
+
+  @Test
+  public void checkResources() throws IOException {
+    assertNotNull("build.properties should exist on classpath", jpf.getClass().getResourceAsStream("build.properties"));
+    assertNotNull(".version should exist on classpath", jpf.getClass().getResourceAsStream(".version"));
+  }
+
+  @Test
+  public void hashMustExist() {
+    InputStream stream = jpf.getClass().getResourceAsStream(".version");
+    assertTrue(".version file should be non-empty", !readContentFrom(stream).trim().isEmpty());
+  }
+
+  private String readContentFrom(InputStream stream) {
+    BufferedReader buffer = new BufferedReader(new InputStreamReader(stream));
+    StringBuilder output = new StringBuilder();
+    try {
+      while (buffer.ready()) {
+        output.append(buffer.readLine().trim()).append("\n");
+      }
+    } catch (IOException e) {
+      fail("Should not have failed while reading the file");
+    }
+    return output.toString();
+  }
+
+}