diff --git a/.gitignore b/.gitignore
index e841cc4bf5..1352c943be 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,3 +27,4 @@ target/
spring-openid/src/main/resources/application.properties
.recommenders/
+/spring-hibernate4/nbproject/
\ No newline at end of file
diff --git a/JGit/pom.xml b/JGit/pom.xml
new file mode 100644
index 0000000000..93c49edb92
--- /dev/null
+++ b/JGit/pom.xml
@@ -0,0 +1,63 @@
+
+
+ 4.0.0
+ com.baeldung
+ JGitSnippets
+ 1.0-SNAPSHOT
+ jar
+ http://maven.apache.org
+
+ UTF-8
+ 1.8
+ 1.8
+
+
+
+ jgit-repository
+ https://repo.eclipse.org/content/groups/releases/
+
+
+
+
+
+
+ org.eclipse.jgit
+ org.eclipse.jgit
+ 4.5.0.201609210915-r
+
+
+ org.eclipse.jgit
+ org.eclipse.jgit.archive
+ 4.5.0.201609210915-r
+
+
+ commons-io
+ commons-io
+ 2.5
+
+
+ org.slf4j
+ slf4j-simple
+ 1.7.21
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.2
+
+
+ 1.7
+
+
+
+
+
\ No newline at end of file
diff --git a/JGit/src/main/java/com/baeldung/jgit/CreateNewRepository.java b/JGit/src/main/java/com/baeldung/jgit/CreateNewRepository.java
new file mode 100644
index 0000000000..1702efc315
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/CreateNewRepository.java
@@ -0,0 +1,30 @@
+package com.baeldung.jgit;
+
+import java.io.File;
+import java.io.IOException;
+import org.apache.commons.io.FileUtils;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+
+/**
+ * Simple snippet which shows how to create a new repository
+ *
+ *
+ */
+public class CreateNewRepository {
+
+ public static void main(String[] args) throws IOException, IllegalStateException, GitAPIException {
+ // prepare a new folder
+ File localPath = File.createTempFile("TestGitRepository", "");
+ if(!localPath.delete()) {
+ throw new IOException("Could not delete temporary file " + localPath);
+ }
+
+ // create the directory
+ try (Git git = Git.init().setDirectory(localPath).call()) {
+ System.out.println("Having repository: " + git.getRepository().getDirectory());
+ }
+
+ FileUtils.deleteDirectory(localPath);
+ }
+}
diff --git a/JGit/src/main/java/com/baeldung/jgit/OpenRepository.java b/JGit/src/main/java/com/baeldung/jgit/OpenRepository.java
new file mode 100644
index 0000000000..671df2a844
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/OpenRepository.java
@@ -0,0 +1,65 @@
+package com.baeldung.jgit;
+
+import com.baeldung.jgit.helper.Helper;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * Simple snippet which shows how to open an existing repository
+ *
+ *
+ */
+public class OpenRepository {
+
+ public static void main(String[] args) throws IOException, GitAPIException {
+ // first create a test-repository, the return is including the .get directory here!
+ File repoDir = createSampleGitRepo();
+
+ // now open the resulting repository with a FileRepositoryBuilder
+ FileRepositoryBuilder builder = new FileRepositoryBuilder();
+ try (Repository repository = builder.setGitDir(repoDir)
+ .readEnvironment() // scan environment GIT_* variables
+ .findGitDir() // scan up the file system tree
+ .build()) {
+ System.out.println("Having repository: " + repository.getDirectory());
+
+ // the Ref holds an ObjectId for any type of object (tree, commit, blob, tree)
+ Ref head = repository.exactRef("refs/heads/master");
+ System.out.println("Ref of refs/heads/master: " + head);
+ }
+ }
+
+ private static File createSampleGitRepo() throws IOException, GitAPIException {
+ try (Repository repository = Helper.createNewRepository()) {
+ System.out.println("Temporary repository at " + repository.getDirectory());
+
+ // create the file
+ File myfile = new File(repository.getDirectory().getParent(), "testfile");
+ if(!myfile.createNewFile()) {
+ throw new IOException("Could not create file " + myfile);
+ }
+
+ // run the add-call
+ try (Git git = new Git(repository)) {
+ git.add()
+ .addFilepattern("testfile")
+ .call();
+
+
+ // and then commit the changes
+ git.commit()
+ .setMessage("Added testfile")
+ .call();
+ }
+
+ System.out.println("Added file " + myfile + " to repository at " + repository.getDirectory());
+
+ return repository.getDirectory();
+ }
+ }
+}
diff --git a/JGit/src/main/java/com/baeldung/jgit/helper/Helper.java b/JGit/src/main/java/com/baeldung/jgit/helper/Helper.java
new file mode 100644
index 0000000000..39d7b767d2
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/helper/Helper.java
@@ -0,0 +1,33 @@
+
+package com.baeldung.jgit.helper;
+
+import java.io.File;
+import java.io.IOException;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
+
+public class Helper {
+
+ public static Repository openJGitRepository() throws IOException {
+ FileRepositoryBuilder builder = new FileRepositoryBuilder();
+ return builder
+ .readEnvironment() // scan environment GIT_* variables
+ .findGitDir() // scan up the file system tree
+ .build();
+ }
+
+ public static Repository createNewRepository() throws IOException {
+ // prepare a new folder
+ File localPath = File.createTempFile("TestGitRepository", "");
+ if(!localPath.delete()) {
+ throw new IOException("Could not delete temporary file " + localPath);
+ }
+
+ // create the directory
+ Repository repository = FileRepositoryBuilder.create(new File(localPath, ".git"));
+ repository.create();
+
+ return repository;
+ }
+
+}
diff --git a/JGit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java b/JGit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java
new file mode 100644
index 0000000000..314366f08c
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/porcelain/AddFile.java
@@ -0,0 +1,36 @@
+package com.baeldung.jgit.porcelain;
+
+import java.io.File;
+import java.io.IOException;
+import com.baeldung.jgit.helper.Helper;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.lib.Repository;
+
+/**
+ * Simple snippet which shows how to add a file to the index
+ *
+ *
+ */
+public class AddFile {
+
+ public static void main(String[] args) throws IOException, GitAPIException {
+ // prepare a new test-repository
+ try (Repository repository = Helper.createNewRepository()) {
+ try (Git git = new Git(repository)) {
+ // create the file
+ File myfile = new File(repository.getDirectory().getParent(), "testfile");
+ if(!myfile.createNewFile()) {
+ throw new IOException("Could not create file " + myfile);
+ }
+
+ // run the add-call
+ git.add()
+ .addFilepattern("testfile")
+ .call();
+
+ System.out.println("Added file " + myfile + " to repository at " + repository.getDirectory());
+ }
+ }
+ }
+}
diff --git a/JGit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java b/JGit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java
new file mode 100644
index 0000000000..4c0956ebf8
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/porcelain/CommitAll.java
@@ -0,0 +1,51 @@
+package com.baeldung.jgit.porcelain;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import com.baeldung.jgit.helper.Helper;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.lib.Repository;
+
+/**
+ * Simple snippet which shows how to commit all files
+ *
+ *
+ */
+public class CommitAll {
+
+ public static void main(String[] args) throws IOException, GitAPIException {
+ // prepare a new test-repository
+ try (Repository repository = Helper.createNewRepository()) {
+ try (Git git = new Git(repository)) {
+ // create the file
+ File myfile = new File(repository.getDirectory().getParent(), "testfile");
+ if(!myfile.createNewFile()) {
+ throw new IOException("Could not create file " + myfile);
+ }
+
+ // Stage all files in the repo including new files
+ git.add().addFilepattern(".").call();
+
+ // and then commit the changes.
+ git.commit()
+ .setMessage("Commit all changes including additions")
+ .call();
+
+ try(PrintWriter writer = new PrintWriter(myfile)) {
+ writer.append("Hello, world!");
+ }
+
+ // Stage all changed files, omitting new files, and commit with one command
+ git.commit()
+ .setAll(true)
+ .setMessage("Commit changes to all files")
+ .call();
+
+
+ System.out.println("Committed all changes to repository at " + repository.getDirectory());
+ }
+ }
+ }
+}
diff --git a/JGit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java b/JGit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java
new file mode 100644
index 0000000000..0f735daf8c
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/porcelain/CreateAndDeleteTag.java
@@ -0,0 +1,56 @@
+package com.baeldung.jgit.porcelain;
+
+import java.io.IOException;
+import com.baeldung.jgit.helper.Helper;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevWalk;
+
+/**
+ * Simple snippet which shows how to create a tag
+ *
+ *
+ */
+public class CreateAndDeleteTag {
+
+ public static void main(String[] args) throws IOException, GitAPIException {
+ // prepare test-repository
+ try (Repository repository = Helper.openJGitRepository()) {
+ try (Git git = new Git(repository)) {
+ // remove the tag before creating it
+ git.tagDelete().setTags("tag_for_testing").call();
+
+ // set it on the current HEAD
+ Ref tag = git.tag().setName("tag_for_testing").call();
+ System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory());
+
+ // remove the tag again
+ git.tagDelete().setTags("tag_for_testing").call();
+
+ // read some other commit and set the tag on it
+ ObjectId id = repository.resolve("HEAD^");
+ try (RevWalk walk = new RevWalk(repository)) {
+ RevCommit commit = walk.parseCommit(id);
+ tag = git.tag().setObjectId(commit).setName("tag_for_testing").call();
+ System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory());
+
+ // remove the tag again
+ git.tagDelete().setTags("tag_for_testing").call();
+
+ // create an annotated tag
+ tag = git.tag().setName("tag_for_testing").setAnnotated(true).call();
+ System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory());
+
+ // remove the tag again
+ git.tagDelete().setTags("tag_for_testing").call();
+
+ walk.dispose();
+ }
+ }
+ }
+ }
+}
diff --git a/JGit/src/main/java/com/baeldung/jgit/porcelain/Log.java b/JGit/src/main/java/com/baeldung/jgit/porcelain/Log.java
new file mode 100644
index 0000000000..cb476b9d9e
--- /dev/null
+++ b/JGit/src/main/java/com/baeldung/jgit/porcelain/Log.java
@@ -0,0 +1,74 @@
+package com.baeldung.jgit.porcelain;
+
+import java.io.IOException;
+import com.baeldung.jgit.helper.Helper;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevCommit;
+
+/**
+ * Simple snippet which shows how to get the commit-ids for a file to provide log information.
+ *
+ *
+ */
+public class Log {
+
+ @SuppressWarnings("unused")
+ public static void main(String[] args) throws IOException, GitAPIException {
+ try (Repository repository = Helper.openJGitRepository()) {
+ try (Git git = new Git(repository)) {
+ Iterable logs = git.log()
+ .call();
+ int count = 0;
+ for (RevCommit rev : logs) {
+ //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */);
+ count++;
+ }
+ System.out.println("Had " + count + " commits overall on current branch");
+
+ logs = git.log()
+ .add(repository.resolve("remotes/origin/testbranch"))
+ .call();
+ count = 0;
+ for (RevCommit rev : logs) {
+ System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */);
+ count++;
+ }
+ System.out.println("Had " + count + " commits overall on test-branch");
+
+ logs = git.log()
+ .all()
+ .call();
+ count = 0;
+ for (RevCommit rev : logs) {
+ //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */);
+ count++;
+ }
+ System.out.println("Had " + count + " commits overall in repository");
+
+ logs = git.log()
+ // for all log.all()
+ .addPath("README.md")
+ .call();
+ count = 0;
+ for (RevCommit rev : logs) {
+ //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */);
+ count++;
+ }
+ System.out.println("Had " + count + " commits on README.md");
+
+ logs = git.log()
+ // for all log.all()
+ .addPath("pom.xml")
+ .call();
+ count = 0;
+ for (RevCommit rev : logs) {
+ //System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */);
+ count++;
+ }
+ System.out.println("Had " + count + " commits on pom.xml");
+ }
+ }
+ }
+}
diff --git a/JGit/src/test/java/com/baeldung/jgit/JGitBugTest.java b/JGit/src/test/java/com/baeldung/jgit/JGitBugTest.java
new file mode 100644
index 0000000000..acad4e395f
--- /dev/null
+++ b/JGit/src/test/java/com/baeldung/jgit/JGitBugTest.java
@@ -0,0 +1,31 @@
+import com.baeldung.jgit.helper.Helper;
+import org.eclipse.jgit.lib.ObjectLoader;
+import org.eclipse.jgit.lib.ObjectReader;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevWalk;
+import org.junit.Test;
+import java.io.IOException;
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * Tests which show issues with JGit that we reported upstream.
+ */
+public class JGitBugTest {
+ @Test
+ public void testRevWalkDisposeClosesReader() throws IOException {
+ try (Repository repo = Helper.openJGitRepository()) {
+ try (ObjectReader reader = repo.newObjectReader()) {
+ try (RevWalk walk = new RevWalk(reader)) {
+ walk.dispose();
+
+ Ref head = repo.exactRef("refs/heads/master");
+ System.out.println("Found head: " + head);
+
+ ObjectLoader loader = reader.open(head.getObjectId());
+ assertNotNull(loader);
+ }
+ }
+ }
+ }
+}
diff --git a/JGit/src/test/java/com/baeldung/jgit/porcelain/PorcelainTest.java b/JGit/src/test/java/com/baeldung/jgit/porcelain/PorcelainTest.java
new file mode 100644
index 0000000000..ce3a41e657
--- /dev/null
+++ b/JGit/src/test/java/com/baeldung/jgit/porcelain/PorcelainTest.java
@@ -0,0 +1,17 @@
+package com.baeldung.jgit.porcelain;
+
+import org.junit.Test;
+
+public class PorcelainTest {
+ @Test
+ public void runSamples() throws Exception {
+ // simply call all the samples to see any severe problems with the samples
+ AddFile.main(null);
+
+ CommitAll.main(null);
+
+ CreateAndDeleteTag.main(null);
+
+ Log.main(null);
+ }
+}
diff --git a/algorithms/src/main/java/com/baeldung/algorithms/dijkstra/Dijkstra.java b/algorithms/src/main/java/com/baeldung/algorithms/dijkstra/Dijkstra.java
index b82eedbc3f..1d41f46adb 100644
--- a/algorithms/src/main/java/com/baeldung/algorithms/dijkstra/Dijkstra.java
+++ b/algorithms/src/main/java/com/baeldung/algorithms/dijkstra/Dijkstra.java
@@ -18,9 +18,7 @@ public class Dijkstra {
while (unsettledNodes.size() != 0) {
Node currentNode = getLowestDistanceNode(unsettledNodes);
unsettledNodes.remove(currentNode);
- for (Entry adjacencyPair : currentNode
- .getAdjacentNodes()
- .entrySet()) {
+ for (Entry adjacencyPair : currentNode.getAdjacentNodes().entrySet()) {
Node adjacentNode = adjacencyPair.getKey();
Integer edgeWeigh = adjacencyPair.getValue();
diff --git a/algorithms/src/test/java/algorithms/DijkstraAlgorithmTest.java b/algorithms/src/test/java/algorithms/DijkstraAlgorithmTest.java
index 86ee62c827..07606bde4b 100644
--- a/algorithms/src/test/java/algorithms/DijkstraAlgorithmTest.java
+++ b/algorithms/src/test/java/algorithms/DijkstraAlgorithmTest.java
@@ -55,29 +55,19 @@ public class DijkstraAlgorithmTest {
for (Node node : graph.getNodes()) {
switch (node.getName()) {
case "B":
- assertTrue(node
- .getShortestPath()
- .equals(shortestPathForNodeB));
+ assertTrue(node.getShortestPath().equals(shortestPathForNodeB));
break;
case "C":
- assertTrue(node
- .getShortestPath()
- .equals(shortestPathForNodeC));
+ assertTrue(node.getShortestPath().equals(shortestPathForNodeC));
break;
case "D":
- assertTrue(node
- .getShortestPath()
- .equals(shortestPathForNodeD));
+ assertTrue(node.getShortestPath().equals(shortestPathForNodeD));
break;
case "E":
- assertTrue(node
- .getShortestPath()
- .equals(shortestPathForNodeE));
+ assertTrue(node.getShortestPath().equals(shortestPathForNodeE));
break;
case "F":
- assertTrue(node
- .getShortestPath()
- .equals(shortestPathForNodeF));
+ assertTrue(node.getShortestPath().equals(shortestPathForNodeF));
break;
}
}
diff --git a/annotations/annotation-processing/src/main/java/com/baeldung/annotation/processor/BuilderProcessor.java b/annotations/annotation-processing/src/main/java/com/baeldung/annotation/processor/BuilderProcessor.java
index 0883e108e7..18d8f9a8a9 100644
--- a/annotations/annotation-processing/src/main/java/com/baeldung/annotation/processor/BuilderProcessor.java
+++ b/annotations/annotation-processing/src/main/java/com/baeldung/annotation/processor/BuilderProcessor.java
@@ -27,17 +27,12 @@ public class BuilderProcessor extends AbstractProcessor {
Set extends Element> annotatedElements = roundEnv.getElementsAnnotatedWith(annotation);
- Map> annotatedMethods = annotatedElements.stream()
- .collect(Collectors.partitioningBy(element ->
- ((ExecutableType) element.asType()).getParameterTypes().size() == 1
- && element.getSimpleName().toString().startsWith("set")));
+ Map> annotatedMethods = annotatedElements.stream().collect(Collectors.partitioningBy(element -> ((ExecutableType) element.asType()).getParameterTypes().size() == 1 && element.getSimpleName().toString().startsWith("set")));
List setters = annotatedMethods.get(true);
List otherMethods = annotatedMethods.get(false);
- otherMethods.forEach(element ->
- processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR,
- "@BuilderProperty must be applied to a setXxx method with a single argument", element));
+ otherMethods.forEach(element -> processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "@BuilderProperty must be applied to a setXxx method with a single argument", element));
if (setters.isEmpty()) {
continue;
@@ -45,11 +40,7 @@ public class BuilderProcessor extends AbstractProcessor {
String className = ((TypeElement) setters.get(0).getEnclosingElement()).getQualifiedName().toString();
- Map setterMap = setters.stream().collect(Collectors.toMap(
- setter -> setter.getSimpleName().toString(),
- setter -> ((ExecutableType) setter.asType())
- .getParameterTypes().get(0).toString()
- ));
+ Map setterMap = setters.stream().collect(Collectors.toMap(setter -> setter.getSimpleName().toString(), setter -> ((ExecutableType) setter.asType()).getParameterTypes().get(0).toString()));
try {
writeBuilderFile(className, setterMap);
diff --git a/annotations/annotation-user/src/test/java/com/baeldung/annotation/PersonBuilderTest.java b/annotations/annotation-user/src/test/java/com/baeldung/annotation/PersonBuilderTest.java
index 72f9ac8bc7..8d01f8a517 100644
--- a/annotations/annotation-user/src/test/java/com/baeldung/annotation/PersonBuilderTest.java
+++ b/annotations/annotation-user/src/test/java/com/baeldung/annotation/PersonBuilderTest.java
@@ -9,10 +9,7 @@ public class PersonBuilderTest {
@Test
public void whenBuildPersonWithBuilder_thenObjectHasPropertyValues() {
- Person person = new PersonBuilder()
- .setAge(25)
- .setName("John")
- .build();
+ Person person = new PersonBuilder().setAge(25).setName("John").build();
assertEquals(25, person.getAge());
assertEquals("John", person.getName());
diff --git a/annotations/pom.xml b/annotations/pom.xml
index f691674cf1..0ddc17f8a7 100644
--- a/annotations/pom.xml
+++ b/annotations/pom.xml
@@ -1,7 +1,6 @@
-
+
parent-modules
com.baeldung
diff --git a/apache-cxf/cxf-introduction/src/main/java/com/baeldung/cxf/introduction/Server.java b/apache-cxf/cxf-introduction/src/main/java/com/baeldung/cxf/introduction/Server.java
index 0e5af60b9d..2ac649f4c5 100644
--- a/apache-cxf/cxf-introduction/src/main/java/com/baeldung/cxf/introduction/Server.java
+++ b/apache-cxf/cxf-introduction/src/main/java/com/baeldung/cxf/introduction/Server.java
@@ -8,7 +8,7 @@ public class Server {
String address = "http://localhost:8080/baeldung";
Endpoint.publish(address, implementor);
System.out.println("Server ready...");
- Thread.sleep(60 * 1000);
+ Thread.sleep(60 * 1000);
System.out.println("Server exiting");
System.exit(0);
}
diff --git a/apache-cxf/cxf-jaxrs-implementation/src/main/java/com/baeldung/cxf/jaxrs/implementation/RestfulServer.java b/apache-cxf/cxf-jaxrs-implementation/src/main/java/com/baeldung/cxf/jaxrs/implementation/RestfulServer.java
index d3ed2eb70e..0605aef7b3 100644
--- a/apache-cxf/cxf-jaxrs-implementation/src/main/java/com/baeldung/cxf/jaxrs/implementation/RestfulServer.java
+++ b/apache-cxf/cxf-jaxrs-implementation/src/main/java/com/baeldung/cxf/jaxrs/implementation/RestfulServer.java
@@ -11,7 +11,7 @@ public class RestfulServer {
factoryBean.setResourceProvider(new SingletonResourceProvider(new CourseRepository()));
factoryBean.setAddress("http://localhost:8080/");
Server server = factoryBean.create();
-
+
System.out.println("Server ready...");
Thread.sleep(60 * 1000);
System.out.println("Server exiting");
diff --git a/apache-cxf/pom.xml b/apache-cxf/pom.xml
index e2cd7d344a..6849452908 100644
--- a/apache-cxf/pom.xml
+++ b/apache-cxf/pom.xml
@@ -5,20 +5,20 @@
apache-cxf
0.0.1-SNAPSHOT
pom
-
+
cxf-introduction
cxf-spring
cxf-jaxrs-implementation
cxf-aegis
-
+
4.12
3.6.0
1.5.0
-
+
junit
@@ -27,7 +27,7 @@
test
-
+
install
diff --git a/apache-fop/pom.xml b/apache-fop/pom.xml
index 4dd61d8f4e..6f89497a7d 100644
--- a/apache-fop/pom.xml
+++ b/apache-fop/pom.xml
@@ -1,154 +1,155 @@
-
- 4.0.0
- com.baeldung
- apache-fop
- 0.1-SNAPSHOT
+
+ 4.0.0
+ com.baeldung
+ apache-fop
+ 0.1-SNAPSHOT
- apache-fop
+ apache-fop
-
+
-
+
-
- org.slf4j
- slf4j-api
- ${org.slf4j.version}
-
-
- ch.qos.logback
- logback-classic
- ${logback.version}
-
-
-
- org.slf4j
- jcl-over-slf4j
- ${org.slf4j.version}
-
-
-
- org.slf4j
- log4j-over-slf4j
- ${org.slf4j.version}
-
+
+ org.slf4j
+ slf4j-api
+ ${org.slf4j.version}
+
+
+ ch.qos.logback
+ logback-classic
+ ${logback.version}
+
+
+
+ org.slf4j
+ jcl-over-slf4j
+ ${org.slf4j.version}
+
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${org.slf4j.version}
+
-
+
-
- junit
- junit
- ${junit.version}
- test
-
+
+ junit
+ junit
+ ${junit.version}
+ test
+
-
- org.hamcrest
- hamcrest-core
- ${org.hamcrest.version}
- test
-
-
- org.hamcrest
- hamcrest-library
- ${org.hamcrest.version}
- test
-
+
+ org.hamcrest
+ hamcrest-core
+ ${org.hamcrest.version}
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ ${org.hamcrest.version}
+ test
+
-
- org.mockito
- mockito-core
- ${mockito.version}
- test
-
+
+ org.mockito
+ mockito-core
+ ${mockito.version}
+ test
+
-
+
-
- org.apache.xmlgraphics
- fop
- ${fop.version}
-
-
- org.apache.avalon.framework
- avalon-framework-api
-
-
- org.apache.avalon.framework
- avalon-framework-impl
-
-
-
+
+ org.apache.xmlgraphics
+ fop
+ ${fop.version}
+
+
+ org.apache.avalon.framework
+ avalon-framework-api
+
+
+ org.apache.avalon.framework
+ avalon-framework-impl
+
+
+
-
- avalon-framework
- avalon-framework-api
- ${avalon-framework.version}
-
-
- avalon-framework
- avalon-framework-impl
- ${avalon-framework.version}
-
+
+ avalon-framework
+ avalon-framework-api
+ ${avalon-framework.version}
+
+
+ avalon-framework
+ avalon-framework-impl
+ ${avalon-framework.version}
+
-
- org.dbdoclet
- dbdoclet
- ${dbdoclet.version}
-
+
+ org.dbdoclet
+ dbdoclet
+ ${dbdoclet.version}
+
-
- org.dbdoclet
- herold
- 6.1.0
- system
- ${basedir}/src/test/resources/jars/herold.jar
-
-
-
- net.sf.jtidy
- jtidy
- ${jtidy.version}
-
+
+ org.dbdoclet
+ herold
+ 6.1.0
+ system
+ ${basedir}/src/test/resources/jars/herold.jar
+
-
+
+ net.sf.jtidy
+ jtidy
+ ${jtidy.version}
+
-
- apache-fop
-
-
- src/main/resources
- true
-
-
+
-
+
+ apache-fop
+
+
+ src/main/resources
+ true
+
+
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
-
- 1.7
-
-
+
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
-
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+ 1.7
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
+
**/*IntegrationTest.java
**/*LiveTest.java
-
-
-
+
+
+
-
+
-
+
@@ -170,7 +171,7 @@
**/*IntegrationTest.java
- **/*LiveTest.java
+ **/*LiveTest.java
@@ -185,25 +186,25 @@
-
-
- 1.1
- 4.3
- 8.0.2
- r938
-
- 1.7.21
- 1.1.7
-
- 1.3
- 4.12
- 1.10.19
+
+ 1.1
+ 4.3
+ 8.0.2
+ r938
+
+ 1.7.21
+ 1.1.7
-
- 3.6.0
- 2.19.1
+
+ 1.3
+ 4.12
+ 1.10.19
-
+
+ 3.6.0
+ 2.19.1
+
+
\ No newline at end of file
diff --git a/apache-thrift/generated/com/baeldung/thrift/impl/CrossPlatformResource.java b/apache-thrift/generated/com/baeldung/thrift/impl/CrossPlatformResource.java
new file mode 100644
index 0000000000..6cb5af0695
--- /dev/null
+++ b/apache-thrift/generated/com/baeldung/thrift/impl/CrossPlatformResource.java
@@ -0,0 +1,579 @@
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package com.baeldung.thrift.impl;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)", date = "2017-02-01")
+public class CrossPlatformResource implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("CrossPlatformResource");
+
+ private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.I32, (short)1);
+ private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)2);
+ private static final org.apache.thrift.protocol.TField SALUTATION_FIELD_DESC = new org.apache.thrift.protocol.TField("salutation", org.apache.thrift.protocol.TType.STRING, (short)3);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new CrossPlatformResourceStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new CrossPlatformResourceTupleSchemeFactory();
+
+ public int id; // required
+ public java.lang.String name; // required
+ public java.lang.String salutation; // optional
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ ID((short)1, "id"),
+ NAME((short)2, "name"),
+ SALUTATION((short)3, "salutation");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // ID
+ return ID;
+ case 2: // NAME
+ return NAME;
+ case 3: // SALUTATION
+ return SALUTATION;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __ID_ISSET_ID = 0;
+ private byte __isset_bitfield = 0;
+ private static final _Fields optionals[] = {_Fields.SALUTATION};
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+ tmpMap.put(_Fields.NAME, new org.apache.thrift.meta_data.FieldMetaData("name", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.SALUTATION, new org.apache.thrift.meta_data.FieldMetaData("salutation", org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(CrossPlatformResource.class, metaDataMap);
+ }
+
+ public CrossPlatformResource() {
+ }
+
+ public CrossPlatformResource(
+ int id,
+ java.lang.String name)
+ {
+ this();
+ this.id = id;
+ setIdIsSet(true);
+ this.name = name;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public CrossPlatformResource(CrossPlatformResource other) {
+ __isset_bitfield = other.__isset_bitfield;
+ this.id = other.id;
+ if (other.isSetName()) {
+ this.name = other.name;
+ }
+ if (other.isSetSalutation()) {
+ this.salutation = other.salutation;
+ }
+ }
+
+ public CrossPlatformResource deepCopy() {
+ return new CrossPlatformResource(this);
+ }
+
+ @Override
+ public void clear() {
+ setIdIsSet(false);
+ this.id = 0;
+ this.name = null;
+ this.salutation = null;
+ }
+
+ public int getId() {
+ return this.id;
+ }
+
+ public CrossPlatformResource setId(int id) {
+ this.id = id;
+ setIdIsSet(true);
+ return this;
+ }
+
+ public void unsetId() {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ID_ISSET_ID);
+ }
+
+ /** Returns true if field id is set (has been assigned a value) and false otherwise */
+ public boolean isSetId() {
+ return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ID_ISSET_ID);
+ }
+
+ public void setIdIsSet(boolean value) {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ID_ISSET_ID, value);
+ }
+
+ public java.lang.String getName() {
+ return this.name;
+ }
+
+ public CrossPlatformResource setName(java.lang.String name) {
+ this.name = name;
+ return this;
+ }
+
+ public void unsetName() {
+ this.name = null;
+ }
+
+ /** Returns true if field name is set (has been assigned a value) and false otherwise */
+ public boolean isSetName() {
+ return this.name != null;
+ }
+
+ public void setNameIsSet(boolean value) {
+ if (!value) {
+ this.name = null;
+ }
+ }
+
+ public java.lang.String getSalutation() {
+ return this.salutation;
+ }
+
+ public CrossPlatformResource setSalutation(java.lang.String salutation) {
+ this.salutation = salutation;
+ return this;
+ }
+
+ public void unsetSalutation() {
+ this.salutation = null;
+ }
+
+ /** Returns true if field salutation is set (has been assigned a value) and false otherwise */
+ public boolean isSetSalutation() {
+ return this.salutation != null;
+ }
+
+ public void setSalutationIsSet(boolean value) {
+ if (!value) {
+ this.salutation = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case ID:
+ if (value == null) {
+ unsetId();
+ } else {
+ setId((java.lang.Integer)value);
+ }
+ break;
+
+ case NAME:
+ if (value == null) {
+ unsetName();
+ } else {
+ setName((java.lang.String)value);
+ }
+ break;
+
+ case SALUTATION:
+ if (value == null) {
+ unsetSalutation();
+ } else {
+ setSalutation((java.lang.String)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case ID:
+ return getId();
+
+ case NAME:
+ return getName();
+
+ case SALUTATION:
+ return getSalutation();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case ID:
+ return isSetId();
+ case NAME:
+ return isSetName();
+ case SALUTATION:
+ return isSetSalutation();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof CrossPlatformResource)
+ return this.equals((CrossPlatformResource)that);
+ return false;
+ }
+
+ public boolean equals(CrossPlatformResource that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_id = true;
+ boolean that_present_id = true;
+ if (this_present_id || that_present_id) {
+ if (!(this_present_id && that_present_id))
+ return false;
+ if (this.id != that.id)
+ return false;
+ }
+
+ boolean this_present_name = true && this.isSetName();
+ boolean that_present_name = true && that.isSetName();
+ if (this_present_name || that_present_name) {
+ if (!(this_present_name && that_present_name))
+ return false;
+ if (!this.name.equals(that.name))
+ return false;
+ }
+
+ boolean this_present_salutation = true && this.isSetSalutation();
+ boolean that_present_salutation = true && that.isSetSalutation();
+ if (this_present_salutation || that_present_salutation) {
+ if (!(this_present_salutation && that_present_salutation))
+ return false;
+ if (!this.salutation.equals(that.salutation))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + id;
+
+ hashCode = hashCode * 8191 + ((isSetName()) ? 131071 : 524287);
+ if (isSetName())
+ hashCode = hashCode * 8191 + name.hashCode();
+
+ hashCode = hashCode * 8191 + ((isSetSalutation()) ? 131071 : 524287);
+ if (isSetSalutation())
+ hashCode = hashCode * 8191 + salutation.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(CrossPlatformResource other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetId()).compareTo(other.isSetId());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetId()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.valueOf(isSetName()).compareTo(other.isSetName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.name, other.name);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.valueOf(isSetSalutation()).compareTo(other.isSetSalutation());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSalutation()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.salutation, other.salutation);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("CrossPlatformResource(");
+ boolean first = true;
+
+ sb.append("id:");
+ sb.append(this.id);
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("name:");
+ if (this.name == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.name);
+ }
+ first = false;
+ if (isSetSalutation()) {
+ if (!first) sb.append(", ");
+ sb.append("salutation:");
+ if (this.salutation == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.salutation);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bitfield = 0;
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class CrossPlatformResourceStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public CrossPlatformResourceStandardScheme getScheme() {
+ return new CrossPlatformResourceStandardScheme();
+ }
+ }
+
+ private static class CrossPlatformResourceStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, CrossPlatformResource struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // ID
+ if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+ struct.id = iprot.readI32();
+ struct.setIdIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.name = iprot.readString();
+ struct.setNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 3: // SALUTATION
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.salutation = iprot.readString();
+ struct.setSalutationIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, CrossPlatformResource struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ oprot.writeFieldBegin(ID_FIELD_DESC);
+ oprot.writeI32(struct.id);
+ oprot.writeFieldEnd();
+ if (struct.name != null) {
+ oprot.writeFieldBegin(NAME_FIELD_DESC);
+ oprot.writeString(struct.name);
+ oprot.writeFieldEnd();
+ }
+ if (struct.salutation != null) {
+ if (struct.isSetSalutation()) {
+ oprot.writeFieldBegin(SALUTATION_FIELD_DESC);
+ oprot.writeString(struct.salutation);
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class CrossPlatformResourceTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public CrossPlatformResourceTupleScheme getScheme() {
+ return new CrossPlatformResourceTupleScheme();
+ }
+ }
+
+ private static class CrossPlatformResourceTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, CrossPlatformResource struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetId()) {
+ optionals.set(0);
+ }
+ if (struct.isSetName()) {
+ optionals.set(1);
+ }
+ if (struct.isSetSalutation()) {
+ optionals.set(2);
+ }
+ oprot.writeBitSet(optionals, 3);
+ if (struct.isSetId()) {
+ oprot.writeI32(struct.id);
+ }
+ if (struct.isSetName()) {
+ oprot.writeString(struct.name);
+ }
+ if (struct.isSetSalutation()) {
+ oprot.writeString(struct.salutation);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, CrossPlatformResource struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(3);
+ if (incoming.get(0)) {
+ struct.id = iprot.readI32();
+ struct.setIdIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.name = iprot.readString();
+ struct.setNameIsSet(true);
+ }
+ if (incoming.get(2)) {
+ struct.salutation = iprot.readString();
+ struct.setSalutationIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+}
+
diff --git a/apache-thrift/generated/com/baeldung/thrift/impl/CrossPlatformService.java b/apache-thrift/generated/com/baeldung/thrift/impl/CrossPlatformService.java
new file mode 100644
index 0000000000..4e4537f7b6
--- /dev/null
+++ b/apache-thrift/generated/com/baeldung/thrift/impl/CrossPlatformService.java
@@ -0,0 +1,3745 @@
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package com.baeldung.thrift.impl;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)", date = "2017-02-01")
+public class CrossPlatformService {
+
+ public interface Iface {
+
+ public CrossPlatformResource get(int id) throws InvalidOperationException, org.apache.thrift.TException;
+
+ public void save(CrossPlatformResource resource) throws InvalidOperationException, org.apache.thrift.TException;
+
+ public java.util.List getList() throws InvalidOperationException, org.apache.thrift.TException;
+
+ public boolean ping() throws InvalidOperationException, org.apache.thrift.TException;
+
+ }
+
+ public interface AsyncIface {
+
+ public void get(int id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+ public void save(CrossPlatformResource resource, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+ public void getList(org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws org.apache.thrift.TException;
+
+ public void ping(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+
+ }
+
+ public static class Client extends org.apache.thrift.TServiceClient implements Iface {
+ public static class Factory implements org.apache.thrift.TServiceClientFactory {
+ public Factory() {}
+ public Client getClient(org.apache.thrift.protocol.TProtocol prot) {
+ return new Client(prot);
+ }
+ public Client getClient(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+ return new Client(iprot, oprot);
+ }
+ }
+
+ public Client(org.apache.thrift.protocol.TProtocol prot)
+ {
+ super(prot, prot);
+ }
+
+ public Client(org.apache.thrift.protocol.TProtocol iprot, org.apache.thrift.protocol.TProtocol oprot) {
+ super(iprot, oprot);
+ }
+
+ public CrossPlatformResource get(int id) throws InvalidOperationException, org.apache.thrift.TException
+ {
+ send_get(id);
+ return recv_get();
+ }
+
+ public void send_get(int id) throws org.apache.thrift.TException
+ {
+ get_args args = new get_args();
+ args.setId(id);
+ sendBase("get", args);
+ }
+
+ public CrossPlatformResource recv_get() throws InvalidOperationException, org.apache.thrift.TException
+ {
+ get_result result = new get_result();
+ receiveBase(result, "get");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ if (result.e != null) {
+ throw result.e;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "get failed: unknown result");
+ }
+
+ public void save(CrossPlatformResource resource) throws InvalidOperationException, org.apache.thrift.TException
+ {
+ send_save(resource);
+ recv_save();
+ }
+
+ public void send_save(CrossPlatformResource resource) throws org.apache.thrift.TException
+ {
+ save_args args = new save_args();
+ args.setResource(resource);
+ sendBase("save", args);
+ }
+
+ public void recv_save() throws InvalidOperationException, org.apache.thrift.TException
+ {
+ save_result result = new save_result();
+ receiveBase(result, "save");
+ if (result.e != null) {
+ throw result.e;
+ }
+ return;
+ }
+
+ public java.util.List getList() throws InvalidOperationException, org.apache.thrift.TException
+ {
+ send_getList();
+ return recv_getList();
+ }
+
+ public void send_getList() throws org.apache.thrift.TException
+ {
+ getList_args args = new getList_args();
+ sendBase("getList", args);
+ }
+
+ public java.util.List recv_getList() throws InvalidOperationException, org.apache.thrift.TException
+ {
+ getList_result result = new getList_result();
+ receiveBase(result, "getList");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ if (result.e != null) {
+ throw result.e;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getList failed: unknown result");
+ }
+
+ public boolean ping() throws InvalidOperationException, org.apache.thrift.TException
+ {
+ send_ping();
+ return recv_ping();
+ }
+
+ public void send_ping() throws org.apache.thrift.TException
+ {
+ ping_args args = new ping_args();
+ sendBase("ping", args);
+ }
+
+ public boolean recv_ping() throws InvalidOperationException, org.apache.thrift.TException
+ {
+ ping_result result = new ping_result();
+ receiveBase(result, "ping");
+ if (result.isSetSuccess()) {
+ return result.success;
+ }
+ if (result.e != null) {
+ throw result.e;
+ }
+ throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "ping failed: unknown result");
+ }
+
+ }
+ public static class AsyncClient extends org.apache.thrift.async.TAsyncClient implements AsyncIface {
+ public static class Factory implements org.apache.thrift.async.TAsyncClientFactory {
+ private org.apache.thrift.async.TAsyncClientManager clientManager;
+ private org.apache.thrift.protocol.TProtocolFactory protocolFactory;
+ public Factory(org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.protocol.TProtocolFactory protocolFactory) {
+ this.clientManager = clientManager;
+ this.protocolFactory = protocolFactory;
+ }
+ public AsyncClient getAsyncClient(org.apache.thrift.transport.TNonblockingTransport transport) {
+ return new AsyncClient(protocolFactory, clientManager, transport);
+ }
+ }
+
+ public AsyncClient(org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.async.TAsyncClientManager clientManager, org.apache.thrift.transport.TNonblockingTransport transport) {
+ super(protocolFactory, clientManager, transport);
+ }
+
+ public void get(int id, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ get_call method_call = new get_call(id, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class get_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private int id;
+ public get_call(int id, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.id = id;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("get", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ get_args args = new get_args();
+ args.setId(id);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public CrossPlatformResource getResult() throws InvalidOperationException, org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new java.lang.IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_get();
+ }
+ }
+
+ public void save(CrossPlatformResource resource, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ save_call method_call = new save_call(resource, resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class save_call extends org.apache.thrift.async.TAsyncMethodCall {
+ private CrossPlatformResource resource;
+ public save_call(CrossPlatformResource resource, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ this.resource = resource;
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("save", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ save_args args = new save_args();
+ args.setResource(resource);
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public Void getResult() throws InvalidOperationException, org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new java.lang.IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return null;
+ }
+ }
+
+ public void getList(org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ getList_call method_call = new getList_call(resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class getList_call extends org.apache.thrift.async.TAsyncMethodCall> {
+ public getList_call(org.apache.thrift.async.AsyncMethodCallback> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getList", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ getList_args args = new getList_args();
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public java.util.List getResult() throws InvalidOperationException, org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new java.lang.IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_getList();
+ }
+ }
+
+ public void ping(org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ checkReady();
+ ping_call method_call = new ping_call(resultHandler, this, ___protocolFactory, ___transport);
+ this.___currentMethod = method_call;
+ ___manager.call(method_call);
+ }
+
+ public static class ping_call extends org.apache.thrift.async.TAsyncMethodCall {
+ public ping_call(org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ super(client, protocolFactory, transport, resultHandler, false);
+ }
+
+ public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
+ prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("ping", org.apache.thrift.protocol.TMessageType.CALL, 0));
+ ping_args args = new ping_args();
+ args.write(prot);
+ prot.writeMessageEnd();
+ }
+
+ public java.lang.Boolean getResult() throws InvalidOperationException, org.apache.thrift.TException {
+ if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
+ throw new java.lang.IllegalStateException("Method call not finished!");
+ }
+ org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
+ org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
+ return (new Client(prot)).recv_ping();
+ }
+ }
+
+ }
+
+ public static class Processor extends org.apache.thrift.TBaseProcessor implements org.apache.thrift.TProcessor {
+ private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(Processor.class.getName());
+ public Processor(I iface) {
+ super(iface, getProcessMap(new java.util.HashMap>()));
+ }
+
+ protected Processor(I iface, java.util.Map> processMap) {
+ super(iface, getProcessMap(processMap));
+ }
+
+ private static java.util.Map> getProcessMap(java.util.Map> processMap) {
+ processMap.put("get", new get());
+ processMap.put("save", new save());
+ processMap.put("getList", new getList());
+ processMap.put("ping", new ping());
+ return processMap;
+ }
+
+ public static class get extends org.apache.thrift.ProcessFunction {
+ public get() {
+ super("get");
+ }
+
+ public get_args getEmptyArgsInstance() {
+ return new get_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public get_result getResult(I iface, get_args args) throws org.apache.thrift.TException {
+ get_result result = new get_result();
+ try {
+ result.success = iface.get(args.id);
+ } catch (InvalidOperationException e) {
+ result.e = e;
+ }
+ return result;
+ }
+ }
+
+ public static class save extends org.apache.thrift.ProcessFunction {
+ public save() {
+ super("save");
+ }
+
+ public save_args getEmptyArgsInstance() {
+ return new save_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public save_result getResult(I iface, save_args args) throws org.apache.thrift.TException {
+ save_result result = new save_result();
+ try {
+ iface.save(args.resource);
+ } catch (InvalidOperationException e) {
+ result.e = e;
+ }
+ return result;
+ }
+ }
+
+ public static class getList extends org.apache.thrift.ProcessFunction {
+ public getList() {
+ super("getList");
+ }
+
+ public getList_args getEmptyArgsInstance() {
+ return new getList_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public getList_result getResult(I iface, getList_args args) throws org.apache.thrift.TException {
+ getList_result result = new getList_result();
+ try {
+ result.success = iface.getList();
+ } catch (InvalidOperationException e) {
+ result.e = e;
+ }
+ return result;
+ }
+ }
+
+ public static class ping extends org.apache.thrift.ProcessFunction {
+ public ping() {
+ super("ping");
+ }
+
+ public ping_args getEmptyArgsInstance() {
+ return new ping_args();
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public ping_result getResult(I iface, ping_args args) throws org.apache.thrift.TException {
+ ping_result result = new ping_result();
+ try {
+ result.success = iface.ping();
+ result.setSuccessIsSet(true);
+ } catch (InvalidOperationException e) {
+ result.e = e;
+ }
+ return result;
+ }
+ }
+
+ }
+
+ public static class AsyncProcessor extends org.apache.thrift.TBaseAsyncProcessor {
+ private static final org.slf4j.Logger _LOGGER = org.slf4j.LoggerFactory.getLogger(AsyncProcessor.class.getName());
+ public AsyncProcessor(I iface) {
+ super(iface, getProcessMap(new java.util.HashMap>()));
+ }
+
+ protected AsyncProcessor(I iface, java.util.Map> processMap) {
+ super(iface, getProcessMap(processMap));
+ }
+
+ private static java.util.Map> getProcessMap(java.util.Map> processMap) {
+ processMap.put("get", new get());
+ processMap.put("save", new save());
+ processMap.put("getList", new getList());
+ processMap.put("ping", new ping());
+ return processMap;
+ }
+
+ public static class get extends org.apache.thrift.AsyncProcessFunction {
+ public get() {
+ super("get");
+ }
+
+ public get_args getEmptyArgsInstance() {
+ return new get_args();
+ }
+
+ public org.apache.thrift.async.AsyncMethodCallback getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new org.apache.thrift.async.AsyncMethodCallback() {
+ public void onComplete(CrossPlatformResource o) {
+ get_result result = new get_result();
+ result.success = o;
+ try {
+ fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ } catch (org.apache.thrift.transport.TTransportException e) {
+ _LOGGER.error("TTransportException writing to internal frame buffer", e);
+ fb.close();
+ } catch (java.lang.Exception e) {
+ _LOGGER.error("Exception writing to internal frame buffer", e);
+ onError(e);
+ }
+ }
+ public void onError(java.lang.Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TSerializable msg;
+ get_result result = new get_result();
+ if (e instanceof InvalidOperationException) {
+ result.e = (InvalidOperationException) e;
+ result.setEIsSet(true);
+ msg = result;
+ } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+ _LOGGER.error("TTransportException inside handler", e);
+ fb.close();
+ return;
+ } else if (e instanceof org.apache.thrift.TApplicationException) {
+ _LOGGER.error("TApplicationException inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TApplicationException)e;
+ } else {
+ _LOGGER.error("Exception inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ } catch (java.lang.Exception ex) {
+ _LOGGER.error("Exception writing to internal frame buffer", ex);
+ fb.close();
+ }
+ }
+ };
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public void start(I iface, get_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ iface.get(args.id,resultHandler);
+ }
+ }
+
+ public static class save extends org.apache.thrift.AsyncProcessFunction {
+ public save() {
+ super("save");
+ }
+
+ public save_args getEmptyArgsInstance() {
+ return new save_args();
+ }
+
+ public org.apache.thrift.async.AsyncMethodCallback getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new org.apache.thrift.async.AsyncMethodCallback() {
+ public void onComplete(Void o) {
+ save_result result = new save_result();
+ try {
+ fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ } catch (org.apache.thrift.transport.TTransportException e) {
+ _LOGGER.error("TTransportException writing to internal frame buffer", e);
+ fb.close();
+ } catch (java.lang.Exception e) {
+ _LOGGER.error("Exception writing to internal frame buffer", e);
+ onError(e);
+ }
+ }
+ public void onError(java.lang.Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TSerializable msg;
+ save_result result = new save_result();
+ if (e instanceof InvalidOperationException) {
+ result.e = (InvalidOperationException) e;
+ result.setEIsSet(true);
+ msg = result;
+ } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+ _LOGGER.error("TTransportException inside handler", e);
+ fb.close();
+ return;
+ } else if (e instanceof org.apache.thrift.TApplicationException) {
+ _LOGGER.error("TApplicationException inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TApplicationException)e;
+ } else {
+ _LOGGER.error("Exception inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ } catch (java.lang.Exception ex) {
+ _LOGGER.error("Exception writing to internal frame buffer", ex);
+ fb.close();
+ }
+ }
+ };
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public void start(I iface, save_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ iface.save(args.resource,resultHandler);
+ }
+ }
+
+ public static class getList extends org.apache.thrift.AsyncProcessFunction> {
+ public getList() {
+ super("getList");
+ }
+
+ public getList_args getEmptyArgsInstance() {
+ return new getList_args();
+ }
+
+ public org.apache.thrift.async.AsyncMethodCallback> getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new org.apache.thrift.async.AsyncMethodCallback>() {
+ public void onComplete(java.util.List o) {
+ getList_result result = new getList_result();
+ result.success = o;
+ try {
+ fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ } catch (org.apache.thrift.transport.TTransportException e) {
+ _LOGGER.error("TTransportException writing to internal frame buffer", e);
+ fb.close();
+ } catch (java.lang.Exception e) {
+ _LOGGER.error("Exception writing to internal frame buffer", e);
+ onError(e);
+ }
+ }
+ public void onError(java.lang.Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TSerializable msg;
+ getList_result result = new getList_result();
+ if (e instanceof InvalidOperationException) {
+ result.e = (InvalidOperationException) e;
+ result.setEIsSet(true);
+ msg = result;
+ } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+ _LOGGER.error("TTransportException inside handler", e);
+ fb.close();
+ return;
+ } else if (e instanceof org.apache.thrift.TApplicationException) {
+ _LOGGER.error("TApplicationException inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TApplicationException)e;
+ } else {
+ _LOGGER.error("Exception inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ } catch (java.lang.Exception ex) {
+ _LOGGER.error("Exception writing to internal frame buffer", ex);
+ fb.close();
+ }
+ }
+ };
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public void start(I iface, getList_args args, org.apache.thrift.async.AsyncMethodCallback> resultHandler) throws org.apache.thrift.TException {
+ iface.getList(resultHandler);
+ }
+ }
+
+ public static class ping extends org.apache.thrift.AsyncProcessFunction {
+ public ping() {
+ super("ping");
+ }
+
+ public ping_args getEmptyArgsInstance() {
+ return new ping_args();
+ }
+
+ public org.apache.thrift.async.AsyncMethodCallback getResultHandler(final org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer fb, final int seqid) {
+ final org.apache.thrift.AsyncProcessFunction fcall = this;
+ return new org.apache.thrift.async.AsyncMethodCallback() {
+ public void onComplete(java.lang.Boolean o) {
+ ping_result result = new ping_result();
+ result.success = o;
+ result.setSuccessIsSet(true);
+ try {
+ fcall.sendResponse(fb, result, org.apache.thrift.protocol.TMessageType.REPLY,seqid);
+ } catch (org.apache.thrift.transport.TTransportException e) {
+ _LOGGER.error("TTransportException writing to internal frame buffer", e);
+ fb.close();
+ } catch (java.lang.Exception e) {
+ _LOGGER.error("Exception writing to internal frame buffer", e);
+ onError(e);
+ }
+ }
+ public void onError(java.lang.Exception e) {
+ byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
+ org.apache.thrift.TSerializable msg;
+ ping_result result = new ping_result();
+ if (e instanceof InvalidOperationException) {
+ result.e = (InvalidOperationException) e;
+ result.setEIsSet(true);
+ msg = result;
+ } else if (e instanceof org.apache.thrift.transport.TTransportException) {
+ _LOGGER.error("TTransportException inside handler", e);
+ fb.close();
+ return;
+ } else if (e instanceof org.apache.thrift.TApplicationException) {
+ _LOGGER.error("TApplicationException inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = (org.apache.thrift.TApplicationException)e;
+ } else {
+ _LOGGER.error("Exception inside handler", e);
+ msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
+ msg = new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
+ }
+ try {
+ fcall.sendResponse(fb,msg,msgType,seqid);
+ } catch (java.lang.Exception ex) {
+ _LOGGER.error("Exception writing to internal frame buffer", ex);
+ fb.close();
+ }
+ }
+ };
+ }
+
+ protected boolean isOneway() {
+ return false;
+ }
+
+ public void start(I iface, ping_args args, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ iface.ping(resultHandler);
+ }
+ }
+
+ }
+
+ public static class get_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_args");
+
+ private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.I32, (short)1);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_argsStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_argsTupleSchemeFactory();
+
+ public int id; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ ID((short)1, "id");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // ID
+ return ID;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __ID_ISSET_ID = 0;
+ private byte __isset_bitfield = 0;
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_args.class, metaDataMap);
+ }
+
+ public get_args() {
+ }
+
+ public get_args(
+ int id)
+ {
+ this();
+ this.id = id;
+ setIdIsSet(true);
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public get_args(get_args other) {
+ __isset_bitfield = other.__isset_bitfield;
+ this.id = other.id;
+ }
+
+ public get_args deepCopy() {
+ return new get_args(this);
+ }
+
+ @Override
+ public void clear() {
+ setIdIsSet(false);
+ this.id = 0;
+ }
+
+ public int getId() {
+ return this.id;
+ }
+
+ public get_args setId(int id) {
+ this.id = id;
+ setIdIsSet(true);
+ return this;
+ }
+
+ public void unsetId() {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ID_ISSET_ID);
+ }
+
+ /** Returns true if field id is set (has been assigned a value) and false otherwise */
+ public boolean isSetId() {
+ return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ID_ISSET_ID);
+ }
+
+ public void setIdIsSet(boolean value) {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ID_ISSET_ID, value);
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case ID:
+ if (value == null) {
+ unsetId();
+ } else {
+ setId((java.lang.Integer)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case ID:
+ return getId();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case ID:
+ return isSetId();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof get_args)
+ return this.equals((get_args)that);
+ return false;
+ }
+
+ public boolean equals(get_args that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_id = true;
+ boolean that_present_id = true;
+ if (this_present_id || that_present_id) {
+ if (!(this_present_id && that_present_id))
+ return false;
+ if (this.id != that.id)
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + id;
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(get_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetId()).compareTo(other.isSetId());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetId()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.id, other.id);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("get_args(");
+ boolean first = true;
+
+ sb.append("id:");
+ sb.append(this.id);
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bitfield = 0;
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class get_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public get_argsStandardScheme getScheme() {
+ return new get_argsStandardScheme();
+ }
+ }
+
+ private static class get_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, get_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // ID
+ if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+ struct.id = iprot.readI32();
+ struct.setIdIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, get_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ oprot.writeFieldBegin(ID_FIELD_DESC);
+ oprot.writeI32(struct.id);
+ oprot.writeFieldEnd();
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class get_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public get_argsTupleScheme getScheme() {
+ return new get_argsTupleScheme();
+ }
+ }
+
+ private static class get_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, get_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetId()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetId()) {
+ oprot.writeI32(struct.id);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, get_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.id = iprot.readI32();
+ struct.setIdIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class get_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("get_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRUCT, (short)0);
+ private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new get_resultStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new get_resultTupleSchemeFactory();
+
+ public CrossPlatformResource success; // required
+ public InvalidOperationException e; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success"),
+ E((short)1, "e");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ case 1: // E
+ return E;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CrossPlatformResource.class)));
+ tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(get_result.class, metaDataMap);
+ }
+
+ public get_result() {
+ }
+
+ public get_result(
+ CrossPlatformResource success,
+ InvalidOperationException e)
+ {
+ this();
+ this.success = success;
+ this.e = e;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public get_result(get_result other) {
+ if (other.isSetSuccess()) {
+ this.success = new CrossPlatformResource(other.success);
+ }
+ if (other.isSetE()) {
+ this.e = new InvalidOperationException(other.e);
+ }
+ }
+
+ public get_result deepCopy() {
+ return new get_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.success = null;
+ this.e = null;
+ }
+
+ public CrossPlatformResource getSuccess() {
+ return this.success;
+ }
+
+ public get_result setSuccess(CrossPlatformResource success) {
+ this.success = success;
+ return this;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
+ public InvalidOperationException getE() {
+ return this.e;
+ }
+
+ public get_result setE(InvalidOperationException e) {
+ this.e = e;
+ return this;
+ }
+
+ public void unsetE() {
+ this.e = null;
+ }
+
+ /** Returns true if field e is set (has been assigned a value) and false otherwise */
+ public boolean isSetE() {
+ return this.e != null;
+ }
+
+ public void setEIsSet(boolean value) {
+ if (!value) {
+ this.e = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((CrossPlatformResource)value);
+ }
+ break;
+
+ case E:
+ if (value == null) {
+ unsetE();
+ } else {
+ setE((InvalidOperationException)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
+ case E:
+ return getE();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
+ case E:
+ return isSetE();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof get_result)
+ return this.equals((get_result)that);
+ return false;
+ }
+
+ public boolean equals(get_result that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_success = true && this.isSetSuccess();
+ boolean that_present_success = true && that.isSetSuccess();
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (!this.success.equals(that.success))
+ return false;
+ }
+
+ boolean this_present_e = true && this.isSetE();
+ boolean that_present_e = true && that.isSetE();
+ if (this_present_e || that_present_e) {
+ if (!(this_present_e && that_present_e))
+ return false;
+ if (!this.e.equals(that.e))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+ if (isSetSuccess())
+ hashCode = hashCode * 8191 + success.hashCode();
+
+ hashCode = hashCode * 8191 + ((isSetE()) ? 131071 : 524287);
+ if (isSetE())
+ hashCode = hashCode * 8191 + e.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(get_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.valueOf(isSetE()).compareTo(other.isSetE());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetE()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, other.e);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("get_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("e:");
+ if (this.e == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.e);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (success != null) {
+ success.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class get_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public get_resultStandardScheme getScheme() {
+ return new get_resultStandardScheme();
+ }
+ }
+
+ private static class get_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, get_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 0: // SUCCESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.success = new CrossPlatformResource();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 1: // E
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, get_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.success != null) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ struct.success.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ if (struct.e != null) {
+ oprot.writeFieldBegin(E_FIELD_DESC);
+ struct.e.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class get_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public get_resultTupleScheme getScheme() {
+ return new get_resultTupleScheme();
+ }
+ }
+
+ private static class get_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, get_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetSuccess()) {
+ optionals.set(0);
+ }
+ if (struct.isSetE()) {
+ optionals.set(1);
+ }
+ oprot.writeBitSet(optionals, 2);
+ if (struct.isSetSuccess()) {
+ struct.success.write(oprot);
+ }
+ if (struct.isSetE()) {
+ struct.e.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, get_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(2);
+ if (incoming.get(0)) {
+ struct.success = new CrossPlatformResource();
+ struct.success.read(iprot);
+ struct.setSuccessIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class save_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("save_args");
+
+ private static final org.apache.thrift.protocol.TField RESOURCE_FIELD_DESC = new org.apache.thrift.protocol.TField("resource", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new save_argsStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new save_argsTupleSchemeFactory();
+
+ public CrossPlatformResource resource; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ RESOURCE((short)1, "resource");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // RESOURCE
+ return RESOURCE;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.RESOURCE, new org.apache.thrift.meta_data.FieldMetaData("resource", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CrossPlatformResource.class)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(save_args.class, metaDataMap);
+ }
+
+ public save_args() {
+ }
+
+ public save_args(
+ CrossPlatformResource resource)
+ {
+ this();
+ this.resource = resource;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public save_args(save_args other) {
+ if (other.isSetResource()) {
+ this.resource = new CrossPlatformResource(other.resource);
+ }
+ }
+
+ public save_args deepCopy() {
+ return new save_args(this);
+ }
+
+ @Override
+ public void clear() {
+ this.resource = null;
+ }
+
+ public CrossPlatformResource getResource() {
+ return this.resource;
+ }
+
+ public save_args setResource(CrossPlatformResource resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ public void unsetResource() {
+ this.resource = null;
+ }
+
+ /** Returns true if field resource is set (has been assigned a value) and false otherwise */
+ public boolean isSetResource() {
+ return this.resource != null;
+ }
+
+ public void setResourceIsSet(boolean value) {
+ if (!value) {
+ this.resource = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case RESOURCE:
+ if (value == null) {
+ unsetResource();
+ } else {
+ setResource((CrossPlatformResource)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case RESOURCE:
+ return getResource();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case RESOURCE:
+ return isSetResource();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof save_args)
+ return this.equals((save_args)that);
+ return false;
+ }
+
+ public boolean equals(save_args that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_resource = true && this.isSetResource();
+ boolean that_present_resource = true && that.isSetResource();
+ if (this_present_resource || that_present_resource) {
+ if (!(this_present_resource && that_present_resource))
+ return false;
+ if (!this.resource.equals(that.resource))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + ((isSetResource()) ? 131071 : 524287);
+ if (isSetResource())
+ hashCode = hashCode * 8191 + resource.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(save_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetResource()).compareTo(other.isSetResource());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetResource()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.resource, other.resource);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("save_args(");
+ boolean first = true;
+
+ sb.append("resource:");
+ if (this.resource == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.resource);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ if (resource != null) {
+ resource.validate();
+ }
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class save_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public save_argsStandardScheme getScheme() {
+ return new save_argsStandardScheme();
+ }
+ }
+
+ private static class save_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, save_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // RESOURCE
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.resource = new CrossPlatformResource();
+ struct.resource.read(iprot);
+ struct.setResourceIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, save_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.resource != null) {
+ oprot.writeFieldBegin(RESOURCE_FIELD_DESC);
+ struct.resource.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class save_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public save_argsTupleScheme getScheme() {
+ return new save_argsTupleScheme();
+ }
+ }
+
+ private static class save_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, save_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetResource()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetResource()) {
+ struct.resource.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, save_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.resource = new CrossPlatformResource();
+ struct.resource.read(iprot);
+ struct.setResourceIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class save_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("save_result");
+
+ private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new save_resultStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new save_resultTupleSchemeFactory();
+
+ public InvalidOperationException e; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ E((short)1, "e");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // E
+ return E;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(save_result.class, metaDataMap);
+ }
+
+ public save_result() {
+ }
+
+ public save_result(
+ InvalidOperationException e)
+ {
+ this();
+ this.e = e;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public save_result(save_result other) {
+ if (other.isSetE()) {
+ this.e = new InvalidOperationException(other.e);
+ }
+ }
+
+ public save_result deepCopy() {
+ return new save_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.e = null;
+ }
+
+ public InvalidOperationException getE() {
+ return this.e;
+ }
+
+ public save_result setE(InvalidOperationException e) {
+ this.e = e;
+ return this;
+ }
+
+ public void unsetE() {
+ this.e = null;
+ }
+
+ /** Returns true if field e is set (has been assigned a value) and false otherwise */
+ public boolean isSetE() {
+ return this.e != null;
+ }
+
+ public void setEIsSet(boolean value) {
+ if (!value) {
+ this.e = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case E:
+ if (value == null) {
+ unsetE();
+ } else {
+ setE((InvalidOperationException)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case E:
+ return getE();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case E:
+ return isSetE();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof save_result)
+ return this.equals((save_result)that);
+ return false;
+ }
+
+ public boolean equals(save_result that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_e = true && this.isSetE();
+ boolean that_present_e = true && that.isSetE();
+ if (this_present_e || that_present_e) {
+ if (!(this_present_e && that_present_e))
+ return false;
+ if (!this.e.equals(that.e))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + ((isSetE()) ? 131071 : 524287);
+ if (isSetE())
+ hashCode = hashCode * 8191 + e.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(save_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetE()).compareTo(other.isSetE());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetE()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, other.e);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("save_result(");
+ boolean first = true;
+
+ sb.append("e:");
+ if (this.e == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.e);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class save_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public save_resultStandardScheme getScheme() {
+ return new save_resultStandardScheme();
+ }
+ }
+
+ private static class save_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, save_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // E
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, save_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.e != null) {
+ oprot.writeFieldBegin(E_FIELD_DESC);
+ struct.e.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class save_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public save_resultTupleScheme getScheme() {
+ return new save_resultTupleScheme();
+ }
+ }
+
+ private static class save_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, save_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetE()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetE()) {
+ struct.e.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, save_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class getList_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getList_args");
+
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getList_argsStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getList_argsTupleSchemeFactory();
+
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+;
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getList_args.class, metaDataMap);
+ }
+
+ public getList_args() {
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public getList_args(getList_args other) {
+ }
+
+ public getList_args deepCopy() {
+ return new getList_args(this);
+ }
+
+ @Override
+ public void clear() {
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof getList_args)
+ return this.equals((getList_args)that);
+ return false;
+ }
+
+ public boolean equals(getList_args that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(getList_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("getList_args(");
+ boolean first = true;
+
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class getList_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public getList_argsStandardScheme getScheme() {
+ return new getList_argsStandardScheme();
+ }
+ }
+
+ private static class getList_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, getList_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, getList_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class getList_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public getList_argsTupleScheme getScheme() {
+ return new getList_argsTupleScheme();
+ }
+ }
+
+ private static class getList_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, getList_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, getList_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class getList_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getList_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.LIST, (short)0);
+ private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getList_resultStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getList_resultTupleSchemeFactory();
+
+ public java.util.List success; // required
+ public InvalidOperationException e; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success"),
+ E((short)1, "e");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ case 1: // E
+ return E;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, CrossPlatformResource.class))));
+ tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getList_result.class, metaDataMap);
+ }
+
+ public getList_result() {
+ }
+
+ public getList_result(
+ java.util.List success,
+ InvalidOperationException e)
+ {
+ this();
+ this.success = success;
+ this.e = e;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public getList_result(getList_result other) {
+ if (other.isSetSuccess()) {
+ java.util.List __this__success = new java.util.ArrayList(other.success.size());
+ for (CrossPlatformResource other_element : other.success) {
+ __this__success.add(new CrossPlatformResource(other_element));
+ }
+ this.success = __this__success;
+ }
+ if (other.isSetE()) {
+ this.e = new InvalidOperationException(other.e);
+ }
+ }
+
+ public getList_result deepCopy() {
+ return new getList_result(this);
+ }
+
+ @Override
+ public void clear() {
+ this.success = null;
+ this.e = null;
+ }
+
+ public int getSuccessSize() {
+ return (this.success == null) ? 0 : this.success.size();
+ }
+
+ public java.util.Iterator getSuccessIterator() {
+ return (this.success == null) ? null : this.success.iterator();
+ }
+
+ public void addToSuccess(CrossPlatformResource elem) {
+ if (this.success == null) {
+ this.success = new java.util.ArrayList();
+ }
+ this.success.add(elem);
+ }
+
+ public java.util.List getSuccess() {
+ return this.success;
+ }
+
+ public getList_result setSuccess(java.util.List success) {
+ this.success = success;
+ return this;
+ }
+
+ public void unsetSuccess() {
+ this.success = null;
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return this.success != null;
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ if (!value) {
+ this.success = null;
+ }
+ }
+
+ public InvalidOperationException getE() {
+ return this.e;
+ }
+
+ public getList_result setE(InvalidOperationException e) {
+ this.e = e;
+ return this;
+ }
+
+ public void unsetE() {
+ this.e = null;
+ }
+
+ /** Returns true if field e is set (has been assigned a value) and false otherwise */
+ public boolean isSetE() {
+ return this.e != null;
+ }
+
+ public void setEIsSet(boolean value) {
+ if (!value) {
+ this.e = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((java.util.List)value);
+ }
+ break;
+
+ case E:
+ if (value == null) {
+ unsetE();
+ } else {
+ setE((InvalidOperationException)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return getSuccess();
+
+ case E:
+ return getE();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
+ case E:
+ return isSetE();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof getList_result)
+ return this.equals((getList_result)that);
+ return false;
+ }
+
+ public boolean equals(getList_result that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_success = true && this.isSetSuccess();
+ boolean that_present_success = true && that.isSetSuccess();
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (!this.success.equals(that.success))
+ return false;
+ }
+
+ boolean this_present_e = true && this.isSetE();
+ boolean that_present_e = true && that.isSetE();
+ if (this_present_e || that_present_e) {
+ if (!(this_present_e && that_present_e))
+ return false;
+ if (!this.e.equals(that.e))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + ((isSetSuccess()) ? 131071 : 524287);
+ if (isSetSuccess())
+ hashCode = hashCode * 8191 + success.hashCode();
+
+ hashCode = hashCode * 8191 + ((isSetE()) ? 131071 : 524287);
+ if (isSetE())
+ hashCode = hashCode * 8191 + e.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(getList_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.valueOf(isSetE()).compareTo(other.isSetE());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetE()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, other.e);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("getList_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ if (this.success == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.success);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("e:");
+ if (this.e == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.e);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class getList_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public getList_resultStandardScheme getScheme() {
+ return new getList_resultStandardScheme();
+ }
+ }
+
+ private static class getList_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, getList_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 0: // SUCCESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+ struct.success = new java.util.ArrayList(_list0.size);
+ CrossPlatformResource _elem1;
+ for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+ {
+ _elem1 = new CrossPlatformResource();
+ _elem1.read(iprot);
+ struct.success.add(_elem1);
+ }
+ iprot.readListEnd();
+ }
+ struct.setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 1: // E
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, getList_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.success != null) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
+ for (CrossPlatformResource _iter3 : struct.success)
+ {
+ _iter3.write(oprot);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ if (struct.e != null) {
+ oprot.writeFieldBegin(E_FIELD_DESC);
+ struct.e.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class getList_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public getList_resultTupleScheme getScheme() {
+ return new getList_resultTupleScheme();
+ }
+ }
+
+ private static class getList_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, getList_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetSuccess()) {
+ optionals.set(0);
+ }
+ if (struct.isSetE()) {
+ optionals.set(1);
+ }
+ oprot.writeBitSet(optionals, 2);
+ if (struct.isSetSuccess()) {
+ {
+ oprot.writeI32(struct.success.size());
+ for (CrossPlatformResource _iter4 : struct.success)
+ {
+ _iter4.write(oprot);
+ }
+ }
+ }
+ if (struct.isSetE()) {
+ struct.e.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, getList_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(2);
+ if (incoming.get(0)) {
+ {
+ org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.success = new java.util.ArrayList(_list5.size);
+ CrossPlatformResource _elem6;
+ for (int _i7 = 0; _i7 < _list5.size; ++_i7)
+ {
+ _elem6 = new CrossPlatformResource();
+ _elem6.read(iprot);
+ struct.success.add(_elem6);
+ }
+ }
+ struct.setSuccessIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class ping_args implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ping_args");
+
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new ping_argsStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new ping_argsTupleSchemeFactory();
+
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+;
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ping_args.class, metaDataMap);
+ }
+
+ public ping_args() {
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public ping_args(ping_args other) {
+ }
+
+ public ping_args deepCopy() {
+ return new ping_args(this);
+ }
+
+ @Override
+ public void clear() {
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof ping_args)
+ return this.equals((ping_args)that);
+ return false;
+ }
+
+ public boolean equals(ping_args that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(ping_args other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("ping_args(");
+ boolean first = true;
+
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class ping_argsStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public ping_argsStandardScheme getScheme() {
+ return new ping_argsStandardScheme();
+ }
+ }
+
+ private static class ping_argsStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, ping_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, ping_args struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class ping_argsTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public ping_argsTupleScheme getScheme() {
+ return new ping_argsTupleScheme();
+ }
+ }
+
+ private static class ping_argsTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, ping_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, ping_args struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+ public static class ping_result implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ping_result");
+
+ private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
+ private static final org.apache.thrift.protocol.TField E_FIELD_DESC = new org.apache.thrift.protocol.TField("e", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new ping_resultStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new ping_resultTupleSchemeFactory();
+
+ public boolean success; // required
+ public InvalidOperationException e; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ SUCCESS((short)0, "success"),
+ E((short)1, "e");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 0: // SUCCESS
+ return SUCCESS;
+ case 1: // E
+ return E;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __SUCCESS_ISSET_ID = 0;
+ private byte __isset_bitfield = 0;
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+ tmpMap.put(_Fields.E, new org.apache.thrift.meta_data.FieldMetaData("e", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, InvalidOperationException.class)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ping_result.class, metaDataMap);
+ }
+
+ public ping_result() {
+ }
+
+ public ping_result(
+ boolean success,
+ InvalidOperationException e)
+ {
+ this();
+ this.success = success;
+ setSuccessIsSet(true);
+ this.e = e;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public ping_result(ping_result other) {
+ __isset_bitfield = other.__isset_bitfield;
+ this.success = other.success;
+ if (other.isSetE()) {
+ this.e = new InvalidOperationException(other.e);
+ }
+ }
+
+ public ping_result deepCopy() {
+ return new ping_result(this);
+ }
+
+ @Override
+ public void clear() {
+ setSuccessIsSet(false);
+ this.success = false;
+ this.e = null;
+ }
+
+ public boolean isSuccess() {
+ return this.success;
+ }
+
+ public ping_result setSuccess(boolean success) {
+ this.success = success;
+ setSuccessIsSet(true);
+ return this;
+ }
+
+ public void unsetSuccess() {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+ }
+
+ /** Returns true if field success is set (has been assigned a value) and false otherwise */
+ public boolean isSetSuccess() {
+ return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __SUCCESS_ISSET_ID);
+ }
+
+ public void setSuccessIsSet(boolean value) {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __SUCCESS_ISSET_ID, value);
+ }
+
+ public InvalidOperationException getE() {
+ return this.e;
+ }
+
+ public ping_result setE(InvalidOperationException e) {
+ this.e = e;
+ return this;
+ }
+
+ public void unsetE() {
+ this.e = null;
+ }
+
+ /** Returns true if field e is set (has been assigned a value) and false otherwise */
+ public boolean isSetE() {
+ return this.e != null;
+ }
+
+ public void setEIsSet(boolean value) {
+ if (!value) {
+ this.e = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case SUCCESS:
+ if (value == null) {
+ unsetSuccess();
+ } else {
+ setSuccess((java.lang.Boolean)value);
+ }
+ break;
+
+ case E:
+ if (value == null) {
+ unsetE();
+ } else {
+ setE((InvalidOperationException)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case SUCCESS:
+ return isSuccess();
+
+ case E:
+ return getE();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case SUCCESS:
+ return isSetSuccess();
+ case E:
+ return isSetE();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof ping_result)
+ return this.equals((ping_result)that);
+ return false;
+ }
+
+ public boolean equals(ping_result that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_success = true;
+ boolean that_present_success = true;
+ if (this_present_success || that_present_success) {
+ if (!(this_present_success && that_present_success))
+ return false;
+ if (this.success != that.success)
+ return false;
+ }
+
+ boolean this_present_e = true && this.isSetE();
+ boolean that_present_e = true && that.isSetE();
+ if (this_present_e || that_present_e) {
+ if (!(this_present_e && that_present_e))
+ return false;
+ if (!this.e.equals(that.e))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + ((success) ? 131071 : 524287);
+
+ hashCode = hashCode * 8191 + ((isSetE()) ? 131071 : 524287);
+ if (isSetE())
+ hashCode = hashCode * 8191 + e.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(ping_result other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetSuccess()).compareTo(other.isSetSuccess());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSuccess()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.success, other.success);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.valueOf(isSetE()).compareTo(other.isSetE());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetE()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.e, other.e);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("ping_result(");
+ boolean first = true;
+
+ sb.append("success:");
+ sb.append(this.success);
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("e:");
+ if (this.e == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.e);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bitfield = 0;
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class ping_resultStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public ping_resultStandardScheme getScheme() {
+ return new ping_resultStandardScheme();
+ }
+ }
+
+ private static class ping_resultStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, ping_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 0: // SUCCESS
+ if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+ struct.success = iprot.readBool();
+ struct.setSuccessIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 1: // E
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, ping_result struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.isSetSuccess()) {
+ oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
+ oprot.writeBool(struct.success);
+ oprot.writeFieldEnd();
+ }
+ if (struct.e != null) {
+ oprot.writeFieldBegin(E_FIELD_DESC);
+ struct.e.write(oprot);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class ping_resultTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public ping_resultTupleScheme getScheme() {
+ return new ping_resultTupleScheme();
+ }
+ }
+
+ private static class ping_resultTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, ping_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetSuccess()) {
+ optionals.set(0);
+ }
+ if (struct.isSetE()) {
+ optionals.set(1);
+ }
+ oprot.writeBitSet(optionals, 2);
+ if (struct.isSetSuccess()) {
+ oprot.writeBool(struct.success);
+ }
+ if (struct.isSetE()) {
+ struct.e.write(oprot);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, ping_result struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(2);
+ if (incoming.get(0)) {
+ struct.success = iprot.readBool();
+ struct.setSuccessIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.e = new InvalidOperationException();
+ struct.e.read(iprot);
+ struct.setEIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+ }
+
+}
diff --git a/apache-thrift/generated/com/baeldung/thrift/impl/InvalidOperationException.java b/apache-thrift/generated/com/baeldung/thrift/impl/InvalidOperationException.java
new file mode 100644
index 0000000000..c07616a00e
--- /dev/null
+++ b/apache-thrift/generated/com/baeldung/thrift/impl/InvalidOperationException.java
@@ -0,0 +1,472 @@
+/**
+ * Autogenerated by Thrift Compiler (0.10.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package com.baeldung.thrift.impl;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)", date = "2017-02-01")
+public class InvalidOperationException extends org.apache.thrift.TException implements org.apache.thrift.TBase, java.io.Serializable, Cloneable, Comparable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("InvalidOperationException");
+
+ private static final org.apache.thrift.protocol.TField CODE_FIELD_DESC = new org.apache.thrift.protocol.TField("code", org.apache.thrift.protocol.TType.I32, (short)1);
+ private static final org.apache.thrift.protocol.TField DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("description", org.apache.thrift.protocol.TType.STRING, (short)2);
+
+ private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new InvalidOperationExceptionStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new InvalidOperationExceptionTupleSchemeFactory();
+
+ public int code; // required
+ public java.lang.String description; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ CODE((short)1, "code"),
+ DESCRIPTION((short)2, "description");
+
+ private static final java.util.Map byName = new java.util.HashMap();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // CODE
+ return CODE;
+ case 2: // DESCRIPTION
+ return DESCRIPTION;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final int __CODE_ISSET_ID = 0;
+ private byte __isset_bitfield = 0;
+ public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.CODE, new org.apache.thrift.meta_data.FieldMetaData("code", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+ tmpMap.put(_Fields.DESCRIPTION, new org.apache.thrift.meta_data.FieldMetaData("description", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InvalidOperationException.class, metaDataMap);
+ }
+
+ public InvalidOperationException() {
+ }
+
+ public InvalidOperationException(
+ int code,
+ java.lang.String description)
+ {
+ this();
+ this.code = code;
+ setCodeIsSet(true);
+ this.description = description;
+ }
+
+ /**
+ * Performs a deep copy on other.
+ */
+ public InvalidOperationException(InvalidOperationException other) {
+ __isset_bitfield = other.__isset_bitfield;
+ this.code = other.code;
+ if (other.isSetDescription()) {
+ this.description = other.description;
+ }
+ }
+
+ public InvalidOperationException deepCopy() {
+ return new InvalidOperationException(this);
+ }
+
+ @Override
+ public void clear() {
+ setCodeIsSet(false);
+ this.code = 0;
+ this.description = null;
+ }
+
+ public int getCode() {
+ return this.code;
+ }
+
+ public InvalidOperationException setCode(int code) {
+ this.code = code;
+ setCodeIsSet(true);
+ return this;
+ }
+
+ public void unsetCode() {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __CODE_ISSET_ID);
+ }
+
+ /** Returns true if field code is set (has been assigned a value) and false otherwise */
+ public boolean isSetCode() {
+ return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __CODE_ISSET_ID);
+ }
+
+ public void setCodeIsSet(boolean value) {
+ __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __CODE_ISSET_ID, value);
+ }
+
+ public java.lang.String getDescription() {
+ return this.description;
+ }
+
+ public InvalidOperationException setDescription(java.lang.String description) {
+ this.description = description;
+ return this;
+ }
+
+ public void unsetDescription() {
+ this.description = null;
+ }
+
+ /** Returns true if field description is set (has been assigned a value) and false otherwise */
+ public boolean isSetDescription() {
+ return this.description != null;
+ }
+
+ public void setDescriptionIsSet(boolean value) {
+ if (!value) {
+ this.description = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, java.lang.Object value) {
+ switch (field) {
+ case CODE:
+ if (value == null) {
+ unsetCode();
+ } else {
+ setCode((java.lang.Integer)value);
+ }
+ break;
+
+ case DESCRIPTION:
+ if (value == null) {
+ unsetDescription();
+ } else {
+ setDescription((java.lang.String)value);
+ }
+ break;
+
+ }
+ }
+
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case CODE:
+ return getCode();
+
+ case DESCRIPTION:
+ return getDescription();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case CODE:
+ return isSetCode();
+ case DESCRIPTION:
+ return isSetDescription();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof InvalidOperationException)
+ return this.equals((InvalidOperationException)that);
+ return false;
+ }
+
+ public boolean equals(InvalidOperationException that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_code = true;
+ boolean that_present_code = true;
+ if (this_present_code || that_present_code) {
+ if (!(this_present_code && that_present_code))
+ return false;
+ if (this.code != that.code)
+ return false;
+ }
+
+ boolean this_present_description = true && this.isSetDescription();
+ boolean that_present_description = true && that.isSetDescription();
+ if (this_present_description || that_present_description) {
+ if (!(this_present_description && that_present_description))
+ return false;
+ if (!this.description.equals(that.description))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + code;
+
+ hashCode = hashCode * 8191 + ((isSetDescription()) ? 131071 : 524287);
+ if (isSetDescription())
+ hashCode = hashCode * 8191 + description.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(InvalidOperationException other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.valueOf(isSetCode()).compareTo(other.isSetCode());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetCode()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.code, other.code);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.valueOf(isSetDescription()).compareTo(other.isSetDescription());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetDescription()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.description, other.description);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new java.lang.StringBuilder("InvalidOperationException(");
+ boolean first = true;
+
+ sb.append("code:");
+ sb.append(this.code);
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("description:");
+ if (this.description == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.description);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+ __isset_bitfield = 0;
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class InvalidOperationExceptionStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public InvalidOperationExceptionStandardScheme getScheme() {
+ return new InvalidOperationExceptionStandardScheme();
+ }
+ }
+
+ private static class InvalidOperationExceptionStandardScheme extends org.apache.thrift.scheme.StandardScheme {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, InvalidOperationException struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // CODE
+ if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+ struct.code = iprot.readI32();
+ struct.setCodeIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ case 2: // DESCRIPTION
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.description = iprot.readString();
+ struct.setDescriptionIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, InvalidOperationException struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ oprot.writeFieldBegin(CODE_FIELD_DESC);
+ oprot.writeI32(struct.code);
+ oprot.writeFieldEnd();
+ if (struct.description != null) {
+ oprot.writeFieldBegin(DESCRIPTION_FIELD_DESC);
+ oprot.writeString(struct.description);
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class InvalidOperationExceptionTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
+ public InvalidOperationExceptionTupleScheme getScheme() {
+ return new InvalidOperationExceptionTupleScheme();
+ }
+ }
+
+ private static class InvalidOperationExceptionTupleScheme extends org.apache.thrift.scheme.TupleScheme {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, InvalidOperationException struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetCode()) {
+ optionals.set(0);
+ }
+ if (struct.isSetDescription()) {
+ optionals.set(1);
+ }
+ oprot.writeBitSet(optionals, 2);
+ if (struct.isSetCode()) {
+ oprot.writeI32(struct.code);
+ }
+ if (struct.isSetDescription()) {
+ oprot.writeString(struct.description);
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, InvalidOperationException struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
+ java.util.BitSet incoming = iprot.readBitSet(2);
+ if (incoming.get(0)) {
+ struct.code = iprot.readI32();
+ struct.setCodeIsSet(true);
+ }
+ if (incoming.get(1)) {
+ struct.description = iprot.readString();
+ struct.setDescriptionIsSet(true);
+ }
+ }
+ }
+
+ private static S scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+}
+
diff --git a/apache-thrift/pom.xml b/apache-thrift/pom.xml
new file mode 100644
index 0000000000..e110bfb817
--- /dev/null
+++ b/apache-thrift/pom.xml
@@ -0,0 +1,55 @@
+
+ 4.0.0
+ com.baeldung
+ apache-thrift
+ 0.0.1-SNAPSHOT
+ pom
+
+
+ 1.8
+ 4.12
+ 3.6.0
+ 0.10.0
+ 0.1.11
+
+
+
+
+ org.apache.thrift
+ libthrift
+ ${thrift.version}
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+
+ org.slf4j
+ slf4j-simple
+ 1.7.12
+ test
+
+
+
+
+ install
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+ 1.8
+
+
+
+
+
+
diff --git a/apache-thrift/src/main/java/com/baeldung/thrift/Application.java b/apache-thrift/src/main/java/com/baeldung/thrift/Application.java
new file mode 100644
index 0000000000..09d5cc74f3
--- /dev/null
+++ b/apache-thrift/src/main/java/com/baeldung/thrift/Application.java
@@ -0,0 +1,9 @@
+package com.baeldung.thrift;
+
+public class Application {
+
+ public static void main(String[] args) {
+ CrossPlatformServiceServer server = new CrossPlatformServiceServer();
+ server.start();
+ }
+}
diff --git a/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceClient.java b/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceClient.java
new file mode 100644
index 0000000000..8c369acccb
--- /dev/null
+++ b/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceClient.java
@@ -0,0 +1,41 @@
+package com.baeldung.thrift;
+
+import com.baeldung.thrift.impl.CrossPlatformService;
+
+import org.apache.thrift.TException;
+import org.apache.thrift.protocol.TBinaryProtocol;
+import org.apache.thrift.protocol.TProtocol;
+import org.apache.thrift.transport.TSocket;
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+
+public class CrossPlatformServiceClient {
+
+ public boolean ping() {
+ try {
+ TTransport transport;
+
+ transport = new TSocket("localhost", 9090);
+ transport.open();
+
+ TProtocol protocol = new TBinaryProtocol(transport);
+ CrossPlatformService.Client client = new CrossPlatformService.Client(protocol);
+
+ System.out.print("Calling remote method...");
+
+ boolean result = client.ping();
+
+ System.out.println("done.");
+
+ transport.close();
+
+ return result;
+ } catch (TTransportException e) {
+ e.printStackTrace();
+ } catch (TException x) {
+ x.printStackTrace();
+ }
+
+ return false;
+ }
+}
diff --git a/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceImpl.java b/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceImpl.java
new file mode 100644
index 0000000000..008fc05ee7
--- /dev/null
+++ b/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceImpl.java
@@ -0,0 +1,35 @@
+package com.baeldung.thrift;
+
+import com.baeldung.thrift.impl.CrossPlatformResource;
+import com.baeldung.thrift.impl.CrossPlatformService;
+import com.baeldung.thrift.impl.InvalidOperationException;
+
+import org.apache.thrift.TException;
+
+import java.util.Collections;
+import java.util.List;
+
+public class CrossPlatformServiceImpl implements CrossPlatformService.Iface {
+
+ @Override
+ public CrossPlatformResource get(final int id) throws InvalidOperationException, TException {
+ // add some action
+ return new CrossPlatformResource();
+ }
+
+ @Override
+ public void save(final CrossPlatformResource resource) throws InvalidOperationException, TException {
+ // add some action
+ }
+
+ @Override
+ public List getList() throws InvalidOperationException, TException {
+ // add some action
+ return Collections.emptyList();
+ }
+
+ @Override
+ public boolean ping() throws InvalidOperationException, TException {
+ return true;
+ }
+}
diff --git a/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceServer.java b/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceServer.java
new file mode 100644
index 0000000000..9a21512b52
--- /dev/null
+++ b/apache-thrift/src/main/java/com/baeldung/thrift/CrossPlatformServiceServer.java
@@ -0,0 +1,39 @@
+package com.baeldung.thrift;
+
+import com.baeldung.thrift.impl.CrossPlatformService;
+
+import org.apache.thrift.server.TServer;
+import org.apache.thrift.server.TSimpleServer;
+import org.apache.thrift.transport.TServerSocket;
+import org.apache.thrift.transport.TServerTransport;
+
+public class CrossPlatformServiceServer {
+
+ private TServer server;
+
+ public void start() {
+ try {
+ TServerTransport serverTransport = new TServerSocket(9090);
+ server = new TSimpleServer(new TServer.Args(serverTransport)
+ .processor(new CrossPlatformService.Processor<>(new CrossPlatformServiceImpl())));
+
+ System.out.print("Starting the server... ");
+
+ server.serve();
+
+ System.out.println("done.");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void stop() {
+ if (server != null && server.isServing()) {
+ System.out.print("Stopping the server... ");
+
+ server.stop();
+
+ System.out.println("done.");
+ }
+ }
+}
diff --git a/apache-thrift/src/main/resources/cross-platform-service.thrift b/apache-thrift/src/main/resources/cross-platform-service.thrift
new file mode 100644
index 0000000000..d6d3c51e18
--- /dev/null
+++ b/apache-thrift/src/main/resources/cross-platform-service.thrift
@@ -0,0 +1,24 @@
+namespace cpp com.baeldung.thrift.impl
+namespace java com.baeldung.thrift.impl
+
+exception InvalidOperationException {
+ 1: i32 code,
+ 2: string description
+}
+
+struct CrossPlatformResource {
+ 1: i32 id,
+ 2: string name,
+ 3: optional string salutation
+}
+
+service CrossPlatformService {
+
+ CrossPlatformResource get(1:i32 id) throws (1:InvalidOperationException e),
+
+ void save(1:CrossPlatformResource resource) throws (1:InvalidOperationException e),
+
+ list getList() throws (1:InvalidOperationException e),
+
+ bool ping() throws (1:InvalidOperationException e)
+}
\ No newline at end of file
diff --git a/apache-thrift/src/test/java/com/baeldung/thrift/CrossPlatformServiceTest.java b/apache-thrift/src/test/java/com/baeldung/thrift/CrossPlatformServiceTest.java
new file mode 100644
index 0000000000..8a7022a281
--- /dev/null
+++ b/apache-thrift/src/test/java/com/baeldung/thrift/CrossPlatformServiceTest.java
@@ -0,0 +1,33 @@
+package com.baeldung.thrift;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+public class CrossPlatformServiceTest {
+
+ private CrossPlatformServiceServer server = new CrossPlatformServiceServer();
+
+ @Before
+ public void setUp() {
+ new Thread(() -> server.start()).start();
+ try {
+ // wait for the server start up
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @After
+ public void tearDown() {
+ server.stop();
+ }
+
+ @Test
+ public void ping() {
+ CrossPlatformServiceClient client = new CrossPlatformServiceClient();
+ Assert.assertTrue(client.ping());
+ }
+}
diff --git a/aspectj/README.md b/aspectj/README.md
index 9793b742fa..71724e76b6 100644
--- a/aspectj/README.md
+++ b/aspectj/README.md
@@ -1,2 +1,3 @@
### Relevant Articles:
- [Intro to AspectJ](http://www.baeldung.com/aspectj)
+- [Spring Performance Logging](http://www.baeldung.com/spring-performance-logging)
diff --git a/aspectj/pom.xml b/aspectj/pom.xml
index 6e7ef1b961..90b527c14f 100644
--- a/aspectj/pom.xml
+++ b/aspectj/pom.xml
@@ -12,32 +12,32 @@
aspectjrt
${aspectj.version}
-
+
org.aspectj
aspectjweaver
${aspectj.version}
-
+
org.slf4j
slf4j-api
${org.slf4j.version}
-
+
ch.qos.logback
logback-classic
${logback.version}
-
+
ch.qos.logback
logback-core
${logback.version}
-
+
junit
@@ -46,34 +46,34 @@
- org.springframework
- spring-context
- 4.3.4.RELEASE
+ org.springframework
+ spring-context
+ 4.3.4.RELEASE
- org.springframework
- spring-beans
- 4.3.4.RELEASE
+ org.springframework
+ spring-beans
+ 4.3.4.RELEASE
- org.springframework
- spring-core
- 4.3.4.RELEASE
+ org.springframework
+ spring-core
+ 4.3.4.RELEASE
- cglib
- cglib
- 3.2.4
+ cglib
+ cglib
+ 3.2.4
- org.springframework
- spring-aop
- 4.3.4.RELEASE
+ org.springframework
+ spring-aop
+ 4.3.4.RELEASE
- log4j
- log4j
- 1.2.17
+ log4j
+ log4j
+ 1.2.17
@@ -95,9 +95,9 @@
${source.version}
-
+
-
+
org.codehaus.mojo
aspectj-maven-plugin
@@ -111,41 +111,22 @@
ignore
${project.build.sourceEncoding}
-
-
+
+
compile
- test-compile
+ test-compile
-
-
-
+
+
diff --git a/assertj/pom.xml b/assertj/pom.xml
index 0b3bcbacdb..032f33c89d 100644
--- a/assertj/pom.xml
+++ b/assertj/pom.xml
@@ -54,8 +54,8 @@
3.1.0
4.12
3.6.1
-
+
3.6.0
-
+
\ No newline at end of file
diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java
index fc134ece00..10bb011903 100644
--- a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java
+++ b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJCoreTest.java
@@ -38,8 +38,7 @@ public class AssertJCoreTest {
public void whenCheckingForElement_thenContains() throws Exception {
List list = Arrays.asList("1", "2", "3");
- assertThat(list)
- .contains("1");
+ assertThat(list).contains("1");
}
@Test
@@ -50,12 +49,7 @@ public class AssertJCoreTest {
assertThat(list).startsWith("1");
assertThat(list).doesNotContainNull();
- assertThat(list)
- .isNotEmpty()
- .contains("1")
- .startsWith("1")
- .doesNotContainNull()
- .containsSequence("2", "3");
+ assertThat(list).isNotEmpty().contains("1").startsWith("1").doesNotContainNull().containsSequence("2", "3");
}
@Test
@@ -67,11 +61,7 @@ public class AssertJCoreTest {
public void whenCheckingCharacter_thenIsUnicode() throws Exception {
char someCharacter = 'c';
- assertThat(someCharacter)
- .isNotEqualTo('a')
- .inUnicode()
- .isGreaterThanOrEqualTo('b')
- .isLowerCase();
+ assertThat(someCharacter).isNotEqualTo('a').inUnicode().isGreaterThanOrEqualTo('b').isLowerCase();
}
@Test
@@ -94,11 +84,7 @@ public class AssertJCoreTest {
final File someFile = File.createTempFile("aaa", "bbb");
someFile.deleteOnExit();
- assertThat(someFile)
- .exists()
- .isFile()
- .canRead()
- .canWrite();
+ assertThat(someFile).exists().isFile().canRead().canWrite();
}
@Test
@@ -113,20 +99,14 @@ public class AssertJCoreTest {
public void whenGivenMap_then() throws Exception {
Map map = Maps.newHashMap(2, "a");
- assertThat(map)
- .isNotEmpty()
- .containsKey(2)
- .doesNotContainKeys(10)
- .contains(entry(2, "a"));
+ assertThat(map).isNotEmpty().containsKey(2).doesNotContainKeys(10).contains(entry(2, "a"));
}
@Test
public void whenGivenException_then() throws Exception {
Exception ex = new Exception("abc");
- assertThat(ex)
- .hasNoCause()
- .hasMessageEndingWith("c");
+ assertThat(ex).hasNoCause().hasMessageEndingWith("c");
}
@Ignore // IN ORDER TO TEST, REMOVE THIS LINE
@@ -134,8 +114,6 @@ public class AssertJCoreTest {
public void whenRunningAssertion_thenDescribed() throws Exception {
Person person = new Person("Alex", 34);
- assertThat(person.getAge())
- .as("%s's age should be equal to 100")
- .isEqualTo(100);
+ assertThat(person.getAge()).as("%s's age should be equal to 100").isEqualTo(100);
}
}
diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java
index aee803ada1..84aaf46dd1 100644
--- a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java
+++ b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJGuavaTest.java
@@ -26,9 +26,7 @@ public class AssertJGuavaTest {
final File temp1 = File.createTempFile("bael", "dung1");
final File temp2 = File.createTempFile("bael", "dung2");
- assertThat(Files.asByteSource(temp1))
- .hasSize(0)
- .hasSameContentAs(Files.asByteSource(temp2));
+ assertThat(Files.asByteSource(temp1)).hasSize(0).hasSameContentAs(Files.asByteSource(temp2));
}
@Test
@@ -37,11 +35,7 @@ public class AssertJGuavaTest {
mmap.put(1, "one");
mmap.put(1, "1");
- assertThat(mmap)
- .hasSize(2)
- .containsKeys(1)
- .contains(entry(1, "one"))
- .contains(entry(1, "1"));
+ assertThat(mmap).hasSize(2).containsKeys(1).contains(entry(1, "one")).contains(entry(1, "1"));
}
@Test
@@ -62,31 +56,21 @@ public class AssertJGuavaTest {
mmap2.put(1, "one");
mmap2.put(1, "1");
- assertThat(mmap1)
- .containsAllEntriesOf(mmap2)
- .containsAllEntriesOf(mmap1_clone)
- .hasSameEntriesAs(mmap1_clone);
+ assertThat(mmap1).containsAllEntriesOf(mmap2).containsAllEntriesOf(mmap1_clone).hasSameEntriesAs(mmap1_clone);
}
@Test
public void givenOptional_whenVerifyingContent_thenShouldBeEqual() throws Exception {
final Optional something = Optional.of("something");
- assertThat(something)
- .isPresent()
- .extractingValue()
- .isEqualTo("something");
+ assertThat(something).isPresent().extractingValue().isEqualTo("something");
}
@Test
public void givenRange_whenVerifying_thenShouldBeCorrect() throws Exception {
final Range range = Range.openClosed("a", "g");
- assertThat(range)
- .hasOpenedLowerBound()
- .isNotEmpty()
- .hasClosedUpperBound()
- .contains("b");
+ assertThat(range).hasOpenedLowerBound().isNotEmpty().hasClosedUpperBound().contains("b");
}
@Test
@@ -96,10 +80,7 @@ public class AssertJGuavaTest {
map.put(Range.closed(0, 60), "F");
map.put(Range.closed(61, 70), "D");
- assertThat(map)
- .isNotEmpty()
- .containsKeys(0)
- .contains(MapEntry.entry(34, "F"));
+ assertThat(map).isNotEmpty().containsKeys(0).contains(MapEntry.entry(34, "F"));
}
@Test
@@ -109,13 +90,7 @@ public class AssertJGuavaTest {
table.put(1, "A", "PRESENT");
table.put(1, "B", "ABSENT");
- assertThat(table)
- .hasRowCount(1)
- .containsValues("ABSENT")
- .containsCell(1, "B", "ABSENT");
+ assertThat(table).hasRowCount(1).containsValues("ABSENT").containsCell(1, "B", "ABSENT");
}
-
-
-
}
diff --git a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java
index 0cdbd0f7ea..f89defaed1 100644
--- a/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java
+++ b/assertj/src/test/java/com/baeldung/assertj/introduction/AssertJJava8Test.java
@@ -20,20 +20,14 @@ public class AssertJJava8Test {
public void givenOptional_shouldAssert() throws Exception {
final Optional givenOptional = Optional.of("something");
- assertThat(givenOptional)
- .isPresent()
- .hasValue("something");
+ assertThat(givenOptional).isPresent().hasValue("something");
}
@Test
public void givenPredicate_shouldAssert() throws Exception {
final Predicate predicate = s -> s.length() > 4;
- assertThat(predicate)
- .accepts("aaaaa", "bbbbb")
- .rejects("a", "b")
- .acceptsAll(asList("aaaaa", "bbbbb"))
- .rejectsAll(asList("a", "b"));
+ assertThat(predicate).accepts("aaaaa", "bbbbb").rejects("a", "b").acceptsAll(asList("aaaaa", "bbbbb")).rejectsAll(asList("a", "b"));
}
@Test
@@ -41,92 +35,74 @@ public class AssertJJava8Test {
final LocalDate givenLocalDate = LocalDate.of(2016, 7, 8);
final LocalDate todayDate = LocalDate.now();
- assertThat(givenLocalDate)
- .isBefore(LocalDate.of(2020, 7, 8))
- .isAfterOrEqualTo(LocalDate.of(1989, 7, 8));
+ assertThat(givenLocalDate).isBefore(LocalDate.of(2020, 7, 8)).isAfterOrEqualTo(LocalDate.of(1989, 7, 8));
- assertThat(todayDate)
- .isAfter(LocalDate.of(1989, 7, 8))
- .isToday();
+ assertThat(todayDate).isAfter(LocalDate.of(1989, 7, 8)).isToday();
}
@Test
public void givenLocalDateTime_shouldAssert() throws Exception {
final LocalDateTime givenLocalDate = LocalDateTime.of(2016, 7, 8, 12, 0);
- assertThat(givenLocalDate)
- .isBefore(LocalDateTime.of(2020, 7, 8, 11, 2));
+ assertThat(givenLocalDate).isBefore(LocalDateTime.of(2020, 7, 8, 11, 2));
}
@Test
public void givenLocalTime_shouldAssert() throws Exception {
final LocalTime givenLocalTime = LocalTime.of(12, 15);
- assertThat(givenLocalTime)
- .isAfter(LocalTime.of(1, 0))
- .hasSameHourAs(LocalTime.of(12, 0));
+ assertThat(givenLocalTime).isAfter(LocalTime.of(1, 0)).hasSameHourAs(LocalTime.of(12, 0));
}
@Test
public void givenList_shouldAssertFlatExtracting() throws Exception {
final List givenList = asList(ofYearDay(2016, 5), ofYearDay(2015, 6));
- assertThat(givenList)
- .flatExtracting(LocalDate::getYear)
- .contains(2015);
+ assertThat(givenList).flatExtracting(LocalDate::getYear).contains(2015);
}
@Test
public void givenList_shouldAssertFlatExtractingLeapYear() throws Exception {
final List givenList = asList(ofYearDay(2016, 5), ofYearDay(2015, 6));
- assertThat(givenList)
- .flatExtracting(LocalDate::isLeapYear)
- .contains(true);
+ assertThat(givenList).flatExtracting(LocalDate::isLeapYear).contains(true);
}
@Test
public void givenList_shouldAssertFlatExtractingClass() throws Exception {
final List givenList = asList(ofYearDay(2016, 5), ofYearDay(2015, 6));
- assertThat(givenList)
- .flatExtracting(Object::getClass)
- .contains(LocalDate.class);
+ assertThat(givenList).flatExtracting(Object::getClass).contains(LocalDate.class);
}
@Test
public void givenList_shouldAssertMultipleFlatExtracting() throws Exception {
final List givenList = asList(ofYearDay(2016, 5), ofYearDay(2015, 6));
- assertThat(givenList)
- .flatExtracting(LocalDate::getYear, LocalDate::getDayOfMonth)
- .contains(2015, 6);
+ assertThat(givenList).flatExtracting(LocalDate::getYear, LocalDate::getDayOfMonth).contains(2015, 6);
}
@Test
public void givenString_shouldSatisfy() throws Exception {
final String givenString = "someString";
- assertThat(givenString)
- .satisfies(s -> {
- assertThat(s).isNotEmpty();
- assertThat(s).hasSize(10);
- });
+ assertThat(givenString).satisfies(s -> {
+ assertThat(s).isNotEmpty();
+ assertThat(s).hasSize(10);
+ });
}
@Test
public void givenString_shouldMatch() throws Exception {
final String emptyString = "";
- assertThat(emptyString)
- .matches(String::isEmpty);
+ assertThat(emptyString).matches(String::isEmpty);
}
@Test
public void givenList_shouldHasOnlyOneElementSatisfying() throws Exception {
final List givenList = Arrays.asList("");
- assertThat(givenList)
- .hasOnlyOneElementSatisfying(s -> assertThat(s).isEmpty());
+ assertThat(givenList).hasOnlyOneElementSatisfying(s -> assertThat(s).isEmpty());
}
}
diff --git a/autovalue/pom.xml b/autovalue/pom.xml
index 57c4662e5c..32616dc8bc 100644
--- a/autovalue/pom.xml
+++ b/autovalue/pom.xml
@@ -41,5 +41,5 @@
4.12
3.6.0
-
+
diff --git a/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoney.java b/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoney.java
index ef39f499d1..5da6b48c81 100644
--- a/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoney.java
+++ b/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoney.java
@@ -4,12 +4,12 @@ import com.google.auto.value.AutoValue;
@AutoValue
public abstract class AutoValueMoney {
- public abstract String getCurrency();
+ public abstract String getCurrency();
- public abstract long getAmount();
+ public abstract long getAmount();
- public static AutoValueMoney create(String currency, long amount) {
- return new AutoValue_AutoValueMoney(currency, amount);
+ public static AutoValueMoney create(String currency, long amount) {
+ return new AutoValue_AutoValueMoney(currency, amount);
- }
+ }
}
diff --git a/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoneyWithBuilder.java b/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoneyWithBuilder.java
index a7ac93e45b..8a4dbcd5a5 100644
--- a/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoneyWithBuilder.java
+++ b/autovalue/src/main/java/com/baeldung/autovalue/AutoValueMoneyWithBuilder.java
@@ -4,20 +4,20 @@ import com.google.auto.value.AutoValue;
@AutoValue
public abstract class AutoValueMoneyWithBuilder {
- public abstract String getCurrency();
+ public abstract String getCurrency();
- public abstract long getAmount();
+ public abstract long getAmount();
- static Builder builder() {
- return new AutoValue_AutoValueMoneyWithBuilder.Builder();
- }
+ static Builder builder() {
+ return new AutoValue_AutoValueMoneyWithBuilder.Builder();
+ }
- @AutoValue.Builder
- abstract static class Builder {
- abstract Builder setCurrency(String currency);
+ @AutoValue.Builder
+ abstract static class Builder {
+ abstract Builder setCurrency(String currency);
- abstract Builder setAmount(long amount);
+ abstract Builder setAmount(long amount);
- abstract AutoValueMoneyWithBuilder build();
- }
+ abstract AutoValueMoneyWithBuilder build();
+ }
}
diff --git a/autovalue/src/main/java/com/baeldung/autovalue/Foo.java b/autovalue/src/main/java/com/baeldung/autovalue/Foo.java
index bb90070f6d..7bc893b044 100644
--- a/autovalue/src/main/java/com/baeldung/autovalue/Foo.java
+++ b/autovalue/src/main/java/com/baeldung/autovalue/Foo.java
@@ -3,49 +3,49 @@ package com.baeldung.autovalue;
import java.util.Objects;
public final class Foo {
- private final String text;
- private final int number;
+ private final String text;
+ private final int number;
- public Foo(String text, int number) {
- this.text = text;
- this.number = number;
- }
+ public Foo(String text, int number) {
+ this.text = text;
+ this.number = number;
+ }
- public String getText() {
- return text;
- }
+ public String getText() {
+ return text;
+ }
- public int getNumber() {
- return number;
- }
+ public int getNumber() {
+ return number;
+ }
- @Override
- public int hashCode() {
- return Objects.hash(text, number);
- }
+ @Override
+ public int hashCode() {
+ return Objects.hash(text, number);
+ }
- @Override
- public String toString() {
- return "Foo [text=" + text + ", number=" + number + "]";
- }
+ @Override
+ public String toString() {
+ return "Foo [text=" + text + ", number=" + number + "]";
+ }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Foo other = (Foo) obj;
- if (number != other.number)
- return false;
- if (text == null) {
- if (other.text != null)
- return false;
- } else if (!text.equals(other.text))
- return false;
- return true;
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Foo other = (Foo) obj;
+ if (number != other.number)
+ return false;
+ if (text == null) {
+ if (other.text != null)
+ return false;
+ } else if (!text.equals(other.text))
+ return false;
+ return true;
+ }
}
diff --git a/autovalue/src/main/java/com/baeldung/autovalue/ImmutableMoney.java b/autovalue/src/main/java/com/baeldung/autovalue/ImmutableMoney.java
index 04d29b6b09..d715f2047c 100644
--- a/autovalue/src/main/java/com/baeldung/autovalue/ImmutableMoney.java
+++ b/autovalue/src/main/java/com/baeldung/autovalue/ImmutableMoney.java
@@ -1,52 +1,53 @@
package com.baeldung.autovalue;
+
public final class ImmutableMoney {
- private final long amount;
- private final String currency;
- public ImmutableMoney(long amount, String currency) {
- this.amount = amount;
- this.currency = currency;
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (int) (amount ^ (amount >>> 32));
- result = prime * result
- + ((currency == null) ? 0 : currency.hashCode());
- return result;
- }
+ private final long amount;
+ private final String currency;
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- ImmutableMoney other = (ImmutableMoney) obj;
- if (amount != other.amount)
- return false;
- if (currency == null) {
- if (other.currency != null)
- return false;
- } else if (!currency.equals(other.currency))
- return false;
- return true;
- }
+ public ImmutableMoney(long amount, String currency) {
+ this.amount = amount;
+ this.currency = currency;
+ }
- public long getAmount() {
- return amount;
- }
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (int) (amount ^ (amount >>> 32));
+ result = prime * result + ((currency == null) ? 0 : currency.hashCode());
+ return result;
+ }
- public String getCurrency() {
- return currency;
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ImmutableMoney other = (ImmutableMoney) obj;
+ if (amount != other.amount)
+ return false;
+ if (currency == null) {
+ if (other.currency != null)
+ return false;
+ } else if (!currency.equals(other.currency))
+ return false;
+ return true;
+ }
- @Override
- public String toString() {
- return "ImmutableMoney [amount=" + amount + ", currency=" + currency
- + "]";
- }
+ public long getAmount() {
+ return amount;
+ }
+
+ public String getCurrency() {
+ return currency;
+ }
+
+ @Override
+ public String toString() {
+ return "ImmutableMoney [amount=" + amount + ", currency=" + currency + "]";
+ }
}
diff --git a/autovalue/src/main/java/com/baeldung/autovalue/MutableMoney.java b/autovalue/src/main/java/com/baeldung/autovalue/MutableMoney.java
index 6cf8b75f7d..d04a330a56 100644
--- a/autovalue/src/main/java/com/baeldung/autovalue/MutableMoney.java
+++ b/autovalue/src/main/java/com/baeldung/autovalue/MutableMoney.java
@@ -1,35 +1,34 @@
package com.baeldung.autovalue;
public class MutableMoney {
- @Override
- public String toString() {
- return "MutableMoney [amount=" + amount + ", currency=" + currency
- + "]";
- }
+ @Override
+ public String toString() {
+ return "MutableMoney [amount=" + amount + ", currency=" + currency + "]";
+ }
- public long getAmount() {
- return amount;
- }
+ public long getAmount() {
+ return amount;
+ }
- public void setAmount(long amount) {
- this.amount = amount;
- }
+ public void setAmount(long amount) {
+ this.amount = amount;
+ }
- public String getCurrency() {
- return currency;
- }
+ public String getCurrency() {
+ return currency;
+ }
- public void setCurrency(String currency) {
- this.currency = currency;
- }
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
- private long amount;
- private String currency;
+ private long amount;
+ private String currency;
- public MutableMoney(long amount, String currency) {
- super();
- this.amount = amount;
- this.currency = currency;
- }
+ public MutableMoney(long amount, String currency) {
+ super();
+ this.amount = amount;
+ this.currency = currency;
+ }
}
diff --git a/autovalue/src/test/java/com/baeldung/autovalue/MoneyUnitTest.java b/autovalue/src/test/java/com/baeldung/autovalue/MoneyUnitTest.java
index a9482125a6..f0dffa43a7 100644
--- a/autovalue/src/test/java/com/baeldung/autovalue/MoneyUnitTest.java
+++ b/autovalue/src/test/java/com/baeldung/autovalue/MoneyUnitTest.java
@@ -5,55 +5,59 @@ import static org.junit.Assert.*;
import org.junit.Test;
public class MoneyUnitTest {
- @Test
- public void givenTwoSameValueMoneyObjects_whenEqualityTestFails_thenCorrect() {
- MutableMoney m1 = new MutableMoney(10000, "USD");
- MutableMoney m2 = new MutableMoney(10000, "USD");
- assertFalse(m1.equals(m2));
- }
+ @Test
+ public void givenTwoSameValueMoneyObjects_whenEqualityTestFails_thenCorrect() {
+ MutableMoney m1 = new MutableMoney(10000, "USD");
+ MutableMoney m2 = new MutableMoney(10000, "USD");
+ assertFalse(m1.equals(m2));
+ }
- @Test
- public void givenTwoSameValueMoneyValueObjects_whenEqualityTestPasses_thenCorrect() {
- ImmutableMoney m1 = new ImmutableMoney(10000, "USD");
- ImmutableMoney m2 = new ImmutableMoney(10000, "USD");
- assertTrue(m1.equals(m2));
- }
+ @Test
+ public void givenTwoSameValueMoneyValueObjects_whenEqualityTestPasses_thenCorrect() {
+ ImmutableMoney m1 = new ImmutableMoney(10000, "USD");
+ ImmutableMoney m2 = new ImmutableMoney(10000, "USD");
+ assertTrue(m1.equals(m2));
+ }
- @Test
- public void givenValueTypeWithAutoValue_whenFieldsCorrectlySet_thenCorrect() {
- AutoValueMoney m = AutoValueMoney.create("USD", 10000);
- assertEquals(m.getAmount(), 10000);
- assertEquals(m.getCurrency(), "USD");
- }
+ @Test
+ public void givenValueTypeWithAutoValue_whenFieldsCorrectlySet_thenCorrect() {
+ AutoValueMoney m = AutoValueMoney.create("USD", 10000);
+ assertEquals(m.getAmount(), 10000);
+ assertEquals(m.getCurrency(), "USD");
+ }
- @Test
- public void given2EqualValueTypesWithAutoValue_whenEqual_thenCorrect() {
- AutoValueMoney m1 = AutoValueMoney.create("USD", 5000);
- AutoValueMoney m2 = AutoValueMoney.create("USD", 5000);
- assertTrue(m1.equals(m2));
- }
- @Test
- public void given2DifferentValueTypesWithAutoValue_whenNotEqual_thenCorrect() {
- AutoValueMoney m1 = AutoValueMoney.create("GBP", 5000);
- AutoValueMoney m2 = AutoValueMoney.create("USD", 5000);
- assertFalse(m1.equals(m2));
- }
- @Test
- public void given2EqualValueTypesWithBuilder_whenEqual_thenCorrect() {
- AutoValueMoneyWithBuilder m1 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
- AutoValueMoneyWithBuilder m2 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
- assertTrue(m1.equals(m2));
- }
- @Test
- public void given2DifferentValueTypesBuilder_whenNotEqual_thenCorrect() {
- AutoValueMoneyWithBuilder m1 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
- AutoValueMoneyWithBuilder m2 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("GBP").build();
- assertFalse(m1.equals(m2));
- }
- @Test
- public void givenValueTypeWithBuilder_whenFieldsCorrectlySet_thenCorrect() {
- AutoValueMoneyWithBuilder m = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
- assertEquals(m.getAmount(), 5000);
- assertEquals(m.getCurrency(), "USD");
- }
+ @Test
+ public void given2EqualValueTypesWithAutoValue_whenEqual_thenCorrect() {
+ AutoValueMoney m1 = AutoValueMoney.create("USD", 5000);
+ AutoValueMoney m2 = AutoValueMoney.create("USD", 5000);
+ assertTrue(m1.equals(m2));
+ }
+
+ @Test
+ public void given2DifferentValueTypesWithAutoValue_whenNotEqual_thenCorrect() {
+ AutoValueMoney m1 = AutoValueMoney.create("GBP", 5000);
+ AutoValueMoney m2 = AutoValueMoney.create("USD", 5000);
+ assertFalse(m1.equals(m2));
+ }
+
+ @Test
+ public void given2EqualValueTypesWithBuilder_whenEqual_thenCorrect() {
+ AutoValueMoneyWithBuilder m1 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
+ AutoValueMoneyWithBuilder m2 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
+ assertTrue(m1.equals(m2));
+ }
+
+ @Test
+ public void given2DifferentValueTypesBuilder_whenNotEqual_thenCorrect() {
+ AutoValueMoneyWithBuilder m1 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
+ AutoValueMoneyWithBuilder m2 = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("GBP").build();
+ assertFalse(m1.equals(m2));
+ }
+
+ @Test
+ public void givenValueTypeWithBuilder_whenFieldsCorrectlySet_thenCorrect() {
+ AutoValueMoneyWithBuilder m = AutoValueMoneyWithBuilder.builder().setAmount(5000).setCurrency("USD").build();
+ assertEquals(m.getAmount(), 5000);
+ assertEquals(m.getCurrency(), "USD");
+ }
}
diff --git a/cdi/pom.xml b/cdi/pom.xml
index 231390ea5c..e5aaeb2c7b 100644
--- a/cdi/pom.xml
+++ b/cdi/pom.xml
@@ -45,7 +45,7 @@
-
+
@@ -61,7 +61,7 @@
-
+
integration
@@ -101,7 +101,7 @@
1.8.9
2.4.1.Final
4.12
- 2.19.1
+ 2.19.1
\ No newline at end of file
diff --git a/core-java-9/pom.xml b/core-java-9/pom.xml
index bf9325c935..9d1ff29ef7 100644
--- a/core-java-9/pom.xml
+++ b/core-java-9/pom.xml
@@ -1,91 +1,90 @@
-
- 4.0.0
- com.baeldung
- core-java9
- 0.2-SNAPSHOT
+
+ 4.0.0
+ com.baeldung
+ core-java9
+ 0.2-SNAPSHOT
- core-java9
+ core-java9
-
-
- apache.snapshots
- http://repository.apache.org/snapshots/
-
-
+
+
+ apache.snapshots
+ http://repository.apache.org/snapshots/
+
+
-
+
-
- org.slf4j
- slf4j-api
- ${org.slf4j.version}
-
+
+ org.slf4j
+ slf4j-api
+ ${org.slf4j.version}
+
+
+ org.hamcrest
+ hamcrest-library
+ ${org.hamcrest.version}
+ test
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
-
- org.hamcrest
- hamcrest-library
- ${org.hamcrest.version}
- test
-
+
+ org.mockito
+ mockito-core
+ ${mockito.version}
+ test
+
-
- junit
- junit
- ${junit.version}
- test
-
+
-
- org.mockito
- mockito-core
- ${mockito.version}
- test
-
+
+ core-java-9
-
+
-
- core-java-9
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+ 1.9
+
+
-
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire-plugin.version}
+
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven-compiler-plugin.version}
-
-
- 1.9
- true
-
-
+
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire-plugin.version}
-
+
-
+
+
+ UTF-8
+
+
+ 1.7.21
-
+
+ 3.6-jigsaw-SNAPSHOT
+ 2.19.1
-
-
- 1.7.21
-
-
- 3.6-jigsaw-SNAPSHOT
- 2.19.1
-
-
- 1.3
- 4.12
- 1.10.19
-
+
+ 1.3
+ 4.12
+ 1.10.19
+
diff --git a/core-java-9/src/main/java/com/baeldung/java9/language/PrivateInterface.java b/core-java-9/src/main/java/com/baeldung/java9/language/PrivateInterface.java
index fd6a496b18..f7b2fad891 100644
--- a/core-java-9/src/main/java/com/baeldung/java9/language/PrivateInterface.java
+++ b/core-java-9/src/main/java/com/baeldung/java9/language/PrivateInterface.java
@@ -1,16 +1,16 @@
package com.baeldung.java9.language;
public interface PrivateInterface {
-
+
private static String staticPrivate() {
return "static private";
}
-
+
private String instancePrivate() {
return "instance private";
}
-
- public default void check(){
+
+ public default void check() {
String result = staticPrivate();
if (!result.equals("static private"))
throw new AssertionError("Incorrect result for static private interface method");
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ProcessUtils.java b/core-java-9/src/main/java/com/baeldung/java9/process/ProcessUtils.java
index d6682bd0c8..5cd2567fb3 100644
--- a/core-java-9/src/main/java/com/baeldung/java9/process/ProcessUtils.java
+++ b/core-java-9/src/main/java/com/baeldung/java9/process/ProcessUtils.java
@@ -8,37 +8,36 @@ import java.time.Duration;
import java.time.Instant;
import java.util.stream.Stream;
-
public class ProcessUtils {
- public static String getClassPath(){
+ public static String getClassPath() {
String cp = System.getProperty("java.class.path");
- System.out.println("ClassPath is "+cp);
+ System.out.println("ClassPath is " + cp);
return cp;
}
- public static File getJavaCmd() throws IOException{
+ public static File getJavaCmd() throws IOException {
String javaHome = System.getProperty("java.home");
File javaCmd;
- if(System.getProperty("os.name").startsWith("Win")){
+ if (System.getProperty("os.name").startsWith("Win")) {
javaCmd = new File(javaHome, "bin/java.exe");
- }else{
+ } else {
javaCmd = new File(javaHome, "bin/java");
}
- if(javaCmd.canExecute()){
+ if (javaCmd.canExecute()) {
return javaCmd;
- }else{
+ } else {
throw new UnsupportedOperationException(javaCmd.getCanonicalPath() + " is not executable");
}
}
- public static String getMainClass(){
+ public static String getMainClass() {
return System.getProperty("sun.java.command");
}
- public static String getSystemProperties(){
- StringBuilder sb = new StringBuilder();
- System.getProperties().forEach((s1, s2) -> sb.append(s1 +" - "+ s2) );
+ public static String getSystemProperties() {
+ StringBuilder sb = new StringBuilder();
+ System.getProperties().forEach((s1, s2) -> sb.append(s1 + " - " + s2));
return sb.toString();
}
}
diff --git a/core-java-9/src/main/java/com/baeldung/java9/process/ServiceMain.java b/core-java-9/src/main/java/com/baeldung/java9/process/ServiceMain.java
index 458f746496..299f74e877 100644
--- a/core-java-9/src/main/java/com/baeldung/java9/process/ServiceMain.java
+++ b/core-java-9/src/main/java/com/baeldung/java9/process/ServiceMain.java
@@ -8,7 +8,6 @@ public class ServiceMain {
ProcessHandle thisProcess = ProcessHandle.current();
long pid = thisProcess.getPid();
-
Optional opArgs = Optional.ofNullable(args);
String procName = opArgs.map(str -> str.length > 0 ? str[0] : null).orElse(System.getProperty("sun.java.command"));
diff --git a/core-java-9/src/test/java/com/baeldung/java9/Java9OptionalsStreamTest.java b/core-java-9/src/test/java/com/baeldung/java9/Java9OptionalsStreamTest.java
index b0684a94f8..121c17a860 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/Java9OptionalsStreamTest.java
+++ b/core-java-9/src/test/java/com/baeldung/java9/Java9OptionalsStreamTest.java
@@ -19,10 +19,7 @@ public class Java9OptionalsStreamTest {
public void filterOutPresentOptionalsWithFilter() {
assertEquals(4, listOfOptionals.size());
- List filteredList = listOfOptionals.stream()
- .filter(Optional::isPresent)
- .map(Optional::get)
- .collect(Collectors.toList());
+ List filteredList = listOfOptionals.stream().filter(Optional::isPresent).map(Optional::get).collect(Collectors.toList());
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
@@ -33,9 +30,7 @@ public class Java9OptionalsStreamTest {
public void filterOutPresentOptionalsWithFlatMap() {
assertEquals(4, listOfOptionals.size());
- List filteredList = listOfOptionals.stream()
- .flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty())
- .collect(Collectors.toList());
+ List filteredList = listOfOptionals.stream().flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty()).collect(Collectors.toList());
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
@@ -46,9 +41,7 @@ public class Java9OptionalsStreamTest {
public void filterOutPresentOptionalsWithFlatMap2() {
assertEquals(4, listOfOptionals.size());
- List filteredList = listOfOptionals.stream()
- .flatMap(o -> o.map(Stream::of).orElseGet(Stream::empty))
- .collect(Collectors.toList());
+ List filteredList = listOfOptionals.stream().flatMap(o -> o.map(Stream::of).orElseGet(Stream::empty)).collect(Collectors.toList());
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
@@ -59,9 +52,7 @@ public class Java9OptionalsStreamTest {
public void filterOutPresentOptionalsWithJava9() {
assertEquals(4, listOfOptionals.size());
- List filteredList = listOfOptionals.stream()
- .flatMap(Optional::stream)
- .collect(Collectors.toList());
+ List filteredList = listOfOptionals.stream().flatMap(Optional::stream).collect(Collectors.toList());
assertEquals(2, filteredList.size());
assertEquals("foo", filteredList.get(0));
diff --git a/core-java-9/src/test/java/com/baeldung/java9/MultiResultionImageTest.java b/core-java-9/src/test/java/com/baeldung/java9/MultiResultionImageTest.java
index a00646e4db..c0a5042b58 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/MultiResultionImageTest.java
+++ b/core-java-9/src/test/java/com/baeldung/java9/MultiResultionImageTest.java
@@ -1,5 +1,5 @@
package com.baeldung.java9;
-
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
@@ -13,7 +13,6 @@ import org.junit.Test;
public class MultiResultionImageTest {
-
@Test
public void baseMultiResImageTest() {
int baseIndex = 1;
@@ -38,10 +37,8 @@ public class MultiResultionImageTest {
return 8 * (i + 1);
}
-
private static BufferedImage createImage(int i) {
- return new BufferedImage(getSize(i), getSize(i),
- BufferedImage.TYPE_INT_RGB);
+ return new BufferedImage(getSize(i), getSize(i), BufferedImage.TYPE_INT_RGB);
}
}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/httpclient/SimpleHttpRequestsTest.java b/core-java-9/src/test/java/com/baeldung/java9/httpclient/SimpleHttpRequestsTest.java
index ab28b0a805..442a18cbf3 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/httpclient/SimpleHttpRequestsTest.java
+++ b/core-java-9/src/test/java/com/baeldung/java9/httpclient/SimpleHttpRequestsTest.java
@@ -1,6 +1,4 @@
-package com.baeldung.java9.httpclient;
-
-
+package com.baeldung.java9.httpclient;
import static java.net.HttpURLConnection.HTTP_OK;
import static org.junit.Assert.assertTrue;
@@ -28,8 +26,8 @@ import org.junit.Test;
public class SimpleHttpRequestsTest {
- private URI httpURI;
-
+ private URI httpURI;
+
@Before
public void init() throws URISyntaxException {
httpURI = new URI("http://www.baeldung.com/");
@@ -37,26 +35,26 @@ public class SimpleHttpRequestsTest {
@Test
public void quickGet() throws IOException, InterruptedException, URISyntaxException {
- HttpRequest request = HttpRequest.create( httpURI ).GET();
+ HttpRequest request = HttpRequest.create(httpURI).GET();
HttpResponse response = request.response();
int responseStatusCode = response.statusCode();
String responseBody = response.body(HttpResponse.asString());
- assertTrue("Get response status code is bigger then 400", responseStatusCode < 400);
+ assertTrue("Get response status code is bigger then 400", responseStatusCode < 400);
}
-
+
@Test
- public void asynchronousGet() throws URISyntaxException, IOException, InterruptedException, ExecutionException{
+ public void asynchronousGet() throws URISyntaxException, IOException, InterruptedException, ExecutionException {
HttpRequest request = HttpRequest.create(httpURI).GET();
long before = System.currentTimeMillis();
CompletableFuture futureResponse = request.responseAsync();
- futureResponse.thenAccept( response -> {
+ futureResponse.thenAccept(response -> {
String responseBody = response.body(HttpResponse.asString());
- });
+ });
HttpResponse resp = futureResponse.get();
HttpHeaders hs = resp.headers();
- assertTrue("There should be more then 1 header.", hs.map().size() >1);
+ assertTrue("There should be more then 1 header.", hs.map().size() > 1);
}
-
+
@Test
public void postMehtod() throws URISyntaxException, IOException, InterruptedException {
HttpRequest.Builder requestBuilder = HttpRequest.create(httpURI);
@@ -66,61 +64,63 @@ public class SimpleHttpRequestsTest {
int statusCode = response.statusCode();
assertTrue("HTTP return code", statusCode == HTTP_OK);
}
-
+
@Test
- public void configureHttpClient() throws NoSuchAlgorithmException, URISyntaxException, IOException, InterruptedException{
+ public void configureHttpClient() throws NoSuchAlgorithmException, URISyntaxException, IOException, InterruptedException {
CookieManager cManager = new CookieManager();
cManager.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER);
-
- SSLParameters sslParam = new SSLParameters (new String[] { "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" }, new String[] { "TLSv1.2" });
-
+
+ SSLParameters sslParam = new SSLParameters(new String[] { "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" }, new String[] { "TLSv1.2" });
+
HttpClient.Builder hcBuilder = HttpClient.create();
hcBuilder.cookieManager(cManager).sslContext(SSLContext.getDefault()).sslParameters(sslParam);
HttpClient httpClient = hcBuilder.build();
HttpRequest.Builder reqBuilder = httpClient.request(new URI("https://www.facebook.com"));
-
+
HttpRequest request = reqBuilder.followRedirects(HttpClient.Redirect.ALWAYS).GET();
HttpResponse response = request.response();
int statusCode = response.statusCode();
assertTrue("HTTP return code", statusCode == HTTP_OK);
}
-
- SSLParameters getDefaultSSLParameters() throws NoSuchAlgorithmException{
+
+ SSLParameters getDefaultSSLParameters() throws NoSuchAlgorithmException {
SSLParameters sslP1 = SSLContext.getDefault().getSupportedSSLParameters();
- String [] proto = sslP1.getApplicationProtocols();
- String [] cifers = sslP1.getCipherSuites();
+ String[] proto = sslP1.getApplicationProtocols();
+ String[] cifers = sslP1.getCipherSuites();
System.out.println(printStringArr(proto));
System.out.println(printStringArr(cifers));
return sslP1;
}
-
- String printStringArr(String ... args ){
- if(args == null){
+
+ String printStringArr(String... args) {
+ if (args == null) {
return null;
}
StringBuilder sb = new StringBuilder();
- for (String s : args){
+ for (String s : args) {
sb.append(s);
sb.append("\n");
}
return sb.toString();
}
-
- String printHeaders(HttpHeaders h){
- if(h == null){
+
+ String printHeaders(HttpHeaders h) {
+ if (h == null) {
return null;
}
-
- StringBuilder sb = new StringBuilder();
- Map> hMap = h.map();
- for(String k : hMap.keySet()){
- sb.append(k).append(":");
- List l = hMap.get(k);
- if( l != null ){
- l.forEach( s -> { sb.append(s).append(","); } );
- }
- sb.append("\n");
- }
- return sb.toString();
+
+ StringBuilder sb = new StringBuilder();
+ Map> hMap = h.map();
+ for (String k : hMap.keySet()) {
+ sb.append(k).append(":");
+ List l = hMap.get(k);
+ if (l != null) {
+ l.forEach(s -> {
+ sb.append(s).append(",");
+ });
+ }
+ sb.append("\n");
+ }
+ return sb.toString();
}
}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/language/TryWithResourcesTest.java b/core-java-9/src/test/java/com/baeldung/java9/language/TryWithResourcesTest.java
index 687dfbc390..6bec3125cc 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/language/TryWithResourcesTest.java
+++ b/core-java-9/src/test/java/com/baeldung/java9/language/TryWithResourcesTest.java
@@ -7,7 +7,7 @@ public class TryWithResourcesTest {
static int closeCount = 0;
- static class MyAutoCloseable implements AutoCloseable{
+ static class MyAutoCloseable implements AutoCloseable {
final FinalWrapper finalWrapper = new FinalWrapper();
public void close() {
@@ -57,7 +57,6 @@ public class TryWithResourcesTest {
assertEquals("Expected and Actual does not match", 5, closeCount);
}
-
static class CloseableException extends Exception implements AutoCloseable {
@Override
public void close() {
@@ -66,5 +65,3 @@ public class TryWithResourcesTest {
}
}
-
-
diff --git a/core-java-9/src/test/java/com/baeldung/java9/language/collections/ListFactoryMethodsTest.java b/core-java-9/src/test/java/com/baeldung/java9/language/collections/ListFactoryMethodsTest.java
new file mode 100644
index 0000000000..8e19d00b6a
--- /dev/null
+++ b/core-java-9/src/test/java/com/baeldung/java9/language/collections/ListFactoryMethodsTest.java
@@ -0,0 +1,61 @@
+package com.baeldung.java9.language.collections;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+public class ListFactoryMethodsTest {
+
+ @Test
+ public void whenListCreated_thenSuccess() {
+ List traditionlList = new ArrayList();
+ traditionlList.add("foo");
+ traditionlList.add("bar");
+ traditionlList.add("baz");
+ List factoryCreatedList = List.of("foo", "bar", "baz");
+ assertEquals(traditionlList, factoryCreatedList);
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemAdd_ifUnSupportedOpExpnThrown_thenSuccess() {
+ List list = List.of("foo", "bar");
+ list.add("baz");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemModify_ifUnSupportedOpExpnThrown_thenSuccess() {
+ List list = List.of("foo", "bar");
+ list.set(0, "baz");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemRemove_ifUnSupportedOpExpnThrown_thenSuccess() {
+ List list = List.of("foo", "bar");
+ list.remove("foo");
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void onNullElem_ifNullPtrExpnThrown_thenSuccess() {
+ List.of("foo", "bar", null);
+ }
+
+ @Test
+ public void ifNotArrayList_thenSuccess() {
+ List list = List.of("foo", "bar");
+ assertFalse(list instanceof ArrayList);
+ }
+
+ @Test
+ public void ifListSizeIsOne_thenSuccess() {
+ int[] arr = { 1, 2, 3, 4 };
+ List list = List.of(arr);
+ assertEquals(1, list.size());
+ assertArrayEquals(arr, list.get(0));
+ }
+
+}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/language/collections/MapFactoryMethodsTest.java b/core-java-9/src/test/java/com/baeldung/java9/language/collections/MapFactoryMethodsTest.java
new file mode 100644
index 0000000000..13469ff93d
--- /dev/null
+++ b/core-java-9/src/test/java/com/baeldung/java9/language/collections/MapFactoryMethodsTest.java
@@ -0,0 +1,62 @@
+package com.baeldung.java9.language.collections;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+public class MapFactoryMethodsTest {
+
+ @Test
+ public void whenMapCreated_thenSuccess() {
+ Map traditionlMap = new HashMap();
+ traditionlMap.put("foo", "a");
+ traditionlMap.put("bar", "b");
+ traditionlMap.put("baz", "c");
+ Map factoryCreatedMap = Map.of("foo", "a", "bar", "b", "baz", "c");
+ assertEquals(traditionlMap, factoryCreatedMap);
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemAdd_ifUnSupportedOpExpnThrown_thenSuccess() {
+ Map map = Map.of("foo", "a", "bar", "b");
+ map.put("baz", "c");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemModify_ifUnSupportedOpExpnThrown_thenSuccess() {
+ Map map = Map.of("foo", "a", "bar", "b");
+ map.put("foo", "c");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemRemove_ifUnSupportedOpExpnThrown_thenSuccess() {
+ Map map = Map.of("foo", "a", "bar", "b");
+ map.remove("foo");
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void givenDuplicateKeys_ifIllegalArgExp_thenSuccess() {
+ Map.of("foo", "a", "foo", "b");
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void onNullKey_ifNullPtrExp_thenSuccess() {
+ Map.of("foo", "a", null, "b");
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void onNullValue_ifNullPtrExp_thenSuccess() {
+ Map.of("foo", "a", "bar", null);
+ }
+
+ @Test
+ public void ifNotHashMap_thenSuccess() {
+ Map map = Map.of("foo", "a", "bar", "b");
+ assertFalse(map instanceof HashMap);
+ }
+
+}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/language/collections/SetFactoryMethodsTest.java b/core-java-9/src/test/java/com/baeldung/java9/language/collections/SetFactoryMethodsTest.java
new file mode 100644
index 0000000000..b8537d7c82
--- /dev/null
+++ b/core-java-9/src/test/java/com/baeldung/java9/language/collections/SetFactoryMethodsTest.java
@@ -0,0 +1,60 @@
+package com.baeldung.java9.language.collections;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+public class SetFactoryMethodsTest {
+
+ @Test
+ public void whenSetCreated_thenSuccess() {
+ Set traditionlSet = new HashSet();
+ traditionlSet.add("foo");
+ traditionlSet.add("bar");
+ traditionlSet.add("baz");
+ Set factoryCreatedSet = Set.of("foo", "bar", "baz");
+ assertEquals(traditionlSet, factoryCreatedSet);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void onDuplicateElem_IfIllegalArgExp_thenSuccess() {
+ Set.of("foo", "bar", "baz", "foo");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemAdd_ifUnSupportedOpExpnThrown_thenSuccess() {
+ Set set = Set.of("foo", "bar");
+ set.add("baz");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void onElemRemove_ifUnSupportedOpExpnThrown_thenSuccess() {
+ Set set = Set.of("foo", "bar", "baz");
+ set.remove("foo");
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void onNullElem_ifNullPtrExpnThrown_thenSuccess() {
+ Set.of("foo", "bar", null);
+ }
+
+ @Test
+ public void ifNotHashSet_thenSuccess() {
+ Set list = Set.of("foo", "bar");
+ assertFalse(list instanceof HashSet);
+ }
+
+ @Test
+ public void ifSetSizeIsOne_thenSuccess() {
+ int[] arr = { 1, 2, 3, 4 };
+ Set set = Set.of(arr);
+ assertEquals(1, set.size());
+ assertArrayEquals(arr, set.iterator().next());
+ }
+
+}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/language/stream/CollectorImprovementTest.java b/core-java-9/src/test/java/com/baeldung/java9/language/stream/CollectorImprovementTest.java
new file mode 100644
index 0000000000..ea76a76a5f
--- /dev/null
+++ b/core-java-9/src/test/java/com/baeldung/java9/language/stream/CollectorImprovementTest.java
@@ -0,0 +1,61 @@
+package com.baeldung.java9.language.stream;
+
+import org.junit.Test;
+
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.function.Function;
+
+import static org.junit.Assert.assertEquals;
+
+public class CollectorImprovementTest {
+ @Test
+ public void givenList_whenSatifyPredicate_thenMapValueWithOccurences() {
+ List numbers = List.of(1, 2, 3, 5, 5);
+
+ Map result = numbers.stream().filter(val -> val > 3).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
+
+ assertEquals(1, result.size());
+
+ result = numbers.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.filtering(val -> val > 3, Collectors.counting())));
+
+ assertEquals(4, result.size());
+ }
+
+ @Test
+ public void givenListOfBlogs_whenAuthorName_thenMapAuthorWithComments() {
+ Blog blog1 = new Blog("1", "Nice", "Very Nice");
+ Blog blog2 = new Blog("2", "Disappointing", "Ok", "Could be better");
+ List blogs = List.of(blog1, blog2);
+
+ Map>> authorComments1 = blogs.stream().collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.mapping(Blog::getComments, Collectors.toList())));
+
+ assertEquals(2, authorComments1.size());
+ assertEquals(2, authorComments1.get("1").get(0).size());
+ assertEquals(3, authorComments1.get("2").get(0).size());
+
+ Map> authorComments2 = blogs.stream().collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.flatMapping(blog -> blog.getComments().stream(), Collectors.toList())));
+
+ assertEquals(2, authorComments2.size());
+ assertEquals(2, authorComments2.get("1").size());
+ assertEquals(3, authorComments2.get("2").size());
+ }
+}
+
+class Blog {
+ private String authorName;
+ private List comments;
+
+ public Blog(String authorName, String... comments) {
+ this.authorName = authorName;
+ this.comments = List.of(comments);
+ }
+
+ public String getAuthorName() {
+ return this.authorName;
+ }
+
+ public List getComments() {
+ return this.comments;
+ }
+}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/language/stream/StreamFeaturesTest.java b/core-java-9/src/test/java/com/baeldung/java9/language/stream/StreamFeaturesTest.java
index a260e84164..72d17498a9 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/language/stream/StreamFeaturesTest.java
+++ b/core-java-9/src/test/java/com/baeldung/java9/language/stream/StreamFeaturesTest.java
@@ -17,16 +17,11 @@ public class StreamFeaturesTest {
public static class TakeAndDropWhileTest {
public Stream getStreamAfterTakeWhileOperation() {
- return Stream
- .iterate("", s -> s + "s")
- .takeWhile(s -> s.length() < 10);
+ return Stream.iterate("", s -> s + "s").takeWhile(s -> s.length() < 10);
}
public Stream getStreamAfterDropWhileOperation() {
- return Stream
- .iterate("", s -> s + "s")
- .takeWhile(s -> s.length() < 10)
- .dropWhile(s -> !s.contains("sssss"));
+ return Stream.iterate("", s -> s + "s").takeWhile(s -> s.length() < 10).dropWhile(s -> !s.contains("sssss"));
}
@Test
@@ -72,25 +67,25 @@ public class StreamFeaturesTest {
}
- public static class OfNullableTest {
+ public static class OfNullableTest {
private List collection = Arrays.asList("A", "B", "C");
- private Map map = new HashMap<>() {{
- put("A", 10);
- put("C", 30);
- }};
+ private Map map = new HashMap<>() {
+ {
+ put("A", 10);
+ put("C", 30);
+ }
+ };
private Stream getStreamWithOfNullable() {
- return collection.stream()
- .flatMap(s -> Stream.ofNullable(map.get(s)));
+ return collection.stream().flatMap(s -> Stream.ofNullable(map.get(s)));
}
private Stream getStream() {
- return collection.stream()
- .flatMap(s -> {
- Integer temp = map.get(s);
- return temp != null ? Stream.of(temp) : Stream.empty();
- });
+ return collection.stream().flatMap(s -> {
+ Integer temp = map.get(s);
+ return temp != null ? Stream.of(temp) : Stream.empty();
+ });
}
private List testOfNullableFrom(Stream stream) {
@@ -107,10 +102,7 @@ public class StreamFeaturesTest {
@Test
public void testOfNullable() {
- assertEquals(
- testOfNullableFrom(getStream()),
- testOfNullableFrom(getStreamWithOfNullable())
- );
+ assertEquals(testOfNullableFrom(getStream()), testOfNullableFrom(getStreamWithOfNullable()));
}
diff --git a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessApi.java b/core-java-9/src/test/java/com/baeldung/java9/process/ProcessApi.java
index 419516cb64..9c9951bc54 100644
--- a/core-java-9/src/test/java/com/baeldung/java9/process/ProcessApi.java
+++ b/core-java-9/src/test/java/com/baeldung/java9/process/ProcessApi.java
@@ -22,90 +22,89 @@ import static org.junit.Assert.assertTrue;
public class ProcessApi {
-
@Before
public void init() {
}
@Test
- public void processInfoExample()throws NoSuchAlgorithmException{
+ public void processInfoExample() throws NoSuchAlgorithmException {
ProcessHandle self = ProcessHandle.current();
long PID = self.getPid();
ProcessHandle.Info procInfo = self.info();
Optional args = procInfo.arguments();
- Optional cmd = procInfo.commandLine();
+ Optional cmd = procInfo.commandLine();
Optional startTime = procInfo.startInstant();
Optional cpuUsage = procInfo.totalCpuDuration();
waistCPU();
- System.out.println("Args "+ args);
- System.out.println("Command " +cmd.orElse("EmptyCmd"));
- System.out.println("Start time: "+ startTime.get().toString());
+ System.out.println("Args " + args);
+ System.out.println("Command " + cmd.orElse("EmptyCmd"));
+ System.out.println("Start time: " + startTime.get().toString());
System.out.println(cpuUsage.get().toMillis());
-
+
Stream allProc = ProcessHandle.current().children();
allProc.forEach(p -> {
- System.out.println("Proc "+ p.getPid());
+ System.out.println("Proc " + p.getPid());
});
}
@Test
- public void createAndDestroyProcess() throws IOException, InterruptedException{
+ public void createAndDestroyProcess() throws IOException, InterruptedException {
int numberOfChildProcesses = 5;
- for(int i=0; i < numberOfChildProcesses; i++){
+ for (int i = 0; i < numberOfChildProcesses; i++) {
createNewJVM(ServiceMain.class, i).getPid();
}
-
- Stream childProc = ProcessHandle.current().children();
- assertEquals( childProc.count(), numberOfChildProcesses);
-
+
+ Stream childProc = ProcessHandle.current().children();
+ assertEquals(childProc.count(), numberOfChildProcesses);
+
childProc = ProcessHandle.current().children();
childProc.forEach(processHandle -> {
- assertTrue("Process "+ processHandle.getPid() +" should be alive!", processHandle.isAlive());
+ assertTrue("Process " + processHandle.getPid() + " 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.getPid() + " has stopped");
});
});
-
+
Thread.sleep(10000);
-
+
childProc = ProcessHandle.current().children();
childProc.forEach(procHandle -> {
- assertTrue("Could not kill process "+procHandle.getPid(), procHandle.destroy());
+ assertTrue("Could not kill process " + procHandle.getPid(), 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.getPid() + " should not be alive!", procHandle.isAlive());
});
-
+
}
- private Process createNewJVM(Class mainClass, int number) throws IOException{
+ private Process createNewJVM(Class mainClass, int number) throws IOException {
ArrayList cmdParams = new ArrayList(5);
cmdParams.add(ProcessUtils.getJavaCmd().getAbsolutePath());
cmdParams.add("-cp");
cmdParams.add(ProcessUtils.getClassPath());
cmdParams.add(mainClass.getName());
- cmdParams.add("Service "+ number);
+ cmdParams.add("Service " + number);
ProcessBuilder myService = new ProcessBuilder(cmdParams);
myService.inheritIO();
return myService.start();
}
-
- private void waistCPU() throws NoSuchAlgorithmException{
+
+ private void waistCPU() throws NoSuchAlgorithmException {
ArrayList randArr = new ArrayList(4096);
SecureRandom sr = SecureRandom.getInstanceStrong();
Duration somecpu = Duration.ofMillis(4200L);
Instant end = Instant.now().plus(somecpu);
while (Instant.now().isBefore(end)) {
- //System.out.println(sr.nextInt());
- randArr.add( sr.nextInt() );
+ // System.out.println(sr.nextInt());
+ randArr.add(sr.nextInt());
}
}
diff --git a/core-java/.gitignore b/core-java/.gitignore
index 464f7e5e38..251a8755bd 100644
--- a/core-java/.gitignore
+++ b/core-java/.gitignore
@@ -16,3 +16,7 @@
*.txt
/bin/
/temp
+
+#IntelliJ specific
+.idea
+*.iml
\ No newline at end of file
diff --git a/core-java/README.md b/core-java/README.md
index 16cac81526..cd16935864 100644
--- a/core-java/README.md
+++ b/core-java/README.md
@@ -53,3 +53,7 @@
- [Calculate the Size of a File in Java](http://www.baeldung.com/java-file-size)
- [The Basics of Java Generics](http://www.baeldung.com/java-generics)
- [The Traveling Salesman Problem in Java](http://www.baeldung.com/java-simulated-annealing-for-traveling-salesman)
+- [How to Create an Executable JAR with Maven](http://www.baeldung.com/executable-jar-with-maven)
+- [Guide to java.util.concurrent.Future](http://www.baeldung.com/java-future)
+- [Guide to java.util.concurrent.BlockingQueue](http://www.baeldung.com/java-blocking-queue)
+- [Guide to CountDownLatch in Java](http://www.baeldung.com/java-countdown-latch)
diff --git a/core-java/pom.xml b/core-java/pom.xml
index 6979d980b7..85afee2968 100644
--- a/core-java/pom.xml
+++ b/core-java/pom.xml
@@ -63,6 +63,7 @@
grep4j
${grep4j.version}
+
@@ -352,7 +353,7 @@
1.1.7
- 19.0
+ 21.0
3.5
1.55
1.10
diff --git a/core-java/src/main/java/com/baeldung/algorithms/RunAlgorithm.java b/core-java/src/main/java/com/baeldung/algorithms/RunAlgorithm.java
index 9394bbdbb8..113ac1cc53 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/RunAlgorithm.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/RunAlgorithm.java
@@ -7,25 +7,24 @@ import com.baeldung.algorithms.slope_one.SlopeOne;
public class RunAlgorithm {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- System.out.println("Run algorithm:");
- System.out.println("1 - Simulated Annealing");
- System.out.println("2 - Slope One");
- int decision = in.nextInt();
- switch (decision) {
- case 1:
- System.out.println(
- "Optimized distance for travel: " + SimulatedAnnealing.simulateAnnealing(10, 10000, 0.9995));
- break;
- case 2:
- SlopeOne.slopeOne(3);
- break;
- default:
- System.out.println("Unknown option");
- break;
- }
- in.close();
- }
+ public static void main(String[] args) {
+ Scanner in = new Scanner(System.in);
+ System.out.println("Run algorithm:");
+ System.out.println("1 - Simulated Annealing");
+ System.out.println("2 - Slope One");
+ int decision = in.nextInt();
+ switch (decision) {
+ case 1:
+ System.out.println("Optimized distance for travel: " + SimulatedAnnealing.simulateAnnealing(10, 10000, 0.9995));
+ break;
+ case 2:
+ SlopeOne.slopeOne(3);
+ break;
+ default:
+ System.out.println("Unknown option");
+ break;
+ }
+ in.close();
+ }
}
diff --git a/core-java/src/main/java/com/baeldung/algorithms/annealing/City.java b/core-java/src/main/java/com/baeldung/algorithms/annealing/City.java
index 0f060c73c2..77e8652df0 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/annealing/City.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/annealing/City.java
@@ -5,18 +5,18 @@ import lombok.Data;
@Data
public class City {
- private int x;
- private int y;
+ private int x;
+ private int y;
- public City() {
- this.x = (int) (Math.random() * 500);
- this.y = (int) (Math.random() * 500);
- }
+ public City() {
+ this.x = (int) (Math.random() * 500);
+ this.y = (int) (Math.random() * 500);
+ }
- public double distanceToCity(City city) {
- int x = Math.abs(getX() - city.getX());
- int y = Math.abs(getY() - city.getY());
- return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
- }
+ public double distanceToCity(City city) {
+ int x = Math.abs(getX() - city.getX());
+ int y = Math.abs(getY() - city.getY());
+ return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
+ }
}
diff --git a/core-java/src/main/java/com/baeldung/algorithms/annealing/SimulatedAnnealing.java b/core-java/src/main/java/com/baeldung/algorithms/annealing/SimulatedAnnealing.java
index c02b0b8285..a7dc974e97 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/annealing/SimulatedAnnealing.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/annealing/SimulatedAnnealing.java
@@ -24,7 +24,7 @@ public class SimulatedAnnealing {
}
t *= coolingRate;
} else {
- continue;
+ continue;
}
if (i % 100 == 0) {
System.out.println("Iteration #" + i);
diff --git a/core-java/src/main/java/com/baeldung/algorithms/slope_one/InputData.java b/core-java/src/main/java/com/baeldung/algorithms/slope_one/InputData.java
index 548f7ae4da..68a0f11b62 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/slope_one/InputData.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/slope_one/InputData.java
@@ -11,26 +11,25 @@ import lombok.Data;
@Data
public class InputData {
-
- protected static List- items = Arrays.asList(new Item("Candy"), new Item("Drink"), new Item("Soda"), new Item("Popcorn"),
- new Item("Snacks"));
- public static Map> initializeData(int numberOfUsers) {
- Map> data = new HashMap<>();
- HashMap
- newUser;
- Set
- newRecommendationSet;
- for (int i = 0; i < numberOfUsers; i++) {
- newUser = new HashMap
- ();
- newRecommendationSet = new HashSet<>();
- for (int j = 0; j < 3; j++) {
- newRecommendationSet.add(items.get((int) (Math.random() * 5)));
- }
- for (Item item : newRecommendationSet) {
- newUser.put(item, Math.random());
- }
- data.put(new User("User " + i), newUser);
- }
- return data;
- }
+ protected static List
- items = Arrays.asList(new Item("Candy"), new Item("Drink"), new Item("Soda"), new Item("Popcorn"), new Item("Snacks"));
+
+ public static Map> initializeData(int numberOfUsers) {
+ Map> data = new HashMap<>();
+ HashMap
- newUser;
+ Set
- newRecommendationSet;
+ for (int i = 0; i < numberOfUsers; i++) {
+ newUser = new HashMap
- ();
+ newRecommendationSet = new HashSet<>();
+ for (int j = 0; j < 3; j++) {
+ newRecommendationSet.add(items.get((int) (Math.random() * 5)));
+ }
+ for (Item item : newRecommendationSet) {
+ newUser.put(item, Math.random());
+ }
+ data.put(new User("User " + i), newUser);
+ }
+ return data;
+ }
}
diff --git a/core-java/src/main/java/com/baeldung/algorithms/slope_one/Item.java b/core-java/src/main/java/com/baeldung/algorithms/slope_one/Item.java
index 818a6d4601..dec1eb9e2c 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/slope_one/Item.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/slope_one/Item.java
@@ -9,5 +9,5 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
public class Item {
- private String itemName;
+ private String itemName;
}
diff --git a/core-java/src/main/java/com/baeldung/algorithms/slope_one/SlopeOne.java b/core-java/src/main/java/com/baeldung/algorithms/slope_one/SlopeOne.java
index f11538356a..d5eea279de 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/slope_one/SlopeOne.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/slope_one/SlopeOne.java
@@ -11,114 +11,114 @@ import java.util.Map.Entry;
*/
public class SlopeOne {
- private static Map
- > diff = new HashMap<>();
- private static Map
- > freq = new HashMap<>();
- private static Map> inputData;
- private static Map> outputData = new HashMap<>();
+ private static Map
- > diff = new HashMap<>();
+ private static Map
- > freq = new HashMap<>();
+ private static Map> inputData;
+ private static Map> outputData = new HashMap<>();
- public static void slopeOne(int numberOfUsers) {
- inputData = InputData.initializeData(numberOfUsers);
- System.out.println("Slope One - Before the Prediction\n");
- buildDifferencesMatrix(inputData);
- System.out.println("\nSlope One - With Predictions\n");
- predict(inputData);
- }
+ public static void slopeOne(int numberOfUsers) {
+ inputData = InputData.initializeData(numberOfUsers);
+ System.out.println("Slope One - Before the Prediction\n");
+ buildDifferencesMatrix(inputData);
+ System.out.println("\nSlope One - With Predictions\n");
+ predict(inputData);
+ }
- /**
- * Based on the available data, calculate the relationships between the
- * items and number of occurences
- *
- * @param data
- * existing user data and their items' ratings
- */
- private static void buildDifferencesMatrix(Map> data) {
- for (HashMap
- user : data.values()) {
- for (Entry
- e : user.entrySet()) {
- if (!diff.containsKey(e.getKey())) {
- diff.put(e.getKey(), new HashMap
- ());
- freq.put(e.getKey(), new HashMap
- ());
- }
- for (Entry
- e2 : user.entrySet()) {
- int oldCount = 0;
- if (freq.get(e.getKey()).containsKey(e2.getKey())) {
- oldCount = freq.get(e.getKey()).get(e2.getKey()).intValue();
- }
- double oldDiff = 0.0;
- if (diff.get(e.getKey()).containsKey(e2.getKey())) {
- oldDiff = diff.get(e.getKey()).get(e2.getKey()).doubleValue();
- }
- double observedDiff = e.getValue() - e2.getValue();
- freq.get(e.getKey()).put(e2.getKey(), oldCount + 1);
- diff.get(e.getKey()).put(e2.getKey(), oldDiff + observedDiff);
- }
- }
- }
- for (Item j : diff.keySet()) {
- for (Item i : diff.get(j).keySet()) {
- double oldValue = diff.get(j).get(i).doubleValue();
- int count = freq.get(j).get(i).intValue();
- diff.get(j).put(i, oldValue / count);
- }
- }
- printData(data);
- }
+ /**
+ * Based on the available data, calculate the relationships between the
+ * items and number of occurences
+ *
+ * @param data
+ * existing user data and their items' ratings
+ */
+ private static void buildDifferencesMatrix(Map> data) {
+ for (HashMap
- user : data.values()) {
+ for (Entry
- e : user.entrySet()) {
+ if (!diff.containsKey(e.getKey())) {
+ diff.put(e.getKey(), new HashMap
- ());
+ freq.put(e.getKey(), new HashMap
- ());
+ }
+ for (Entry
- e2 : user.entrySet()) {
+ int oldCount = 0;
+ if (freq.get(e.getKey()).containsKey(e2.getKey())) {
+ oldCount = freq.get(e.getKey()).get(e2.getKey()).intValue();
+ }
+ double oldDiff = 0.0;
+ if (diff.get(e.getKey()).containsKey(e2.getKey())) {
+ oldDiff = diff.get(e.getKey()).get(e2.getKey()).doubleValue();
+ }
+ double observedDiff = e.getValue() - e2.getValue();
+ freq.get(e.getKey()).put(e2.getKey(), oldCount + 1);
+ diff.get(e.getKey()).put(e2.getKey(), oldDiff + observedDiff);
+ }
+ }
+ }
+ for (Item j : diff.keySet()) {
+ for (Item i : diff.get(j).keySet()) {
+ double oldValue = diff.get(j).get(i).doubleValue();
+ int count = freq.get(j).get(i).intValue();
+ diff.get(j).put(i, oldValue / count);
+ }
+ }
+ printData(data);
+ }
- /**
- * Based on existing data predict all missing ratings. If prediction is not
- * possible, the value will be equal to -1
- *
- * @param data
- * existing user data and their items' ratings
- */
- private static void predict(Map> data) {
- HashMap
- uPred = new HashMap
- ();
- HashMap
- uFreq = new HashMap
- ();
- for (Item j : diff.keySet()) {
- uFreq.put(j, 0);
- uPred.put(j, 0.0);
- }
- for (Entry> e : data.entrySet()) {
- for (Item j : e.getValue().keySet()) {
- for (Item k : diff.keySet()) {
- try {
- double predictedValue = diff.get(k).get(j).doubleValue() + e.getValue().get(j).doubleValue();
- double finalValue = predictedValue * freq.get(k).get(j).intValue();
- uPred.put(k, uPred.get(k) + finalValue);
- uFreq.put(k, uFreq.get(k) + freq.get(k).get(j).intValue());
- } catch (NullPointerException e1) {
- }
- }
- }
- HashMap
- clean = new HashMap
- ();
- for (Item j : uPred.keySet()) {
- if (uFreq.get(j) > 0) {
- clean.put(j, uPred.get(j).doubleValue() / uFreq.get(j).intValue());
- }
- }
- for (Item j : InputData.items) {
- if (e.getValue().containsKey(j)) {
- clean.put(j, e.getValue().get(j));
- } else {
- clean.put(j, -1.0);
- }
- }
- outputData.put(e.getKey(), clean);
- }
- printData(outputData);
- }
+ /**
+ * Based on existing data predict all missing ratings. If prediction is not
+ * possible, the value will be equal to -1
+ *
+ * @param data
+ * existing user data and their items' ratings
+ */
+ private static void predict(Map> data) {
+ HashMap
- uPred = new HashMap
- ();
+ HashMap
- uFreq = new HashMap
- ();
+ for (Item j : diff.keySet()) {
+ uFreq.put(j, 0);
+ uPred.put(j, 0.0);
+ }
+ for (Entry> e : data.entrySet()) {
+ for (Item j : e.getValue().keySet()) {
+ for (Item k : diff.keySet()) {
+ try {
+ double predictedValue = diff.get(k).get(j).doubleValue() + e.getValue().get(j).doubleValue();
+ double finalValue = predictedValue * freq.get(k).get(j).intValue();
+ uPred.put(k, uPred.get(k) + finalValue);
+ uFreq.put(k, uFreq.get(k) + freq.get(k).get(j).intValue());
+ } catch (NullPointerException e1) {
+ }
+ }
+ }
+ HashMap
- clean = new HashMap
- ();
+ for (Item j : uPred.keySet()) {
+ if (uFreq.get(j) > 0) {
+ clean.put(j, uPred.get(j).doubleValue() / uFreq.get(j).intValue());
+ }
+ }
+ for (Item j : InputData.items) {
+ if (e.getValue().containsKey(j)) {
+ clean.put(j, e.getValue().get(j));
+ } else {
+ clean.put(j, -1.0);
+ }
+ }
+ outputData.put(e.getKey(), clean);
+ }
+ printData(outputData);
+ }
- private static void printData(Map> data) {
- for (User user : data.keySet()) {
- System.out.println(user.getUsername() + ":");
- print(data.get(user));
- }
- }
+ private static void printData(Map> data) {
+ for (User user : data.keySet()) {
+ System.out.println(user.getUsername() + ":");
+ print(data.get(user));
+ }
+ }
- private static void print(HashMap
- hashMap) {
- NumberFormat formatter = new DecimalFormat("#0.000");
- for (Item j : hashMap.keySet()) {
- System.out.println(" " + j.getItemName() + " --> " + formatter.format(hashMap.get(j).doubleValue()));
- }
- }
+ private static void print(HashMap
- hashMap) {
+ NumberFormat formatter = new DecimalFormat("#0.000");
+ for (Item j : hashMap.keySet()) {
+ System.out.println(" " + j.getItemName() + " --> " + formatter.format(hashMap.get(j).doubleValue()));
+ }
+ }
}
diff --git a/core-java/src/main/java/com/baeldung/algorithms/slope_one/User.java b/core-java/src/main/java/com/baeldung/algorithms/slope_one/User.java
index 57f16f6748..32bbe84d17 100644
--- a/core-java/src/main/java/com/baeldung/algorithms/slope_one/User.java
+++ b/core-java/src/main/java/com/baeldung/algorithms/slope_one/User.java
@@ -8,7 +8,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class User {
-
- private String username;
+
+ private String username;
}
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/LogWithChain.java b/core-java/src/main/java/com/baeldung/chainedexception/LogWithChain.java
new file mode 100644
index 0000000000..3d66c2b535
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/chainedexception/LogWithChain.java
@@ -0,0 +1,41 @@
+package com.baeldung.chainedexception;
+
+import com.baeldung.chainedexception.exceptions.GirlFriendOfManagerUpsetException;
+import com.baeldung.chainedexception.exceptions.ManagerUpsetException;
+import com.baeldung.chainedexception.exceptions.NoLeaveGrantedException;
+import com.baeldung.chainedexception.exceptions.TeamLeadUpsetException;
+
+public class LogWithChain {
+
+ public static void main(String[] args) throws Exception {
+ getLeave();
+ }
+
+ private static void getLeave() throws NoLeaveGrantedException {
+ try {
+ howIsTeamLead();
+ } catch (TeamLeadUpsetException e) {
+ throw new NoLeaveGrantedException("Leave not sanctioned.", e);
+ }
+ }
+
+ private static void howIsTeamLead() throws TeamLeadUpsetException {
+ try {
+ howIsManager();
+ } catch (ManagerUpsetException e) {
+ throw new TeamLeadUpsetException("Team lead is not in good mood", e);
+ }
+ }
+
+ private static void howIsManager() throws ManagerUpsetException {
+ try {
+ howIsGirlFriendOfManager();
+ } catch (GirlFriendOfManagerUpsetException e) {
+ throw new ManagerUpsetException("Manager is in bad mood", e);
+ }
+ }
+
+ private static void howIsGirlFriendOfManager() throws GirlFriendOfManagerUpsetException {
+ throw new GirlFriendOfManagerUpsetException("Girl friend of manager is in bad mood");
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java b/core-java/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java
new file mode 100644
index 0000000000..7556e30663
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/chainedexception/LogWithoutChain.java
@@ -0,0 +1,44 @@
+package com.baeldung.chainedexception;
+
+import com.baeldung.chainedexception.exceptions.GirlFriendOfManagerUpsetException;
+import com.baeldung.chainedexception.exceptions.ManagerUpsetException;
+import com.baeldung.chainedexception.exceptions.NoLeaveGrantedException;
+import com.baeldung.chainedexception.exceptions.TeamLeadUpsetException;
+
+public class LogWithoutChain {
+
+ public static void main(String[] args) throws Exception {
+ getLeave();
+ }
+
+ private static void getLeave() throws NoLeaveGrantedException {
+ try {
+ howIsTeamLead();
+ } catch (TeamLeadUpsetException e) {
+ e.printStackTrace();
+ throw new NoLeaveGrantedException("Leave not sanctioned.");
+ }
+ }
+
+ private static void howIsTeamLead() throws TeamLeadUpsetException {
+ try {
+ howIsManager();
+ } catch (ManagerUpsetException e) {
+ e.printStackTrace();
+ throw new TeamLeadUpsetException("Team lead is not in good mood");
+ }
+ }
+
+ private static void howIsManager() throws ManagerUpsetException {
+ try {
+ howIsGirlFriendOfManager();
+ } catch (GirlFriendOfManagerUpsetException e) {
+ e.printStackTrace();
+ throw new ManagerUpsetException("Manager is in bad mood");
+ }
+ }
+
+ private static void howIsGirlFriendOfManager() throws GirlFriendOfManagerUpsetException {
+ throw new GirlFriendOfManagerUpsetException("Girl friend of manager is in bad mood");
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java
new file mode 100644
index 0000000000..e20c58ea5b
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/GirlFriendOfManagerUpsetException.java
@@ -0,0 +1,12 @@
+package com.baeldung.chainedexception.exceptions;
+
+public class GirlFriendOfManagerUpsetException extends Exception {
+
+ public GirlFriendOfManagerUpsetException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public GirlFriendOfManagerUpsetException(String message) {
+ super(message);
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java
new file mode 100644
index 0000000000..e95a3921a4
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/ManagerUpsetException.java
@@ -0,0 +1,12 @@
+package com.baeldung.chainedexception.exceptions;
+
+public class ManagerUpsetException extends Exception {
+
+ public ManagerUpsetException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ManagerUpsetException(String message) {
+ super(message);
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java
new file mode 100644
index 0000000000..b9521858b3
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/NoLeaveGrantedException.java
@@ -0,0 +1,12 @@
+package com.baeldung.chainedexception.exceptions;
+
+public class NoLeaveGrantedException extends Exception {
+
+ public NoLeaveGrantedException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public NoLeaveGrantedException(String message) {
+ super(message);
+ }
+}
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java
new file mode 100644
index 0000000000..f874620f00
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/chainedexception/exceptions/TeamLeadUpsetException.java
@@ -0,0 +1,12 @@
+package com.baeldung.chainedexception.exceptions;
+
+public class TeamLeadUpsetException extends Exception {
+
+ public TeamLeadUpsetException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public TeamLeadUpsetException(String message) {
+ super(message);
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java
new file mode 100644
index 0000000000..052136bfe4
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/BlockingQueueUsage.java
@@ -0,0 +1,24 @@
+package com.baeldung.concurrent.blockingqueue;
+
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+
+public class BlockingQueueUsage {
+ public static void main(String[] args) {
+ int BOUND = 10;
+ int N_PRODUCERS = 4;
+ int N_CONSUMERS = Runtime.getRuntime().availableProcessors();
+ int poisonPill = Integer.MAX_VALUE;
+ int poisonPillPerProducer = N_CONSUMERS / N_PRODUCERS;
+
+ BlockingQueue queue = new LinkedBlockingQueue<>(BOUND);
+
+ for (int i = 0; i < N_PRODUCERS; i++) {
+ new Thread(new NumbersProducer(queue, poisonPill, poisonPillPerProducer)).start();
+ }
+
+ for (int j = 0; j < N_CONSUMERS; j++) {
+ new Thread(new NumbersConsumer(queue, poisonPill)).start();
+ }
+ }
+}
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java
new file mode 100644
index 0000000000..13fe0c3126
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersConsumer.java
@@ -0,0 +1,28 @@
+package com.baeldung.concurrent.blockingqueue;
+
+import java.util.concurrent.BlockingQueue;
+
+public class NumbersConsumer implements Runnable {
+ private final BlockingQueue queue;
+ private final int poisonPill;
+
+ public NumbersConsumer(BlockingQueue queue, int poisonPill) {
+ this.queue = queue;
+ this.poisonPill = poisonPill;
+ }
+
+ public void run() {
+ try {
+ while (true) {
+ Integer number = queue.take();
+ if (number.equals(poisonPill)) {
+ return;
+ }
+ String result = number.toString();
+ System.out.println(Thread.currentThread().getName() + " result: " + result);
+ }
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+}
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java
new file mode 100644
index 0000000000..b262097c63
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/blockingqueue/NumbersProducer.java
@@ -0,0 +1,34 @@
+package com.baeldung.concurrent.blockingqueue;
+
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ThreadLocalRandom;
+
+public class NumbersProducer implements Runnable {
+
+ private final BlockingQueue numbersQueue;
+ private final int poisonPill;
+ private final int poisonPillPerProducer;
+
+ public NumbersProducer(BlockingQueue numbersQueue, int poisonPill, int poisonPillPerProducer) {
+ this.numbersQueue = numbersQueue;
+ this.poisonPill = poisonPill;
+ this.poisonPillPerProducer = poisonPillPerProducer;
+ }
+
+ public void run() {
+ try {
+ generateNumbers();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ private void generateNumbers() throws InterruptedException {
+ for (int i = 0; i < 100; i++) {
+ numbersQueue.put(ThreadLocalRandom.current().nextInt(100));
+ }
+ for (int j = 0; j < poisonPillPerProducer; j++) {
+ numbersQueue.put(poisonPill);
+ }
+ }
+}
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/BrokenWorker.java b/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/BrokenWorker.java
new file mode 100644
index 0000000000..90cd01b69f
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/BrokenWorker.java
@@ -0,0 +1,23 @@
+package com.baeldung.concurrent.countdownlatch;
+
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
+public class BrokenWorker implements Runnable {
+ private final List outputScraper;
+ private final CountDownLatch countDownLatch;
+
+ public BrokenWorker(final List outputScraper, final CountDownLatch countDownLatch) {
+ this.outputScraper = outputScraper;
+ this.countDownLatch = countDownLatch;
+ }
+
+ @Override
+ public void run() {
+ if (true) {
+ throw new RuntimeException("Oh dear");
+ }
+ countDownLatch.countDown();
+ outputScraper.add("Counted down");
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/WaitingWorker.java b/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/WaitingWorker.java
new file mode 100644
index 0000000000..66be2030e2
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/WaitingWorker.java
@@ -0,0 +1,34 @@
+package com.baeldung.concurrent.countdownlatch;
+
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
+public class WaitingWorker implements Runnable {
+
+ private final List outputScraper;
+ private final CountDownLatch readyThreadCounter;
+ private final CountDownLatch callingThreadBlocker;
+ private final CountDownLatch completedThreadCounter;
+
+ public WaitingWorker(final List outputScraper, final CountDownLatch readyThreadCounter, final CountDownLatch callingThreadBlocker, CountDownLatch completedThreadCounter) {
+
+ this.outputScraper = outputScraper;
+ this.readyThreadCounter = readyThreadCounter;
+ this.callingThreadBlocker = callingThreadBlocker;
+ this.completedThreadCounter = completedThreadCounter;
+ }
+
+ @Override
+ public void run() {
+ // Mark this thread as read / started
+ readyThreadCounter.countDown();
+ try {
+ callingThreadBlocker.await();
+ outputScraper.add("Counted down");
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } finally {
+ completedThreadCounter.countDown();
+ }
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/Worker.java b/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/Worker.java
new file mode 100644
index 0000000000..e712fc18d6
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/countdownlatch/Worker.java
@@ -0,0 +1,22 @@
+package com.baeldung.concurrent.countdownlatch;
+
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+
+public class Worker implements Runnable {
+ private final List outputScraper;
+ private final CountDownLatch countDownLatch;
+
+ public Worker(final List outputScraper, final CountDownLatch countDownLatch) {
+ this.outputScraper = outputScraper;
+ this.countDownLatch = countDownLatch;
+ }
+
+ @Override
+ public void run() {
+ // Do some work
+ System.out.println("Doing some logic");
+ outputScraper.add("Counted down");
+ countDownLatch.countDown();
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/concurrent/future/FactorialSquareCalculator.java b/core-java/src/main/java/com/baeldung/concurrent/future/FactorialSquareCalculator.java
new file mode 100644
index 0000000000..471072b333
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/future/FactorialSquareCalculator.java
@@ -0,0 +1,26 @@
+package com.baeldung.concurrent.future;
+
+import java.util.concurrent.RecursiveTask;
+
+public class FactorialSquareCalculator extends RecursiveTask {
+ private static final long serialVersionUID = 1L;
+
+ final private Integer n;
+
+ public FactorialSquareCalculator(Integer n) {
+ this.n = n;
+ }
+
+ @Override
+ protected Integer compute() {
+ if (n <= 1) {
+ return n;
+ }
+
+ FactorialSquareCalculator calculator = new FactorialSquareCalculator(n - 1);
+
+ calculator.fork();
+
+ return n * n + calculator.join();
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/concurrent/future/SquareCalculator.java b/core-java/src/main/java/com/baeldung/concurrent/future/SquareCalculator.java
new file mode 100644
index 0000000000..e53a2413d1
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/concurrent/future/SquareCalculator.java
@@ -0,0 +1,20 @@
+package com.baeldung.concurrent.future;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+
+public class SquareCalculator {
+
+ private final ExecutorService executor;
+
+ public SquareCalculator(ExecutorService executor) {
+ this.executor = executor;
+ }
+
+ public Future calculate(Integer input) {
+ return executor.submit(() -> {
+ Thread.sleep(1000);
+ return input * input;
+ });
+ }
+}
diff --git a/core-java/src/main/java/com/baeldung/java/map/MyLinkedHashMap.java b/core-java/src/main/java/com/baeldung/java/map/MyLinkedHashMap.java
index e1c0071ed3..1e237580ec 100644
--- a/core-java/src/main/java/com/baeldung/java/map/MyLinkedHashMap.java
+++ b/core-java/src/main/java/com/baeldung/java/map/MyLinkedHashMap.java
@@ -10,13 +10,11 @@ public class MyLinkedHashMap extends LinkedHashMap {
*/
private static final long serialVersionUID = 1L;
private static final int MAX_ENTRIES = 5;
-
public MyLinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {
super(initialCapacity, loadFactor, accessOrder);
}
-
@Override
protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > MAX_ENTRIES;
diff --git a/core-java/src/main/java/com/baeldung/java8/lambda/exceptions/LambdaExceptionWrappers.java b/core-java/src/main/java/com/baeldung/java8/lambda/exceptions/LambdaExceptionWrappers.java
new file mode 100644
index 0000000000..64532c8b6f
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/java8/lambda/exceptions/LambdaExceptionWrappers.java
@@ -0,0 +1,57 @@
+package com.baeldung.java8.lambda.exceptions;
+
+import java.util.function.Consumer;
+
+public class LambdaExceptionWrappers {
+
+ public static Consumer lambdaWrapper(Consumer consumer) {
+ return i -> {
+ try {
+ consumer.accept(i);
+ } catch (ArithmeticException e) {
+ System.err.println("Arithmetic Exception occured : " + e.getMessage());
+ }
+ };
+ }
+
+ static Consumer consumerWrapper(Consumer consumer, Class clazz) {
+ return i -> {
+ try {
+ consumer.accept(i);
+ } catch (Exception ex) {
+ try {
+ E exCast = clazz.cast(ex);
+ System.err.println("Exception occured : " + exCast.getMessage());
+ } catch (ClassCastException ccEx) {
+ throw ex;
+ }
+ }
+ };
+ }
+
+ public static Consumer throwingConsumerWrapper(ThrowingConsumer throwingConsumer) {
+ return i -> {
+ try {
+ throwingConsumer.accept(i);
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ };
+ }
+
+ public static Consumer handlingConsumerWrapper(ThrowingConsumer throwingConsumer, Class exceptionClass) {
+ return i -> {
+ try {
+ throwingConsumer.accept(i);
+ } catch (Exception ex) {
+ try {
+ E exCast = exceptionClass.cast(ex);
+ System.err.println("Exception occured : " + exCast.getMessage());
+ } catch (ClassCastException ccEx) {
+ throw new RuntimeException(ex);
+ }
+ }
+ };
+ }
+
+}
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/java8/lambda/exceptions/ThrowingConsumer.java b/core-java/src/main/java/com/baeldung/java8/lambda/exceptions/ThrowingConsumer.java
new file mode 100644
index 0000000000..c5860e7f6b
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/java8/lambda/exceptions/ThrowingConsumer.java
@@ -0,0 +1,8 @@
+package com.baeldung.java8.lambda.exceptions;
+
+@FunctionalInterface
+public interface ThrowingConsumer {
+
+ void accept(T t) throws E;
+
+}
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/CharArrayToStringUnitTest.java b/core-java/src/test/java/com/baeldung/CharArrayToStringUnitTest.java
new file mode 100644
index 0000000000..2f7830bbf4
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/CharArrayToStringUnitTest.java
@@ -0,0 +1,62 @@
+package com.baeldung;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class CharArrayToStringUnitTest {
+
+ @Test
+ public void givenCharArray_whenCallingStringConstructor_shouldConvertToString() {
+ char[] charArray = {'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r'};
+ String result = new String(charArray);
+ String expectedValue = "character";
+
+ assertEquals(expectedValue, result);
+ }
+
+ @Test
+ public void givenCharArray_whenCallingStringConstructorWithOffsetAndLength_shouldConvertToString(){
+ char[] charArray = {'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r'};
+ String result = new String(charArray, 4, 3);
+ String expectedValue = "act";
+
+ assertEquals(expectedValue, result);
+ }
+
+ @Test
+ public void givenCharArray_whenCallingStringCopyValueOf_shouldConvertToString(){
+ char[] charArray = {'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r'};
+ String result = String.copyValueOf(charArray);
+ String expectedValue = "character";
+
+ assertEquals(expectedValue, result);
+ }
+
+ @Test
+ public void givenCharArray_whenCallingStringCopyValueOfWithOffsetAndLength_shouldConvertToString(){
+ char[] charArray = {'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r'};
+ String result = String.copyValueOf(charArray, 0, 4);
+ String expectedValue = "char";
+
+ assertEquals(expectedValue, result);
+ }
+
+ @Test
+ public void givenCharArray_whenCallingStringValueOf_shouldConvertToString(){
+ char[] charArray = {'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r'};
+ String result = String.valueOf(charArray);
+ String expectedValue = "character";
+
+ assertEquals(expectedValue, result);
+ }
+
+ @Test
+ public void givenCharArray_whenCallingStringValueOfWithOffsetAndLength_shouldConvertToString(){
+ char[] charArray = {'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r'};
+ String result = String.valueOf(charArray, 3, 4);
+ String expectedValue = "ract";
+
+ assertEquals(expectedValue, result);
+ }
+}
diff --git a/core-java/src/test/java/com/baeldung/StringToCharArrayUnitTest.java b/core-java/src/test/java/com/baeldung/StringToCharArrayUnitTest.java
new file mode 100644
index 0000000000..2e7dc24a17
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/StringToCharArrayUnitTest.java
@@ -0,0 +1,20 @@
+package com.baeldung;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class StringToCharArrayUnitTest {
+
+@Test
+public void givenString_whenCallingStringToCharArray_shouldConvertToCharArray() {
+ String givenString = "characters";
+
+ char[] result = givenString.toCharArray();
+
+ char[] expectedCharArray = { 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', 's' };
+
+ assertArrayEquals(expectedCharArray, result);
+}
+
+}
diff --git a/core-java/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java b/core-java/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java
index 923924cfc2..bad1c32e4a 100644
--- a/core-java/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java
+++ b/core-java/src/test/java/com/baeldung/collectors/Java8CollectorsUnitTest.java
@@ -42,136 +42,96 @@ public class Java8CollectorsUnitTest {
@Test
public void whenCollectingToList_shouldCollectToList() throws Exception {
- final List result = givenList
- .stream()
- .collect(toList());
+ final List result = givenList.stream().collect(toList());
assertThat(result).containsAll(givenList);
}
@Test
public void whenCollectingToList_shouldCollectToSet() throws Exception {
- final Set result = givenList
- .stream()
- .collect(toSet());
+ final Set result = givenList.stream().collect(toSet());
assertThat(result).containsAll(givenList);
}
@Test
public void whenCollectingToCollection_shouldCollectToCollection() throws Exception {
- final List result = givenList
- .stream()
- .collect(toCollection(LinkedList::new));
+ final List result = givenList.stream().collect(toCollection(LinkedList::new));
- assertThat(result)
- .containsAll(givenList)
- .isInstanceOf(LinkedList.class);
+ assertThat(result).containsAll(givenList).isInstanceOf(LinkedList.class);
}
@Test
public void whenCollectingToImmutableCollection_shouldThrowException() throws Exception {
assertThatThrownBy(() -> {
- givenList
- .stream()
- .collect(toCollection(ImmutableList::of));
+ givenList.stream().collect(toCollection(ImmutableList::of));
}).isInstanceOf(UnsupportedOperationException.class);
}
@Test
public void whenCollectingToMap_shouldCollectToMap() throws Exception {
- final Map result = givenList
- .stream()
- .collect(toMap(Function.identity(), String::length));
+ final Map result = givenList.stream().collect(toMap(Function.identity(), String::length));
- assertThat(result)
- .containsEntry("a", 1)
- .containsEntry("bb", 2)
- .containsEntry("ccc", 3)
- .containsEntry("dd", 2);
+ assertThat(result).containsEntry("a", 1).containsEntry("bb", 2).containsEntry("ccc", 3).containsEntry("dd", 2);
}
@Test
public void whenCollectingToMap_shouldCollectToMapMerging() throws Exception {
- final Map result = givenList
- .stream()
- .collect(toMap(Function.identity(), String::length, (i1, i2) -> i1));
+ final Map result = givenList.stream().collect(toMap(Function.identity(), String::length, (i1, i2) -> i1));
- assertThat(result)
- .containsEntry("a", 1)
- .containsEntry("bb", 2)
- .containsEntry("ccc", 3)
- .containsEntry("dd", 2);
+ assertThat(result).containsEntry("a", 1).containsEntry("bb", 2).containsEntry("ccc", 3).containsEntry("dd", 2);
}
@Test
public void whenCollectingAndThen_shouldCollect() throws Exception {
- final List result = givenList
- .stream()
- .collect(collectingAndThen(toList(), ImmutableList::copyOf));
+ final List result = givenList.stream().collect(collectingAndThen(toList(), ImmutableList::copyOf));
- assertThat(result)
- .containsAll(givenList)
- .isInstanceOf(ImmutableList.class);
+ assertThat(result).containsAll(givenList).isInstanceOf(ImmutableList.class);
}
@Test
public void whenJoining_shouldJoin() throws Exception {
- final String result = givenList
- .stream()
- .collect(joining());
+ final String result = givenList.stream().collect(joining());
assertThat(result).isEqualTo("abbcccdd");
}
@Test
public void whenJoiningWithSeparator_shouldJoinWithSeparator() throws Exception {
- final String result = givenList
- .stream()
- .collect(joining(" "));
+ final String result = givenList.stream().collect(joining(" "));
assertThat(result).isEqualTo("a bb ccc dd");
}
@Test
public void whenJoiningWithSeparatorAndPrefixAndPostfix_shouldJoinWithSeparatorPrePost() throws Exception {
- final String result = givenList
- .stream()
- .collect(joining(" ", "PRE-", "-POST"));
+ final String result = givenList.stream().collect(joining(" ", "PRE-", "-POST"));
assertThat(result).isEqualTo("PRE-a bb ccc dd-POST");
}
@Test
public void whenPartitioningBy_shouldPartition() throws Exception {
- final Map> result = givenList
- .stream()
- .collect(partitioningBy(s -> s.length() > 2));
+ final Map> result = givenList.stream().collect(partitioningBy(s -> s.length() > 2));
- assertThat(result)
- .containsKeys(true, false)
- .satisfies(booleanListMap -> {
- assertThat(booleanListMap.get(true)).contains("ccc");
+ assertThat(result).containsKeys(true, false).satisfies(booleanListMap -> {
+ assertThat(booleanListMap.get(true)).contains("ccc");
- assertThat(booleanListMap.get(false)).contains("a", "bb", "dd");
- });
+ assertThat(booleanListMap.get(false)).contains("a", "bb", "dd");
+ });
}
@Test
public void whenCounting_shouldCount() throws Exception {
- final Long result = givenList
- .stream()
- .collect(counting());
+ final Long result = givenList.stream().collect(counting());
assertThat(result).isEqualTo(4);
}
@Test
public void whenSummarizing_shouldSummarize() throws Exception {
- final DoubleSummaryStatistics result = givenList
- .stream()
- .collect(summarizingDouble(String::length));
+ final DoubleSummaryStatistics result = givenList.stream().collect(summarizingDouble(String::length));
assertThat(result.getAverage()).isEqualTo(2);
assertThat(result.getCount()).isEqualTo(4);
@@ -182,55 +142,37 @@ public class Java8CollectorsUnitTest {
@Test
public void whenAveraging_shouldAverage() throws Exception {
- final Double result = givenList
- .stream()
- .collect(averagingDouble(String::length));
+ final Double result = givenList.stream().collect(averagingDouble(String::length));
assertThat(result).isEqualTo(2);
}
@Test
public void whenSumming_shouldSum() throws Exception {
- final Double result = givenList
- .stream()
- .filter(i -> true)
- .collect(summingDouble(String::length));
+ final Double result = givenList.stream().filter(i -> true).collect(summingDouble(String::length));
assertThat(result).isEqualTo(8);
}
@Test
public void whenMaxingBy_shouldMaxBy() throws Exception {
- final Optional result = givenList
- .stream()
- .collect(maxBy(Comparator.naturalOrder()));
+ final Optional result = givenList.stream().collect(maxBy(Comparator.naturalOrder()));
- assertThat(result)
- .isPresent()
- .hasValue("dd");
+ assertThat(result).isPresent().hasValue("dd");
}
@Test
public void whenGroupingBy_shouldGroupBy() throws Exception {
- final Map> result = givenList
- .stream()
- .collect(groupingBy(String::length, toSet()));
+ final Map> result = givenList.stream().collect(groupingBy(String::length, toSet()));
- assertThat(result)
- .containsEntry(1, newHashSet("a"))
- .containsEntry(2, newHashSet("bb", "dd"))
- .containsEntry(3, newHashSet("ccc"));
+ assertThat(result).containsEntry(1, newHashSet("a")).containsEntry(2, newHashSet("bb", "dd")).containsEntry(3, newHashSet("ccc"));
}
@Test
public void whenCreatingCustomCollector_shouldCollect() throws Exception {
- final ImmutableSet result = givenList
- .stream()
- .collect(toImmutableSet());
+ final ImmutableSet result = givenList.stream().collect(toImmutableSet());
- assertThat(result)
- .isInstanceOf(ImmutableSet.class)
- .contains("a", "bb", "ccc", "dd");
+ assertThat(result).isInstanceOf(ImmutableSet.class).contains("a", "bb", "ccc", "dd");
}
diff --git a/core-java/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchExampleTest.java b/core-java/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchExampleTest.java
new file mode 100644
index 0000000000..7bb2d4bb70
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/concurrent/countdownlatch/CountdownLatchExampleTest.java
@@ -0,0 +1,70 @@
+package com.baeldung.concurrent.countdownlatch;
+
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Stream;
+
+import static java.util.stream.Collectors.toList;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CountdownLatchExampleTest {
+ @Test
+ public void whenParallelProcessing_thenMainThreadWillBlockUntilCompletion() throws InterruptedException {
+ // Given
+ List outputScraper = Collections.synchronizedList(new ArrayList<>());
+ CountDownLatch countDownLatch = new CountDownLatch(5);
+ List workers = Stream.generate(() -> new Thread(new Worker(outputScraper, countDownLatch))).limit(5).collect(toList());
+
+ // When
+ workers.forEach(Thread::start);
+ countDownLatch.await(); // Block until workers finish
+ outputScraper.add("Latch released");
+
+ // Then
+ outputScraper.forEach(Object::toString);
+ assertThat(outputScraper).containsExactly("Counted down", "Counted down", "Counted down", "Counted down", "Counted down", "Latch released");
+ }
+
+ @Test
+ public void whenFailingToParallelProcess_thenMainThreadShouldTimeout() throws InterruptedException {
+ // Given
+ List outputScraper = Collections.synchronizedList(new ArrayList<>());
+ CountDownLatch countDownLatch = new CountDownLatch(5);
+ List workers = Stream.generate(() -> new Thread(new BrokenWorker(outputScraper, countDownLatch))).limit(5).collect(toList());
+
+ // When
+ workers.forEach(Thread::start);
+ final boolean result = countDownLatch.await(3L, TimeUnit.SECONDS);
+
+ // Then
+ assertThat(result).isFalse();
+ }
+
+ @Test
+ public void whenDoingLotsOfThreadsInParallel_thenStartThemAtTheSameTime() throws InterruptedException {
+ // Given
+ List outputScraper = Collections.synchronizedList(new ArrayList<>());
+ CountDownLatch readyThreadCounter = new CountDownLatch(5);
+ CountDownLatch callingThreadBlocker = new CountDownLatch(1);
+ CountDownLatch completedThreadCounter = new CountDownLatch(5);
+ List workers = Stream.generate(() -> new Thread(new WaitingWorker(outputScraper, readyThreadCounter, callingThreadBlocker, completedThreadCounter))).limit(5).collect(toList());
+
+ // When
+ workers.forEach(Thread::start);
+ readyThreadCounter.await(); // Block until workers start
+ outputScraper.add("Workers ready");
+ callingThreadBlocker.countDown(); // Start workers
+ completedThreadCounter.await(); // Block until workers finish
+ outputScraper.add("Workers complete");
+
+ // Then
+ outputScraper.forEach(Object::toString);
+ assertThat(outputScraper).containsExactly("Workers ready", "Counted down", "Counted down", "Counted down", "Counted down", "Counted down", "Workers complete");
+ }
+
+}
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/concurrent/future/FactorialSquareCalculatorUnitTest.java b/core-java/src/test/java/com/baeldung/concurrent/future/FactorialSquareCalculatorUnitTest.java
new file mode 100644
index 0000000000..a47c44506d
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/concurrent/future/FactorialSquareCalculatorUnitTest.java
@@ -0,0 +1,22 @@
+package com.baeldung.concurrent.future;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.concurrent.ForkJoinPool;
+
+import org.junit.Test;
+
+public class FactorialSquareCalculatorUnitTest {
+
+ @Test
+ public void whenCalculatesFactorialSquare_thenReturnCorrectValue() {
+ ForkJoinPool forkJoinPool = new ForkJoinPool();
+
+ FactorialSquareCalculator calculator = new FactorialSquareCalculator(10);
+
+ forkJoinPool.execute(calculator);
+
+ assertEquals("The sum of the squares from 1 to 10 is 385", 385, calculator.join().intValue());
+ }
+
+}
diff --git a/core-java/src/test/java/com/baeldung/concurrent/future/SquareCalculatorUnitTest.java b/core-java/src/test/java/com/baeldung/concurrent/future/SquareCalculatorUnitTest.java
new file mode 100644
index 0000000000..69c802feb8
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/concurrent/future/SquareCalculatorUnitTest.java
@@ -0,0 +1,94 @@
+package com.baeldung.concurrent.future;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
+
+public class SquareCalculatorUnitTest {
+
+ @Rule
+ public TestName name = new TestName();
+
+ private long start;
+
+ private SquareCalculator squareCalculator;
+
+ @Test
+ public void givenExecutorIsSingleThreaded_whenTwoExecutionsAreTriggered_thenRunInSequence() throws InterruptedException, ExecutionException {
+ squareCalculator = new SquareCalculator(Executors.newSingleThreadExecutor());
+
+ Future result1 = squareCalculator.calculate(4);
+ Future result2 = squareCalculator.calculate(1000);
+
+ while (!result1.isDone() || !result2.isDone()) {
+ System.out.println(String.format("Task 1 is %s and Task 2 is %s.", result1.isDone() ? "done" : "not done", result2.isDone() ? "done" : "not done"));
+
+ Thread.sleep(300);
+ }
+
+ assertEquals(16, result1.get().intValue());
+ assertEquals(1000000, result2.get().intValue());
+ }
+
+ @Test(expected = TimeoutException.class)
+ public void whenGetWithTimeoutLowerThanExecutionTime_thenThrowException() throws InterruptedException, ExecutionException, TimeoutException {
+ squareCalculator = new SquareCalculator(Executors.newSingleThreadExecutor());
+
+ Future result = squareCalculator.calculate(4);
+
+ result.get(500, TimeUnit.MILLISECONDS);
+ }
+
+ @Test
+ public void givenExecutorIsMultiThreaded_whenTwoExecutionsAreTriggered_thenRunInParallel() throws InterruptedException, ExecutionException {
+ squareCalculator = new SquareCalculator(Executors.newFixedThreadPool(2));
+
+ Future result1 = squareCalculator.calculate(4);
+ Future result2 = squareCalculator.calculate(1000);
+
+ while (!result1.isDone() || !result2.isDone()) {
+ System.out.println(String.format("Task 1 is %s and Task 2 is %s.", result1.isDone() ? "done" : "not done", result2.isDone() ? "done" : "not done"));
+
+ Thread.sleep(300);
+ }
+
+ assertEquals(16, result1.get().intValue());
+ assertEquals(1000000, result2.get().intValue());
+ }
+
+ @Test(expected = CancellationException.class)
+ public void whenCancelFutureAndCallGet_thenThrowException() throws InterruptedException, ExecutionException, TimeoutException {
+ squareCalculator = new SquareCalculator(Executors.newSingleThreadExecutor());
+
+ Future result = squareCalculator.calculate(4);
+
+ boolean canceled = result.cancel(true);
+
+ assertTrue("Future was canceled", canceled);
+ assertTrue("Future was canceled", result.isCancelled());
+
+ result.get();
+ }
+
+ @Before
+ public void start() {
+ start = System.currentTimeMillis();
+ }
+
+ @After
+ public void end() {
+ System.out.println(String.format("Test %s took %s ms \n", name.getMethodName(), System.currentTimeMillis() - start));
+ }
+}
diff --git a/core-java/src/test/java/com/baeldung/guava/GuavaBiMapTest.java b/core-java/src/test/java/com/baeldung/guava/GuavaBiMapTest.java
new file mode 100644
index 0000000000..0997c93a72
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/guava/GuavaBiMapTest.java
@@ -0,0 +1,120 @@
+package com.baeldung.guava;
+
+import static org.junit.Assert.*;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Test;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.EnumHashBiMap;
+import com.google.common.collect.HashBiMap;
+import com.google.common.collect.ImmutableBiMap;
+
+public class GuavaBiMapTest {
+ @Test
+ public void whenQueryByValue_returnsKey() {
+ final BiMap capitalCountryBiMap = HashBiMap.create();
+ capitalCountryBiMap.put("New Delhi", "India");
+ capitalCountryBiMap.put("Washingon, D.C.", "USA");
+ capitalCountryBiMap.put("Moscow", "Russia");
+
+ final String countryCapitalName = capitalCountryBiMap.inverse().get("India");
+
+ assertEquals("New Delhi", countryCapitalName);
+ }
+
+ @Test
+ public void whenCreateBiMapFromExistingMap_returnsKey() {
+ final Map capitalCountryMap = new HashMap<>();
+ capitalCountryMap.put("New Delhi", "India");
+ capitalCountryMap.put("Washingon, D.C.", "USA");
+ capitalCountryMap.put("Moscow", "Russia");
+ final BiMap capitalCountryBiMap = HashBiMap.create(capitalCountryMap);
+
+ final String countryCapitalName = capitalCountryBiMap.inverse().get("India");
+
+ assertEquals("New Delhi", countryCapitalName);
+ }
+
+ @Test
+ public void whenQueryByKey_returnsValue() {
+ final BiMap capitalCountryBiMap = HashBiMap.create();
+
+ capitalCountryBiMap.put("New Delhi", "India");
+ capitalCountryBiMap.put("Washingon, D.C.", "USA");
+ capitalCountryBiMap.put("Moscow", "Russia");
+
+ assertEquals("USA", capitalCountryBiMap.get("Washingon, D.C."));
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void whenSameValueIsPresent_throwsException() {
+ final BiMap capitalCountryBiMap = HashBiMap.create();
+
+ capitalCountryBiMap.put("New Delhi", "India");
+ capitalCountryBiMap.put("Washingon, D.C.", "USA");
+ capitalCountryBiMap.put("Moscow", "Russia");
+ capitalCountryBiMap.put("Trump", "USA");
+ }
+
+ @Test
+ public void givenSameValueIsPresent_whenForcePut_completesSuccessfully() {
+ final BiMap capitalCountryBiMap = HashBiMap.create();
+
+ capitalCountryBiMap.put("New Delhi", "India");
+ capitalCountryBiMap.put("Washingon, D.C.", "USA");
+ capitalCountryBiMap.put("Moscow", "Russia");
+ capitalCountryBiMap.forcePut("Trump", "USA");
+
+ assertEquals("USA", capitalCountryBiMap.get("Trump"));
+ assertEquals("Trump", capitalCountryBiMap.inverse().get("USA"));
+ }
+
+ @Test
+ public void whenSameKeyIsPresent_replacesAlreadyPresent() {
+ final BiMap capitalCountryBiMap = HashBiMap.create();
+
+ capitalCountryBiMap.put("New Delhi", "India");
+ capitalCountryBiMap.put("Washingon, D.C.", "USA");
+ capitalCountryBiMap.put("Moscow", "Russia");
+ capitalCountryBiMap.put("Washingon, D.C.", "HongKong");
+
+ assertEquals("HongKong", capitalCountryBiMap.get("Washingon, D.C."));
+ }
+
+ @Test
+ public void whenUsingImmutableBiMap_allowsPutSuccessfully() {
+ final BiMap capitalCountryBiMap = new ImmutableBiMap.Builder().put("New Delhi", "India").put("Washingon, D.C.", "USA").put("Moscow", "Russia").build();
+
+ assertEquals("USA", capitalCountryBiMap.get("Washingon, D.C."));
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void whenUsingImmutableBiMap_doesntAllowRemove() {
+ final BiMap capitalCountryBiMap = new ImmutableBiMap.Builder().put("New Delhi", "India").put("Washingon, D.C.", "USA").put("Moscow", "Russia").build();
+
+ capitalCountryBiMap.remove("New Delhi");
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void whenUsingImmutableBiMap_doesntAllowPut() {
+ final BiMap capitalCountryBiMap = new ImmutableBiMap.Builder().put("New Delhi", "India").put("Washingon, D.C.", "USA").put("Moscow", "Russia").build();
+
+ capitalCountryBiMap.put("New York", "USA");
+ }
+
+ private enum Operation {
+ ADD, SUBTRACT, MULTIPLY, DIVIDE
+ }
+
+ @Test
+ public void whenUsingEnumAsKeyInMap_replacesAlreadyPresent() {
+ final BiMap operationStringBiMap = EnumHashBiMap.create(Operation.class);
+
+ operationStringBiMap.put(Operation.ADD, "Add");
+ operationStringBiMap.put(Operation.SUBTRACT, "Subtract");
+ operationStringBiMap.put(Operation.MULTIPLY, "Multiply");
+ operationStringBiMap.put(Operation.DIVIDE, "Divide");
+
+ assertEquals("Divide", operationStringBiMap.get(Operation.DIVIDE));
+ }
+}
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapAggregateStatusTest.java b/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapAggregateStatusTest.java
new file mode 100644
index 0000000000..73a4cdc0cd
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapAggregateStatusTest.java
@@ -0,0 +1,76 @@
+package com.baeldung.java.concurrentmap;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+public class ConcurrentMapAggregateStatusTest {
+
+ private ExecutorService executorService;
+ private Map concurrentMap;
+ private List mapSizes;
+ private int MAX_SIZE = 100000;
+
+ @Before
+ public void init() {
+ executorService = Executors.newFixedThreadPool(2);
+ concurrentMap = new ConcurrentHashMap<>();
+ mapSizes = new ArrayList<>(MAX_SIZE);
+ }
+
+ @Test
+ public void givenConcurrentMap_whenSizeWithoutConcurrentUpdates_thenCorrect() throws InterruptedException {
+ Runnable collectMapSizes = () -> {
+ for (int i = 0; i < MAX_SIZE; i++) {
+ concurrentMap.put(String.valueOf(i), i);
+ mapSizes.add(concurrentMap.size());
+ }
+ };
+ Runnable retrieveMapData = () -> {
+ for (int i = 0; i < MAX_SIZE; i++) {
+ concurrentMap.get(String.valueOf(i));
+ }
+ };
+ executorService.execute(retrieveMapData);
+ executorService.execute(collectMapSizes);
+ executorService.shutdown();
+ executorService.awaitTermination(1, TimeUnit.MINUTES);
+
+ for (int i = 1; i <= MAX_SIZE; i++) {
+ assertEquals("map size should be consistently reliable", i, mapSizes.get(i - 1).intValue());
+ }
+ assertEquals(MAX_SIZE, concurrentMap.size());
+ }
+
+ @Test
+ public void givenConcurrentMap_whenUpdatingAndGetSize_thenError() throws InterruptedException {
+ Runnable collectMapSizes = () -> {
+ for (int i = 0; i < MAX_SIZE; i++) {
+ mapSizes.add(concurrentMap.size());
+ }
+ };
+ Runnable updateMapData = () -> {
+ for (int i = 0; i < MAX_SIZE; i++) {
+ concurrentMap.put(String.valueOf(i), i);
+ }
+ };
+ executorService.execute(updateMapData);
+ executorService.execute(collectMapSizes);
+ executorService.shutdown();
+ executorService.awaitTermination(1, TimeUnit.MINUTES);
+
+ assertNotEquals("map size collected with concurrent updates not reliable", MAX_SIZE, mapSizes.get(MAX_SIZE - 1).intValue());
+ assertEquals(MAX_SIZE, concurrentMap.size());
+ }
+
+}
diff --git a/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapNullKeyValueTest.java b/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapNullKeyValueTest.java
new file mode 100644
index 0000000000..62a3d10add
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapNullKeyValueTest.java
@@ -0,0 +1,160 @@
+package com.baeldung.java.concurrentmap;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import static org.junit.Assert.assertNull;
+
+public class ConcurrentMapNullKeyValueTest {
+
+ ConcurrentMap concurrentMap;
+
+ @Before
+ public void setup() {
+ concurrentMap = new ConcurrentHashMap<>();
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenGetWithNullKey_thenThrowsNPE() {
+ concurrentMap.get(null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenGetOrDefaultWithNullKey_thenThrowsNPE() {
+ concurrentMap.getOrDefault(null, new Object());
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenPutWithNullKey_thenThrowsNPE() {
+ concurrentMap.put(null, new Object());
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenPutNullValue_thenThrowsNPE() {
+ concurrentMap.put("test", null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMapAndKeyAbsent_whenPutWithNullKey_thenThrowsNPE() {
+ concurrentMap.putIfAbsent(null, new Object());
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMapAndMapWithNullKey_whenPutNullKeyMap_thenThrowsNPE() {
+ Map nullKeyMap = new HashMap<>();
+ nullKeyMap.put(null, new Object());
+ concurrentMap.putAll(nullKeyMap);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMapAndMapWithNullValue_whenPutNullValueMap_thenThrowsNPE() {
+ Map nullValueMap = new HashMap<>();
+ nullValueMap.put("test", null);
+ concurrentMap.putAll(nullValueMap);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenReplaceNullKeyWithValues_thenThrowsNPE() {
+ concurrentMap.replace(null, new Object(), new Object());
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenReplaceWithNullNewValue_thenThrowsNPE() {
+ Object o = new Object();
+ concurrentMap.replace("test", o, null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenReplaceOldNullValue_thenThrowsNPE() {
+ Object o = new Object();
+ concurrentMap.replace("test", null, o);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenReplaceWithNullValue_thenThrowsNPE() {
+ concurrentMap.replace("test", null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenReplaceNullKey_thenThrowsNPE() {
+ concurrentMap.replace(null, "test");
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenReplaceAllMappingNull_thenThrowsNPE() {
+ concurrentMap.put("test", new Object());
+ concurrentMap.replaceAll((s, o) -> null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenRemoveNullKey_thenThrowsNPE() {
+ concurrentMap.remove(null);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenRemoveNullKeyWithValue_thenThrowsNPE() {
+ concurrentMap.remove(null, new Object());
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenMergeNullKeyWithValue_thenThrowsNPE() {
+ concurrentMap.merge(null, new Object(), (o, o2) -> o2);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenMergeKeyWithNullValue_thenThrowsNPE() {
+ concurrentMap.put("test", new Object());
+ concurrentMap.merge("test", null, (o, o2) -> o2);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMapAndAssumeKeyAbsent_whenComputeWithNullKey_thenThrowsNPE() {
+ concurrentMap.computeIfAbsent(null, s -> s);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMapAndAssumeKeyPresent_whenComputeWithNullKey_thenThrowsNPE() {
+ concurrentMap.computeIfPresent(null, (s, o) -> o);
+ }
+
+ @Test(expected = NullPointerException.class)
+ public void givenConcurrentHashMap_whenComputeWithNullKey_thenThrowsNPE() {
+ concurrentMap.compute(null, (s, o) -> o);
+ }
+
+ @Test
+ public void givenConcurrentHashMap_whenMergeKeyRemappingNull_thenRemovesMapping() {
+ Object oldValue = new Object();
+ concurrentMap.put("test", oldValue);
+ concurrentMap.merge("test", new Object(), (o, o2) -> null);
+ assertNull(concurrentMap.get("test"));
+ }
+
+ @Test
+ public void givenConcurrentHashMapAndKeyAbsent_whenComputeWithKeyRemappingNull_thenRemainsAbsent() {
+ concurrentMap.computeIfPresent("test", (s, o) -> null);
+ assertNull(concurrentMap.get("test"));
+ }
+
+ @Test
+ public void givenKeyPresent_whenComputeIfPresentRemappingNull_thenMappingRemoved() {
+ Object oldValue = new Object();
+ concurrentMap.put("test", oldValue);
+ concurrentMap.computeIfPresent("test", (s, o) -> null);
+ assertNull(concurrentMap.get("test"));
+ }
+
+ @Test
+ public void givenKeyPresent_whenComputeRemappingNull_thenMappingRemoved() {
+ Object oldValue = new Object();
+ concurrentMap.put("test", oldValue);
+ concurrentMap.compute("test", (s, o) -> null);
+ assertNull(concurrentMap.get("test"));
+ }
+
+}
diff --git a/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapPerformanceTest.java b/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapPerformanceTest.java
new file mode 100644
index 0000000000..a0efa89351
--- /dev/null
+++ b/core-java/src/test/java/com/baeldung/java/concurrentmap/ConcurrentMapPerformanceTest.java
@@ -0,0 +1,95 @@
+package com.baeldung.java.concurrentmap;
+
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.concurrent.*;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class ConcurrentMapPerformanceTest {
+
+ @Test
+ public void givenMaps_whenGetPut500KTimes_thenConcurrentMapFaster() throws Exception {
+ Map hashtable = new Hashtable<>();
+ Map synchronizedHashMap = Collections.synchronizedMap(new HashMap<>());
+ Map concurrentHashMap = new ConcurrentHashMap<>();
+
+ long hashtableAvgRuntime = timeElapseForGetPut(hashtable);
+ long syncHashMapAvgRuntime = timeElapseForGetPut(synchronizedHashMap);
+ long concurrentHashMapAvgRuntime = timeElapseForGetPut(concurrentHashMap);
+
+ System.out.println(String.format("Hashtable: %s, syncHashMap: %s, ConcurrentHashMap: %s", hashtableAvgRuntime, syncHashMapAvgRuntime, concurrentHashMapAvgRuntime));
+
+ assertTrue(hashtableAvgRuntime > concurrentHashMapAvgRuntime);
+ assertTrue(syncHashMapAvgRuntime > concurrentHashMapAvgRuntime);
+
+ }
+
+ private long timeElapseForGetPut(Map map) throws InterruptedException {
+ ExecutorService executorService = Executors.newFixedThreadPool(4);
+ long startTime = System.nanoTime();
+ for (int i = 0; i < 4; i++) {
+ executorService.execute(() -> {
+ for (int j = 0; j < 500_000; j++) {
+ int value = ThreadLocalRandom.current().nextInt(10000);
+ String key = String.valueOf(value);
+ map.put(key, value);
+ map.get(key);
+ }
+ });
+ }
+ executorService.shutdown();
+ executorService.awaitTermination(1, TimeUnit.MINUTES);
+ return (System.nanoTime() - startTime) / 500_000;
+ }
+
+ @Test
+ public void givenConcurrentMap_whenKeyWithSameHashCode_thenPerformanceDegrades() throws InterruptedException {
+ class SameHash {
+ @Override
+ public int hashCode() {
+ return 1;
+ }
+ }
+ int executeTimes = 5000;
+
+ Map mapOfSameHash = new ConcurrentHashMap<>();
+ ExecutorService executorService = Executors.newFixedThreadPool(2);
+ long sameHashStartTime = System.currentTimeMillis();
+ for (int i = 0; i < 2; i++) {
+ executorService.execute(() -> {
+ for (int j = 0; j < executeTimes; j++) {
+ mapOfSameHash.put(new SameHash(), 1);
+ }
+ });
+ }
+ executorService.shutdown();
+ executorService.awaitTermination(5, TimeUnit.SECONDS);
+
+ long mapOfSameHashDuration = System.currentTimeMillis() - sameHashStartTime;
+ Map