diff --git a/merge_sort/java/.classpath b/merge_sort/java/.classpath
new file mode 100644
index 0000000..8c45832
--- /dev/null
+++ b/merge_sort/java/.classpath
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/merge_sort/java/.project b/merge_sort/java/.project
new file mode 100644
index 0000000..8540242
--- /dev/null
+++ b/merge_sort/java/.project
@@ -0,0 +1,34 @@
+
+
+ merge-sort-java
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
+
+ 1760625622529
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
+
diff --git a/merge_sort/java/.settings/org.eclipse.core.resources.prefs b/merge_sort/java/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f9fe345
--- /dev/null
+++ b/merge_sort/java/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/test/java=UTF-8
+encoding/=UTF-8
diff --git a/merge_sort/java/.settings/org.eclipse.jdt.apt.core.prefs b/merge_sort/java/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..d4313d4
--- /dev/null
+++ b/merge_sort/java/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false
diff --git a/merge_sort/java/.settings/org.eclipse.jdt.core.prefs b/merge_sort/java/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..46235dc
--- /dev/null
+++ b/merge_sort/java/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+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=11
diff --git a/merge_sort/java/.settings/org.eclipse.m2e.core.prefs b/merge_sort/java/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/merge_sort/java/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/merge_sort/java/README.md b/merge_sort/java/README.md
new file mode 100644
index 0000000..f8ac32b
--- /dev/null
+++ b/merge_sort/java/README.md
@@ -0,0 +1,140 @@
+# COBOL Merge/Sort Program - Java Migration
+
+This is a Java implementation of the COBOL merge and sort program from `merge_sort_test.cbl`.
+
+## Overview
+
+The program demonstrates file merging and sorting operations:
+1. Creates two test data files (east and west customer records)
+2. Merges them sorted by customer ID (ascending)
+3. Sorts the merged file by contract ID (descending)
+
+## Record Structure
+
+Each record is 135 characters in fixed-width format:
+- Customer ID: 5 characters (zero-padded)
+- Last Name: 50 characters (space-padded)
+- First Name: 50 characters (space-padded)
+- Contract ID: 5 characters (zero-padded)
+- Comment: 25 characters (space-padded)
+
+## Requirements
+
+- Java 11 or higher
+- Maven 3.6 or higher
+
+## Compilation and Execution
+
+### Using Maven:
+
+```bash
+# Compile the project
+mvn clean compile
+
+# Run the program
+mvn exec:java -Dexec.mainClass="com.cobol.examples.MergeSortProgram"
+
+# Or use the shorter form
+mvn exec:java
+```
+
+### Using javac directly:
+
+```bash
+cd src/main/java
+javac com/cobol/examples/*.java
+cd ../../..
+java -cp src/main/java com.cobol.examples.MergeSortProgram
+```
+
+## Testing
+
+Run the test suite:
+
+```bash
+mvn test
+```
+
+The tests verify:
+- Test data is created correctly (6 east records, 5 west records)
+- Merge produces 11 records sorted by customer ID ascending
+- Sort produces 11 records sorted by contract ID descending
+- Fixed-width formatting is correct (135 characters per line)
+- Output matches expected results
+
+## Verification Against COBOL
+
+To verify the Java implementation produces identical output:
+
+1. Run the COBOL program:
+```bash
+cd ..
+cobc -x merge_sort_test.cbl -o merge_sort_test
+./merge_sort_test
+cp merge-output.txt java/merge-output-cobol.txt
+cp sorted-contract-id.txt java/sorted-contract-id-cobol.txt
+```
+
+2. Run the Java program:
+```bash
+cd java
+mvn exec:java
+```
+
+3. Compare outputs:
+```bash
+diff merge-output.txt merge-output-cobol.txt
+diff sorted-contract-id.txt sorted-contract-id-cobol.txt
+```
+
+Both diffs should show no differences.
+
+## File Output
+
+The program creates the following files:
+- `test-file-1.txt`: East customer records (6 records)
+- `test-file-2.txt`: West customer records (5 records)
+- `merge-output.txt`: Merged records sorted by customer ID ascending (11 records)
+- `sorted-contract-id.txt`: Merged records sorted by contract ID descending (11 records)
+
+## Implementation Details
+
+### CustomerRecord.java
+Data model class representing a customer record with:
+- Fixed-width parsing from 135-character strings
+- Fixed-width formatting for output
+- Getters and setters for all fields
+
+### FixedWidthFileIO.java
+Utility class for file operations:
+- `readRecords()`: Reads all records from a file
+- `writeRecords()`: Writes records to a file with proper formatting
+
+### MergeSortProgram.java
+Main program implementing:
+- `createTestData()`: Generates test-file-1.txt and test-file-2.txt
+- `mergeAndDisplayFiles()`: Merges files sorted by customer ID ascending
+- `sortAndDisplayFile()`: Sorts merged file by contract ID descending
+
+## Test Data
+
+### East File (test-file-1.txt)
+- Customer ID 1, Contract ID 5423
+- Customer ID 5, Contract ID 12323
+- Customer ID 10, Contract ID 653
+- Customer ID 50, Contract ID 5050
+- Customer ID 25, Contract ID 7725
+- Customer ID 75, Contract ID 1175
+
+### West File (test-file-2.txt)
+- Customer ID 999, Contract ID 1610
+- Customer ID 3, Contract ID 3331
+- Customer ID 30, Contract ID 8765
+- Customer ID 85, Contract ID 4567
+- Customer ID 24, Contract ID 247
+
+### Expected Merge Output (ascending customer ID)
+1, 3, 5, 10, 24, 25, 30, 50, 75, 85, 999
+
+### Expected Sort Output (descending contract ID)
+12323, 8765, 7725, 5423, 5050, 4567, 3331, 1610, 1175, 653, 247
diff --git a/merge_sort/java/pom.xml b/merge_sort/java/pom.xml
new file mode 100644
index 0000000..7c28414
--- /dev/null
+++ b/merge_sort/java/pom.xml
@@ -0,0 +1,53 @@
+
+
+ 4.0.0
+
+ com.cobol.examples
+ merge-sort-java
+ 1.0-SNAPSHOT
+
+
+ 11
+ 11
+ UTF-8
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.9.2
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.10.1
+
+ 11
+ 11
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M7
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+ com.cobol.examples.MergeSortProgram
+
+
+
+
+
diff --git a/merge_sort/java/src/main/java/com/cobol/examples/CustomerRecord.java b/merge_sort/java/src/main/java/com/cobol/examples/CustomerRecord.java
new file mode 100644
index 0000000..5fa7521
--- /dev/null
+++ b/merge_sort/java/src/main/java/com/cobol/examples/CustomerRecord.java
@@ -0,0 +1,112 @@
+package com.cobol.examples;
+
+public class CustomerRecord {
+ private int customerId;
+ private String lastName;
+ private String firstName;
+ private int contractId;
+ private String comment;
+
+ public CustomerRecord(int customerId, String lastName, String firstName, int contractId, String comment) {
+ this.customerId = customerId;
+ this.lastName = lastName;
+ this.firstName = firstName;
+ this.contractId = contractId;
+ this.comment = comment;
+ }
+
+ public int getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(int customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public int getContractId() {
+ return contractId;
+ }
+
+ public void setContractId(int contractId) {
+ this.contractId = contractId;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ public static CustomerRecord parseFromFixedWidth(String line) {
+ if (line.length() < 135) {
+ line = String.format("%-135s", line);
+ }
+
+ if (line.length() < 135) {
+ throw new IllegalArgumentException("Line too short: expected 135 chars, got " + line.length());
+ }
+
+ int customerId = Integer.parseInt(line.substring(0, 5).trim());
+ String lastName = line.substring(5, 55);
+ String firstName = line.substring(55, 105);
+ int contractId = Integer.parseInt(line.substring(105, 110).trim());
+ String comment = line.substring(110, 135);
+
+ return new CustomerRecord(customerId, lastName, firstName, contractId, comment);
+ }
+
+ public String toFixedWidth() {
+ return String.format("%05d%-50s%-50s%05d%-25s",
+ customerId,
+ lastName.trim(),
+ firstName.trim(),
+ contractId,
+ comment.trim()
+ );
+ }
+
+ @Override
+ public String toString() {
+ return toFixedWidth();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) return true;
+ if (obj == null || getClass() != obj.getClass()) return false;
+ CustomerRecord that = (CustomerRecord) obj;
+ return customerId == that.customerId &&
+ contractId == that.contractId &&
+ lastName.equals(that.lastName) &&
+ firstName.equals(that.firstName) &&
+ comment.equals(that.comment);
+ }
+
+ @Override
+ public int hashCode() {
+ int result = customerId;
+ result = 31 * result + lastName.hashCode();
+ result = 31 * result + firstName.hashCode();
+ result = 31 * result + contractId;
+ result = 31 * result + comment.hashCode();
+ return result;
+ }
+}
diff --git a/merge_sort/java/src/main/java/com/cobol/examples/FixedWidthFileIO.java b/merge_sort/java/src/main/java/com/cobol/examples/FixedWidthFileIO.java
new file mode 100644
index 0000000..ec314fe
--- /dev/null
+++ b/merge_sort/java/src/main/java/com/cobol/examples/FixedWidthFileIO.java
@@ -0,0 +1,34 @@
+package com.cobol.examples;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.List;
+
+public class FixedWidthFileIO {
+
+ public static List readRecords(String filename) throws IOException {
+ List records = new ArrayList<>();
+ List lines = Files.readAllLines(Paths.get(filename));
+
+ for (String line : lines) {
+ if (!line.trim().isEmpty()) {
+ records.add(CustomerRecord.parseFromFixedWidth(line));
+ }
+ }
+
+ return records;
+ }
+
+ public static void writeRecords(String filename, List records) throws IOException {
+ try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(filename))) {
+ for (CustomerRecord record : records) {
+ String line = record.toFixedWidth();
+ writer.write(line.stripTrailing());
+ writer.newLine();
+ }
+ }
+ }
+}
diff --git a/merge_sort/java/src/main/java/com/cobol/examples/MergeSortProgram.java b/merge_sort/java/src/main/java/com/cobol/examples/MergeSortProgram.java
new file mode 100644
index 0000000..31979ab
--- /dev/null
+++ b/merge_sort/java/src/main/java/com/cobol/examples/MergeSortProgram.java
@@ -0,0 +1,81 @@
+package com.cobol.examples;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+
+public class MergeSortProgram {
+
+ private static final String TEST_FILE_1 = "test-file-1.txt";
+ private static final String TEST_FILE_2 = "test-file-2.txt";
+ private static final String MERGE_OUTPUT = "merge-output.txt";
+ private static final String SORTED_OUTPUT = "sorted-contract-id.txt";
+
+ public static void main(String[] args) {
+ try {
+ createTestData();
+ mergeAndDisplayFiles();
+ sortAndDisplayFile();
+ System.out.println("Done.");
+ } catch (IOException e) {
+ System.err.println("Error: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ private static void createTestData() throws IOException {
+ System.out.println("Creating test data files...");
+
+ List eastRecords = Arrays.asList(
+ new CustomerRecord(1, "last-1", "first-1", 5423, "comment-1"),
+ new CustomerRecord(5, "last-5", "first-5", 12323, "comment-5"),
+ new CustomerRecord(10, "last-10", "first-10", 653, "comment-10"),
+ new CustomerRecord(50, "last-50", "first-50", 5050, "comment-50"),
+ new CustomerRecord(25, "last-25", "first-25", 7725, "comment-25"),
+ new CustomerRecord(75, "last-75", "first-75", 1175, "comment-75")
+ );
+
+ List westRecords = Arrays.asList(
+ new CustomerRecord(999, "last-999", "first-999", 1610, "comment-99"),
+ new CustomerRecord(3, "last-03", "first-03", 3331, "comment-03"),
+ new CustomerRecord(30, "last-30", "first-30", 8765, "comment-30"),
+ new CustomerRecord(85, "last-85", "first-85", 4567, "comment-85"),
+ new CustomerRecord(24, "last-24", "first-24", 247, "comment-24")
+ );
+
+ FixedWidthFileIO.writeRecords(TEST_FILE_1, eastRecords);
+ FixedWidthFileIO.writeRecords(TEST_FILE_2, westRecords);
+ }
+
+ private static void mergeAndDisplayFiles() throws IOException {
+ System.out.println("Merging and sorting files...");
+
+ List eastRecords = FixedWidthFileIO.readRecords(TEST_FILE_1);
+ List westRecords = FixedWidthFileIO.readRecords(TEST_FILE_2);
+
+ List mergedRecords = new ArrayList<>();
+ mergedRecords.addAll(eastRecords);
+ mergedRecords.addAll(westRecords);
+ mergedRecords.sort(Comparator.comparingInt(CustomerRecord::getCustomerId));
+
+ FixedWidthFileIO.writeRecords(MERGE_OUTPUT, mergedRecords);
+ for (CustomerRecord record : mergedRecords) {
+ System.out.println(record.toFixedWidth());
+ }
+ }
+
+ private static void sortAndDisplayFile() throws IOException {
+ System.out.println("Sorting merged file on descending contract id....");
+
+ List records = FixedWidthFileIO.readRecords(MERGE_OUTPUT);
+
+ records.sort(Comparator.comparingInt(CustomerRecord::getContractId).reversed());
+
+ FixedWidthFileIO.writeRecords(SORTED_OUTPUT, records);
+ for (CustomerRecord record : records) {
+ System.out.println(record.toFixedWidth());
+ }
+ }
+}
diff --git a/merge_sort/java/src/test/java/com/cobol/examples/MergeSortProgramTest.java b/merge_sort/java/src/test/java/com/cobol/examples/MergeSortProgramTest.java
new file mode 100644
index 0000000..bcf25d5
--- /dev/null
+++ b/merge_sort/java/src/test/java/com/cobol/examples/MergeSortProgramTest.java
@@ -0,0 +1,155 @@
+package com.cobol.examples;
+
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class MergeSortProgramTest {
+
+ private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
+ private final PrintStream originalOut = System.out;
+
+ @BeforeEach
+ public void setup() {
+ System.setOut(new PrintStream(outContent));
+ }
+
+ @AfterEach
+ public void cleanup() throws IOException {
+ System.setOut(originalOut);
+
+ deleteFileIfExists("test-file-1.txt");
+ deleteFileIfExists("test-file-2.txt");
+ deleteFileIfExists("merge-output.txt");
+ deleteFileIfExists("sorted-contract-id.txt");
+ }
+
+ private void deleteFileIfExists(String filename) throws IOException {
+ Path path = Paths.get(filename);
+ if (Files.exists(path)) {
+ Files.delete(path);
+ }
+ }
+
+ @Test
+ public void testCreateTestData() throws IOException {
+ MergeSortProgram.main(new String[]{});
+
+ assertTrue(Files.exists(Paths.get("test-file-1.txt")));
+ assertTrue(Files.exists(Paths.get("test-file-2.txt")));
+
+ List eastRecords = FixedWidthFileIO.readRecords("test-file-1.txt");
+ List westRecords = FixedWidthFileIO.readRecords("test-file-2.txt");
+ assertEquals(6, eastRecords.size());
+ assertEquals(5, westRecords.size());
+ }
+
+ @Test
+ public void testMergeOutput() throws IOException {
+ MergeSortProgram.main(new String[]{});
+
+ List mergedRecords = FixedWidthFileIO.readRecords("merge-output.txt");
+
+ assertEquals(11, mergedRecords.size());
+
+ for (int i = 0; i < mergedRecords.size() - 1; i++) {
+ assertTrue(mergedRecords.get(i).getCustomerId() <= mergedRecords.get(i + 1).getCustomerId(),
+ "Records should be sorted by customer ID ascending");
+ }
+
+ assertEquals(1, mergedRecords.get(0).getCustomerId());
+ assertEquals(999, mergedRecords.get(10).getCustomerId());
+ }
+
+ @Test
+ public void testSortOutput() throws IOException {
+ MergeSortProgram.main(new String[]{});
+
+ List sortedRecords = FixedWidthFileIO.readRecords("sorted-contract-id.txt");
+
+ assertEquals(11, sortedRecords.size());
+
+ for (int i = 0; i < sortedRecords.size() - 1; i++) {
+ assertTrue(sortedRecords.get(i).getContractId() >= sortedRecords.get(i + 1).getContractId(),
+ "Records should be sorted by contract ID descending");
+ }
+
+ assertEquals(12323, sortedRecords.get(0).getContractId());
+ assertEquals(247, sortedRecords.get(10).getContractId());
+ }
+
+ @Test
+ public void testFixedWidthFormatting() throws IOException {
+ MergeSortProgram.main(new String[]{});
+
+ List lines = Files.readAllLines(Paths.get("merge-output.txt"));
+
+ for (String line : lines) {
+ assertEquals(line, line.stripTrailing(), "Lines should not have trailing spaces (matches COBOL behavior)");
+ assertTrue(line.length() >= 110, "Each line should be at least 110 characters (5+50+50+5)");
+ }
+ }
+
+ @Test
+ public void testCustomerRecordParsing() {
+ String line = "00001last-1 first-1 05423comment-1 ";
+ CustomerRecord record = CustomerRecord.parseFromFixedWidth(line);
+
+ assertEquals(1, record.getCustomerId());
+ assertEquals("last-1 ", record.getLastName());
+ assertEquals("first-1 ", record.getFirstName());
+ assertEquals(5423, record.getContractId());
+ assertEquals("comment-1 ", record.getComment());
+ }
+
+ @Test
+ public void testCustomerRecordFormatting() {
+ CustomerRecord record = new CustomerRecord(1, "last-1", "first-1", 5423, "comment-1");
+ String formatted = record.toFixedWidth();
+
+ assertEquals(135, formatted.length());
+ assertEquals("00001", formatted.substring(0, 5));
+ assertEquals("last-1", formatted.substring(5, 11).trim());
+ assertEquals("first-1", formatted.substring(55, 62).trim());
+ assertEquals("05423", formatted.substring(105, 110));
+ assertEquals("comment-1", formatted.substring(110, 119).trim());
+ }
+
+ @Test
+ public void testMergeOrderCorrectness() throws IOException {
+ MergeSortProgram.main(new String[]{});
+
+ List mergedRecords = FixedWidthFileIO.readRecords("merge-output.txt");
+
+ int[] expectedCustomerIds = {1, 3, 5, 10, 24, 25, 30, 50, 75, 85, 999};
+
+ for (int i = 0; i < expectedCustomerIds.length; i++) {
+ assertEquals(expectedCustomerIds[i], mergedRecords.get(i).getCustomerId(),
+ "Customer ID at position " + i + " should match expected order");
+ }
+ }
+
+ @Test
+ public void testSortOrderCorrectness() throws IOException {
+ MergeSortProgram.main(new String[]{});
+
+ List sortedRecords = FixedWidthFileIO.readRecords("sorted-contract-id.txt");
+
+ int[] expectedContractIds = {12323, 8765, 7725, 5423, 5050, 4567, 3331, 1610, 1175, 653, 247};
+
+ for (int i = 0; i < expectedContractIds.length; i++) {
+ assertEquals(expectedContractIds[i], sortedRecords.get(i).getContractId(),
+ "Contract ID at position " + i + " should match expected order");
+ }
+ }
+}
diff --git a/merge_sort/java/target/classes/com/cobol/examples/CustomerRecord.class b/merge_sort/java/target/classes/com/cobol/examples/CustomerRecord.class
new file mode 100644
index 0000000..211a868
Binary files /dev/null and b/merge_sort/java/target/classes/com/cobol/examples/CustomerRecord.class differ
diff --git a/merge_sort/java/target/classes/com/cobol/examples/FixedWidthFileIO.class b/merge_sort/java/target/classes/com/cobol/examples/FixedWidthFileIO.class
new file mode 100644
index 0000000..79143ad
Binary files /dev/null and b/merge_sort/java/target/classes/com/cobol/examples/FixedWidthFileIO.class differ
diff --git a/merge_sort/java/target/classes/com/cobol/examples/MergeSortProgram.class b/merge_sort/java/target/classes/com/cobol/examples/MergeSortProgram.class
new file mode 100644
index 0000000..5a104fb
Binary files /dev/null and b/merge_sort/java/target/classes/com/cobol/examples/MergeSortProgram.class differ
diff --git a/merge_sort/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/merge_sort/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..a0a1403
--- /dev/null
+++ b/merge_sort/java/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,3 @@
+com/cobol/examples/CustomerRecord.class
+com/cobol/examples/FixedWidthFileIO.class
+com/cobol/examples/MergeSortProgram.class
diff --git a/merge_sort/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/merge_sort/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..453a935
--- /dev/null
+++ b/merge_sort/java/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,3 @@
+/home/ubuntu/repos/COBOL-Examples/merge_sort/java/src/main/java/com/cobol/examples/MergeSortProgram.java
+/home/ubuntu/repos/COBOL-Examples/merge_sort/java/src/main/java/com/cobol/examples/CustomerRecord.java
+/home/ubuntu/repos/COBOL-Examples/merge_sort/java/src/main/java/com/cobol/examples/FixedWidthFileIO.java
diff --git a/merge_sort/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/merge_sort/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..59941a4
--- /dev/null
+++ b/merge_sort/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1 @@
+com/cobol/examples/MergeSortProgramTest.class
diff --git a/merge_sort/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/merge_sort/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..b55f6d4
--- /dev/null
+++ b/merge_sort/java/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1 @@
+/home/ubuntu/repos/COBOL-Examples/merge_sort/java/src/test/java/com/cobol/examples/MergeSortProgramTest.java
diff --git a/merge_sort/java/target/surefire-reports/TEST-com.cobol.examples.MergeSortProgramTest.xml b/merge_sort/java/target/surefire-reports/TEST-com.cobol.examples.MergeSortProgramTest.xml
new file mode 100644
index 0000000..47fd8e3
--- /dev/null
+++ b/merge_sort/java/target/surefire-reports/TEST-com.cobol.examples.MergeSortProgramTest.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/merge_sort/java/target/surefire-reports/com.cobol.examples.MergeSortProgramTest.txt b/merge_sort/java/target/surefire-reports/com.cobol.examples.MergeSortProgramTest.txt
new file mode 100644
index 0000000..0f37524
--- /dev/null
+++ b/merge_sort/java/target/surefire-reports/com.cobol.examples.MergeSortProgramTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.cobol.examples.MergeSortProgramTest
+-------------------------------------------------------------------------------
+Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.104 s - in com.cobol.examples.MergeSortProgramTest
diff --git a/merge_sort/java/target/test-classes/com/cobol/examples/MergeSortProgramTest.class b/merge_sort/java/target/test-classes/com/cobol/examples/MergeSortProgramTest.class
new file mode 100644
index 0000000..3f90c7b
Binary files /dev/null and b/merge_sort/java/target/test-classes/com/cobol/examples/MergeSortProgramTest.class differ