From d78a1534925e7e424355d214c683e946cbb97d05 Mon Sep 17 00:00:00 2001
From: Tobias Gesellchen <tobias@gesellix.de>
Date: Wed, 18 Jan 2023 22:24:10 +0100
Subject: Java: add Apache Ant (#409)

* Java: add Apache Ant

* Update src/java/devcontainer-feature.json

Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>

* revert the changes in README.md

* Add tests for Java/Ant

* Fix Java feature version

Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
---
 test/java/install_ant_and_gradle_and_maven.sh      | 28 ++++++++++++++++++++++
 .../install_ant_and_gradle_and_maven_for_user.sh   | 28 ++++++++++++++++++++++
 ...t_and_gradle_and_maven_with_specific_version.sh | 28 ++++++++++++++++++++++
 test/java/install_gradle_and_maven.sh              | 21 ----------------
 test/java/install_gradle_and_maven_for_user.sh     | 21 ----------------
 ...stall_gradle_and_maven_with_specific_version.sh | 21 ----------------
 test/java/scenarios.json                           | 10 +++++---
 7 files changed, 91 insertions(+), 66 deletions(-)
 create mode 100644 test/java/install_ant_and_gradle_and_maven.sh
 create mode 100644 test/java/install_ant_and_gradle_and_maven_for_user.sh
 create mode 100644 test/java/install_ant_and_gradle_and_maven_with_specific_version.sh
 delete mode 100644 test/java/install_gradle_and_maven.sh
 delete mode 100644 test/java/install_gradle_and_maven_for_user.sh
 delete mode 100644 test/java/install_gradle_and_maven_with_specific_version.sh

(limited to 'test/java')

diff --git a/test/java/install_ant_and_gradle_and_maven.sh b/test/java/install_ant_and_gradle_and_maven.sh
new file mode 100644
index 0000000..599f8d9
--- /dev/null
+++ b/test/java/install_ant_and_gradle_and_maven.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -e
+
+# Optional: Import test library
+source dev-container-features-test-lib
+
+check "user is root" grep root <(whoami)
+
+check "java" java --version
+
+check "ant" ant -version
+cat << EOF > /tmp/build.xml
+<project><target name="init"><mkdir dir="ant-src"/></target></project>
+EOF
+cd /tmp && ant init
+check "ant-src exists" grep "ant-src" <(ls -la /tmp)
+
+check "gradle" gradle --version
+cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test
+check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root)
+
+check "maven" mvn --version
+cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
+check "m2 exists" grep ".m2" <(ls -la /root)
+
+# Report result
+reportResults
diff --git a/test/java/install_ant_and_gradle_and_maven_for_user.sh b/test/java/install_ant_and_gradle_and_maven_for_user.sh
new file mode 100644
index 0000000..4e8b431
--- /dev/null
+++ b/test/java/install_ant_and_gradle_and_maven_for_user.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -e
+
+# Optional: Import test library
+source dev-container-features-test-lib
+
+check "user is vscode" grep vscode <(whoami)
+
+check "java" java --version
+
+check "ant" ant -version
+cat << EOF > /tmp/build.xml
+<project><target name="init"><mkdir dir="ant-src"/></target></project>
+EOF
+cd /tmp && ant init
+check "ant-src exists" grep "ant-src" <(ls -la /tmp)
+
+check "gradle" gradle --version
+cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test
+check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /home/vscode)
+
+check "maven" mvn --version
+cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
+check "m2 exists" grep ".m2" <(ls -la /home/vscode)
+
+# Report result
+reportResults
diff --git a/test/java/install_ant_and_gradle_and_maven_with_specific_version.sh b/test/java/install_ant_and_gradle_and_maven_with_specific_version.sh
new file mode 100644
index 0000000..7727f51
--- /dev/null
+++ b/test/java/install_ant_and_gradle_and_maven_with_specific_version.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -e
+
+# Optional: Import test library
+source dev-container-features-test-lib
+
+check "user is root" grep root <(whoami)
+
+check "java" java --version
+
+check "ant version" grep "Ant(TM) version 1.10.12" <(ant -version)
+cat << EOF > /tmp/build.xml
+<project><target name="init"><mkdir dir="ant-src"/></target></project>
+EOF
+cd /tmp && ant init
+check "ant-src exists" grep "ant-src" <(ls -la /tmp)
+
+check "gradle version" grep "Gradle 6.8.3" <(gradle --version)
+cd /tmp && gradle init --type basic --dsl groovy --project-name test
+check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root)
+
+check "maven version" grep "Apache Maven 3.6.3" <(mvn --version)
+cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
+check "m2 exists" grep ".m2" <(ls -la /root)
+
+# Report result
+reportResults
diff --git a/test/java/install_gradle_and_maven.sh b/test/java/install_gradle_and_maven.sh
deleted file mode 100644
index 636fd92..0000000
--- a/test/java/install_gradle_and_maven.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-set -e
-
-# Optional: Import test library
-source dev-container-features-test-lib
-
-check "user is root" grep root <(whoami)
-
-check "java" java --version
-check "gradle" gradle --version
-
-cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test
-check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root)
-
-check "maven" mvn --version
-cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
-check "m2 exists" grep ".m2" <(ls -la /root)
-
-# Report result
-reportResults
diff --git a/test/java/install_gradle_and_maven_for_user.sh b/test/java/install_gradle_and_maven_for_user.sh
deleted file mode 100644
index b6ea426..0000000
--- a/test/java/install_gradle_and_maven_for_user.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-set -e
-
-# Optional: Import test library
-source dev-container-features-test-lib
-
-check "user is vscode" grep vscode <(whoami)
-
-check "java" java --version
-check "gradle" gradle --version
-
-cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test
-check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /home/vscode)
-
-check "maven" mvn --version
-cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
-check "m2 exists" grep ".m2" <(ls -la /home/vscode)
-
-# Report result
-reportResults
diff --git a/test/java/install_gradle_and_maven_with_specific_version.sh b/test/java/install_gradle_and_maven_with_specific_version.sh
deleted file mode 100644
index c6ae6160..0000000
--- a/test/java/install_gradle_and_maven_with_specific_version.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-set -e
-
-# Optional: Import test library
-source dev-container-features-test-lib
-
-check "user is root" grep root <(whoami)
-
-check "java" java --version
-check "gradle version" grep "Gradle 6.8.3" <(gradle --version)
-
-cd /tmp && gradle init --type basic --dsl groovy --project-name test
-check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root)
-
-check "maven version" grep "Apache Maven 3.6.3" <(mvn --version)
-cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
-check "m2 exists" grep ".m2" <(ls -la /root)
-
-# Report result
-reportResults
diff --git a/test/java/scenarios.json b/test/java/scenarios.json
index 479ee47..11fb7ba 100644
--- a/test/java/scenarios.json
+++ b/test/java/scenarios.json
@@ -17,7 +17,7 @@
             }
         }
     },
-    "install_gradle_and_maven_for_user": {
+    "install_ant_and_gradle_and_maven_for_user": {
         "image": "ubuntu:focal",
         "remoteUser": "vscode",
         "features": {
@@ -26,26 +26,30 @@
             },
             "java": {
                 "version": "latest",
+                "installAnt": true,
                 "installGradle": true,
                 "installMaven": true
             }
         }
     },
-    "install_gradle_and_maven": {
+    "install_ant_and_gradle_and_maven": {
         "image": "ubuntu:focal",
         "features": {
             "java": {
                 "version": "latest",
+                "installAnt": true,
                 "installGradle": true,
                 "installMaven": true
             }
         }
     },
-    "install_gradle_and_maven_with_specific_version": {
+    "install_ant_and_gradle_and_maven_with_specific_version": {
         "image": "ubuntu:focal",
         "features": {
             "java": {
                 "version": "latest",
+                "installAnt": "true",
+                "antVersion": "1.10.12",
                 "installGradle": "true",
                 "gradleVersion": "6.8.3",
                 "installMaven": "true",
-- 
cgit v1.2.3