Java Memory Model, MultiThreading, Thread Priorities, Concurrency and Parallelism

Understanding MultiThreading In Java The semantics of multithreaded programs and the rules that says how the values may be seen by a read of shared memory that is updated by multiple threads are known as the Java programming language memory model. In this discussion we will see how Java threads are scheduled on different environments,… Read More »

Apache Zookeeper Explained: Tutorial, Use Cases and Zookeeper Java API Examples

Explaining Apache Zookeeper Apache Zookeeper is a highly consistent, scalable and reliable cluster co-ordination service. ZooKeeper itself is a distributed service that is ideal for Configuration management, Naming service, providing distributed synchronization, leader election and group services. It is a open source service that reliably coordinates distributed processes. Your distributed clustered applications can make use… Read More »

REST API Versioning: URI and Media Type-Header Versioning Strategies

What are the best strategies to implement REST API versioning? URI and Media Type-Header Versioning Strategies and Examples When considering REST API Versioning strategy , there are few different options available such as REST api URI versioning or Media Type Header versioning. As our Restful web services application grows and the need for API upgrades… Read More »

HATEOAS and Hypermedia Aware Services And Clients :REST

In this article we discuss HATEOAS (Hypermedia as the Engine of Application State) Rest constraint and some HATEOAS example and HATEOAS Json representations of embedded hypermedia.Jersey currently supports HATEOAS and Spring Rest-hateoas also provides rich support to buiild Hypermedia-Driven RESTful Web Services. Table of Contents What is HATEOAS? HATEOAS Tutorial and HATEOAS Example HATEOAS Example:… Read More »

How To Fix: PKIX Path Building Failed (Validation) : sun.security.validator.ValidatorException

How To Fix Error : sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target You could get the error “PKIX path building failed” validation error when working on a client that works with an SSL enabled server running in https protocol. This article focuses on detecting the root cause… Read More »

Strategy Design Pattern and Single Responsibility and Open-Closed Principles

Strategy design pattern is widely implemented to achieve interchangeable algorithmic behavior at runtime. As we know strategy pattern uses aggregation or composition instead of inheritance. It is a behavioral design pattern. The behaviors are defined in separate interfaces and the encapsulating classes that implement this interface. Generally most of the SOLID principles can be identified… Read More »

Factory Design Patterns and Open-Closed Principle (OCP), the ‘O’ in SOLID

Factory Design patterns are Creational patterns and deals with how the objects are created. There are three design patterns, namely, Simple Factory, Factory Method and Abstract Factory design patterns. All these patterns hide the object creation process from the client and supply the objects without specifying the exact class of object that will be created.… Read More »

JAX-WS Exceptions and Faults: Annotation, Exception and Fault Handling Examples

JAX-WS exception and SOAP fault handling sometimes confuses a Java programmer. This article explains the handling of JAX-WS exceptions and SOAP Fault with examples. Here, we also check some of the common Exceptions such as “IllegalAnnotationExceptions. java.lang.StackTraceElement does not have a no-arg default constructor.“. This article also discusses the JAX-WS mapping of WSDL faults to… Read More »

Design Considerations: When Should We Use JSON instead of XML as Data-interchange Format?

As we know, JSON (JavaScript Object Notation) is a lightweight and text based data-interchange format that is used frequently replacing XML. The question is, when should we consider JSON instead of XML as the data interchange format? Table of Contents Few Points: JSON and XML JavaScript Runtime and JSON Performance & bandwidth Considerations Security and… Read More »

Java Performance – String, StringBuffer and StringBuilder Memory and Runtime Analysis

We normally use many string instances in our applications. As we know String objects are immutable and their values cannot be changed after they are created. If you intend to use a string object that is dynamic, then StringBuffer or StringBuilder should be your choice. This is because both are mutable. String always creates a… Read More »