-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
256 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
.gradle/ | ||
/bin/ | ||
/build/ | ||
/generated/ | ||
/wlp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
# Repo for quick testing of Liberty apps | ||
Especially useful for new Java versions | ||
|
||
|
||
### For versions of Java that already have gradle support | ||
To build the WAR file locally, from the root directory of the open-liberty-misc repository run: | ||
|
||
``` | ||
./gradlew io.openliberty.java.internal_fat_22:build | ||
``` | ||
|
||
|
||
### For versions of Java that do not have gradle support yet | ||
Make the following updates in the following files (example given here as if you were working with pre-gradle support for Java 22): | ||
|
||
- In **build.gradle**, set: | ||
|
||
``` | ||
languageVersion = JavaLanguageVersion.of(22) | ||
``` | ||
|
||
- And then set the environment variable JDK22 to your Java 22 JDK home, for example: | ||
|
||
``` | ||
(Mac) export JDK22="/path/to/your/jdk22/home" | ||
(Unix) JDK22="/path/to/your/jdk22/home" | ||
(Win DOS) set JDK22="C:\path\to\your\jdk22\home" | ||
(Win PS) $env:JDK22="C:\path\to\your\jdk22\home" | ||
``` | ||
|
||
- To build the WAR file locally, from the root directory of the open-liberty-misc repository run: | ||
|
||
``` | ||
./gradlew io.openliberty.java.internal_fat_22:build -P"org.gradle.java.installations.fromEnv=JDK22" | ||
``` | ||
where **JDK22** is a system environment variable that reflects the location of your Java 22 JDK to use to compile the source (see last step). | ||
|
||
|
||
### When moving to a new release of Java | ||
- **build.gradle** | ||
|
||
``` | ||
appUrl = 'http://localhost:9080/io.openliberty.java.internal_fat_22/' | ||
<Make sure to add any new dependencies or update existing ones to the proper levels> | ||
``` | ||
|
||
Then add new code to **TestServices.java** either directly or via another class and make sure **TestApp.java** is in the same directory. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2024 IBM Corporation and others. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License 2.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-2.0/ | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Contributors: | ||
* IBM Corporation - initial API and implementation | ||
*******************************************************************************/ | ||
// To create this WAR file (ex: ./gradlew build...) for newer versions of Java (typically early access ones) before gradle supports it | ||
// See the README.md file | ||
|
||
apply plugin: 'war' | ||
|
||
description = "Basic Liberty repo" | ||
|
||
tasks.withType(JavaCompile) { | ||
options.encoding = 'UTF-8' | ||
} | ||
|
||
compileJava { | ||
doFirst { | ||
options.compilerArgs = [ | ||
'--module-path', classpath.asPath, | ||
'--enable-preview' | ||
] | ||
classpath = files() | ||
options.warnings = true | ||
options.deprecation = true | ||
options.debug = true | ||
options.incremental = false | ||
} | ||
} | ||
|
||
java { | ||
toolchain { | ||
languageVersion = JavaLanguageVersion.of(22) | ||
} | ||
} | ||
|
||
repositories { | ||
mavenCentral() | ||
} | ||
|
||
dependencies { | ||
compileOnly group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.1.1' | ||
compileOnly group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' | ||
compileOnly group: 'javax.enterprise', name: 'cdi-api', version: '2.0' | ||
} | ||
|
||
ext { | ||
appUrl = 'http://localhost:9080/io.openliberty.java.internal_fat_22/' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Enable Java preview features | ||
--enable-preview | ||
|
||
# Enable Java incubator modules | ||
--add-modules=jdk.incubator.foreign |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Need to update the JAVA_HOME environment variable to point to your Java 22 JDK | ||
JAVA_HOME=/jdk/temurin/jdk22 |
20 changes: 20 additions & 0 deletions
20
io.openliberty.java.internal_fat_22/src/main/java/io/openliberty/java/internal/TestApp.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2024 IBM Corporation and others. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License 2.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-2.0/ | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Contributors: | ||
* IBM Corporation - initial API and implementation | ||
*******************************************************************************/ | ||
package io.openliberty.java.internal; | ||
|
||
import javax.ws.rs.ApplicationPath; | ||
import javax.ws.rs.core.Application; | ||
|
||
@ApplicationPath("/") | ||
public class TestApp extends Application { | ||
} |
80 changes: 80 additions & 0 deletions
80
...nliberty.java.internal_fat_22/src/main/java/io/openliberty/java/internal/TestService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2024 IBM Corporation and others. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License 2.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-2.0/ | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Contributors: | ||
* IBM Corporation - initial API and implementation | ||
*******************************************************************************/ | ||
package io.openliberty.java.internal; | ||
|
||
import java.io.PrintWriter; | ||
import java.io.StringWriter; | ||
import java.util.ArrayList; | ||
import java.util.Arrays; | ||
|
||
import javax.enterprise.context.ApplicationScoped; | ||
import javax.ws.rs.GET; | ||
import javax.ws.rs.Path; | ||
|
||
@Path("/") | ||
@ApplicationScoped | ||
public class TestService { | ||
|
||
private StringWriter sw = new StringWriter(); | ||
|
||
@GET | ||
public String test() { | ||
try { | ||
log(">>> ENTER"); | ||
doTest(); | ||
log("<<< EXIT SUCCESSFUL"); | ||
} catch (Exception e) { | ||
e.printStackTrace(System.out); | ||
e.printStackTrace(new PrintWriter(sw)); | ||
log("<<< EXIT FAILED"); | ||
} | ||
String result = sw.toString(); | ||
sw = new StringWriter(); | ||
return result; | ||
} | ||
|
||
|
||
private void doTest() throws Exception { | ||
log("Beginning Java 22 testing"); | ||
ArrayList<String> favoriteShows = new ArrayList<String>(Arrays.asList("Outpost","Grimm","Community","Scrubs","Castle","Star Trek")); | ||
int count = countElements(favoriteShows); | ||
|
||
if (count != favoriteShows.size()) { | ||
log("Failed testing"); | ||
throw new Exception("Number of elements counted in ArrayList (" + count + ") is not equal to the size (" + favoriteShows.size() + ")!"); | ||
} | ||
|
||
log("Goodbye testing"); | ||
} | ||
|
||
/** | ||
* Demonstrate unnamed variables : JEP 456 -> https://openjdk.org/jeps/456 | ||
* | ||
* @param shows | ||
* @return | ||
*/ | ||
public int countElements(ArrayList<String> list) { | ||
int total = 0; | ||
for (var _ : list) { // Use _ for unnamed variable | ||
total++; | ||
} | ||
return total; | ||
} | ||
|
||
|
||
public void log(String msg) { | ||
System.out.println(msg); | ||
sw.append(msg); | ||
sw.append("<br/>"); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
...liberty.java.internal_fat_22/src/main/java/io/openliberty/java/internal/package-info.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2024 IBM Corporation and others. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License 2.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-2.0/ | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Contributors: | ||
* IBM Corporation - initial API and implementation | ||
*******************************************************************************/ | ||
package io.openliberty.java.internal; |
17 changes: 17 additions & 0 deletions
17
io.openliberty.java.internal_fat_22/src/main/java/module-info.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
/******************************************************************************* | ||
* Copyright (c) 2024 IBM Corporation and others. | ||
* All rights reserved. This program and the accompanying materials | ||
* are made available under the terms of the Eclipse Public License 2.0 | ||
* which accompanies this distribution, and is available at | ||
* http://www.eclipse.org/legal/epl-2.0/ | ||
* | ||
* SPDX-License-Identifier: EPL-2.0 | ||
* | ||
* Contributors: | ||
* IBM Corporation - initial API and implementation | ||
*******************************************************************************/ | ||
open module io.openliberty.java.internal.basic_app { | ||
|
||
requires java.ws.rs; | ||
|
||
} |
6 changes: 6 additions & 0 deletions
6
io.openliberty.java.internal_fat_22/src/main/liberty/config/server.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<server> | ||
<featureManager> | ||
<feature>servlet-4.0</feature> | ||
<feature>jaxrs-2.1</feature> | ||
</featureManager> | ||
</server> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters