From b8a44a5e721f0bd55ffaaece6c0fde7b7c493bf7 Mon Sep 17 00:00:00 2001 From: Kunal Singh Date: Thu, 20 Feb 2020 15:12:46 +0530 Subject: [PATCH 1/4] Converted the Project to a Maven --- .classpath | 18 ++++++-- .gitignore | 3 +- .project | 6 +++ .settings/org.eclipse.jdt.core.prefs | 11 +++-- .settings/org.eclipse.m2e.core.prefs | 4 ++ pom.xml | 41 +++++++++++++++++++ .../com/lloyd/JavaToProto/JavaToProto.java | 1 + .../tests/ProtoFileGenerationTests.java | 0 .../tests/samples/ArrayMessage.java | 0 .../tests/samples/EnumMessage.java | 0 .../tests/samples/ListMessage.java | 0 .../JavaToProto/tests/samples/MapMessage.java | 0 .../tests/samples/POJOMessage.java | 0 .../tests/samples/SimpleMessage.java | 0 14 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 pom.xml rename src/{ => main/java}/com/lloyd/JavaToProto/JavaToProto.java (99%) rename src/{ => main/java}/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/EnumMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ListMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/MapMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/POJOMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java (100%) diff --git a/.classpath b/.classpath index 72c2ba6..168d8b5 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,17 @@ - - - - + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index 14c1e9a..f6b7ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.lock *.DS_Store *.swp -*.out \ No newline at end of file +*.out +/target/ diff --git a/.project b/.project index ce8ffe5..e44bede 100644 --- a/.project +++ b/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6fff76a..db24ee7 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,15 @@ -#Sat Feb 11 12:17:52 GMT 2012 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cd71878 --- /dev/null +++ b/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + JavaToProto + JavaToProto + 0.0.1-SNAPSHOT + + src + + + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + com.lloyd.JavaToProto.JavaToProto + + + + + + + + + + junit + junit + 4.12 + + + \ No newline at end of file diff --git a/src/com/lloyd/JavaToProto/JavaToProto.java b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java similarity index 99% rename from src/com/lloyd/JavaToProto/JavaToProto.java rename to src/main/java/com/lloyd/JavaToProto/JavaToProto.java index d31e727..1b27247 100644 --- a/src/com/lloyd/JavaToProto/JavaToProto.java +++ b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java @@ -80,6 +80,7 @@ public static void main(String[] args) { if(args.length == 0){ System.out.println("Usage: \n\tjava -jar JavaToProto.jar JavaToProto []\n"); + System.exit(-1); } Class clazz; diff --git a/src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java b/src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java rename to src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ListMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ListMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/MapMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/MapMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java From 7e78a39ba224f315d1b3d9edf46f108a31ff1296 Mon Sep 17 00:00:00 2001 From: Kunal Singh Date: Thu, 20 Feb 2020 15:12:46 +0530 Subject: [PATCH 2/4] Converted the Project to a Maven --- .classpath | 18 ++++++-- .gitignore | 3 +- .project | 6 +++ .settings/org.eclipse.jdt.core.prefs | 11 +++-- .settings/org.eclipse.m2e.core.prefs | 4 ++ AboutInfo.proto | 19 +++++++++ README.md | 4 +- README.txt | 32 --------------- pom.xml | 41 +++++++++++++++++++ .../com/lloyd/JavaToProto/JavaToProto.java | 1 + .../tests/ProtoFileGenerationTests.java | 0 .../tests/samples/ArrayMessage.java | 0 .../tests/samples/EnumMessage.java | 0 .../tests/samples/ListMessage.java | 0 .../JavaToProto/tests/samples/MapMessage.java | 0 .../tests/samples/POJOMessage.java | 0 .../tests/samples/SimpleMessage.java | 0 17 files changed, 96 insertions(+), 43 deletions(-) create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 AboutInfo.proto delete mode 100644 README.txt create mode 100644 pom.xml rename src/{ => main/java}/com/lloyd/JavaToProto/JavaToProto.java (99%) rename src/{ => main/java}/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/EnumMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ListMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/MapMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/POJOMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java (100%) diff --git a/.classpath b/.classpath index 72c2ba6..168d8b5 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,17 @@ - - - - + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index 14c1e9a..f6b7ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.lock *.DS_Store *.swp -*.out \ No newline at end of file +*.out +/target/ diff --git a/.project b/.project index ce8ffe5..e44bede 100644 --- a/.project +++ b/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6fff76a..db24ee7 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,15 @@ -#Sat Feb 11 12:17:52 GMT 2012 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/AboutInfo.proto b/AboutInfo.proto new file mode 100644 index 0000000..90544dc --- /dev/null +++ b/AboutInfo.proto @@ -0,0 +1,19 @@ +//Generated by JavaToProto Generator v0.1 @ Thu Feb 20 03:01:58 PST 2020 + +message AboutInfo{ + optional sint64 serialVersionUID = 1; + optional string name = 2; + optional string fullName = 3; + optional string vendor = 4; + optional string version = 5; + optional string build = 6; + optional string localeVersion = 7; + optional string localeBuild = 8; + optional string osType = 9; + optional string productLineId = 10; + optional string apiType = 11; + optional string apiVersion = 12; + optional string instanceUuid = 13; + optional string licenseProductName = 14; + optional string licenseProductVersion = 15; +} diff --git a/README.md b/README.md index f41fc8a..f635577 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ This class simply takes a POJO and creates the associated Proto Buffer Specifica Usage - CLI: - java -jar JavaToProto.jar JavaToProto [] + java -cp :JavaToProro.jar com.lloyd.JavaToProto.JavaToProto [] If output file name is not specified the output will be to the console. @@ -30,7 +30,7 @@ Usage - CLI: Usage - Code: - JavaToProto jpt = new JavaToProto(class name); + JavaToProto jpt = new JavaToProto(Fully qualified class name); String protoFile = jpt.toString(); diff --git a/README.txt b/README.txt deleted file mode 100644 index 791d73a..0000000 --- a/README.txt +++ /dev/null @@ -1,32 +0,0 @@ -Copyright - Lloyd Sparkes 2012 -LICENSE: Public Domain - do as you wish, just retain this message. - I just ask that if you find bugs or improve the code, you raise a pull request or an issue, so i can update the code for everyone -DISCLAIMER: I am not responsible for your usage of this code, or for any bugs or issues with this code or any resulting side effects - -This class simply takes a POJO and creates the associated Proto Buffer Specification File. - -Supports: - Nested POJO's - Enums - Arrays/Collections/Lists/Sets (BUT only if they have a type specifier!! (so List is supported, List is not supported) - Maps/KeyValuePairs (BUT they need a type specifier!! (so Map is supported, Map is not supported) - Primitives - Boxed Primitives - -Does Not Support: - Nested Collections e.g. Map,String> - Arrays with more than one Dimension - -Usage - CLI: - java -jar JavaToProto.jar JavaToProto [] - - If output file name is not specified the output will be to the console. - - Ensure that the class name is in the class path somewhere. - -Usage - Code: - - JavaToProto jpt = new JavaToProto(class name); - String protoFile = jpt.toString(); - - diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cd71878 --- /dev/null +++ b/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + JavaToProto + JavaToProto + 0.0.1-SNAPSHOT + + src + + + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + com.lloyd.JavaToProto.JavaToProto + + + + + + + + + + junit + junit + 4.12 + + + \ No newline at end of file diff --git a/src/com/lloyd/JavaToProto/JavaToProto.java b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java similarity index 99% rename from src/com/lloyd/JavaToProto/JavaToProto.java rename to src/main/java/com/lloyd/JavaToProto/JavaToProto.java index d31e727..1b27247 100644 --- a/src/com/lloyd/JavaToProto/JavaToProto.java +++ b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java @@ -80,6 +80,7 @@ public static void main(String[] args) { if(args.length == 0){ System.out.println("Usage: \n\tjava -jar JavaToProto.jar JavaToProto []\n"); + System.exit(-1); } Class clazz; diff --git a/src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java b/src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java rename to src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ListMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ListMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/MapMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/MapMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java From 498c86c4849847579e0022f215d7d27ed2680ab2 Mon Sep 17 00:00:00 2001 From: Kunal Singh Date: Thu, 20 Feb 2020 15:12:46 +0530 Subject: [PATCH 3/4] Converted the Project to a Maven --- .classpath | 18 ++++++-- .gitignore | 3 +- .project | 6 +++ .settings/org.eclipse.jdt.core.prefs | 11 +++-- .settings/org.eclipse.m2e.core.prefs | 4 ++ README.md | 4 +- README.txt | 32 --------------- pom.xml | 41 +++++++++++++++++++ .../com/lloyd/JavaToProto/JavaToProto.java | 1 + .../tests/ProtoFileGenerationTests.java | 0 .../tests/samples/ArrayMessage.java | 0 .../tests/samples/EnumMessage.java | 0 .../tests/samples/ListMessage.java | 0 .../JavaToProto/tests/samples/MapMessage.java | 0 .../tests/samples/POJOMessage.java | 0 .../tests/samples/SimpleMessage.java | 0 16 files changed, 77 insertions(+), 43 deletions(-) create mode 100644 .settings/org.eclipse.m2e.core.prefs delete mode 100644 README.txt create mode 100644 pom.xml rename src/{ => main/java}/com/lloyd/JavaToProto/JavaToProto.java (99%) rename src/{ => main/java}/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/EnumMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ListMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/MapMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/POJOMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java (100%) diff --git a/.classpath b/.classpath index 72c2ba6..168d8b5 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,17 @@ - - - - + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index 14c1e9a..f6b7ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.lock *.DS_Store *.swp -*.out \ No newline at end of file +*.out +/target/ diff --git a/.project b/.project index ce8ffe5..e44bede 100644 --- a/.project +++ b/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6fff76a..db24ee7 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,15 @@ -#Sat Feb 11 12:17:52 GMT 2012 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/README.md b/README.md index f41fc8a..f635577 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ This class simply takes a POJO and creates the associated Proto Buffer Specifica Usage - CLI: - java -jar JavaToProto.jar JavaToProto [] + java -cp :JavaToProro.jar com.lloyd.JavaToProto.JavaToProto [] If output file name is not specified the output will be to the console. @@ -30,7 +30,7 @@ Usage - CLI: Usage - Code: - JavaToProto jpt = new JavaToProto(class name); + JavaToProto jpt = new JavaToProto(Fully qualified class name); String protoFile = jpt.toString(); diff --git a/README.txt b/README.txt deleted file mode 100644 index 791d73a..0000000 --- a/README.txt +++ /dev/null @@ -1,32 +0,0 @@ -Copyright - Lloyd Sparkes 2012 -LICENSE: Public Domain - do as you wish, just retain this message. - I just ask that if you find bugs or improve the code, you raise a pull request or an issue, so i can update the code for everyone -DISCLAIMER: I am not responsible for your usage of this code, or for any bugs or issues with this code or any resulting side effects - -This class simply takes a POJO and creates the associated Proto Buffer Specification File. - -Supports: - Nested POJO's - Enums - Arrays/Collections/Lists/Sets (BUT only if they have a type specifier!! (so List is supported, List is not supported) - Maps/KeyValuePairs (BUT they need a type specifier!! (so Map is supported, Map is not supported) - Primitives - Boxed Primitives - -Does Not Support: - Nested Collections e.g. Map,String> - Arrays with more than one Dimension - -Usage - CLI: - java -jar JavaToProto.jar JavaToProto [] - - If output file name is not specified the output will be to the console. - - Ensure that the class name is in the class path somewhere. - -Usage - Code: - - JavaToProto jpt = new JavaToProto(class name); - String protoFile = jpt.toString(); - - diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cd71878 --- /dev/null +++ b/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + JavaToProto + JavaToProto + 0.0.1-SNAPSHOT + + src + + + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + com.lloyd.JavaToProto.JavaToProto + + + + + + + + + + junit + junit + 4.12 + + + \ No newline at end of file diff --git a/src/com/lloyd/JavaToProto/JavaToProto.java b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java similarity index 99% rename from src/com/lloyd/JavaToProto/JavaToProto.java rename to src/main/java/com/lloyd/JavaToProto/JavaToProto.java index d31e727..1b27247 100644 --- a/src/com/lloyd/JavaToProto/JavaToProto.java +++ b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java @@ -80,6 +80,7 @@ public static void main(String[] args) { if(args.length == 0){ System.out.println("Usage: \n\tjava -jar JavaToProto.jar JavaToProto []\n"); + System.exit(-1); } Class clazz; diff --git a/src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java b/src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java rename to src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ListMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ListMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/MapMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/MapMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java From 5e87b96685e1b8bcbab65a5fc74dbfa710c062c3 Mon Sep 17 00:00:00 2001 From: Kunal Singh Date: Thu, 20 Feb 2020 15:12:46 +0530 Subject: [PATCH 4/4] Converted the Project to a Maven --- .classpath | 18 ++++-- .gitignore | 3 +- .project | 6 ++ .settings/org.eclipse.jdt.core.prefs | 11 ++-- .settings/org.eclipse.m2e.core.prefs | 4 ++ README.md | 4 +- README.txt | 32 ---------- pom.xml | 41 +++++++++++++ .../com/lloyd/JavaToProto/JavaToProto.java | 15 ++--- .../tests/ProtoFileGenerationTests.java | 0 .../javatoproto/example/GenerateProto.java | 59 +++++++++++++++++++ .../tests/samples/ArrayMessage.java | 0 .../tests/samples/EnumMessage.java | 0 .../tests/samples/ListMessage.java | 0 .../JavaToProto/tests/samples/MapMessage.java | 0 .../tests/samples/POJOMessage.java | 0 .../tests/samples/SimpleMessage.java | 0 17 files changed, 143 insertions(+), 50 deletions(-) create mode 100644 .settings/org.eclipse.m2e.core.prefs delete mode 100644 README.txt create mode 100644 pom.xml rename src/{ => main/java}/com/lloyd/JavaToProto/JavaToProto.java (96%) rename src/{ => main/java}/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java (100%) create mode 100644 src/main/java/com/vmware/javatoproto/example/GenerateProto.java rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/EnumMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/ListMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/MapMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/POJOMessage.java (100%) rename src/{ => test/java}/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java (100%) diff --git a/.classpath b/.classpath index 72c2ba6..168d8b5 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,17 @@ - - - - + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index 14c1e9a..f6b7ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.lock *.DS_Store *.swp -*.out \ No newline at end of file +*.out +/target/ diff --git a/.project b/.project index ce8ffe5..e44bede 100644 --- a/.project +++ b/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 6fff76a..db24ee7 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,12 +1,15 @@ -#Sat Feb 11 12:17:52 GMT 2012 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.compliance=1.8 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/README.md b/README.md index f41fc8a..f635577 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ This class simply takes a POJO and creates the associated Proto Buffer Specifica Usage - CLI: - java -jar JavaToProto.jar JavaToProto [] + java -cp :JavaToProro.jar com.lloyd.JavaToProto.JavaToProto [] If output file name is not specified the output will be to the console. @@ -30,7 +30,7 @@ Usage - CLI: Usage - Code: - JavaToProto jpt = new JavaToProto(class name); + JavaToProto jpt = new JavaToProto(Fully qualified class name); String protoFile = jpt.toString(); diff --git a/README.txt b/README.txt deleted file mode 100644 index 791d73a..0000000 --- a/README.txt +++ /dev/null @@ -1,32 +0,0 @@ -Copyright - Lloyd Sparkes 2012 -LICENSE: Public Domain - do as you wish, just retain this message. - I just ask that if you find bugs or improve the code, you raise a pull request or an issue, so i can update the code for everyone -DISCLAIMER: I am not responsible for your usage of this code, or for any bugs or issues with this code or any resulting side effects - -This class simply takes a POJO and creates the associated Proto Buffer Specification File. - -Supports: - Nested POJO's - Enums - Arrays/Collections/Lists/Sets (BUT only if they have a type specifier!! (so List is supported, List is not supported) - Maps/KeyValuePairs (BUT they need a type specifier!! (so Map is supported, Map is not supported) - Primitives - Boxed Primitives - -Does Not Support: - Nested Collections e.g. Map,String> - Arrays with more than one Dimension - -Usage - CLI: - java -jar JavaToProto.jar JavaToProto [] - - If output file name is not specified the output will be to the console. - - Ensure that the class name is in the class path somewhere. - -Usage - Code: - - JavaToProto jpt = new JavaToProto(class name); - String protoFile = jpt.toString(); - - diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cd71878 --- /dev/null +++ b/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + JavaToProto + JavaToProto + 0.0.1-SNAPSHOT + + src + + + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + com.lloyd.JavaToProto.JavaToProto + + + + + + + + + + junit + junit + 4.12 + + + \ No newline at end of file diff --git a/src/com/lloyd/JavaToProto/JavaToProto.java b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java similarity index 96% rename from src/com/lloyd/JavaToProto/JavaToProto.java rename to src/main/java/com/lloyd/JavaToProto/JavaToProto.java index d31e727..9ce72a8 100644 --- a/src/com/lloyd/JavaToProto/JavaToProto.java +++ b/src/main/java/com/lloyd/JavaToProto/JavaToProto.java @@ -80,6 +80,7 @@ public static void main(String[] args) { if(args.length == 0){ System.out.println("Usage: \n\tjava -jar JavaToProto.jar JavaToProto []\n"); + System.exit(-1); } Class clazz; @@ -204,9 +205,9 @@ private void generateProtoFile(){ private String buildMessage(){ - if(currentClass().isInterface() || currentClass().isEnum() || Modifier.isAbstract(currentClass().getModifiers())){ - throw new RuntimeException("A Message cannot be an Interface, Abstract OR an Enum"); - } + //if(currentClass().isInterface() || currentClass().isEnum() || Modifier.isAbstract(currentClass().getModifiers())){ + // throw new RuntimeException("A Message cannot be an Interface, Abstract OR an Enum"); + //} String messageName = currentClass().getSimpleName(); @@ -233,11 +234,11 @@ private void processFields(){ for(Field f : fields){ i++; - int mod = f.getModifiers(); - if(Modifier.isAbstract(mod) || Modifier.isTransient(mod)){ + //int mod = f.getModifiers(); + //if(Modifier.isAbstract(mod) || Modifier.isTransient(mod)){ //Skip this field - continue; - } + // continue; + //} Class fieldType = f.getType(); diff --git a/src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java b/src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java rename to src/main/java/com/lloyd/JavaToProto/tests/ProtoFileGenerationTests.java diff --git a/src/main/java/com/vmware/javatoproto/example/GenerateProto.java b/src/main/java/com/vmware/javatoproto/example/GenerateProto.java new file mode 100644 index 0000000..c03ed13 --- /dev/null +++ b/src/main/java/com/vmware/javatoproto/example/GenerateProto.java @@ -0,0 +1,59 @@ +package com.vmware.javatoproto.example; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.util.Scanner; + +import com.lloyd.JavaToProto.JavaToProto; + +public class GenerateProto +{ + + public static void main( String[] args ) + { + if (args.length != 2) { + System.out.println("Kindly provide location of file containing classes and output directory"); + System.exit(-1); + } + String file_path_cwith_class_names = args[0]; + String output_directory = args[1]; + + File file = new File(file_path_cwith_class_names); + try { + Scanner sc = new Scanner(file); + while (sc.hasNextLine()) { + String className = sc.nextLine(); + Class clazz; + try { + clazz = Class.forName(className); + } catch (Exception e) { + System.out.println("Could not load class. Make Sure it is in the classpath!!"); + e.printStackTrace(); + return; + } + System.out.println(className); + JavaToProto jpt = new JavaToProto(clazz); + String protoFile = jpt.toString(); + //Write to File + try{ + File f = new File(output_directory+"/" + className + ".proto"); + FileWriter fw = new FileWriter(f); + BufferedWriter out = new BufferedWriter(fw); + out.write(protoFile); + out.flush(); + out.close(); + } catch (Exception e) { + System.out.println("Got Exception while Writing to File - See Console for File Contents"); + System.out.println(protoFile); + e.printStackTrace(); + } + } + sc.close(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ArrayMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/EnumMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/EnumMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/ListMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/ListMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/ListMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/MapMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/MapMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/MapMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/POJOMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/POJOMessage.java diff --git a/src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java b/src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java similarity index 100% rename from src/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java rename to src/test/java/com/lloyd/JavaToProto/tests/samples/SimpleMessage.java