From ab262790405dbd828a2dcc983df353327ee477ff Mon Sep 17 00:00:00 2001 From: Jinbo Wang Date: Wed, 24 Apr 2019 17:27:33 +0800 Subject: [PATCH 1/2] Add java 12 and maven container definition Signed-off-by: Jinbo Wang --- .../java-12-maven/.devcontainer/Dockerfile | 12 ++++ .../.devcontainer/devcontainer.json | 8 +++ containers/java-12-maven/.npmignore | 4 ++ containers/java-12-maven/.vscode/launch.json | 15 +++++ containers/java-12-maven/README.md | 55 +++++++++++++++++++ .../java-12-maven/test-project/.classpath | 44 +++++++++++++++ .../java-12-maven/test-project/.gitignore | 1 + .../java-12-maven/test-project/.project | 23 ++++++++ .../.settings/org.eclipse.jdt.apt.core.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 9 +++ .../.settings/org.eclipse.m2e.core.prefs | 4 ++ containers/java-12-maven/test-project/pom.xml | 46 ++++++++++++++++ .../src/main/java/com/mycompany/app/App.java | 23 ++++++++ .../test/java/com/mycompany/app/AppTest.java | 23 ++++++++ 14 files changed, 269 insertions(+) create mode 100644 containers/java-12-maven/.devcontainer/Dockerfile create mode 100644 containers/java-12-maven/.devcontainer/devcontainer.json create mode 100644 containers/java-12-maven/.npmignore create mode 100644 containers/java-12-maven/.vscode/launch.json create mode 100644 containers/java-12-maven/README.md create mode 100644 containers/java-12-maven/test-project/.classpath create mode 100644 containers/java-12-maven/test-project/.gitignore create mode 100644 containers/java-12-maven/test-project/.project create mode 100644 containers/java-12-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs create mode 100644 containers/java-12-maven/test-project/.settings/org.eclipse.jdt.core.prefs create mode 100644 containers/java-12-maven/test-project/.settings/org.eclipse.m2e.core.prefs create mode 100644 containers/java-12-maven/test-project/pom.xml create mode 100644 containers/java-12-maven/test-project/src/main/java/com/mycompany/app/App.java create mode 100644 containers/java-12-maven/test-project/src/test/java/com/mycompany/app/AppTest.java diff --git a/containers/java-12-maven/.devcontainer/Dockerfile b/containers/java-12-maven/.devcontainer/Dockerfile new file mode 100644 index 0000000000..baee7dc312 --- /dev/null +++ b/containers/java-12-maven/.devcontainer/Dockerfile @@ -0,0 +1,12 @@ +#----------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See LICENSE in the project root for license information. +#----------------------------------------------------------------------------------------- + +FROM maven:3-jdk-12 + +# Install git, process tools +RUN yum update -y && yum install -y git procps + +# Clean yum cache +RUN yum clean all diff --git a/containers/java-12-maven/.devcontainer/devcontainer.json b/containers/java-12-maven/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..7c931e8a6e --- /dev/null +++ b/containers/java-12-maven/.devcontainer/devcontainer.json @@ -0,0 +1,8 @@ +{ + "name": "Java 12 & Maven", + "dockerFile": "Dockerfile", + "extensions": [ + "vscjava.vscode-java-pack", + "redhat.vscode-xml" + ] +} diff --git a/containers/java-12-maven/.npmignore b/containers/java-12-maven/.npmignore new file mode 100644 index 0000000000..1d72d293eb --- /dev/null +++ b/containers/java-12-maven/.npmignore @@ -0,0 +1,4 @@ +README.md +test-project +.vscode +.npmignore diff --git a/containers/java-12-maven/.vscode/launch.json b/containers/java-12-maven/.vscode/launch.json new file mode 100644 index 0000000000..3f8409dd3e --- /dev/null +++ b/containers/java-12-maven/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + "configurations": [ + { + "type": "java", + "name": "Launch App", + "request": "launch", + "cwd": "${workspaceFolder}/test-project", + "console": "internalConsole", + "stopOnEntry": false, + "mainClass": "com.mycompany.app.App", + "args": "", + "projectName": "my-app" + } + ] +} \ No newline at end of file diff --git a/containers/java-12-maven/README.md b/containers/java-12-maven/README.md new file mode 100644 index 0000000000..48b5f6d10e --- /dev/null +++ b/containers/java-12-maven/README.md @@ -0,0 +1,55 @@ +# Java 12 & Maven + +## Summary + +*Develop Java applications. Includes the JDK 12, XML tools, along with any dependencies Maven requires.* + +| Metadata | Value | +|----------|-------| +| *Contributors* | The VS Code Java Team | +| *Definition type* | Dockerfile | +| *Languages, platforms* | Java, Maven | + +## Using this definition with an existing folder + +Note that only the integrated terminal is supported by the Remote - Containers extension. You may need to modify `launch.json` configurations to include the following value if an external console is used. + +```json +"console": "integratedTerminal" +``` + +Beyond that, just follow these steps to use the definition: + +1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started) to set up your machine. + +2. To use VS Code's copy of this definition: + 1. Start VS Code and open your project folder. + 2. Press F1 select and **Remote-Containers: Create Container Configuration File...** from the command palette. + 3. Select the Java 12 & Maven definition. + +3. To use latest-and-greatest copy of this definition from the repository: + 1. Clone this repository. + 2. Copy the contents of `containers/java-12-maven/.devcontainer` to the root of your project folder. + 3. Start VS Code and open your project folder. + +4. After following step 2 or 3, the contents of the `.devcontainer` folder in your project can be adapted to meet your needs. + +5. Finally, press F1 and run **Remote-Containers: Reopen Folder in Container** to start using the definition. + +## Testing the definition + +This definition includes some test code that will help you verify it is working as expected on your system. Follow these steps: + +1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started) to set up your machine. +2. Clone this repository. +3. Start VS Code, press F1, and select **Remote-Containers: Open Folder in Container...** +4. Select the `containers/java-12-maven` folder. +5. After the folder has opened in the container, press F5 to start the project. +6. You should see "Hello Weekday" in the a Debug Console after the program executes. +7. From here, you can add breakpoints or edit the contents of the `test-project` folder to do further testing. + +## License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Licensed under the MIT License. See [LICENSE](https://github.com/Microsoft/vscode-dev-containers/blob/master/LICENSE). diff --git a/containers/java-12-maven/test-project/.classpath b/containers/java-12-maven/test-project/.classpath new file mode 100644 index 0000000000..c8a5e37978 --- /dev/null +++ b/containers/java-12-maven/test-project/.classpath @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/containers/java-12-maven/test-project/.gitignore b/containers/java-12-maven/test-project/.gitignore new file mode 100644 index 0000000000..1de565933b --- /dev/null +++ b/containers/java-12-maven/test-project/.gitignore @@ -0,0 +1 @@ +target \ No newline at end of file diff --git a/containers/java-12-maven/test-project/.project b/containers/java-12-maven/test-project/.project new file mode 100644 index 0000000000..700a32c79d --- /dev/null +++ b/containers/java-12-maven/test-project/.project @@ -0,0 +1,23 @@ + + + my-app + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs b/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000000..d4313d4b25 --- /dev/null +++ b/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.core.prefs b/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..dde555808e --- /dev/null +++ b/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=12 +org.eclipse.jdt.core.compiler.compliance=12 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=enabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=12 diff --git a/containers/java-12-maven/test-project/.settings/org.eclipse.m2e.core.prefs b/containers/java-12-maven/test-project/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000..f897a7f1cb --- /dev/null +++ b/containers/java-12-maven/test-project/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/containers/java-12-maven/test-project/pom.xml b/containers/java-12-maven/test-project/pom.xml new file mode 100644 index 0000000000..fedd21958c --- /dev/null +++ b/containers/java-12-maven/test-project/pom.xml @@ -0,0 +1,46 @@ + + 4.0.0 + com.mycompany.app + my-app + jar + 1.0-SNAPSHOT + my-app + http://maven.apache.org + + + 12 + 12 + + + + + junit + junit + 4.12 + test + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M3 + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 12 + 12 + --enable-preview + + + + + + diff --git a/containers/java-12-maven/test-project/src/main/java/com/mycompany/app/App.java b/containers/java-12-maven/test-project/src/main/java/com/mycompany/app/App.java new file mode 100644 index 0000000000..a72ca38b25 --- /dev/null +++ b/containers/java-12-maven/test-project/src/main/java/com/mycompany/app/App.java @@ -0,0 +1,23 @@ +/*---------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See LICENSE in the project root for license information. + *---------------------------------------------------------------------------------------*/ + +package com.mycompany.app; + +public class App +{ + public static void main( String[] args ) + { + System.out.println("Hello " + getDay(DAY_OF_WEEK.FRIDAY)); + } + + static String getDay(DAY_OF_WEEK dayOfWeek) { + return switch (dayOfWeek) { + case MONDAY, TUESDAY, WEDNESDAY, THRUSDAY, FRIDAY -> "Weekday"; + case SATURDAY, SUNDAY -> "Weekend"; + }; + } + + static enum DAY_OF_WEEK { MONDAY, TUESDAY, WEDNESDAY, THRUSDAY, FRIDAY, SATURDAY, SUNDAY}; +} diff --git a/containers/java-12-maven/test-project/src/test/java/com/mycompany/app/AppTest.java b/containers/java-12-maven/test-project/src/test/java/com/mycompany/app/AppTest.java new file mode 100644 index 0000000000..a315bb5b36 --- /dev/null +++ b/containers/java-12-maven/test-project/src/test/java/com/mycompany/app/AppTest.java @@ -0,0 +1,23 @@ +package com.mycompany.app; + +import org.junit.Test; +import static org.junit.Assert.*; + + +public class AppTest +{ + public AppTest() { + } + + @Test + public void testApp() + { + assertTrue( true ); + } + + @Test + public void testMore() + { + assertTrue( true ); + } +} From 25bc9fbca01bcde82f4e5b04e343fc156d1b96be Mon Sep 17 00:00:00 2001 From: Jinbo Wang Date: Thu, 25 Apr 2019 16:29:36 +0800 Subject: [PATCH 2/2] Rename the template title to Java 12 Signed-off-by: Jinbo Wang --- .../java-12-maven/.devcontainer/Dockerfile | 12 ---------- .../.devcontainer/devcontainer.json | 8 ------- containers/java-12/.devcontainer/Dockerfile | 23 +++++++++++++++++++ .../java-12/.devcontainer/devcontainer.json | 7 ++++++ .../{java-12-maven => java-12}/.npmignore | 0 .../.vscode/launch.json | 0 .../{java-12-maven => java-12}/README.md | 14 +++++------ .../test-project/.classpath | 0 .../test-project/.gitignore | 0 .../test-project/.project | 0 .../.settings/org.eclipse.jdt.apt.core.prefs | 0 .../.settings/org.eclipse.jdt.core.prefs | 0 .../.settings/org.eclipse.m2e.core.prefs | 0 .../test-project/pom.xml | 0 .../src/main/java/com/mycompany/app/App.java | 0 .../test/java/com/mycompany/app/AppTest.java | 0 16 files changed, 37 insertions(+), 27 deletions(-) delete mode 100644 containers/java-12-maven/.devcontainer/Dockerfile delete mode 100644 containers/java-12-maven/.devcontainer/devcontainer.json create mode 100644 containers/java-12/.devcontainer/Dockerfile create mode 100644 containers/java-12/.devcontainer/devcontainer.json rename containers/{java-12-maven => java-12}/.npmignore (100%) rename containers/{java-12-maven => java-12}/.vscode/launch.json (100%) rename containers/{java-12-maven => java-12}/README.md (82%) rename containers/{java-12-maven => java-12}/test-project/.classpath (100%) rename containers/{java-12-maven => java-12}/test-project/.gitignore (100%) rename containers/{java-12-maven => java-12}/test-project/.project (100%) rename containers/{java-12-maven => java-12}/test-project/.settings/org.eclipse.jdt.apt.core.prefs (100%) rename containers/{java-12-maven => java-12}/test-project/.settings/org.eclipse.jdt.core.prefs (100%) rename containers/{java-12-maven => java-12}/test-project/.settings/org.eclipse.m2e.core.prefs (100%) rename containers/{java-12-maven => java-12}/test-project/pom.xml (100%) rename containers/{java-12-maven => java-12}/test-project/src/main/java/com/mycompany/app/App.java (100%) rename containers/{java-12-maven => java-12}/test-project/src/test/java/com/mycompany/app/AppTest.java (100%) diff --git a/containers/java-12-maven/.devcontainer/Dockerfile b/containers/java-12-maven/.devcontainer/Dockerfile deleted file mode 100644 index baee7dc312..0000000000 --- a/containers/java-12-maven/.devcontainer/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -#----------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See LICENSE in the project root for license information. -#----------------------------------------------------------------------------------------- - -FROM maven:3-jdk-12 - -# Install git, process tools -RUN yum update -y && yum install -y git procps - -# Clean yum cache -RUN yum clean all diff --git a/containers/java-12-maven/.devcontainer/devcontainer.json b/containers/java-12-maven/.devcontainer/devcontainer.json deleted file mode 100644 index 7c931e8a6e..0000000000 --- a/containers/java-12-maven/.devcontainer/devcontainer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Java 12 & Maven", - "dockerFile": "Dockerfile", - "extensions": [ - "vscjava.vscode-java-pack", - "redhat.vscode-xml" - ] -} diff --git a/containers/java-12/.devcontainer/Dockerfile b/containers/java-12/.devcontainer/Dockerfile new file mode 100644 index 0000000000..e37ad6a913 --- /dev/null +++ b/containers/java-12/.devcontainer/Dockerfile @@ -0,0 +1,23 @@ +#----------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See LICENSE in the project root for license information. +#----------------------------------------------------------------------------------------- + +FROM maven:3-jdk-12 + +# Install git, process tools +RUN yum update -y && yum install -y git procps unzip + +# Install Gradle +ENV GRADLE_HOME /opt/gradle +ENV GRADLE_VERSION 5.4 +ARG GRADLE_DOWNLOAD_SHA256=c8c17574245ecee9ed7fe4f6b593b696d1692d1adbfef425bef9b333e3a0e8de +RUN curl -SL --output gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \ + && echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \ + && unzip gradle.zip \ + && rm gradle.zip \ + && mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/" \ + && ln -s "${GRADLE_HOME}/bin/gradlec" /usr/bin/gradle + +# Clean yum cache +RUN yum clean all diff --git a/containers/java-12/.devcontainer/devcontainer.json b/containers/java-12/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..611f4fd9a8 --- /dev/null +++ b/containers/java-12/.devcontainer/devcontainer.json @@ -0,0 +1,7 @@ +{ + "name": "Java 12", + "dockerFile": "Dockerfile", + "extensions": [ + "vscjava.vscode-java-pack" + ] +} diff --git a/containers/java-12-maven/.npmignore b/containers/java-12/.npmignore similarity index 100% rename from containers/java-12-maven/.npmignore rename to containers/java-12/.npmignore diff --git a/containers/java-12-maven/.vscode/launch.json b/containers/java-12/.vscode/launch.json similarity index 100% rename from containers/java-12-maven/.vscode/launch.json rename to containers/java-12/.vscode/launch.json diff --git a/containers/java-12-maven/README.md b/containers/java-12/README.md similarity index 82% rename from containers/java-12-maven/README.md rename to containers/java-12/README.md index 48b5f6d10e..972f2f5287 100644 --- a/containers/java-12-maven/README.md +++ b/containers/java-12/README.md @@ -1,14 +1,14 @@ -# Java 12 & Maven +# Java 12 ## Summary -*Develop Java applications. Includes the JDK 12, XML tools, along with any dependencies Maven requires.* +*Develop Java applications. Includes the JDK 12, Maven and Gradle build tools.* | Metadata | Value | |----------|-------| | *Contributors* | The VS Code Java Team | | *Definition type* | Dockerfile | -| *Languages, platforms* | Java, Maven | +| *Languages, platforms* | Java, Maven, Gradle | ## Using this definition with an existing folder @@ -25,11 +25,11 @@ Beyond that, just follow these steps to use the definition: 2. To use VS Code's copy of this definition: 1. Start VS Code and open your project folder. 2. Press F1 select and **Remote-Containers: Create Container Configuration File...** from the command palette. - 3. Select the Java 12 & Maven definition. + 3. Select the Java 12 definition. 3. To use latest-and-greatest copy of this definition from the repository: 1. Clone this repository. - 2. Copy the contents of `containers/java-12-maven/.devcontainer` to the root of your project folder. + 2. Copy the contents of `containers/java-12/.devcontainer` to the root of your project folder. 3. Start VS Code and open your project folder. 4. After following step 2 or 3, the contents of the `.devcontainer` folder in your project can be adapted to meet your needs. @@ -43,9 +43,9 @@ This definition includes some test code that will help you verify it is working 1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started) to set up your machine. 2. Clone this repository. 3. Start VS Code, press F1, and select **Remote-Containers: Open Folder in Container...** -4. Select the `containers/java-12-maven` folder. +4. Select the `containers/java-12` folder. 5. After the folder has opened in the container, press F5 to start the project. -6. You should see "Hello Weekday" in the a Debug Console after the program executes. +6. You should see "Hello Weekday" in the Debug Console after the program executes. 7. From here, you can add breakpoints or edit the contents of the `test-project` folder to do further testing. ## License diff --git a/containers/java-12-maven/test-project/.classpath b/containers/java-12/test-project/.classpath similarity index 100% rename from containers/java-12-maven/test-project/.classpath rename to containers/java-12/test-project/.classpath diff --git a/containers/java-12-maven/test-project/.gitignore b/containers/java-12/test-project/.gitignore similarity index 100% rename from containers/java-12-maven/test-project/.gitignore rename to containers/java-12/test-project/.gitignore diff --git a/containers/java-12-maven/test-project/.project b/containers/java-12/test-project/.project similarity index 100% rename from containers/java-12-maven/test-project/.project rename to containers/java-12/test-project/.project diff --git a/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs b/containers/java-12/test-project/.settings/org.eclipse.jdt.apt.core.prefs similarity index 100% rename from containers/java-12-maven/test-project/.settings/org.eclipse.jdt.apt.core.prefs rename to containers/java-12/test-project/.settings/org.eclipse.jdt.apt.core.prefs diff --git a/containers/java-12-maven/test-project/.settings/org.eclipse.jdt.core.prefs b/containers/java-12/test-project/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from containers/java-12-maven/test-project/.settings/org.eclipse.jdt.core.prefs rename to containers/java-12/test-project/.settings/org.eclipse.jdt.core.prefs diff --git a/containers/java-12-maven/test-project/.settings/org.eclipse.m2e.core.prefs b/containers/java-12/test-project/.settings/org.eclipse.m2e.core.prefs similarity index 100% rename from containers/java-12-maven/test-project/.settings/org.eclipse.m2e.core.prefs rename to containers/java-12/test-project/.settings/org.eclipse.m2e.core.prefs diff --git a/containers/java-12-maven/test-project/pom.xml b/containers/java-12/test-project/pom.xml similarity index 100% rename from containers/java-12-maven/test-project/pom.xml rename to containers/java-12/test-project/pom.xml diff --git a/containers/java-12-maven/test-project/src/main/java/com/mycompany/app/App.java b/containers/java-12/test-project/src/main/java/com/mycompany/app/App.java similarity index 100% rename from containers/java-12-maven/test-project/src/main/java/com/mycompany/app/App.java rename to containers/java-12/test-project/src/main/java/com/mycompany/app/App.java diff --git a/containers/java-12-maven/test-project/src/test/java/com/mycompany/app/AppTest.java b/containers/java-12/test-project/src/test/java/com/mycompany/app/AppTest.java similarity index 100% rename from containers/java-12-maven/test-project/src/test/java/com/mycompany/app/AppTest.java rename to containers/java-12/test-project/src/test/java/com/mycompany/app/AppTest.java