Friday, October 1, 2010

EJB.next Connector/Bean API : JAX-RS and beyond

It isn't commonly known that MessageDrivenBeans (MDBs) are not directly tied to the Java Message Service (JMS). In fact, they are tied to the Java EE Connector Architecture. It's even less commonly known that MDBs are not necessarily asynchronous. It's really the Connector that drives the communication style.
Overall, it is a very cool model that does allow for some pretty impressive and standard extension to any compliant Java EE platform. It is, however, incredibly underused. With a few changes to the model, it could be made to support even things like JAX-RS. Let's break it down.
The touchpoints between the Connector and the MDB are the ActivationSpec/ActivationConfig and the MessageListener interface. Using a fictitious "Email" Connector idea, let's see how this looks.
EmailConsumer (MessageListener) interface*
package org.superemail.connector;

// other imports...
    
public interface EmailConsumer {
    public void receiveEmail(Properties headers, String body);
}
EmailAccountInfo (ActivationSpec) class
package org.superemail.connector;
    
/**
 * This class is basically an old-style JavaBean with get/set for each property
 */
public class EmailAccountInfo implements javax.resource.spi.ActivationSpec {

    private String address;

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void validate() throws InvalidPropertyException {
    }
}
That's it for the Connector (aside from the Connector itself). I have left out a little detail on the ActivationSpec, we'll cover that later.
Now for the MDB's side of things. The MDB needs to implement the Connector's EmailConsumer interface and configure the Connector'sEmailAccountInfo JavaBean which is done via the activation-config tag of the ejb-jar.xml or via @ActivationConfigPropertyannotations in the @MessageDriven declaration.
@MessageDriven(activationConfig = 
        {@ActivationConfigProperty(
                propertyName = "address", 
                propertyValue = "dblevins@apache.org")
        })
public class EmailBean implements EmailConsumer {

    @PostConstruct
    public void init() {
    }

    public void receiveEmail(Properties headers, String body) {
        // do your thing!
    }
}
Done. Those are the basics. The Connector supplies a MessageListener interface and an ActivationConfig JavaBean, the MDB implements the interface and configures the JavaBean via the loosely-typed @ActivationConfigProperty.
There are a few things that prevent this model from reaching its true potential:
  • Metadata is loosely typed in the bean code
  • Only class-level metadata is allowed, not method-level
  • Requiring an interface can limit expressiveness
Let's see how life might look if we eliminate the JavaBean and allow the Connector to instead supply an annotation.
package org.superemail.connector;
    
@Target(TYPE)
@Retention(RUNTIME)
@javax.resource.annotation.ActivationSpec
public @interface EmailAccountInfo {
    String address();
}
Side Note: The original javax.resource.spi.ActivationSpec interface has a 'validate()' method on it to validate the JavaBean. A clear update to that part of the API would be to instead use the Bean Validation API.
Which gives us a bean that might look like this:
@MessageDriven
@EmailAccountInfo(address = "dblevins@apache.org")
public static class EmailBean implements EmailConsumer {

    @PostConstruct
    public void init() {
    }

    public void receiveEmail(Properties headers, String body) {
        // do your thing!
    }
}
Now we're getting somewhere!
Ok, let's get rid of that message listener interface and image our Email Connector uses a very JAX-RS inspired API for consuming emails. If you know a little JAX-RS you'll see where I'm going with this.
@MessageDriven
@EmailAccountInfo(address = "dblevins@apache.org")
public static class EmailBean {

    @PostConstruct
    public void init() {
    }

    @Deliver @Header("Subject: {subject}")
    public void receiveEmail(@HeaderParam("subject") String subject, @Body String body) {
        // do your thing!
    }
}
Pretty neat, huh?
Side note: For the rare few of you that speak Connector implementation, instead of giving your Resource Adapter a MessageEndpoint that is a proxy that only implements the MessageListener interface and the standard MessageEndpoint interface, the Container would instead give you an @LocalBean proxy that also implements MessageEndpoint. If you're thinking that an API like that would be great to use... imagine with the above changes you could make that API ... and use it in any compliant Java EE platform. Maybe even submit your own JSR if you came up with something great.
Truthfully speaking, it's the Connector who controls the lifecycle of the bean (MDB). The Connector API already allows for the Connector to say to the Container, "create me a bean" and "destroy this bean". So really, we don't need @MessageDriven anymore. Instead we can do this:
import javax.annotation.ManagedBean;

@ManagedBean
@EmailAccountInfo(address = "dblevins@apache.org")
public static class EmailBean {
 // ....
}
That's a little more modern and perhaps a bit clearer.
At this point, we have a generic API to hook arbitrary "Connectors" up to arbitrary "Beans" that are managed by a container. Were this the case when JAX-RS was created, they wouldn't have had to put so much effort into duplicating all the services that people who have managed beans expect: injection of resources, lifecycle callbacks, interceptors.
Summary: A few improvements to the expressiveness of the metadata passed between a Bean and its Connector could kick the MDB/Connector model into the mainstream as was the intention of the API from the beginning. New specifications could be created based on this model and be introduced incrementally as they are developed and needed.
The impact of fully opening up the Bean metadata to the Connector is quite deep and wide and likely not something that will scream at you immediately. Ask yourself, could something like the new EJB 3.1 @Schedule API have been done with a Connector/Bean model like this? To some extent probably it could. Certainly there already existed a few Quartz Connectors out there prior to the introduction of @Schedule.
Take a moment to daydream. What kind of Connectors could you create with this model?


UPDATE - Feb 7th, 2013

Save this proposal.  Without more voices it will be delayed till Java EE 8.  Let's not wait 4 years!  Take action and celebrate the Java Community Process openness by showing your support for including this in Java EE 7.  Act now.

VOTE AND COMMENT HERE http://java.net/jira/browse/EJB_SPEC-60




58 comments:

lightguardjp said...

Could something like @Connector or something be used instead of @ManagedBean? Seems like you should be able to do something like this with CDI

Narender Godara said...

Packers and movers Goa
Packers and movers Gorakhpur
Packers and movers Gurgaon
Packers and movers Hadapsar pune

Chitransh Andola said...

Packers and Movers India
Packers and Movers in Bangalore
Packers and Movers in Delhi
Packers and Movers in Hyderabad
Packers and Movers in Mumbai
Packers and Movers in Chennai
Packers and Movers in Pune
Packers and Movers in Noida
Packers and Movers in Gurgaon
Packers and Movers in Ghaziabad
Packers and Movers in Faridabad

Mary Brown said...

Java EE article is practical oriented and real time examples. How Java EE address the enterprise development is very important. for that you need a practical orieneted Java Training you need.

Online Java Training
Online Java Training from India
Java Training Institutes in Chennai
Java Training in Chennai
Java Training

The Ahir said...


Happy New Year 2016 Messages

Happy New Year 2016 Images

New Year Wishes

IPL 2016 Schedule

IPL Schedule 2016

IPL 9 Schedule

IPL 2016

IPL 2016 Schedule

IPL Fixtures 2016

IPL 2016 Live Score

IPL 2016 Live

2016 IPL Schedule

ICC T20 World Cup 2016 Schedule

T20 World Cup 2016 Live Streaming

T20 World Cup 2016

Cricket World Cup 2016 Schedule

T20 Cricket World Cup 2016 Schedule

National Flag of India

indian national flag

indian flag pictures

national flag images

indian flags

Govt Jobs Jobs Recruitment Govt Jobs

Latest Jobs Jobs Latest Recruitment Govt Jobs

ISHAN KHAN said...

It's that time of the year, when it's time to say 'Good Bye' to the 'Year' itself. Another year comes to an end and all of us prepare to usher in the 'New Year 2016'. Around Delhi offers you various options to do so at resorts in North India. All the resorts have special packages for New Year and some for X-Mas too.
New year packages in Jaipur
New year packages in Corbett Resorts

Aviny said...

Mahima the world famous independent hyderabad escorts girl offering their elite hyderabad escorts service just in 10000 INR.
http://mahimakapoor.co.in/
http://www.shailviarora.com/
http://purplehyderabadescorts.co.in/
http://aviny.in/
http://www.suzaneescorts.com/

Rupali sharma said...

Escort in dlfphase
Escort in golfcourse
Escort in sushantlok
Escort in sarjapur
Escort in manesar
Escort in neemrana
call Girls in behror

Ranveer Patil said...

This is great do you have a catologue if so I would love one to share with friends and family.
ipl 2016 auction live Yuvraj Singh
IPL 2016 Auction Kings xi
IPL 2016 Team Players MI KKR

rana pratap singh said...

Teddy Day 2016 Celebration
Happy Propose Day SMS Messages

Monika Bansal said...

Hello I am Ankita Bhattacharya. I Well Provide Fully Enjoying Modals Girls in Independent Mumbai Escorts. In Mumbai City In India.
http://www.ankitabhattacharya.com

Amrish Singh said...

icc t20 world cup
icc t20 world cup 2016
icc t20 world cup 2016 live
icc t20 world cup 2016 live streaming
icc t20 world cup live
t20 world cup 2016
t20 world cup
t20 world cup 2016 live
t20 world cup 2016 live streaming
t20 world cup live

icc t20 world cup
icc t20 world cup 2016
icc t20 world cup 2016 live
icc t20 world cup 2016 live streaming
icc t20 world cup live
t20 world cup 2016
t20 world cup
t20 world cup 2016 live
t20 world cup 2016 live streaming
t20 world cup live


IPL t20
IPL t20 2016
IPL t20 2016 live
IPL t20 2016 Streaming
IPL t20 2016 live Streaming
IPL t20 2016 Streaming
IPL t20 live Streaming
IPL live Streaming
IPL live
IPL t20 live
mobiles phone
hindilyrics
PnrStatus

Komal Oberoi said...

This is Hyderabad Escorts Service Full Enjoyment in India.

3 Star Hyderabad Escorts
Hyderabad Time Spend Escorts Service
Hyderabad Excellent escorts Agency
Independent Escorts In Hyderabad
Escorts in Hyderabad
Simran Escorts in Hyderabad
yashnareddy Hyderabad Escorts
Meghna Female Escorts Hyderabad
Afkeen Hyderabad Escorts Agency
Girl 4 youIndependent Hyderabad Escorts
Sarheen Hyderabad Escorts Service
Hyderabad Escorts Babes
Escorts Desires in Hyderabadx
Mansi Independent Escorts in Hyderabad

shama chopra said...

24 Hours Hotline Contact Agency :-
Click and Visit:-Hyderabad Escorts Agency
Click and Visit:-Vip Escorts in Hyderabad
Click and Visit:-Escorts Services Hyderabad
Click and Visit:-Hyderabad Escorts Girl
Click and Visit:-Hyderabad Independent Escorts
Click and Visit:-Hyderabad Escorts
Click and Visit:-Escorts in Hyderabad
Click and Visit:-Independent Hyderabad Escorts
Click and Visit:-Independent Escorts in hyderabad
Click and Visit:-Hyderabad Escorts Services

shama chopra said...

Chandigarh
I like this post:-
VISIT Our chandigarh Escorts Agency In Your City Click it:-
Click and Visit:-Chandigarh Escorts
Click and Visit:-Escorts in Chandigarh
Click and Visit:-Independent Chandigarh Escorts
Click and Visit:-Independent Escorts in Chandigarh

VISIT Our Partner Link Visit it:-
Click and Visit:-Nagpur Escorts Services
Click and Visit:-Nagpur Escorts Agency
Click and Visit:-Vip Escorts in Nagpur
Click and Visit:-Escorts Services Nagpur

shama chopra said...

Goa
Nice Post!!!!!!!!!
Visit Our Independent Goa Escorts Agency!!!!!!!!!!!!!!!!!!!!
Goa Escorts
Escorts in Goa
Independent Goa Escorts
Independent Escorts in Goa
Goa Escorts Services
Goa Escorts Agency
Vip Escorts in Goa
Escorts Services Goa
Goa Escorts Girl
Goa Independent Escorts
Goa Female Escorts

Taniya Roy said...

Visakhapatnam Escorts
Visakhapatnam VIP Escorts Vizag
Nidhi Oberoi Escorts In Vashi
Bhopal escorts 18
Bhopal Escorts Zone
Bhopal escorts Babe
Bhopal VIP Escorts Service

Komal Oberoi said...

Our more Jodhpur links Partners

Jodhpur Escorts
Jodhpur Escorts Service
Jodhpur Escorts Model
Independent Escorts In Jodhpur
Jodhpur Escorts Agency

Our more Ahmedabad links Partners

Ahmedabad Escorts
Ahmedabad Escorts Service
Ahmedabad Escorts Model
Independent Escorts In Ahmedabad
Ahmedabad Escorts Agency

Our more Bangalore links Partners

Bangalore Escorts
Bangalore Escorts

Our more Pune links Partners

Pune Escorts

Our more Kolkata links Partners

Kolkata Escorts

Our more Juhu Colaba links Partners

Juhu Escorts
Juhu Escorts
Colaba Escorts

Our more Mumbai links Partners

Mumbai Escorts
Mumbai Escorts
Mumbai Escorts

Our more Goa links Partners

Goa Escorts
Goa Escorts

Our more Thane links Partners

Thane Escorts

Our more Nashik links Partners

Nashik Escorts

Tanita Mittal said...

Our more local city links Partners

Escorts Zirakpur
Escorts Manali
Escorts Shimla
Escorts Panchkula
Escorts Mohali
Escorts Dehradun
Escorts Mussoorie


Panchkula Escorts
Mohali Escorts
Zirakpur Escorts
Manali Escorts
Shimla Escorts
Dehradun Escorts
Mussoorie Escorts

Siya Aggarwal said...

Escorts in Udaipur
Udaipur escort
Udaipur escort Agency
Independent Escorts in Udaipur
Udaipur Model Escorts

Siya Aggarwal said...

Choose the supreme or top quality indpendent Goa escorts service from my personal website. I am offering escorts service in Goa, now 5star hotel. You can capture the unique and magnificent independent escorts in Goa and to be able to meet up with your sexual specifications.

Checkout My Independent Goa Escorts Link Partner :-
Maanvi Goa Escorts
Amaya Independent Goa Escorts
Afiya Goa Escorts Service
Goa Escorts
Goa Independent Escorts
Vip Goa Escorts

http://packersmoversbangalore-in.blogspot.in/ said...

I must say you had done a tremendous job,I appreciate all your efforts.Thanks alot for your writings......Waiting for a new 1.. We Provide Best Packers And Movers Bangalore List for Get Free Best Quotes, Compare Charges, Save Money And Time,
Household Shifting Services. @ Packers And Movers in Bangalore

Rubina saifi said...

Purvi Kapoor Amazing Mumbai Escorts are alwyas ready for you at the door of Purvi Kapoor. Hury up to avail the most seductive independent mumbai Escorts.
Mumbai Escort
Mumbai Escorts Agency
Escorts in Mumbai
Mumbai Escorts

Rubina saifi said...

Pallavi Rawal who serves the most desired independent Mumbai escorts services at lowest rates
Mumbai Escort
Independent Mumbai Escorts
Independent Mumbai Escort
Escorts in Mumbai

Rubina saifi said...

independent Mumbai escort girls for making fun in Mumbai nights with young and hi class sexy Mumbai escorts.

Mumbai Escort
Independent Mumbai Escort
Mumbai Escorts Service
Mumbai Escorts Agency
Escorts in Mumbai
Call Girl in Mumbai

Rubina saifi said...

Mumbai escort agency client base comprises of businessman and professional gentlemen based in Mumbai city
Mumbai Escorts Service
Mumbai Escorts Agency
Mumbai Escorts
Mumbai Escort
Escorts in Mumbai
Independent Mumbai Escorts

Rubina saifi said...

Experience top level of companionship with Spicy, Hot, Friendly and Easy Going escort girls in Mumbai.

Mumbai Escort
Mumbai Escorts Service
Independent Mumbai Escorts
Independent Mumbai Escort
Escorts in Mumbai

Rubina saifi said...

Mumbai escorts girls are genuine, very professional and giving the deep satisfaction of men. All female escorts in Mumbai feel great.
Independent Mumbai Escorts
Independent Mumbai Escort
Mumbai Escorts Service
Mumbai Escort
Mumbai Escorts Agency

Siya Aggarwal said...

Check Out Chenni Escorts Link Partner :-

Chennai Escorts
Chennai Escorts


Check Out Nashik Escorts Link Partner :-

Nashik Escorts

Poonam Aggarwal said...

Final Contact For You To Choose and appoint More Independent Goa Escorts For Friends

Goa Escorts,Independent Service
Goa Escorts Service,Independent Escorts in Goa
Sanjana Escorts Goa, escorts service in Goa
The Goa escorts, Goa independent escorts
Simran Goa Escorts, Independent Escorts Service

appu said...


RRB NTPC Result
RRB NTPC Admit Card
RRB NTPC 2016 Sylabus
RRB NTPC 2016
RRB NTPC Result
RRB NTPC Result 2016
SSC CGL Result 2016
Happy New Year 2017 Wishes
IBPS PO 2016 Result
GCSE Results 2016
SBI PO Result 2016
NEET 2016 Result
NTPC Result 2016
New Year 2017 Wallpaper
Good Morning Quotes
Merry Christmas wishes Christmas wishes
Happy Birthday Wishes
Happy Birthday Messages
Good Morning Quotes

Sanaya Seth said...

Welocme to Chennai Escorts Angel are extremely active and each of the independent escort in Chennai. These female model are pure seductiveness and provide some of the most erotic offerings to each and every client they serve. Our Chennai Escorts Agency Links Partner-Delight Chennai Escorts Girls,Face Of Chennai Escorts,Chennai Escorts, Chennai Independent Escorts Services,High Heels Chennai escorts Contact Anytime 24/7.

Nabiha Khan said...

Are you ready romantic moments with a lot of fun and enjoyment Chennai Escorts Girl.

Nabiha Khan said...

Are you relaxing with more pleasure and fun, amazing independent escorts in Chennai.

Nabiha Khan said...

Good look Chennai Escorts Service booking. You can pay genuine rates for independent escort service in Chennai.

Nabiha Khan said...

High profile Chennai escorts are intended to make your way of life more comfortable and exciting. This is a very amazing and cool Chennai Escorts Girls.

Nabiha Khan said...

If you want to contact more entertaining Chennai escorts service. Girlfriend experience Independent Chennai Escorts for VIP customers an it makes me different than any escorts in Chennai.

Nabiha Khan said...

All types of Chennai escorts with many different types of man. Recently taken and 100% genuine Chennai escorts service.

Nabiha Khan said...

Chennai escorts agency will provide you women like me who can play role like your girl friend, wife, friend.

Zheng junxai5 said...


zhengjx20160804
cheap rolex watches
fit flops
coach outlet
oakley sunglasses
cheap toms shoes
louis vuitton purses
louboutin sale clearance
christian louboutin sale
true religion outlet
louboutin femme
cheap basketball shoes
louis vuitton bags
polo shirts
rolex watches outlet
oakley outlet
mont blanc pen
michael kors outlet
oakley sunglasses wholesale
michael kors handbags
kd 7 shoes
michael kors outlet
adidas nmd
coach factory outlet online
concords 11
longchamp outlet
louis vuitton outlet
rolex watches for sale
michael kors handbags
coach outlet store online
coach outlet online
coach factory outlet online
michael kors outlet
cheap jerseys
mont blanc pens outlet
vans sneakers
air jordan 4
basketball shoes
lebron 13
cheap rolex watches
lebron 13 shoes

Hua Cai said...

celine outlet
longchamp handbags
louis vuitton outlet stores
nike huarache
ray ban sunglasses
nike outlet store online
ray ban sunglasses sale
gucci outlet
louis vuitton outlet
ysl outlet online
polo ralph lauren
ralph lauren uk
coach outlet
louis vuitton handbags
lebron shoes
coach outlet online
ray ban sunglasses
tory burch outlet online
ferragamo outlet
air max 90
chicago blackhawks
tory burch outlet
michael kors outlet clearance
tory burch shoes
yeezy boost 350
true religion outlet
puma outlet
cheap uggs
nike outlet online
true religion uk
tiffany jewelry
cheap nike shoes sale
celine outlet online
michael kors outlet
tory burch outlet online
20160812caihuali

Hua Cai said...

celine outlet
longchamp handbags
louis vuitton outlet stores
nike huarache
ray ban sunglasses
nike outlet store online
ray ban sunglasses sale
gucci outlet
louis vuitton outlet
ysl outlet online
polo ralph lauren
ralph lauren uk
coach outlet
louis vuitton handbags
lebron shoes
coach outlet online
ray ban sunglasses
tory burch outlet online
ferragamo outlet
air max 90
chicago blackhawks
tory burch outlet
michael kors outlet clearance
tory burch shoes
yeezy boost 350
true religion outlet
puma outlet
cheap uggs
nike outlet online
true religion uk
tiffany jewelry
cheap nike shoes sale
celine outlet online
michael kors outlet
tory burch outlet online
20160812caihuali

Hua Cai said...

celine outlet
longchamp handbags
louis vuitton outlet stores
nike huarache
ray ban sunglasses
nike outlet store online
ray ban sunglasses sale
gucci outlet
louis vuitton outlet
ysl outlet online
polo ralph lauren
ralph lauren uk
coach outlet
louis vuitton handbags
lebron shoes
coach outlet online
ray ban sunglasses
tory burch outlet online
ferragamo outlet
air max 90
chicago blackhawks
tory burch outlet
michael kors outlet clearance
tory burch shoes
yeezy boost 350
true religion outlet
puma outlet
cheap uggs
nike outlet online
true religion uk
tiffany jewelry
cheap nike shoes sale
celine outlet online
michael kors outlet
tory burch outlet online
20160812caihuali

Sherin Simon said...

up board result 2017
bihar board result 2017
rbse result 2017
hsc result 2017
Kerala hse result 2017
sslc result 2017
aipgmee 2017 results
10th result 2017
12th result 2017
ibps po result 2016
ignou result 2016
survivor series 2016 results
night of champions 2016 results
tlc 2016 results
hell in a cell 2016 results
spiderman homecoming
iphone 7 price in india
Merry Christmas Wishes
pnr status
birthday wishes
sslc result 2017 kerala
sslc result 2017 Karnataka

sahil akhtar said...

If you love bird watching then Corbett is virtual haven for such tourists. Corbett and its adjoining area is a home to more than 650 species of residents and migratory birds. Particularly Dhikala is fine place to look for birds of prey, more than over 50 species of raptors alone shows the healthy biodiversity of the area. Their multiplex behavior is intriguing and their varied songs are very much pleasing to the ear. In a nutshell, this finest national park of India is well known for rich and varied wildlife including royal Bengal tiger, elephant, four to five species of deer and rich birdlife.
http://newyearpackages.co.in/new-year-packages-corbett.html

akhtarkhan said...

Manali is a hill station nestled in the mountains of the Indian state of Himachal Pradesh near the northern end of the Kullu Valley, at an altitude of 2,050 m
http://newyearpackages.co.in/new-year-packages-manali.html

akshay arora said...

Jaipur is the capital of India’s Rajasthan state. It evokes the royal family that once ruled the region and that, in 1727, founded what is now called the Old City, or “Pink City” for its trademark building color. At the center of its stately street grid (notable in India) stands the opulent, colonnaded City Palace complex. With gardens, courtyards and museums, part of it is still a royal residence.
http://newyearpackage.co.in/jaipur-new-year-packages.html

Quote Bite said...

attitude girl

ashish kumar said...

Ranthambore National Park is a vast wildlife reserve near the town of Sawai Madhopur in Rajasthan, northern India. It is a former royal hunting ground and home to tigers, leopards and marsh crocodiles. Its landmarks include the imposing 10th-century Ranthambore Fort, on a hilltop, and the Ganesh Mandir temple. Also in the park, Padam Talao Lake is known for its abundance of water lilies.

ashish kumar said...

Wildlife Packages on Ranthambore National Park -Provides wildlife packages on ranthambore national park,wildlife tour packages,travel packages
http://newyearpackage.co.in/ranthambore-new-year-packages.html

Rhea Baghchar said...

I must be thankful for sharing your ideas.Thank you for the good writeup.its a brellint job.please visit here for more detail:
Packers and Movers Delhi
http://packers-and-movers-delhi.in/packers-and-movers-dwarka-delhi
http://packers-and-movers-delhi.in/packers-and-movers-gurgaon

Rohan Mastana said...

Love Quotes For Boyfriends

chirag khan said...

New Year Packages 2017 near Delhi NCR. New Year 2017 is an

occasion of delights. So let's celebrate it together with

enjoyable and a wonderful seasoning
http://resortsneardelhi.co.in/NewYearPackages-5

Gitika Goenka said...

VISIT Our Raipur Escorts Agency In Your City Click it:-

we welcome you to the world of Raipur escorts models.


VISIT Our LINK Raipur Escorts, escorts service in Raipur
VISIT Our LINK female escorts in Raipur, Raipur independent escorts
VISIT Our LINK Raipur independent escorts,Raipur Escorts
VISIT Our LINK Raipur Escorts Service,Independent Escorts in Raipur

trisha gupta said...

Ooty Independent Escorts Services to fulfill all your sensual desires.


Ooty Escorts, Independent Escorts In Ooty

Independent Ooty Escorts, Ooty Escorts Service

Ooty Escorts Service, Ooty Escorts

Independent Escorts in Ooty,Escorts In Ooty

akhtar said...

New Year is the time at which a new calendar year begins and the calendar's year count increments by one. Many cultures celebrate the event in some manner.The most happening New Year Parties in Delhi NCR, delectable food, rocking music by renowned DJs and the wildest crowd. The most comprehensive
http://newyearpackagesneardelhi.com/

Rose Angel said...

Goa Escorts World arranged best erotic female escorts in Goa for your entertainment.

See this: Independent Goa escort

Rhea Baghchar said...

I must be thankful for sharing your ideas.Thank you for the good writeup.its a brellint job.please visit here for more detail:
Packers and Movers Delhi
We Provide Best Packers And Movers Delhi List for Get Free Best Quotes, Compare Charges, Save Money And Time, Household
Shifting Services @ Packers-and-Movers-Delhi.in