Sharing Knlowledge With The World…

Month: September 2014

Clover ETL

clover etl

We are living in exciting times in the field of data integration , tools like Talend , Pentaho are giving heavyweight tools Informatica ,Ablnitio and Datastage a run for their money . The features offered by these tools though not as matured as the bigger heavy weight tools , but are exhaustive nonetheless (especially the features offered by Talend) . Today we are discussing another such tool , Clover ETL .

Clover Overview

Clover Data Integration is relatively new compared to their competitors Talend , Pentaho . Like Talend , Clover uses the Eclipse framework for the visual editor and use JRE to run transformations the difference being Clover is a metadata driven tool and does not need code generation to run jobs.

CloverETL has a smaller pallete but offers functionality which is much complex.They are easier to choose from with well defined functionality.But features like parallelism is supported in the enterprise version , which seems to be a trend in all these “opensource data integration” tools.


  • Pass parameter to Graphs through file.
  • Enables visual debugging and data monitoring at any point of time.
  • Easy switch between graphs.
  • Share connections between data structures.


Input and Output Components:










Transformations Provided:














Types of Joins Provided:

CloverETL- Joiners







If you would like to learn more about this awesome tool , access the following link :CloverETL


Clover ETL shows a lot of promise and is a very powerful tool in its own right. Provided this article just provide an overview of the tool , you can expect more articles in the future to have a detailed Talend v/s CloverETL analysis. Given the economic slowdown where bootstrapping is a necessity , CloverETL along with other tools like Talend and Pentaho are reliable , powerful options to consider !!

Continue Reading

Inheritance in Object-oriented Programming

Inheritance in Object-oriented Programming

Inheritance in Object-oriented Programming is an important concept. Inheritance defines the relationship between the different objects.

Inheritance is the process wherein characteristics are inherited from ancestors. Similarly, in Java, a subclass inherits the characteristics (properties and methods) of its superclass (ancestor).

An object is able is able to inherit characteristics from another object. In other words we can say that an object is able to pass on its state and behavior to its children. The objects need to have characteristics in common with each other for inheritance to work.

For example Mountain bikes, road bikes, tandem bikes, all share common characteristics of bikes like speed, gear. Also all these bikes have some additional functionalities.

Inheritance in Object-oriented Programming allows classes of mountain bike, road bike, tandem bike to having the properties of class bike and bike became the superclass of all the type of bikes. In Java Programming language each subclass can have one direct superclass and superclass can have unlimited number of subclass.

Inheritance in Object-oriented Programming

Inheritance in Object-oriented Programming


One Liner: Inheritance is a mechanism wherein a new class is derived from an existing class.

In Java, classes can inherit or we can say acquire the properties and methods of other classes. A class that inherits from another class is called a subclass, whereas the class from which a subclass is derived is called a superclass. The keyword “extends” is used to derive a subclass from the superclass.

There is simple syntax for creating a subclass. Use the extend keyword at the beginning of your class declaration, followed by the name of the class to inherit from (superclass):

class MountainBike extends Bike {


   // new fields and methods defining

   // a mountain bike would go here



This gives Mountain Bike all the same fields and methods as Bike, yet allows its code to focus exclusively on the features that make it unique.

Continue Reading

Interface in Object-oriented Programming

Interface in Object-oriented Programming

Objects interact with outside word through the methods that they exposed.

So Interface can be defined as contract which has enlisted all the methods which must be supported by the objects.

One Liner: An Interface in Object-oriented Programming is a blueprint of a class. It has static constants and abstract methods.

The interface is a mechanism to achieve fully abstraction in java. There can be only abstract methods in the interface. It is used to achieve fully abstraction and multiple inheritances in Java.

Consider ‘receive’ and ‘reject’ buttons on your phone. You know that these buttons will receive and reject the call and must support by the phone that’s why they are in the phone. The buttons acts as interface between you and phone.

Interface Phone {

Void receives ()

Void reject ();


Interfaces cannot be instantiated, but rather are implemented.Implementing an interface allows a class to become more formal about the behavior it promises to provide. Interfaces form a contract between the class and the outside world, and this contract is enforced at build time by the compiler. If your class claims to implement an interface, all methods defined by that interface must appear in its source code before the class will successfully compile.

In Java IS-A relationship is represented by interface.

Interface in Object-oriented Programming

Interface in Object-oriented Programming


Continue Reading

Class in Object-oriented Programming

Class in Object-oriented Programming

Class in object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions, methods).


One Liner: A Class in Object-oriented Programming is an expanded concept of a data structure: instead of holding only data, it can hold both data and functions.

A class is a blueprint or template or set of instructions to build a specific type of object. Every object is built from a class.

Class in Object-oriented Programming

Class in Object-oriented Programming

Let’s try to understand the class with the example of making cookies.

Class is like recipe of how to make cookie. The recipe itself is not a cookie. You can’t eat the recipe. If you follow the recipe then you can make cookie. The cookie which we made from the recipe can be referred as an object.

You can make as many cookies as you would like using the same recipe. Similarly you can create as many instances of a class as you would like.

Now assume that you have to create cookies for different people. How you will identify which cookie is for which person. A simple solution is that write name of the person on the cookie. Reference variables work in similar fashion. A reference variable provides a unique name for each instance of a class. In order to work with a particular instance, you use the reference variable it is assigned to.

Creating class Cookie:

Class Cookie {

String flavor;

String taste;



Creating cookies for different persons:

Cookie cookieForPerson1 = new Cookie ();

Cookie cookieForPerson2 = new Cookie ();



Continue Reading

Package in JAVA


Suppose you and your friend are freelancers and work as a team. You got a project which has to complete in one week. So you decided to divide the project in two modules and each of you works on different module. In this way you can complete the project in time. Say the name of the module on which you working is ‘module-A’ and the module on which on your friend is working is ‘module-B’.

Now both of the modules have the class name ‘Utility’.

When you combine both the module at the last then you have two ‘Utility’ classes. Now how you would identify which ‘Utility’ class belong to whom. Package is the solution for these types of problems.

Both of you write your code in your package and the both the ‘Utility’ classes belong to different packages, so there is no ambiguity.

One Liner: A Package in JAVA is a namespace that organizes a set of related classes and interfaces.

You can relate packages as being similar to the folders on your computer. You can put images in one folder, application in another and movies in another. Software written in Java programming language can be composed of thousands of classes so it is good practice to organize our packages and classes in by putting then in different packages.

When creating a package, you should choose a name for the package and put a package statement with that name at the top of every source file that contains the classes, interfaces, enumerations, and annotation types that you want to include in the package.

The package statement should be the first line in the source file. There can be only one package statement in each source file, and it applies to all types in the file.

If a package statement is not used then the class, interfaces, enumerations, and annotation types will be put into an unnamed package.


Example of Package in JAVA:


package car;

 interface Car {

   public void run();   public void break();



package car; 

public class Honda implements Car {  

public void run(){}  

public void break(){}



Continue Reading

What is an Object in Object Oriented Programming ?


An object can be a variable, function, or data structure. In the object oriented programming paradigm, “object” refers to a particular instance of a class where the object can be a combination of variables, functions, and data structures

Objects refer the state and behavior of the class.

If you see around yourself you would find real world example for object like pen, bike, mobile, etc. If you notice then all these real world object examples share two common things, i.e. state and behavior. Pen have state (color, length) and behavior (write) also, similarly bike have state (brand, color) and behavior (make call, receive call).

Similarly object in Object-oriented programming also have state and behavior

One Liner: Objects are software bundles of data and related methods.

Anything that the Object in object oriented programming knows (state) and can do (behavior) is expressed by the variables and methods within that object.

Let’s try to understand the OOPs object with the example of real world example:

OOPs Object

As shows in the figure OOP object has variable and methods.

Object in object oriented programming have state (variable) and behavior (methods).

If we try to create similar real world object of dogs then it state would be: Color, Breed, Name and behavior can be: Barking, Walking, etc.

Realworld Object

Continue Reading

Garbage Collection in JAVA

Garbage Collection in JAVA

 One of the finest achievement of the JAVA is Garbage Collection. Now developers not to worry about allocation and de-allocation of the memory and create new objects. The responsibility of reclaiming the memory is of Garbage Collector.

One Liner: Garbage Collection is the mechanism provided by Java Virtual Machine to reclaim heap space from objects which are eligible for Garbage Collection.

In order to understand how Garbage Collection works in java, first we need to understand how memory is managed in Java Virtual Machine (JVM).

Heap Memory

When a JAVA programme starts, OS allocate some memory to JVM. JVM uses this memory for its need and use a part of this memory as Heap Memory.

Heap Memory is the area of the memory used for dynamic allocation. Generally Heap is located at the bottom of address space and move upwards.


Memory Allocation in JVM

Memory Allocation in JVM

When we create any object, the memory is allocated to object from heap and when the object is collected by Garbage Collector the memory goes back to Heap Memory.


Objects Eligible for Garbage Collection in Java

Garbage Collector collects the objects which are not in the use.

One Liner: An object is in use if it can be reached or accessed by the running program.

In JVM, running Java programme have many running threads, each of which is executing the method(s).

Each of the method have reference to objects as arguments or local variable. These reference belong to Root Set of References. Root set of references are the references which are immediately accessible by the programme. Static references variables and references registered through Java Native Interface (JNI) API are also belongs to Root Set of References.

Following are some scenarios in which the object is eligible for garbage collection:

  • The object is not referred by any references or we can say that all the references of the object is set to null.
  • Reference goes out of scope once control exit the block or method.
  • When you set the reference of the object to null, all the object which are referred by only this object is eligible for garbage collection.
  • If there is cyclic reference, then all the object in the cycle are eligible for garbage collection.

E.g.: a=b; b=c; c=a

  • When the object only have weak reference or soft reference.


How Garbage Collection in JAVA works


To identify which objects are eligible for garbage collection in Java, JVM runs mar-and-sweep-algorithm.

It’s a two-step straightforward process:

  • All object’s references traverse in this algorithm, starting from root set and marked as live object.
  • Then Garbage collector collect those objects which are not marked as live objects and reclaim the heap memory.


Garbage Collection in JAVA

Garbage Collection in JAVA

Continue Reading