Sunday, 31 July 2011

Creating a Multi-Module Maven Project


Install Maven plugin for Eclipse:
























Once the plugin is installed we can create a maven project like this:




















Click on Next; enter group id, artifact id, version and package; click Finish.























Now as we want to create modules inside this project, we need to change the packaging to pom. Refer screenshot.















Create a new maven module.




















Click on Next; enter package name and click Finish.

















Similarly create other modules like 'view' and 'controller'. The final pom file will look like this:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.jbasics.maven.example</groupId>
 <artifactId>mvc-parent</artifactId>
 <version>0.0.1-SNAPSHOT</version>

 <packaging>pom</packaging>
 <name>mvc-parent</name>
 <url>http://maven.apache.org</url>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
  </dependency>
 </dependencies>
 <modules>
  <module>model</module>
  <module>view</module>
  <module>controller</module>
 </modules>
</project>



Wednesday, 27 July 2011

Java Updates Summarized

  • Java 7 (codename Dolphin) is an upcoming major update to Java, it has been launched on July 7 of 2011 and will be made available today (July 28, 2011) . Here is the list of JDK 7 features:
Java programming getting simplified: Strings in switch statements, try-with-resources statements, improved type inference for generic instance creation ("diamond"), simplified varargs method invocation, better integral literals, and improved exception handling (multi-catch).
Concurrency and collections updates: A lightweight fork/join framework, flexible and reusable synchronization barriers, transfer queues, concurrent linked double-ended queues, and thread-local pseudo-random number generators.
New APIs for filesystem access, scalable asynchronous I/O operations, socket-channel binding and configuration, and multicast datagrams.
Upgrade the components of the XML stack to the most recent stable versions: JAXP 1.4, JAXB 2.2a, and JAX-WS 2.2
Upgrade to JDBC 4.1 and Rowset 1.1
Upgrade the supported version of Unicode to 6.0
        
  • Spring Integration 2.0.5 Released
Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns. It enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. Those adapters provide a higher-level of abstraction over Spring's support for remoting, messaging, and scheduling. Spring Integration's primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.

  • Spring Roo 1.1.5 Released
SpringSource and Google are working together to combine the speed of development of Spring Roo with the power of the Google Web Toolkit (GWT) to build rich browser apps. Try out the exciting GWT and Google App Engine support now available from Spring Roo.

  • How I Became a REST "Convert"
Representational State Transfer, commonly known as REST, is a style of distributed software architecture that offers an alternative to the commonly accepted XML-based Web Services as a means for system-to-system interaction... when I needed to implement the Services I had already determined were necessary, I faced a choice: use Web Services or REST-based styles as the means to interact with the Services. For the reasons I outline below, REST was a clear winner for my particular use case.

  • Real Time analytics for Big Data: Facebook's New Realtime Analytics System
The massive transition to online and social applications makes it possible to track user patterns like never before. The correlation between the quality of data that providers track and their business success is closely related: for example, e-commerce customers want to know what their friends think about products or services, right in the middle of their shopping experience. If sites cannot keep up with their thousands of users in real-time, they can lose their customers to sites that can.

  • Secure your code against the finalizer vulnerability
Finalizers can cause a vulnerability in Java code when used to create objects. The exploit is a variation of the well-known technique of using a finalizer for resurrecting an object. When an object with a finalize() method becomes unreachable, it is put on a queue to be processed at some later time. This tip explains how the exploit works and shows how you can protect your code from it. All of the code examples are available for download.

  • Session and Clustered Java Web Apps
Session can be a headache to work with in Java web applications. For that reason, most developers now use MVC frameworks, such as Java Server Faces, that hide the use of session and allow you to work with simple Java beans and configuration instead. But, that’s not always the case, especially where you have plain servlets that you have to maintain. With servlets, you have the power to put objects into and take objects out of session yourself. Alone, this presents thread-safety issues, but manually managing session in an application that is clustered presents more problems.

  • Will HTML5 kill the mobile app?
For a couple of years now, we've been talking about apps for a multitude of purposes. Mobile apps continue to be the preferred way to deliver new services or content to mobile devices. But, with a powerful new upgrade to HTML now emerging, developers may opt for apps that run in mobile browsers.

  • NoSQL should be in your business, and MongoDB could lead the way
Although NoSQL databases like Cassandra (originally developed and used by Facebook) or CouchDB get a lot of media attention, MongoDB appears to be the product to catch in this hot market. As evidence, worldwide Google searches for various NoSQL product names shows the marked increase in MongoDB and Mongo searches since January 2011. Google searches for MongoDB and Mongo exceeded searches for CouchDB, Couchbase, Membase, Cassandra, and HBase combined. And according to Indeed.com, open positions seeking MongoDB or Mongo skills have outpaced other leading NoSQL products. MongoDB and Mongo now represent the most sought-after NoSQL skills among companies hiring on Indeed.com. Finally, recently announced PaaS offerings from Red Hat and VMware featured MongoDB at the data services layer of their respective offerings.

Friday, 15 July 2011

Test REST Service Using soapUI

Step 1:

  Go to File > New soapUI Porject (ctrl-N), enter name of the project, select the option to add the REST service and hit ok (refer screenshot 1).
















Step 2:
 
  A dialog to add a new REST service will appear on the screen. Enter Service Name, Service Endpoint and choose the option to extract resource and method from the specified Endpoint (refer screenshot 2).

 














Step 3:

  Once you click ok, another dialog to add a new REST resource will appear on the screen. Enter the resource name as per your choice (refer screenshot 3).

 




















Step 4:
 
   Next step is to add the name of REST method and click ok(refer screenshot 4).

 






















Step 5:
 
    A dialog to submit the request will appear. Click submit button to submit the request to specified Endpoint URL and you will get the response (refer screenshot 5).

Friday, 8 July 2011

Monthly Report(5th June-7th July 2011)

Missed writing weekly tech reports for about a month. I just happened to get involved in some other interesting stuff like bringing my passive vocab into my functional dictionary. So thought of writing this tech report for a month, covering major happenings.

I felt it was a Google month! Google Plus was released. You can now think of your social network as actual set, its subsets and intersection. You can simply manage your various Circles, can also share pics with all or specified circles using Instant Upload.Hangouts provide you live chat. You can join in a hangout of a circle you are involved in. Similarly you can use Huddle as a way to group chatting. Now you've got a way to tell what your interests are. Search in Sparks and save it as your interest. As and when you like you can check out updates related to your interests.

Google+ bar, a black navigation bar, has started appearing on top of google pages. +You is your shortcut for Google Plus. You can also have a quick access to various Google apps from here.

Gmail has also come up with new features. There are new themes. You can choose 'Preview' or 'Preview(Dense)' themes for a very neat and clean look and feel(since not used to such a great deal of cleanliness, I'm not opting for this!). Of course you can create your own theme too.

In acquisition area too, Google made its move. Admeld entered into an agreement to be acquired by Google. Admeld provides expertise and technology to help to business publishers interact with buyers, sell smarter, and maximizing access to demand.
GoDaddy, the God and Dad of domain names registry, has been sold for $2.25 billion to group of firms consisting KKR & Co., Silver Lake Partners and Technology Crossover Ventures. GoDaddy is managing about 50 million domain names and millions of users! In the past few years it also grew largely in web hosting, eCommerce and related services.  Btw I'm pretty impressed with the blog of GoDaddy's founder cum CEO!
MySpace, the social entertainment and online media platform will have a shift of its parent company. News Corp. is in the final stages of selling the social network(not-so-great doing presently) to Specific Media. Specific Media is an interactive media company that enables advertisers to connect with their customers in useful and relevant ways.
eBay acquired Zong, with which you can pay for purchases with your mobile phone number. This is definitely going to strengthen PayPal. About a month ago eBay had announced buying of Magento, the eCommerce platform. Now Magento will form the kernel of open commerce platform- 'X.Commerce.'
Twitter acquired BackType, the social media analytics company. Its product 'BackTweets' helps publishers to understand where all their tweets reach and how those tweets covert to web traffic, sales and other KPIs.