diff --git a/modernize-apps/add-microservice/add-microservice.md b/modernize-apps/add-microservice/add-microservice.md
new file mode 100644
index 00000000..9e69e790
--- /dev/null
+++ b/modernize-apps/add-microservice/add-microservice.md
@@ -0,0 +1,331 @@
+
+# Using WebLogic and Helidon Microservices
+
+## Introduction
+
+This lab walks you through the steps for deploying and testing the interoperability between Weblogic Bank Application and Helidon Microservice for Credit Verification.
+
+*Estimated Lab Time:* 90 minutes
+
+### Objectives
+* Writing Helidon Microservice
+* Deploying WebLogic Application
+* Interoperability between Weblogic and Helidon
+
+### Prerequisites
+This lab assumes you have:
+* A Free Tier, Paid or LiveLabs Oracle Cloud account
+* You have completed:
+ - Lab: Prepare Setup (*Free-tier* and *Paid Tenants* only)
+ - Lab: Initialize Environment
+
+### Lab Description
+
+The very purpose of writing microservices is to do a small piece of job efficiently and re-use it multiple times in different applications. Helidon SE enables us to write one such microservice in this lab.
+BestBank, a hypothetical bank has an application. As part of that application, the bank’s credit division wants to build a simple UI which showcases the details of top 15 customers with their SSN number and IBAN number. The team wants to have a microservice which provides credit score of the customer as output taking the user details like IBAN/SSN numbers as input.
+The IT developers create a CreditScore Microservice in Helidon and consume it in the current UI application listing the top 15 customers.
+
+### Implementation Details and Assumptions
+* The sample application UI is built to showcase JSF and CDI using XHTML
+* The user data is not coming from database
+* The Helidon Microservice written in the lab can be deployed on Docker/Kubernetes, but in this lab, we only run it from the JVM locally
+
+### Lab Flow
+This lab is designed for people with no prior experience with Kubernetes, Docker, WebLogic, Helidon and want to learn the core concepts and basics of how to run WebLogic JEE and Helidon microservices application.
+* Setup Lab Environment
+* Verify Basic Bank Application Code and working application
+* Develop new Credit Score function as microservice using Helidon SE and deploy on local JVM
+* Modify Bank Web Application to use Credit Score microservice and deploy on WebLogic
+
+## Task 1: Develop new Credit Score Function
+Proceed to Develop new Credit Score Function as microservice using Helidon SE and deploy on local JVM
+
+1. Copy and paste the below command in the terminal to setup the required environment. This command download the required JDK 21 and Maven 3.8.3. Later it setup the environment variable PATH and JAVA_HOME. This setup is required to create Helidon microservice.
+
+ ```
+ wget https://archive.apache.org/dist/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz
+ tar -xvf apache-maven-3.8.3-bin.tar.gz
+ wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
+ tar -xzvf jdk-21_linux-x64_bin.tar.gz
+ PATH=~/jdk-21.0.2/bin:~/apache-maven-3.8.3/bin:$PATH
+ JAVA_HOME=~/jdk-21.0.2
+ ```
+
+2. Copy and paste the following command to verify the environment in the terminal.
+ ```bash
+ mvn -v
+ ```
+
+ You will have output similar to the below.
+ ```bash
+ $ mvn -v
+ Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
+ Maven home: /home/oracle/apache-maven-3.8.3
+ Java version: 21.0.2, vendor: Oracle Corporation, runtime: /home/oracle/jdk-21.0.2
+ Default locale: en_US, platform encoding: UTF-8
+ OS name: "linux", version: "4.14.35-2047.518.4.2.el7uek.x86_64", arch: "amd64", family: "unix"
+ ```
+2. Create a directory called “microservice” under `/u01/middleware_demo/wls-helidon` and navigate to `/u01/middleware_demo/wls-helidon/microservice`
+
+ ```
+
+ mkdir /u01/middleware_demo/wls-helidon/microservice
+ cd /u01/middleware_demo/wls-helidon/microservice
+
+ ```
+
+3. Generate the project sources using Helidon SE Maven archetypes. The result is a simple project that shows the basics of configuring the WebServer and implementing basic routing rule
+
+ ```
+
+ mvn archetype:generate -DinteractiveMode=false \
+ -DarchetypeGroupId=io.helidon.archetypes \
+ -DarchetypeArtifactId=helidon-quickstart-se \
+ -DarchetypeVersion=4.0.5 \
+ -DgroupId=io.helidon.bestbank \
+ -DartifactId=helidon-creditscore-se \
+ -Dpackage=io.helidon.bestbank.creditscore
+
+ ```
+
+4. When the project generation is ready open the Main.java for edit:
+
+ ```
+ vi helidon-creditscore-se/src/main/java/io/helidon/bestbank/creditscore/Main.java
+ ```
+
+5. Register the creditscore route after line 58 by adding `".register("/creditscore", new CreditscoreService())"` as indicated below. This basically the context path for the service endpoint.
+
+ ![](./images/register-creditscore-route.png " ")
+
+6. Now create a new class called CreditscoreService in the same package where the Main.java is located. Simply run the following to create the class file
+
+ ```
+ vi helidon-creditscore-se/src/main/java/io/helidon/bestbank/creditscore/CreditscoreService.java
+ ```
+
+7. Copy and paste the below code to the class file.
+ ```bash
+ package io.helidon.bestbank.creditscore;
+
+ import io.helidon.webserver.http.HttpRules;
+ import io.helidon.webserver.http.HttpService;
+ import io.helidon.webserver.http.ServerRequest;
+ import io.helidon.webserver.http.ServerResponse;
+
+ import jakarta.json.Json;
+ import jakarta.json.JsonObject;
+
+ import static java.lang.System.Logger.Level.INFO;
+
+ public class CreditscoreService implements HttpService {
+
+ private static final System.Logger logger = System.getLogger(CreditscoreService.class.getName());
+
+ private static final int SCORE_MAX = 800;
+ private static final int SCORE_MIN = 550;
+
+ /**
+ * A service registers itself by updating the routine rules.
+ *
+ * @param rules the routing rules.
+ */
+ @Override
+ public final void routing(HttpRules rules) {
+ rules
+ .get("/healthcheck", this::getHealthCheck)
+ .post("/", this::postMethodCreditScore);
+ }
+
+ /**
+ * Return a health check message.
+ *
+ * @param request the server request
+ * @param response the server response
+ */
+ private void getHealthCheck(final ServerRequest request, final ServerResponse response) {
+ JsonObject returnObject = Json.createObjectBuilder()
+ .add("message", "The credit score provider is running.")
+ .build();
+
+ response.send(returnObject);
+ }
+
+ /**
+ * POST method to return a customer data including credit score value, using the data that was provided.
+ * Examples:
+ *
+ *
+ *
+ * @param request the server request
+ * @param response the server response
+ */
+ private void postMethodCreditScore(final ServerRequest request, final ServerResponse response) {
+ JsonObject reqJson = request.content()
+ .as(JsonObject.class);
+
+ logger.log(INFO, "Request: {0}", reqJson);
+
+ int creditScore = calculateCreditScore(reqJson.getString("firstname"),
+ reqJson.getString("lastname"),
+ reqJson.getString("dateofbirth"),
+ reqJson.getString("ssn"));
+
+ JsonObject resJson = Json.createObjectBuilder(reqJson)
+ .add("score", creditScore)
+ .build();
+
+ response.send(resJson);
+ }
+
+ /**
+ * Calculate credit score based on customer's properties.
+ *
+ * @param firstName first name
+ * @param lastName last name
+ * @param dateOfBirth date of birth
+ * @param ssn social security number
+ * @return calculated credit score
+ */
+ private int calculateCreditScore(String firstName, String lastName, String dateOfBirth, String ssn) {
+
+ int score = Math.abs(firstName.hashCode() + lastName.hashCode() + dateOfBirth.hashCode() + ssn.hashCode());
+
+ score = score % SCORE_MAX;
+
+ while (score < SCORE_MIN) {
+ score = score + 100;
+ }
+ return score;
+ }
+
+ }
+ ```
+ >> Please note the code above accepts a GET for healthcheck and POST method to calculate the credit score value based on the account owner's details which passed using JSON.
+
+7. Build the project:
+
+ ```
+ cd /u01/middleware_demo/wls-helidon/microservice/helidon-creditscore-se/
+ mvn package
+ ```
+
+ This will create the executable jar file of the Helidon Microservice under the folder “target”
+
+ ```
+
+ cd /u01/middleware_demo/wls-helidon/microservice/helidon-creditscore-se/target
+ ls -alrt helidon-creditscore-se.jar
+
+ ```
+
+## Task 2: Modify Bank Web Application
+Proceed to Modify Bank Web Application To Use Credit Score Microservice & Deploy On WebLogic
+
+Before the deployment of the Bank Web Application to consume Microservice, the following changes will be made:
+ - Modify the User Interface. Create View button which opens Account Owner details window. This detail window will show the credit score value of the Account Owner.
+ - Modify the server side bean to invoke Credit Score Microservices Application.
+ - Configure the endpoint for the Bank Web Application.
+ - Deploy new web application
+
+### Modify user Interface
+
+1. Open a new tab in the terminal, so we use preview tab for building and running the helidon application.
+
+2. Open for edit the `/u01/middleware_demo/wls-helidon/src/main/webapp/index.xhtml` HTML file.
+
+ ```
+ vi /u01/middleware_demo/wls-helidon/src/main/webapp/index.xhtml
+ ```
+
+3. Find and delete all the lines which contain REMOVE THIS LINE comment.
+Only that one`(!)`, but that full line of comment which contains. (4 lines needs to be removed.) Save the file.
+If you are familiar with JSF to check what has changed in the code.
+
+### Modify Server Side Bean
+4. Open for edit `/u01/middleware_demo/wls-helidon/src/main/java/com/oracle/oow19/wls/bestbank/AccountOwnerBean.java` class file.
+
+ ```
+ vi /u01/middleware_demo/wls-helidon/src/main/java/com/oracle/oow19/wls/bestbank/AccountOwnerBean.java
+ ```
+
+6. Find and delete the 4 lines which contain the *REMOVE THIS LINE* comment. Save the file and Check what has changed in the code.
+
+ - The postConstruct method modified to read the end point URL from the property file.
+ - New getCreditScore method created to calculate the credit score value of the Account Owner.
+ - Finally include the new method invocation in getSelectedAccountOwner method which is triggered by the View button on the User Interface.
+
+### Configure End-Point
+1. The last file to modify is the `/u01/middleware_demo/wls-helidon/src/main/resources/app.properties` file.
+
+ The Bank Web Application reads this properties file to know the endpoint's URL. Obviously this solution is just for demo purposes, because in real microservices architecture the best practice is to use additional tools for better service/API management.
+
+ ```
+ vi /u01/middleware_demo/wls-helidon/src/main/resources/app.properties
+ ```
+
+2. Replace the URL to your given value and save: `creditscore.url=http://cvgdb.oraclevcn.com:8080/creditscore`
+
+### Deploy Modified Web Application
+
+1. Source the `setWLS14Profile.sh` and `setBankAppEnv.sh` to set the environment variables required to start the WebLogic 14c Admin server and run commands to build Helidon and Bank applications
+
+ ```
+ cd /u01/middleware_demo/scripts/
+ . ./setWLS14Profile.sh
+ . ./setBankAppEnv.sh
+ ```
+
+2. Change the directory to wls-helidon where the Bank Application code reside
+
+ ```
+ cd /u01/middleware_demo/wls-helidon/
+ ```
+
+3. Run the following Maven command:
+
+ ```
+ mvn clean package
+ ```
+
+ When the build is complete and successful, open the browser and access the new bank application using the URL *`http://cvgdb.oraclevcn.com:7101/bestbank2020_01`*
+
+4. Select an Account Owner and click the new View button. A pop-up window with no information about the credit score of the user is seen. This is because the microservice is not yet started !!!
+
+### Start The Helidon Microservice
+1. Go back to the tab, where you have set Maven and JDK 21..
+2. Navigate to `/u01/middleware_demo/wls-helidon/microservice/helidon-creditscore-se/target/`
+
+ ```
+ cd /u01/middleware_demo/wls-helidon/microservice/helidon-creditscore-se/target/
+ ```
+
+3. Start the Microservice application as a standalone Java Program using the command:
+
+ ```
+ java -jar helidon-creditscore-se.jar &
+ ```
+
+ ![](./images/start-microservice.png " ")
+
+4. In the browser, check if the CreditScore Microservice application is running by checking the health check url `http://cvgdb.oraclevcn.com:8080/creditscore/healthcheck`
+5. Open the browser and access the new bank application using the URL `http://cvgdb.oraclevcn.com:7101/bestbank2020_01` or refresh the existing browser window with the above URL
+6. Select an Account Owner and click the new View button. A pop-up window with CreditScore information of the user is seen.
+
+ ![](./images/creditscore.png " ")
+
+*Congratulations! You have successfully completed the workshop*
+
+## Acknowledgements
+* **Author** - Srinivas Pothukuchi, Pradeep Chandramouli, Chethan BR, AppDev & Integration Team, Oracle, October 2020
+* **Contributors** - Meghana Banka, Rene Fontcha
+* **Last Updated By/Date** - Ankit Pandey, February 2024
diff --git a/modernize-apps/add-microservice/images/creditscore.png b/modernize-apps/add-microservice/images/creditscore.png
new file mode 100644
index 00000000..5655fa4a
Binary files /dev/null and b/modernize-apps/add-microservice/images/creditscore.png differ
diff --git a/modernize-apps/add-microservice/images/microservicerunning.png b/modernize-apps/add-microservice/images/microservicerunning.png
new file mode 100644
index 00000000..f458735b
Binary files /dev/null and b/modernize-apps/add-microservice/images/microservicerunning.png differ
diff --git a/modernize-apps/add-microservice/images/register-creditscore-route.png b/modernize-apps/add-microservice/images/register-creditscore-route.png
new file mode 100644
index 00000000..b3b0c8d2
Binary files /dev/null and b/modernize-apps/add-microservice/images/register-creditscore-route.png differ
diff --git a/modernize-apps/add-microservice/images/start-microservice.png b/modernize-apps/add-microservice/images/start-microservice.png
new file mode 100644
index 00000000..070c2a1e
Binary files /dev/null and b/modernize-apps/add-microservice/images/start-microservice.png differ
diff --git a/modernize-apps/initialize-environment/images/admin-console.png b/modernize-apps/initialize-environment/images/admin-console.png
new file mode 100644
index 00000000..3017aba8
Binary files /dev/null and b/modernize-apps/initialize-environment/images/admin-console.png differ
diff --git a/modernize-apps/initialize-environment/images/adminconsole.png b/modernize-apps/initialize-environment/images/adminconsole.png
deleted file mode 100644
index c8b7f757..00000000
Binary files a/modernize-apps/initialize-environment/images/adminconsole.png and /dev/null differ
diff --git a/modernize-apps/initialize-environment/initialize-environment.md b/modernize-apps/initialize-environment/initialize-environment.md
index d59e2335..1da24dfa 100644
--- a/modernize-apps/initialize-environment/initialize-environment.md
+++ b/modernize-apps/initialize-environment/initialize-environment.md
@@ -14,41 +14,24 @@ This lab assumes you have:
- A Free Tier, Paid or LiveLabs Oracle Cloud account
- You have completed:
- Lab: Prepare Setup (*Free-tier* and *Paid Tenants* only)
- - Lab: Environment Setup
+
## Task 1: Validate That Required Processes are Up and Running.
1. Now with access to your remote desktop session, proceed as indicated below to validate your environment before you start executing the subsequent labs. The following Processes should be up and running:
-
- - Database Listener
- - LISTENER
- - Database Server Instance
- - convergedcdb
- Application
- bestbank2020
-2. Validate that expected processes are up. Please note that it may take up to 5 minutes after instance provisioning for all processes to fully start.
+2. Validate that expected processes are up. Please note that it may take up to 5 minutes after instance provisioning for all processes to fully start. On Desktop, Click on **Terminal** and paste the below command.
```
- ps -ef|grep LISTENER|grep -v grep
- ps -ef|grep ora_|grep pmon|grep -v grep
- systemctl status oracle-database
systemctl status oracle-init-workshop
```
-3. If you see questionable output(s), failure or down component(s), restart the service accordingly
-
- ```
- e.g. Restarting the DB and DB Listener
-
- sudo systemctl restart oracle-database
-
- ```
-
-4. On the web browser window on the right preloaded with *WebLogic Admin Console* login page, click on the *Username* field and select the saved credentials or provide the credentials below to login.
+3. On the web browser window on the right preloaded with *WebLogic Admin Console* login page, click on the *Username* field and select the saved credentials or provide the credentials below to login.
- ![](./images/adminconsole.png " ")
+ ![](./images/admin-console.png " ")
```
username: weblogic
@@ -57,51 +40,17 @@ This lab assumes you have:
password: Oracle123!
```
-5. On the left hand side Menu under “Domain Structure” click on “Deployments”. Observe that the bestbank2020 application has been already deployed and available to access.
+5. On the left hand side Menu under **Domain Structure** click on **Deployments**. Observe that the *bestbank2020* application has been already deployed and available to access.
![](./images/deployments.png " ")
-5. Still on the same browser window on the right, switch to the second tab preloaded with tab *BestBank" application UI and confirm that the page loaded successfully
+5. Still on the same browser window on the right, switch to the second tab preloaded with tab *BestBank* application UI and confirm that the page loaded successfully
You may now [proceed to the next lab](#next).
-## Appendix 1: Managing Startup Services
-
-1. Database service (Database and Standard Listener).
-
- - Start
-
- ```
-
- sudo systemctl start oracle-database
-
- ```
- - Stop
-
- ```
-
- sudo systemctl stop oracle-database
-
- ```
-
- - Status
-
- ```
-
- systemctl status oracle-database
-
- ```
-
- - Restart
-
- ```
-
- sudo systemctl restart oracle-database
-
- ```
## Acknowledgements
- **Authors** - Balasubramanian Ramamoorthy, Sudip Bandyopadhyay, Vishwanath Venkatachalaiah
- **Contributors** - Jyotsana Rawat, Satya Pranavi Manthena, Kowshik Nittala, Rene Fontcha
-- **Last Updated By/Date** - Rene Fontcha, LiveLabs Platform Lead, NA Technology, October 2021
+- **Last Updated By/Date** - Ankit Pandey, February 2024
diff --git a/modernize-apps/intro/intro-weblogic-helidon.md b/modernize-apps/intro/intro-weblogic-helidon.md
index c67496a5..2d4515f6 100644
--- a/modernize-apps/intro/intro-weblogic-helidon.md
+++ b/modernize-apps/intro/intro-weblogic-helidon.md
@@ -25,9 +25,7 @@ The REST framework for Helidon SE is the Helidon WebServer. It’s built on top
### Prerequisites
* This lab assumes you have:
* An Oracle Cloud Account - Please view this workshop's LiveLabs landing page to see which environments are supported
-* You have completed:
- * Lab: Prepare Setup (Free Tier and Paid Tenants only)
- * Lab: Environment Setup
+
*Note: If you have a **Free Trial** account, when your Free Trial expires your account will be converted to an **Always Free** account. You will not be able to conduct Free Tier workshops unless the Always Free environment is available. **[Click here for the Free Tier FAQ page.](https://www.oracle.com/cloud/free/faq.html)***
@@ -39,4 +37,4 @@ The REST framework for Helidon SE is the Helidon WebServer. It’s built on top
## Acknowledgements
* **Authors** - Srinivas Pothukuchi, Pradeep Chandramouli, Chethan BR, AppDev & Integration Team, Oracle, October 2020
* **Contributors** - Meghana Banka, Rene Fontcha
-* **Last Updated By/Date** - Rene Fontcha, LiveLabs Platform Lead, NA Technology, December 2020
+* **Last Updated By/Date** - Ankit Pandey, February 2024
diff --git a/modernize-apps/prepare-setup/images/browse-zip.png b/modernize-apps/prepare-setup/images/browse-zip.png
new file mode 100644
index 00000000..2254a230
Binary files /dev/null and b/modernize-apps/prepare-setup/images/browse-zip.png differ
diff --git a/modernize-apps/prepare-setup/images/click-stack.png b/modernize-apps/prepare-setup/images/click-stack.png
new file mode 100644
index 00000000..e0c96a20
Binary files /dev/null and b/modernize-apps/prepare-setup/images/click-stack.png differ
diff --git a/modernize-apps/prepare-setup/images/desktop-url.png b/modernize-apps/prepare-setup/images/desktop-url.png
new file mode 100644
index 00000000..68912f6b
Binary files /dev/null and b/modernize-apps/prepare-setup/images/desktop-url.png differ
diff --git a/modernize-apps/prepare-setup/images/instance-shape.png b/modernize-apps/prepare-setup/images/instance-shape.png
new file mode 100644
index 00000000..35b2acc0
Binary files /dev/null and b/modernize-apps/prepare-setup/images/instance-shape.png differ
diff --git a/modernize-apps/prepare-setup/images/job-in-progress.png b/modernize-apps/prepare-setup/images/job-in-progress.png
new file mode 100644
index 00000000..f41b9fec
Binary files /dev/null and b/modernize-apps/prepare-setup/images/job-in-progress.png differ
diff --git a/modernize-apps/prepare-setup/images/job-success.png b/modernize-apps/prepare-setup/images/job-success.png
new file mode 100644
index 00000000..3114edf7
Binary files /dev/null and b/modernize-apps/prepare-setup/images/job-success.png differ
diff --git a/modernize-apps/prepare-setup/images/main-config.png b/modernize-apps/prepare-setup/images/main-config.png
new file mode 100644
index 00000000..217fd30b
Binary files /dev/null and b/modernize-apps/prepare-setup/images/main-config.png differ
diff --git a/modernize-apps/prepare-setup/images/menu-stack.png b/modernize-apps/prepare-setup/images/menu-stack.png
new file mode 100644
index 00000000..b6056620
Binary files /dev/null and b/modernize-apps/prepare-setup/images/menu-stack.png differ
diff --git a/modernize-apps/prepare-setup/images/run-apply.png b/modernize-apps/prepare-setup/images/run-apply.png
new file mode 100644
index 00000000..61f7ed0f
Binary files /dev/null and b/modernize-apps/prepare-setup/images/run-apply.png differ
diff --git a/modernize-apps/prepare-setup/images/select-compartment.png b/modernize-apps/prepare-setup/images/select-compartment.png
new file mode 100644
index 00000000..ddeb5620
Binary files /dev/null and b/modernize-apps/prepare-setup/images/select-compartment.png differ
diff --git a/modernize-apps/prepare-setup/images/use-clipboard.png b/modernize-apps/prepare-setup/images/use-clipboard.png
new file mode 100644
index 00000000..d3a576ae
Binary files /dev/null and b/modernize-apps/prepare-setup/images/use-clipboard.png differ
diff --git a/modernize-apps/prepare-setup/prepare-setup.md b/modernize-apps/prepare-setup/prepare-setup.md
new file mode 100644
index 00000000..08a360e5
--- /dev/null
+++ b/modernize-apps/prepare-setup/prepare-setup.md
@@ -0,0 +1,87 @@
+# Prepare Setup
+
+## Introduction
+This lab will show you how to download the Oracle Resource Manager (ORM) stack zip file needed to setup the resource needed to run this workshop. This workshop requires a compute instance and a Virtual Cloud Network (VCN).
+
+*Estimated Lab Time:* 15 minutes
+
+### Objectives
+- Download ORM stack
+- Create Stack: Compute + Networking
+- Access the Graphical Remote Desktop
+
+### Prerequisites
+This lab assumes you have:
+- An Oracle Free Tier or Paid Cloud account
+
+## Task 1: Create Stack: Compute + Networking
+
+1. Click on the link below to download the Resource Manager zip file you need to build your environment.
+
+ - [cvgdb-mkplc-modernize-helidon.zip](https://objectstorage.us-ashburn-1.oraclecloud.com/p/Gvq71CGuGoNCmZQF5URdKHzAqbg0UbZ-yM5k6tmHyY5h2ia864uIWCvdgvp_6p9S/n/natdsecurity/b/stack/o/cvgdb-mkplc-modernize-helidon.zip)
+
+2. Save in your downloads folder.
+
+3. Open up the hamburger menu in the top left corner. Click **Developer Services**, and choose **Resource Manager** > **Stacks**. Choose the compartment in which you would like to install the stack. Click **Create Stack**.
+ ![menu stack](images/menu-stack.png)
+ ![select compartment](images/select-compartment.png)
+
+
+3. Select **My Configuration**, choose the **.Zip** file button, click the **Browse** link, and select the zip file that you downloaded or drag-n-drop for the file explorer. Click **Next**.
+ ![browse zip](images/browse-zip.png)
+
+4. Enter or select the following and click **Next**.
+
+ **Instance Count:** Accept the default, 1.
+
+ **Select Availability Domain:** Select an availability domain from the dropdown list.
+
+ **Need Remote Access via SSH?** Unchecked for Remote Desktop only Access.
+
+ **Use Flexible Instance Shape with Adjustable OCPU Count?:** Keep the default as checked (unless you plan on using a fixed shape).
+
+ **Instance Shape:** Keep the default or select from the list of Flex shapes in the dropdown menu (e.g VM.Standard.E4.Flex).
+
+ **Select OCPUs Count per Instance:** Accept the default shown. e.g. (2) will provision 2 OCPUs and 32GB of memory.
+
+ **Use Existing VCN?:** Accept the default by leaving this unchecked. This will create a new VCN.
+ ![main config](images/main-config.png)
+ ![instance shape](images/instance-shape.png)
+
+
+7. Select **Run Apply** and click **Create**.
+ ![run apply](images/run-apply.png)
+
+ > Please wait, until you notice the job has been successfully completed.
+ ![job progress](images/job-in-progress.png)
+ ![job success](images/job-success.png)
+
+
+## Task 2: Access the Graphical Remote Desktop
+
+For ease of execution of this workshop, your VM instance has been pre-configured with a remote graphical desktop accessible using any modern browser on your laptop or workstation. Proceed as detailed below to log in.
+
+1. Open up the hamburger menu in the top left corner. Click **Developer Services**, and choose **Resource Manager** > **Stacks**.
+
+2. Click on the stack name which you have createed in lab 1.
+ ![click stack](images/click-stack.png)
+
+3. Navigate to **Application Information** tab, and copy **Remote Desktop URL** and paste it in new browser tab.
+ ![desktop url](images/desktop-url.png)
+
+4. Once you open the Remote Desktop URL, you will see an arrow, click on it and you will notice the **clipboard**. Use this clipboard to copy/paste the command from local to remote desktop and vice versa.
+ ![use clipboard](images/use-clipboard.png)
+
+5. In the remote desktop, you will find workshop document on left side. Close this document. Open a new Chrome window and copy/paste the below URL to use the updated document. From Lab 2, you need to follow the instruction from this Workshop document.
+ ```bash
+ https://oracle-livelabs.github.io/converged/modernize-apps/workshops/freetier-helidon-microservice/
+ ```
+
+
+You may now [proceed to the next lab](#next).
+
+## Acknowledgements
+
+* **Author** - Rene Fontcha, Master Principal Solutions Architect, NA Technology
+* **Contributors** - Kay Malcolm, Product Manager, Database Product Management
+* **Last Updated By/Date** - Ankit Pandey, February 2024
diff --git a/modernize-apps/workshops/freetier-helidon-microservice/index.html b/modernize-apps/workshops/freetier-helidon-microservice/index.html
new file mode 100644
index 00000000..aaac634b
--- /dev/null
+++ b/modernize-apps/workshops/freetier-helidon-microservice/index.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ Oracle LiveLabs
+
+
+
+
+
+
+
+
+
+
+
+
+
Oracle LiveLabs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modernize-apps/workshops/freetier-helidon-microservice/manifest.json b/modernize-apps/workshops/freetier-helidon-microservice/manifest.json
new file mode 100644
index 00000000..c257723d
--- /dev/null
+++ b/modernize-apps/workshops/freetier-helidon-microservice/manifest.json
@@ -0,0 +1,39 @@
+{
+ "workshoptitle": "Modernize Enterprise Apps",
+ "help": "livelabs-help-license_us@oracle.com",
+ "tutorials": [
+ {
+ "title": "Introduction",
+ "description": "Introduction to Weblogic and Helidon",
+ "filename": "../../intro/intro-weblogic-helidon.md"
+ },
+ {
+ "title": "Get Started",
+ "description": "This is the prerequisites for customers using Free Trial and Paid tenancies, and Always Free accounts (if applicable). The title of the lab and the Contents Menu title (the title above) match for Prerequisite lab. This lab is always first.",
+ "filename": "https://oracle-livelabs.github.io/common/labs/cloud-login/pre-register-free-tier-account.md"
+ },
+ {
+ "title": "Lab 1: Prepare Setup",
+ "description": "How to download your ORM stack and create a compute instance and network",
+ "publisheddate": "02/22/2024",
+ "filename": "../../prepare-setup/prepare-setup.md",
+ "type": "modernize-helidon"
+ },
+ {
+ "title": "Lab 2: Initialize Environment",
+ "description": "Initialize Environment",
+ "filename": "../../initialize-environment/initialize-environment.md"
+ },
+ {
+ "title": "Lab 3: Modernize with Weblogic and Helidon",
+ "description": "Weblogic and Helidon Lab",
+ "publisheddate": "02/22/2024",
+ "filename": "../../add-microservice/add-microservice.md"
+ },
+ {
+ "title": "Need Help?",
+ "description": "Solutions to Common Problems and Directions for Receiving Live Help",
+ "filename": "https://oracle-livelabs.github.io/common/labs/need-help/need-help-freetier.md"
+ }
+ ]
+}