REST service using Embedded Jetty Server and Jersey ServletContainer

I wanted to developed embedded solution that provides REST service without using external container like JBoss.
This can be done using Jetty Server, Jersey ServletContainer and simple maven project.
Code as below

Full source code

Saving instance state of the Fragment while screen rotation

To give seamless experience to user, it important to keep user in same state of operation. For example if user is typing something in EditText and rotates device, text entered by user should be kept.

When device rotates activity gets recreated forcing Fragment to recreate.
Here we can maintain state of fragment so that after rotation fragment can restore data using saved instance state.

Full source code


 

Making sequential requests using Volley

Volley by nature is async as on completion of request callback gets triggered. We add request by using RequestQueue.add(Request) which gets added in internal priority blocking queue. By default 4 dispatcher or network threads run in background which pick request from queue and process it. As soon as processing is complete dispatcher picks next request in from the queue.

To make volley request sequential we need to restrict dispatcher threads to single thread instated of four. By doing this we restrict Volley from executing next request before complication of current request.

We can use RequestQueue constructor

Sorting string array using SetTree

Code is straight forward

 

Accessing H2 in memory database

Accessing H2 in memory database integrated in spring application

Add below 2 beans in spring config. H2 console will be accessible on http://localhost:8082/

<bean id=“h2Server” class=“org.h2.tools.Server” factory-method=“createTcpServer” init-method=“start” destroy-method=“stop” depends-on=“h2WebServer”>
<constructor-arg value=“-tcp,-tcpAllowOthers,-tcpPort,9092”/>
</bean>
<bean id=“h2WebServer” class=“org.h2.tools.Server” factory-method=“createWebServer” init-method=“start” destroy-method=“stop”>
<constructor-arg value=“-web,-webAllowOthers,-webPort,8082”/>
</bean>

String with variable parameters

Using string with parameters is very handy in case of Constants.

Java class in focus is: java.text.MessageFormat

 

Output will be

Welcome Mr. Nikhil to njoshi.com
Welcome Mrs. Tejashree to njoshi.com

Installing VirtualBox guest additions on CentOS or RHEL

Process is very simple

  1. Login as root
  2. Install dependencies # yum install gcc make kernel-headers kernel-devel
  3. Reboot for loading new kernel info if required and to be on safer side
  4. Use gmake instated of make #export MAKE=’/usr/bin/gmake -i’
  5. Insert guest additions CD
  6. goto installer # cd /media/VBOXADDITIONS*
  7. #./VBoxLinuxAdditions.run
  8. Reboot and enjoy

Creating multiple jars from single pom file

In ant we can create any number of jars using <jar> tag, but when we are moving to maven from ant it we may face challenge. Old code may not be modular imposing use of single pom file. In this case maven-jar-plugin come to rescue.

maven-jar-plugin

I guess xml is self explanatory, if question put it in comments

Full working source code