diff --git a/core-java-9/README.md b/core-java-9/README.md
index 224306db19..fb7f69dc42 100644
--- a/core-java-9/README.md
+++ b/core-java-9/README.md
@@ -9,7 +9,6 @@
- [Java 9 Convenience Factory Methods for Collections](http://www.baeldung.com/java-9-collections-factory-methods)
- [New Stream Collectors in Java 9](http://www.baeldung.com/java9-stream-collectors)
- [Java 9 CompletableFuture API Improvements](http://www.baeldung.com/java-9-completablefuture)
-- [Java 9 Process API Improvements](http://www.baeldung.com/java-9-process-api)
- [Introduction to Java 9 StackWalking API](http://www.baeldung.com/java-9-stackwalking-api)
- [Introduction to Project Jigsaw](http://www.baeldung.com/project-jigsaw-java-modularity)
- [Java 9 Optional API Additions](http://www.baeldung.com/java-9-optional)
@@ -25,7 +24,6 @@
- [Iterate Through a Range of Dates in Java](https://www.baeldung.com/java-iterate-date-range)
- [Initialize a HashMap in Java](https://www.baeldung.com/java-initialize-hashmap)
- [Java 9 Platform Logging API](https://www.baeldung.com/java-9-logging-api)
-- [Guide to java.lang.Process API](https://www.baeldung.com/java-process-api)
- [Immutable Set in Java](https://www.baeldung.com/java-immutable-set)
- [Multi-Release Jar Files](https://www.baeldung.com/java-multi-release-jar)
- [Ahead of Time Compilation (AoT)](https://www.baeldung.com/ahead-of-time-compilation)
diff --git a/core-java-os/.gitignore b/core-java-os/.gitignore
new file mode 100644
index 0000000000..3de4cc647e
--- /dev/null
+++ b/core-java-os/.gitignore
@@ -0,0 +1,26 @@
+*.class
+
+0.*
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+.resourceCache
+
+# Packaged files #
+*.jar
+*.war
+*.ear
+
+# Files generated by integration tests
+*.txt
+backup-pom.xml
+/bin/
+/temp
+
+#IntelliJ specific
+.idea/
+*.iml
\ No newline at end of file
diff --git a/core-java-os/README.md b/core-java-os/README.md
new file mode 100644
index 0000000000..90e1d29a58
--- /dev/null
+++ b/core-java-os/README.md
@@ -0,0 +1,8 @@
+=========
+
+This module uses Java 9, so make sure to have the JDK 9 installed to run it.
+
+##
+### Relevant Articles:
+- [Java 9 Process API Improvements](http://www.baeldung.com/java-9-process-api)
+- [Guide to java.lang.Process API](https://www.baeldung.com/java-process-api)
diff --git a/core-java-os/pom.xml b/core-java-os/pom.xml
new file mode 100644
index 0000000000..c9097cb554
--- /dev/null
+++ b/core-java-os/pom.xml
@@ -0,0 +1,82 @@
+
+ 4.0.0
+ com.baeldung
+ core-java-os
+ 0.1.0-SNAPSHOT
+ core-java-os
+ jar
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ org.apache.commons
+ commons-collections4
+ ${commons-collections4.version}
+
+
+ commons-io
+ commons-io
+ ${commons-io.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ log4j
+ log4j
+ ${log4j.version}
+
+
+
+ org.assertj
+ assertj-core
+ ${assertj.version}
+ test
+
+
+
+
+ core-java-os
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+
+
+
+
+
+
+
+ 3.5
+ 4.1
+ 4.01
+
+
+ 3.6.1
+ 1.8.9
+ 1.9
+ 1.9
+ 25.1-jre
+
+
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ChildProcess.java b/core-java-os/src/main/java/com/baeldung/java9/process/ChildProcess.java
similarity index 100%
rename from core-java-9/src/main/java/com/baeldung/java9/process/ChildProcess.java
rename to core-java-os/src/main/java/com/baeldung/java9/process/ChildProcess.java
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/OutputStreamExample.java b/core-java-os/src/main/java/com/baeldung/java9/process/OutputStreamExample.java
similarity index 100%
rename from core-java-9/src/main/java/com/baeldung/java9/process/OutputStreamExample.java
rename to core-java-os/src/main/java/com/baeldung/java9/process/OutputStreamExample.java
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ProcessCompilationError.java b/core-java-os/src/main/java/com/baeldung/java9/process/ProcessCompilationError.java
similarity index 87%
rename from core-java-9/src/main/java/com/baeldung/java9/process/ProcessCompilationError.java
rename to core-java-os/src/main/java/com/baeldung/java9/process/ProcessCompilationError.java
index 8b6ae0b441..73eacddc4c 100644
--- a/core-java-9/src/main/java/com/baeldung/java9/process/ProcessCompilationError.java
+++ b/core-java-os/src/main/java/com/baeldung/java9/process/ProcessCompilationError.java
@@ -3,5 +3,5 @@ package com.baeldung.java9.process;
public class ProcessCompilationError {
//This method has been written to generate error to display
//how process errorStream() can consume error
- public static void();
+ //public static void();
}
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ProcessUnderstanding.java b/core-java-os/src/main/java/com/baeldung/java9/process/ProcessUnderstanding.java
similarity index 100%
rename from core-java-9/src/main/java/com/baeldung/java9/process/ProcessUnderstanding.java
rename to core-java-os/src/main/java/com/baeldung/java9/process/ProcessUnderstanding.java
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ProcessUtils.java b/core-java-os/src/main/java/com/baeldung/java9/process/ProcessUtils.java
similarity index 100%
rename from core-java-9/src/main/java/com/baeldung/java9/process/ProcessUtils.java
rename to core-java-os/src/main/java/com/baeldung/java9/process/ProcessUtils.java
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ServiceMain.java b/core-java-os/src/main/java/com/baeldung/java9/process/ServiceMain.java
similarity index 100%
rename from core-java-9/src/main/java/com/baeldung/java9/process/ServiceMain.java
rename to core-java-os/src/main/java/com/baeldung/java9/process/ServiceMain.java
diff --git a/core-java-os/src/main/resources/logback.xml b/core-java-os/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7d900d8ea8
--- /dev/null
+++ b/core-java-os/src/main/resources/logback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessAPIEnhancementsUnitTest.java b/core-java-os/src/test/java/com/baeldung/java9/process/ProcessAPIEnhancementsUnitTest.java
similarity index 89%
rename from core-java-9/src/test/java/com/baeldung/java9/process/ProcessAPIEnhancementsUnitTest.java
rename to core-java-os/src/test/java/com/baeldung/java9/process/ProcessAPIEnhancementsUnitTest.java
index 9a227a9c8f..8cefceef1d 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessAPIEnhancementsUnitTest.java
+++ b/core-java-os/src/test/java/com/baeldung/java9/process/ProcessAPIEnhancementsUnitTest.java
@@ -18,13 +18,13 @@ import org.slf4j.LoggerFactory;
public class ProcessAPIEnhancementsUnitTest {
- Logger log = LoggerFactory.getLogger(ProcessAPIEnhancementsTest.class);
+ Logger log = LoggerFactory.getLogger(ProcessAPIEnhancementsUnitTest.class);
@Test
public void givenCurrentProcess_whenInvokeGetInfo_thenSuccess() throws IOException {
ProcessHandle processHandle = ProcessHandle.current();
ProcessHandle.Info processInfo = processHandle.info();
- assertNotNull(processHandle.getPid());
+ assertNotNull(processHandle.pid());
assertEquals(false, processInfo.arguments()
.isPresent());
assertEquals(true, processInfo.command()
@@ -51,7 +51,7 @@ public class ProcessAPIEnhancementsUnitTest {
.start();
ProcessHandle processHandle = process.toHandle();
ProcessHandle.Info processInfo = processHandle.info();
- assertNotNull(processHandle.getPid());
+ assertNotNull(processHandle.pid());
assertEquals(false, processInfo.arguments()
.isPresent());
assertEquals(true, processInfo.command()
@@ -72,7 +72,7 @@ public class ProcessAPIEnhancementsUnitTest {
Stream liveProcesses = ProcessHandle.allProcesses();
liveProcesses.filter(ProcessHandle::isAlive)
.forEach(ph -> {
- assertNotNull(ph.getPid());
+ assertNotNull(ph.pid());
assertEquals(true, ph.info()
.command()
.isPresent());
@@ -102,12 +102,12 @@ public class ProcessAPIEnhancementsUnitTest {
Stream children = ProcessHandle.current()
.children();
children.filter(ProcessHandle::isAlive)
- .forEach(ph -> log.info("PID: {}, Cmd: {}", ph.getPid(), ph.info()
+ .forEach(ph -> log.info("PID: {}, Cmd: {}", ph.pid(), ph.info()
.command()));
Stream descendants = ProcessHandle.current()
.descendants();
descendants.filter(ProcessHandle::isAlive)
- .forEach(ph -> log.info("PID: {}, Cmd: {}", ph.getPid(), ph.info()
+ .forEach(ph -> log.info("PID: {}, Cmd: {}", ph.pid(), ph.info()
.command()));
}
@@ -121,12 +121,12 @@ public class ProcessAPIEnhancementsUnitTest {
.start();
ProcessHandle processHandle = process.toHandle();
- log.info("PID: {} has started", processHandle.getPid());
+ log.info("PID: {} has started", processHandle.pid());
CompletableFuture onProcessExit = processHandle.onExit();
onProcessExit.get();
assertEquals(false, processHandle.isAlive());
onProcessExit.thenAccept(ph -> {
- log.info("PID: {} has stopped", ph.getPid());
+ log.info("PID: {} has stopped", ph.pid());
});
}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessApiUnitTest.java b/core-java-os/src/test/java/com/baeldung/java9/process/ProcessApiUnitTest.java
similarity index 85%
rename from core-java-9/src/test/java/com/baeldung/java9/process/ProcessApiUnitTest.java
rename to core-java-os/src/test/java/com/baeldung/java9/process/ProcessApiUnitTest.java
index e125f10da7..8bdf8cb09f 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessApiUnitTest.java
+++ b/core-java-os/src/test/java/com/baeldung/java9/process/ProcessApiUnitTest.java
@@ -30,7 +30,7 @@ public class ProcessApiUnitTest {
@Test
public void processInfoExample() throws NoSuchAlgorithmException {
ProcessHandle self = ProcessHandle.current();
- long PID = self.getPid();
+ long PID = self.pid();
ProcessHandle.Info procInfo = self.info();
Optional args = procInfo.arguments();
Optional cmd = procInfo.commandLine();
@@ -45,7 +45,7 @@ public class ProcessApiUnitTest {
Stream allProc = ProcessHandle.current().children();
allProc.forEach(p -> {
- System.out.println("Proc " + p.getPid());
+ System.out.println("Proc " + p.pid());
});
}
@@ -54,7 +54,7 @@ public class ProcessApiUnitTest {
public void createAndDestroyProcess() throws IOException, InterruptedException {
int numberOfChildProcesses = 5;
for (int i = 0; i < numberOfChildProcesses; i++) {
- createNewJVM(ServiceMain.class, i).getPid();
+ createNewJVM(ServiceMain.class, i).pid();
}
Stream childProc = ProcessHandle.current().children();
@@ -62,10 +62,10 @@ public class ProcessApiUnitTest {
childProc = ProcessHandle.current().children();
childProc.forEach(processHandle -> {
- assertTrue("Process " + processHandle.getPid() + " should be alive!", processHandle.isAlive());
+ assertTrue("Process " + processHandle.pid() + " should be alive!", processHandle.isAlive());
CompletableFuture onProcExit = processHandle.onExit();
onProcExit.thenAccept(procHandle -> {
- System.out.println("Process with PID " + procHandle.getPid() + " has stopped");
+ System.out.println("Process with PID " + procHandle.pid() + " has stopped");
});
});
@@ -73,14 +73,14 @@ public class ProcessApiUnitTest {
childProc = ProcessHandle.current().children();
childProc.forEach(procHandle -> {
- assertTrue("Could not kill process " + procHandle.getPid(), procHandle.destroy());
+ assertTrue("Could not kill process " + procHandle.pid(), procHandle.destroy());
});
Thread.sleep(5000);
childProc = ProcessHandle.current().children();
childProc.forEach(procHandle -> {
- assertFalse("Process " + procHandle.getPid() + " should not be alive!", procHandle.isAlive());
+ assertFalse("Process " + procHandle.pid() + " should not be alive!", procHandle.isAlive());
});
}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessUnderstandingTest.java b/core-java-os/src/test/java/com/baeldung/java9/process/ProcessUnderstandingUnitTest.java
similarity index 99%
rename from core-java-9/src/test/java/com/baeldung/java9/process/ProcessUnderstandingTest.java
rename to core-java-os/src/test/java/com/baeldung/java9/process/ProcessUnderstandingUnitTest.java
index 2c5525b9ed..6ad07c5c3a 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessUnderstandingTest.java
+++ b/core-java-os/src/test/java/com/baeldung/java9/process/ProcessUnderstandingUnitTest.java
@@ -14,7 +14,7 @@ import java.lang.Integer;
import org.junit.jupiter.api.Test;
-class ProcessUnderstandingTest {
+class ProcessUnderstandingUnitTest {
@Test
public void givenSourceProgram_whenExecutedFromAnotherProgram_thenSourceProgramOutput3() throws IOException {
diff --git a/core-java-9/src/test/java/com/baeldung/processbuilder/ProcessBuilderUnitTest.java b/core-java-os/src/test/java/com/baeldung/processbuilder/ProcessBuilderUnitTest.java
similarity index 100%
rename from core-java-9/src/test/java/com/baeldung/processbuilder/ProcessBuilderUnitTest.java
rename to core-java-os/src/test/java/com/baeldung/processbuilder/ProcessBuilderUnitTest.java
diff --git a/core-java-os/src/test/resources/.gitignore b/core-java-os/src/test/resources/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/core-java-os/src/test/resources/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index ea13361208..18e3ace31b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -379,6 +379,7 @@
core-java-8
+
core-java-arrays
core-java-collections
core-java-collections-list
@@ -1016,6 +1017,7 @@
core-java-8
+
core-java-arrays
core-java-collections
core-java-collections-list