GSoc : Sample project ideas on "JBoss AS Quickstarts: Hibernate" mentioned in JBoss GSoc 2014 ideas Page.
by Giriraj Sharma
Hii,I am Giriraj Sharma (http://girirajsharma27.wix.com/giriraj), a
dedicated GSoc aspirant(3 years experience in JavaSE+1.5 years experience
in JavaEE) from Dept. of Computer Science, National Institute of
Technology,HP,India, interested in making valuable contribution to the
project JBoss AS Quickstarts: Hibernate proposed in GSoc14 ideas Page (
https://community.jboss.org/wiki/GSOC14Ideas?_sscc=t).
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GSoc Project Proposal Ideas Page:
*https://community.jboss.org/wiki/GSOC14Ideas
<https://community.jboss.org/wiki/GSOC14Ideas>* JBoss AS Quickstarts:
Hibernate
*Status:* Proposed
*Summary of idea: JBoss offers a collection of quickstarts - simple
applications which demonstrate a single use case or feature of JBoss AS 7.
A full list can be viewed at
https://docs.jboss.org/author/display/AS71/Contributing+a+Quickstart
<https://docs.jboss.org/author/display/AS71/Contributing+a+Quickstart>.
This project involves building out three new quickstarts to show off
Hibernate Search, and multitennancy for Hibernate ORM. Additionally the
project should research and develop two further use cases for the Hibernate
group of projects that show off common uses of Hibernate in JBoss AS 7.*
*You should have a strong interest in building examples, and showing people
how to use technology. Domain expertise can be provided if needed.*
*Knowledge prerequisite: Java*
*Skill level:*
*Contact(s): Pete Muir <https://community.jboss.org/people/pmuir>*
*Mentor(s): Pete Muir, Sande Gilda, Burr Sutter*
*Associated project(s): Trailblazer SIG
<https://community.jboss.org/groups/trailblazer>*
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I have already forked *jboss-developer/jboss-eap-quickstarts* repository
from github and I have read the guide to contributing to a quickstart (
http://www.jboss.org/jdf/quickstarts/get-involved/).* I have been actively
committing on git repository *(
https://github.com/jboss-developer/jboss-eap-quickstarts)* since past 15-20
days.One of my commit has been merged and my several other(11) commits are
under code review.*Since past 2-3 weeks,I had been reading through official
documentation of hibernate orm and I found it really very enthusiastic and
interesting project to work upon this summer.I have formulated a few
quickstart ideas from beginnerto advance and *wishing for a review so that
I may improve it further and add up something in case I may be missing it
out.*
I have mentioned MySQl as a db instance,but,I may choose between
MySQL,PostgreSQL, NoSQL or in-memory databases(H2,HSQLDB) or any other DB
depending upon which suits the best for a particular quickstart.* Sorry,for
poor formatting of tables as Gmail body content doesnt likes bullets and
numbering.I am attaching a word file as well with properly and nicely
formatted quickstart tables document*.
Suggestions and Improvements are most welcome.I would be pleased to
elaborate upon any of the quickstarts mentioned below.Thanks in advance :)
*Quick start Name*
*Technologies*
*Demonstration*
*Description*
*Experience*
*Tags : Hibernate Hello World, Hibernate Integration*
· *Hibernate Hello World using Annotation*
Hibernate, Maven, MySQL
CRUD application in Hibernate using Java 5 Annotation
Beginner
· *Hibernate Hello World using XML Mapping*
Hibernate, Maven, MySQL
CRUD application in Hibernate using Java XML Mapping
Beginner
· *Hibernate + Spring 3 MVC Hello World*
Hibernate, Spring 3, Maven, MySQL, JSP/JSF
Integration of Hibernate with Spring3 framework.
Simple Contact Manager app which will allow user to add new contacts. The
list of contacts will be displayed and user will be able to delete existing
contacts.
Beginner
· *Hibernate + Struts2 MVC Hello World*
Hibernate, Strust2, Maven, MySQL, JSP/JSF
Integration of Hibernate with Struts2 framework.
Simple Contact Manager app which will allow user to add new contacts. The
list of contacts will be displayed and user will be able to delete existing
contacts.
Beginner
· *Hibernate + Struts2 + Spring3 MVC Hello World*
Hibernate, Strust2, Spring3, Maven, MySQL, JSP/JSF
Integration of Hibernate with Struts2 and Spring3 framework.
Simple customer management (add and select) web application.
Beginner
· *Saving/Retrieving BLOB object in Spring 3 MVC and Hibernate*
Hibernate, Spring 3, Maven, MySQL, JSP/JSF
Spring 3 MVC and Hibernate demo to store and retrieve blob objects from
database.
Document manager application which will allow user to upload, download and
delete a document or file.
Intermediate
· *Writing a URL Shorten app in Java Struts2 & Hibernate*
Hibernate,Struts2
,MySQL, JSP/JSF
Simple URL shorten service in pure JEE with Struts2 and Hibernate.
A web application which will allow user with URL shorten service and see
statistics/details of any short URL.
Intermediate
*Quick start Name*
*Technologies*
*Demonstration*
*Description*
*Experience*
*Tags : Hibernate Association (Table Relationship),Hibernate Mapping*
· *Table Per Concrete Class (Annotation & XML mapping)*
· *Hibernate Inheritance: Table Per Subclass (Annotation & XML
mapping)*
· *Hibernate Inheritance: Table Per Class Hierarchy (Annotation &
XML Mapping)*
Hibernate, Maven, MySQL
Hibernate Inheritance
CRUD application showing Hibernate Inheritance: One Table per Concrete
Class/Subclass/Class Hierarchy scheme.
Beginner
· *Hibernate One To One Mapping*
*(XML, Annotation)*
Hibernate, Maven, MySQL
Hibernate Mapping.
One-to-one mapping in Hibernate framework using XML/Annotation Mapping.
Beginner
· *Hibernate One To Many Mapping*
*(XML, Annotation)*
Hibernate, Maven, MySQL
Hibernate Mapping.
One-to-many mapping in Hibernate framework using XML/Annotation Mapping.
Beginner
· *Hibernate Many To Many Mapping*
*(XML, Annotation)*
Hibernate, Maven, MySQL
Hibernate Mapping.
Many-to-many mapping in Hibernate framework using XML/Annotation Mapping.
Beginner
· *Hibernate Self Join One To Many Annotations Mapping *
Hibernate, Maven, MySQL
Hibernate self-join Mapping.
Self-Reference one to many relationship using Annotation mapping.
Beginner
· *Hibernate Self Join Many To Many Annotations Mapping*
Hibernate, Maven, MySQL
Hibernate self-join Mapping.
Self-Reference many to many relationship using Annotation mapping.
Beginner
*Quick start Name*
*Technologies*
*Demonstration*
*Description*
*Experience*
*Tags : Hibernate Query Language, Hibernate Criteria API*
· *Hibernate Query Language*
· *Hibernate parameter binding*
· *Hibernate Native SQL*
· *Hibernate Named Query*
Hibernate, Maven, MySQL
HQL, Parameter binding, Native SQL, Named query
CRUD application using HQL, parameter binding with "Named parameters" and
"Positional parameters" methods, Native SQL and named query.
Beginner
· *Hibernate Criteria API*
Hibernate, Maven, MySQL
Hibernate Criteria API.
CRUD application using basic query, ordering query, restrictions query and
paging the result.
Beginner
· *Hibernate Transaction*
Hibernate, Maven, MySQL
Hibernate Transaction API
A simple standard example to show Hibernate transaction.
Beginner
*Quick start Name*
*Technologies*
*Demonstration*
*Description*
*Experience*
*Tags : Hibernate Validator, Search, OGM, Multi-tenancy, Shards*
· *Hibernate Validator*
Unified Expression Language (EL), CDI, Hibernate
Bean Validation API
Bean Validation using built in and custom user defined constraints.
Intermediate
· *Hibernate Search*
Hibernate Search, Hibernate ORM, JPA 2.1, JSP/JSF
· Apache Lucene API
· Analyzer configuration (Default analyzer and analyzer by class)
and field bridges (Bridges)
· Clustering (JMS Master/Slave back end, Infinispan Directory
configuration)
· Large index handling (Sharding Indexes)
· Spatial Indexing
· Faceting and geolocation
Demo web application showing
· Enabled full-text search capabilities on your Entities.
· Indexing
· Searching
· Order results by relevance
· Find by approximation (fuzzy search)
Advanced
· *Hibernate OGM -JPA for NoSQL*
Hibernate OGM, Maven, JPA 2.0, Mongo DB or Infinispan or Ehcache as
integration for targeting multiple data stores.
· Java & Mongo Object Data Mapping with Hibernate OGM
· Java Persistence API (JPA) support to the NoSQL
· Hibernate Search along with Apache Lucene
· Leveraging standard JPA semantics to operate with key/value and
NoSQL
Simple regular EntityManager using Mongo Object Data Mapping with Hibernate
OGM for creating, deleting and finding entities by ID, and using a
FullTextEntityManager instance to perform searching.
Advanced
· *Hibernate Multi tenancy*
Hibernate ORM, Spring3, Maven, MySQL/PostgreSQL, JSP/JSF
1.Multi-tenant data approaches
· Separate database
· Separate schema
· Partitioned (Discriminator data)
2.Strategies for CurrentTenantIdentifierResolver and
MultiTenantConnectionProvider implementors using
§Single Connection Pool
§ Different Connection Pools
3. Multi-tenancy support for Hibernate second level cache
4. Versioning with Hibernate envers
5. Using Hibernate to Implement Multi-tenant Cloud Architecture
1.Simple multi-tenant CRUD application exploiting multi-tenant data
approaches (Separate database, Separate schema, Partitioned data)
2.Multi-tenant cloud applications with Spring-Data-JPA and Hibernate
Advanced
· *Hibernate Shards*
Amazon RDS, Hibernate ORM, MySQL, XML
Scaling Amazon Relational Database Service using virtual shards hibernate
mapping.
Simple application which will shard news articles with Amazon RDS and
Hibernate Shards. The news application will store and retrieve news
articles across a range of topics. Sharding of articles will be on the
basis of their category.
Advanced
--
Giriraj Sharma,
Department of Computer Science
National Institute of Technology Hamirpur,India
http://girirajsharma27.wix.com/giriraj
10 years, 10 months