What are the primary reasons you code in Java in your enterprise IT shop? Be honest now:

a)      We have solid Java programming skills on staff

b)      We have a lot of existing Java in production we’ve coded over the years and/or we’ve made a significant investment in Java-centric infrastructure (ESBs, application servers, etc.)

c)      Of all the languages and programming and execution environments we could have chosen, Java is the best suited for addressing our specific bespoke software challenges, independent of current skill sets, infrastructure, or existing production code.

If you selected a and/or b but not c, then you have what we like to call a legacy Java problem. There are other, perhaps more modern languages that would better suit your needs, but  because of your existing investments in people and technology, you’ve essentially shoehorned Java.

All is not lost, however. The ongoing efforts of the Java Community Process (JCP) have augmented the capabilities of the Java ecosystem in order to tackle a wide range of new problems and situations. This ongoing work on Java may continue to meet your needs for years into the future.

But then again, maybe not. The heavyweight model-view-controller (MVC) architecture of Java EE, or simply the object-oriented context of Java more broadly may not support alternative architectural approaches. In particular, if you are building a distributed hypermedia application, then a RESTful architectural approach will likely better meet your needs than a Java-centric architectural approach.

JAX-RS to the Rescue?

But wait, you Java geeks out there are saying, can’t we have both? Wouldn’t it be ideal if we had a Java-centric way of building RESTful applications? After all, the JCP has worked to address Java’s support for REST, which led them to the Java APIs for RESTful Services (JAX-RS) standard. Now we can build RESTful applications simply and easily in Java, right?

Unfortunately, JAX-RS is a classic example of shoehorning. It adds some RESTful capabilities to Java, but fights the RESTful architectural style every step of the way. Case in point: the Hypermedia as the Engine of Application State (HATEOAS) constraint. JAX-RS 1.1 didn’t support hypermedia at all, which essentially meant that we would have to simulate HATEOAS characteristics by utilizing core Java capabilities. To make JAX-RS fully RESTful, you would have to design applications that satisfied all of REST’s architecture constraints, compensating for those features that did not have adequate support during development. JAX-RS 1.1 provides adequate support for satisfying some REST architecture constraints, but punts on HATEOAS.

JAX-RS is an adequate API for implementing RESTful Services in Java, but JAX-RS version 1.1 has no built-in support for hypermedia. In JAX-RS 2.0, expands hypermedia support. The JCP has added hyperlinks and client support to the forthcoming JAX-RS 2.0, but even so, developers will find JAX-RS an immature tool for building distributed hypermedia systems.

More Challenges with JAX-RS

To simplify the development and deployment of RESTful Services, JAX-RS uses Java annotations. There are Java annotations to express REST resources, media types, access methods, etc. There are no annotations to express hyperlinks. You have to design those yourself.

As another example, consider standardized Service contract and loose coupling design principles. RESTful Service contracts require the unification and standardization of the resource identifier syntax and conventions for expressing and accessing resources. In the case of RESTful Services, you should design URIs in a consistent way. Furthermore, URIs should be opaque to reduce coupling between consumers and RESTful services. JAX-RS allows such consistency, but doesn’t encourage or enforce it.

It’s also important to standardize custom media types whenever possible, and you must also select which standard media types and custom media types you should use. Furthermore, the Service discoverability design principle requires having hypermedia controls in place, based on the REST HATEOAS design constraint. Discoverability provides a way of making the protocol self-documenting. JAX-RS doesn’t help with either of these design principles.

As a final example of shoehorning, consider the two different types of links that JAX-RS defines:  transitional links which describe optional next actions and structural links  which provide optional detailed information. Transitional links tell a client where to proceed next, while structural links help to shorten representations in order to avoid aggregate data. Details are replaced by links. Transitional links have some support in JAX-RS 2.0, but structural links are not supported due to their level of complexity.

So, why have structural links in the first place? The answer: we’re trying to shoehorn the Java object structure into hypermedia. If we simply take a Java object and convert it into hypermedia, we end up with links that represent all the various method calls on the associated object instances, resulting in excessively large, complex representations. Instead, JAX-RS encourages transitional links which enable the client to drill down to the underlying aggregate data. But if we weren’t handcuffed by the Java object structure in the first place, we’d never bother with transitional and structural links. Instead, we’d design our hypermedia applications to support discoverability. In other words, a core Java pattern becomes a hypermedia antipattern.

The ZapThink Take

It’s quite common for developers to rush to developing Services without first understanding the design of their final product. It is especially important when we are developing RESTful Services to have a well-architected, comprehensive design for developing Services that follow RESTful architectural constraints. However, to develop a good RESTful Service takes more than a good development tool or coding best practices accumulated over time.

People are often confused while developing with JAX-RS and thinking REST. JAX-RS is not REST design; rather, JAX-RS should support good RESTful design. Furthermore, the use of JAX-RS API does not lead to the creation of fully RESTful Services unless you have completed proper RESTful design beforehand. The design has to ensure that you have satisfied all RESTful architecture constraints.

Finally, established SOA governance should include policies and processes related to the endorsement of RESTful architecture principles. Those policies should cover design requirements and policies that you have established for satisfying RESTful design principles. But without adequate architecture, all the coding in the world won’t lead to proper governance.

About Leonid Felikson

Leonid Felikson has over 25 years of experience in software design, development, and implementation of large scale enterprise distributed systems, including consultation for both the government and private sectors. He has a diversified background in Information Systems and Enterprise Architecture. For the past 12 years, his focus has been on distributed computing; systems analysis, design, and integration; web services patterns and technologies; and service-oriented architecture and practices.

Mr. Felikson has extensive hands-on experience in product development and architecture in the software industry and he is a named expert in the field of distributed computing. He is a thought leader in providing the best solutions in IT strategy and in developing and utilizing SOA adoption enterprise-scale programs and SOA roadmaps. He is an innovator in establishing practices of modeling, designing, developing, and deploying services, performing both leadership and technical roles in delivering enterprise-scale applications and business process integration implementations.

Mr. Felikson devotes his time to knowledge sharing and education, mentoring and evangelizing SOA concepts and SOA practices. He has taught courses and seminars on the principles of operating systems and computer programming, as well as database concepts and design, data structures and algorithms, and software architecture and methodologies at a variety of public and private organizations.

Mr. Felikson has extensive teaching experience, working with a variety of schools and colleges, including serving as faculty at Johns Hopkins University for the last 11 years. He has developed curricula and taught courses within the CS and IST graduate programs at JHU. Since 2005, Mr. Felikson has been a contributing member of WS-I (www.ws-i.org), participating and contributing to the development of the WS-I Basic Profile 1.2 and the WS-I Reliable Secure Profile 1.0. Mr. Felikson received his B.S. and M.S. in Computer Science from the Ural Polytechnic Institute, in Russia.

Mr. Felikson is a Licensed ZapThink Architect and Certified ZapThink Trainer, and will be conducting Licensed ZapThink Architect courses in 2013.

Photo credit: David Pursehouse

Discussion
148 comments for “Shoehorning Java into RESTful Design”
John J. Szucs Avatar

Mr. Felikson writes, "There are other, perhaps more modern languages that would better suit your needs, but because of your existing investments in people and technology, you’ve essentially shoehorned Java."

In all seriousness, what language would you suggest as a replacement for Java when building systems with a RESTful approach?

I understand that Java is getting "long in the tooth," but I firmly believe in the benefits of strong typing and other programming practices that Java embodies. Would you consider Scala (the next logical evolution of Java) more suitable? If not Scala either, then what would you suggest?

Posted by John J. Szucs | November 4, 2012
Wallace Ortega Avatar

RESTful Service contracts require the unification and standardization of the resource identifier syntax and conventions for expressing and accessing resources

Posted by Wallace Ortega | November 5, 2012
Darren Cruse Avatar

As I've worked on RESTful systems e.g. using XML/XSLT/Cocoon (a few years ago), or lots of JSON services (more recently), with java I've observed something like the old "object relational mismatch" but in the realm of the resource representations.

i.e. If you're focused on *objects* from your problem domain and designing your code as basically a *simulation* of those then I think OO can be really helpful. So buttons in a GUI, characters in a game, etc. make for great "objects".

But in these RESTful systems I've worked on, the "resource representations" (as xml or json documents) were what was truly central to the design, *not* "objects" in the classic OOD sense of "modeling" or "simulating" objects from the real world.

What we found in this recent JSON services project was that java was adding a lot of extra (and not very readable) code that was really only there to convert between the JSON and the java objects and back again. We wound up using server side javascript (rhino/ringo) and this greatly simplified our code (reduced line counts and improved readability so we could see the JSON resource representations easily in the code).

I think the attention NoSQL DBs like mongo and server side javascript frameworks like node.js are getting illustrate how java's traditional OOD approach may be a poor fit for a lot of RESTful systems, esp. if they use JSON.

Posted by Darren Cruse | November 25, 2012
Chuck M Avatar

HATEOAS gets talked about a lot but not implemented a lot. I've yet to see good examples of REST clients (excluding browsers of course) making use of hypermedia. This isn't a JAX-RS problem.

This has been discussed before: http://www.subbu.org/blog/2007/12/hypermedia-and-rest.

Posted by Chuck M | November 30, 2012
life insurance claim lawyer attorney law firm Avatar

... [Trackback]

[...] Read More Infos here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Yolanda Obrien Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Yolanda Obrien | July 27, 2016
Terrence Truitt Avatar

... [Trackback]

[...] There you will find 77738 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Terrence Truitt | July 28, 2016
recycletotes.com Avatar

... [Trackback]

[...] Read More Infos here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by recycletotes.com | July 29, 2016
Webdesign Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Webdesign | August 3, 2016
job openings in mumbai Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by job openings in mumbai | August 9, 2016
judi online Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by judi online | August 12, 2016
Buy Steroids Online Avatar

... [Trackback]

[...] There you will find 25674 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Buy Steroids Online | August 13, 2016
satta matka Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by satta matka | August 22, 2016
satta matka Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by satta matka | August 22, 2016
Joseph de Saram#Rhodium Avatar

... [Trackback]

[...] There you will find 35170 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Joseph de Saram#Rhodium | August 26, 2016
Agen Bandarq Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Agen Bandarq | August 31, 2016
طراحی وب سایت Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by طراحی وب سایت | August 31, 2016
yandex ankara Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by yandex ankara | September 1, 2016
قاب سامسونگ Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by قاب سامسونگ | September 1, 2016
economics tuition Avatar

... [Trackback]

[...] There you will find 44781 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by economics tuition | September 3, 2016
primoplex Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by primoplex | September 3, 2016
yandex ankara Avatar

... [Trackback]

[...] There you will find 51937 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by yandex ankara | September 4, 2016
yandex ankara Avatar

... [Trackback]

[...] There you will find 8578 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by yandex ankara | September 5, 2016
seo wien Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by seo wien | September 23, 2016
google my business agency Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by google my business agency | September 30, 2016
Motogolf Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Motogolf | October 2, 2016
Session Musicians get yourself in the door with Imprimiss Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Best Magazine in India Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Best Magazine in India | October 21, 2016
sell.it Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by sell.it | October 31, 2016
haard Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by haard | November 1, 2016
joseph de saram Avatar

... [Trackback]

[...] There you will find 26778 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by joseph de saram | November 5, 2016
joseph s r de saram Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by joseph s r de saram | November 6, 2016
joseph de saram Avatar

... [Trackback]

[...] There you will find 24350 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by joseph de saram | November 7, 2016
Sandra balan Avatar

... [Trackback]

[...] There you will find 31477 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Sandra balan | November 11, 2016
computer reparatie Aalten Avatar

... [Trackback]

[...] There you will find 85102 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by computer reparatie Aalten | November 14, 2016
egg donation Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by egg donation | November 15, 2016
kimsin sen Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by kimsin sen | November 19, 2016
cul Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by cul | November 21, 2016
black dragon anabolic steroids Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by black dragon anabolic steroids | November 22, 2016
buy nandrolone phenylpropionate Avatar

... [Trackback]

[...] Read More here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by buy nandrolone phenylpropionate | November 24, 2016
click here to hire an injury lawyer Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by click here to hire an injury lawyer | November 28, 2016
http://www.godwinsremovals.co.uk/international-removals/northern-ireland Avatar

... [Trackback]

[...] There you will find 71951 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Airport Shuttles Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Airport Shuttles | December 12, 2016
apk downloads Avatar

... [Trackback]

[...] There you will find 6104 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by apk downloads | December 17, 2016
Denver uber driver Avatar

... [Trackback]

[...] There you will find 49701 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Denver uber driver | December 18, 2016
100 layer lipstick challenge Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by 100 layer lipstick challenge | December 18, 2016
Skrota bilen Göteborg Avatar

... [Trackback]

[...] There you will find 63657 more Infos: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by Skrota bilen Göteborg | December 23, 2016
charity fraudster Avatar

... [Trackback]

[...] Informations on that Topic: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by charity fraudster | December 25, 2016
trumpforchildren Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by trumpforchildren | December 29, 2016
chimney Avatar

... [Trackback]

[...] Read More: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by chimney | December 31, 2016
click here Avatar

... [Trackback]

[...] Find More Informations here: zapthink.com/2012/11/01/shoehorning-java-into-restful-design/ [...]

Posted by click here | January 8, 2017
Best wedding photo editing service Avatar

Best wedding photo editing service

[...]Here is an excellent Weblog You may Obtain Exciting that we Encourage You[...]

Posted by Best wedding photo editing service | April 1, 2017
Top wedding photo editing service Avatar

Top wedding photo editing service

[...]always a huge fan of linking to bloggers that I like but really don't get a good deal of link like from[...]

Posted by Top wedding photo editing service | April 2, 2017
technology Avatar

technology

[...]just beneath, are quite a few entirely not connected web pages to ours, however, they're certainly really worth going over[...]

Posted by technology | April 2, 2017
Top wedding photo editing service Avatar

Top wedding photo editing service

[...]very couple of websites that occur to be comprehensive below, from our point of view are undoubtedly very well worth checking out[...]

Posted by Top wedding photo editing service | April 3, 2017
New Jersey Drug Rehab Avatar

New Jersey Drug Rehab

[...]Here are several of the sites we recommend for our visitors[...]

Posted by New Jersey Drug Rehab | April 3, 2017
Judi Casino Online Avatar

Judi Casino Online

Casino Online | Agen Sbobet | Bandar Bola | Judi Online Soccerfox99, menyediakan permainan Taruhan Bola Sbobet, Live Casino Online, Slot Game, Tembak Ikan, Poker Online, Tersedia Promo hingga jutaan rupiah untuk kamu menangkan, Gabung sekarang dan nikm…

Posted by Judi Casino Online | April 4, 2017
casino online sbobet Avatar

casino online sbobet

Casino Online | Agen Sbobet | Bandar Bola | Judi Online Soccerfox99, menyediakan permainan Taruhan Bola Sbobet, Live Casino Online, Slot Game, Tembak Ikan, Poker Online, Tersedia Promo hingga jutaan rupiah untuk kamu menangkan, Gabung sekarang dan nikm…

Posted by casino online sbobet | April 4, 2017
agen Bola Avatar

agen Bola

Soccerfox99 menjamin 100% kerahasiaan & keamanan data dari member-member kami. Dengan server berteknologi tinggi & sistem yang lebih baik, percayakanlah hoki Anda kepada kami Agen Bola Online, Situs Agen Taruhan Bola SBOBET, Bandar Bola online, Agen Ca…

Posted by agen Bola | April 4, 2017
casino online Avatar

casino online

Casino Online | Agen Sbobet | Bandar Bola | Judi Online Soccerfox99, menyediakan permainan Taruhan Bola Sbobet, Live Casino Online, Slot Game, Tembak Ikan, Poker Online, Tersedia Promo hingga jutaan rupiah untuk kamu menangkan, Gabung sekarang dan nikm…

Posted by casino online | April 5, 2017
best ski resort japan Avatar

best ski resort japan

[...]here are some links to sites that we link to mainly because we assume they are really worth visiting[...]

Posted by best ski resort japan | April 6, 2017
towing service provider in southfield Avatar

towing service provider in southfield

[...]we came across a cool web-site which you could enjoy. Take a look for those who want[...]

Posted by towing service provider in southfield | April 7, 2017
pro tow wrecker service Avatar

pro tow wrecker service

[...]we prefer to honor lots of other web web pages around the web, even when they aren?t linked to us, by linking to them. Underneath are some webpages worth checking out[...]

Posted by pro tow wrecker service | April 8, 2017
paris chainsmokers mp3 download Avatar

paris chainsmokers mp3 download

[...]always a big fan of linking to bloggers that I really like but really don't get a lot of link really like from[...]

Posted by paris chainsmokers mp3 download | April 8, 2017
air ducts cleaning costs Avatar

air ducts cleaning costs

[...]Every as soon as inside a whilst we pick blogs that we study. Listed beneath are the most recent websites that we pick [...]

Posted by air ducts cleaning costs | April 8, 2017
scared to be lonely martin garrix mp3 download Avatar

scared to be lonely martin garrix mp3 download

[...]The facts mentioned inside the post are a few of the top offered [...]

www.utoptens.com/top-10-best-battlefield-4-maps/ Avatar

www.utoptens.com/top-10-best-battlefield-4-maps/

[...]just beneath, are many absolutely not associated web-sites to ours, nonetheless, they're certainly worth going over[...]

www.utoptens.com/top-10-played-league-legends-champions-bronze-division/ Avatar

www.utoptens.com/top-10-played-league-legends-champions-bronze-division/

[...]Wonderful story, reckoned we could combine several unrelated data, nonetheless truly worth taking a search, whoa did one discover about Mid East has got more problerms as well [...]

www.utoptens.com/top-10-easy-effective-league-legends-champions/ Avatar

www.utoptens.com/top-10-easy-effective-league-legends-champions/

[...]check below, are some absolutely unrelated web sites to ours, nonetheless, they are most trustworthy sources that we use[...]

www.utoptens.com/top-10-reasons-league-legends-awesome/ Avatar

www.utoptens.com/top-10-reasons-league-legends-awesome/

[...]Here are several of the websites we advise for our visitors[...]

supplements Avatar

supplements

[...]the time to read or take a look at the content or internet sites we've linked to beneath the[...]

Posted by supplements | April 10, 2017
www.utoptens.com/top-10-best-yugioh-duellists-original-series/ Avatar

www.utoptens.com/top-10-best-yugioh-duellists-original-series/

[...]Sites of interest we've a link to[...]

help with bills Avatar

help with bills

[...]one of our visitors a short while ago recommended the following website[...]

Posted by help with bills | April 10, 2017
www.utoptens.com/top-10-things-2000s-kids-will-remember/ Avatar

www.utoptens.com/top-10-things-2000s-kids-will-remember/

[...]check below, are some entirely unrelated internet websites to ours, nevertheless, they're most trustworthy sources that we use[...]

bruno mars that's what i like mp3 download Avatar

bruno mars that's what i like mp3 download

[...]just beneath, are several totally not associated web pages to ours, nonetheless, they are certainly really worth going over[...]

Posted by bruno mars that's what i like mp3 download | April 10, 2017
www.utoptens.com/10-amazing-facts-great-pyramids-giza/ Avatar

www.utoptens.com/10-amazing-facts-great-pyramids-giza/

[...]always a significant fan of linking to bloggers that I love but really don't get a great deal of link love from[...]

www.utoptens.com/top-10-steak-facts-didnt-know/ Avatar

www.utoptens.com/top-10-steak-facts-didnt-know/

[...]below you?ll find the link to some web-sites that we assume you need to visit[...]

rihanna love on the brain mp3 download Avatar

rihanna love on the brain mp3 download

[...]although sites we backlink to beneath are considerably not connected to ours, we feel they're actually worth a go through, so have a look[...]

Posted by rihanna love on the brain mp3 download | April 10, 2017
event design Avatar

event design

[...]check below, are some absolutely unrelated web sites to ours, nonetheless, they may be most trustworthy sources that we use[...]

Posted by event design | April 11, 2017
?Mission Trip Fndraising Avatar

?Mission Trip Fndraising

[...]just beneath, are many absolutely not related websites to ours, however, they're certainly really worth going over[...]

Posted by ?Mission Trip Fndraising | April 11, 2017
Martial Arts Programs Avatar

Martial Arts Programs

[...]that would be the end of this article. Here you will uncover some web sites that we assume you will value, just click the links over[...]

Posted by Martial Arts Programs | April 11, 2017
ranges Avatar

ranges

[...]we like to honor numerous other online internet sites around the internet, even when they aren?t linked to us, by linking to them. Beneath are some webpages worth checking out[...]

Posted by ranges | April 12, 2017
Kickboxing Leicester Avatar

Kickboxing Leicester

[...]usually posts some incredibly exciting stuff like this. If you are new to this site[...]

Posted by Kickboxing Leicester | April 12, 2017
www.utoptens.com/top-10-best-jobs-future/ Avatar

www.utoptens.com/top-10-best-jobs-future/

[...]check beneath, are some absolutely unrelated sites to ours, on the other hand, they may be most trustworthy sources that we use[...]

Posted by www.utoptens.com/top-10-best-jobs-future/ | April 12, 2017
www.utoptens.com/top-10-tips-new-cat-owners/ Avatar

www.utoptens.com/top-10-tips-new-cat-owners/

[...]one of our guests recently advised the following website[...]

wedding planner Avatar

wedding planner

[...]although sites we backlink to beneath are considerably not related to ours, we really feel they may be basically worth a go through, so have a look[...]

Posted by wedding planner | April 12, 2017
www.playmixarcade.com/category/shooting/ Avatar

www.playmixarcade.com/category/shooting/

[...]just beneath, are quite a few totally not connected sites to ours, on the other hand, they may be surely really worth going over[...]

Posted by www.playmixarcade.com/category/shooting/ | April 12, 2017
www.playmixarcade.com/category/sports/ Avatar

www.playmixarcade.com/category/sports/

[...]one of our visitors not too long ago proposed the following website[...]

Posted by www.playmixarcade.com/category/sports/ | April 12, 2017
galas Avatar

galas

[...]one of our visitors lately advised the following website[...]

Posted by galas | April 13, 2017
event planner Avatar

event planner

[...]here are some hyperlinks to sites that we link to since we believe they're really worth visiting[...]

Posted by event planner | April 13, 2017
Js Cricket Betting Tips Avatar

Js Cricket Betting Tips

[...]one of our guests recently suggested the following website[...]

Posted by Js Cricket Betting Tips | April 13, 2017
www.playmixarcade.com/category/action/ Avatar

www.playmixarcade.com/category/action/

[...]below you will find the link to some web sites that we feel you'll want to visit[...]

Posted by www.playmixarcade.com/category/action/ | April 13, 2017
www.playmixarcade.com/category/adventure/ Avatar

www.playmixarcade.com/category/adventure/

[...]always a major fan of linking to bloggers that I appreciate but do not get a lot of link appreciate from[...]

Posted by www.playmixarcade.com/category/adventure/ | April 13, 2017
www.playmixarcade.com/3d-cold-racer/ Avatar

www.playmixarcade.com/3d-cold-racer/

[...]please check out the web sites we stick to, including this one particular, because it represents our picks from the web[...]

Posted by www.playmixarcade.com/3d-cold-racer/ | April 13, 2017
www.playmixarcade.com/category/defense/ Avatar

www.playmixarcade.com/category/defense/

[...]Every after in a even though we pick blogs that we read. Listed beneath would be the newest web-sites that we pick [...]

Posted by www.playmixarcade.com/category/defense/ | April 14, 2017
rent a roll off dumpster Avatar

rent a roll off dumpster

[...]Wonderful story, reckoned we could combine a couple of unrelated data, nevertheless genuinely really worth taking a look, whoa did 1 discover about Mid East has got far more problerms too [...]

Posted by rent a roll off dumpster | April 14, 2017
30 yard roll off dumpster Avatar

30 yard roll off dumpster

[...]The info mentioned within the article are several of the most beneficial obtainable [...]

Posted by 30 yard roll off dumpster | April 14, 2017
commercial trash dumpsters Avatar

commercial trash dumpsters

[...]The information and facts mentioned within the write-up are a few of the ideal available [...]

Posted by commercial trash dumpsters | April 14, 2017
Live web Cam Girls Avatar

Live web Cam Girls

[...]just beneath, are numerous completely not related web-sites to ours, having said that, they may be certainly really worth going over[...]

Posted by Live web Cam Girls | April 15, 2017
Become a Webcam Model Avatar

Become a Webcam Model

[...]we came across a cool web page that you may well get pleasure from. Take a search when you want[...]

Posted by Become a Webcam Model | April 15, 2017
Free Web Cam Girls Avatar

Free Web Cam Girls

[...]just beneath, are many totally not associated websites to ours, however, they're certainly worth going over[...]

Posted by Free Web Cam Girls | April 15, 2017
New dryer vents Avatar

New dryer vents

[...]The facts talked about inside the report are a number of the most effective offered [...]

Posted by New dryer vents | April 15, 2017
vent home Avatar

vent home

[...]please check out the internet sites we stick to, including this 1, because it represents our picks in the web[...]

Posted by vent home | April 15, 2017
ductwork parts Avatar

ductwork parts

[...]we prefer to honor many other net web pages around the web, even though they aren?t linked to us, by linking to them. Under are some webpages really worth checking out[...]

Posted by ductwork parts | April 15, 2017
waste bin rental Avatar

waste bin rental

[...]always a massive fan of linking to bloggers that I adore but do not get a whole lot of link adore from[...]

Posted by waste bin rental | April 15, 2017
junk removal bin rental Avatar

junk removal bin rental

[...]that may be the finish of this write-up. Right here you?ll locate some websites that we think you?ll enjoy, just click the hyperlinks over[...]

Posted by junk removal bin rental | April 16, 2017
cpm Avatar

cpm

[...]Sites of interest we've a link to[...]

Posted by cpm | April 16, 2017
Kohadoge Handicraft Avatar

Kohadoge Handicraft

[...]please check out the web-sites we follow, such as this 1, as it represents our picks from the web[...]

Posted by Kohadoge Handicraft | April 17, 2017
INCREASE MOBILE AUDIENCE OF YOURS Avatar

INCREASE MOBILE AUDIENCE OF YOURS

[...]The data talked about inside the article are some of the very best available [...]

Posted by INCREASE MOBILE AUDIENCE OF YOURS | April 17, 2017
Kohadoge Handicraft Avatar

Kohadoge Handicraft

[...]just beneath, are a lot of absolutely not related web pages to ours, nonetheless, they're surely really worth going over[...]

Posted by Kohadoge Handicraft | April 17, 2017
business Avatar

business

[...]just beneath, are many entirely not connected web pages to ours, on the other hand, they are certainly really worth going over[...]

Posted by business | April 17, 2017
design Avatar

design

[...]Every the moment in a although we select blogs that we read. Listed beneath would be the latest web-sites that we select [...]

Posted by design | April 18, 2017
major appliance service Avatar

major appliance service

[...]the time to read or take a look at the subject material or web pages we've linked to beneath the[...]

Posted by major appliance service | April 18, 2017
sear appliance service Avatar

sear appliance service

[...]very handful of sites that take place to become in depth below, from our point of view are undoubtedly effectively worth checking out[...]

Posted by sear appliance service | April 18, 2017
Instagram Avatar

Instagram

[...]The information and facts talked about inside the write-up are some of the most beneficial available [...]

Posted by Instagram | April 18, 2017
man tow truck Avatar

man tow truck

[...]check beneath, are some absolutely unrelated sites to ours, even so, they may be most trustworthy sources that we use[...]

Posted by man tow truck | April 18, 2017
job verification Avatar

job verification

[...]please pay a visit to the internet sites we follow, including this one, because it represents our picks in the web[...]

Posted by job verification | April 18, 2017
check stub maker Avatar

check stub maker

[...]usually posts some pretty interesting stuff like this. If you?re new to this site[...]

Posted by check stub maker | April 18, 2017
MONITORING Avatar

MONITORING

[...]always a major fan of linking to bloggers that I like but really don't get a good deal of link like from[...]

Posted by MONITORING | April 18, 2017
Email Avatar

Email

[...]Every the moment in a though we pick out blogs that we study. Listed beneath are the most up-to-date web sites that we pick out [...]

Posted by Email | April 19, 2017
detroit emergency roadside service near Avatar

detroit emergency roadside service near

[...]that will be the finish of this post. Here you will obtain some internet sites that we feel you will appreciate, just click the links over[...]

Posted by detroit emergency roadside service near | April 19, 2017
roll off dumpster waste management Avatar

roll off dumpster waste management

[...]although sites we backlink to beneath are considerably not related to ours, we feel they are truly really worth a go by, so have a look[...]

Posted by roll off dumpster waste management | April 19, 2017
salem auto wreckers Avatar

salem auto wreckers

[...]we like to honor a lot of other world wide web internet sites on the net, even when they aren?t linked to us, by linking to them. Underneath are some webpages really worth checking out[...]

Posted by salem auto wreckers | April 19, 2017
dump containers rental Avatar

dump containers rental

[...]The facts talked about in the write-up are a number of the very best offered [...]

Posted by dump containers rental | April 19, 2017
fake check stub Avatar

fake check stub

[...]Sites of interest we have a link to[...]

Posted by fake check stub | April 20, 2017
Online Defensive Driving Avatar

Online Defensive Driving

[...]usually posts some incredibly exciting stuff like this. If you?re new to this site[...]

Posted by Online Defensive Driving | April 20, 2017
Online Defensive Driving Avatar

Online Defensive Driving

[...]Sites of interest we've a link to[...]

Posted by Online Defensive Driving | April 21, 2017
make fake paystub Avatar

make fake paystub

[...]just beneath, are numerous totally not connected web sites to ours, on the other hand, they're surely really worth going over[...]

Posted by make fake paystub | April 21, 2017
Online Defensive Driving Avatar

Online Defensive Driving

[...]Here are a few of the internet sites we recommend for our visitors[...]

Posted by Online Defensive Driving | April 21, 2017
fake pay stubs Avatar

fake pay stubs

[...]The facts talked about inside the write-up are a few of the most effective available [...]

Posted by fake pay stubs | April 21, 2017
Online Defensive Driving Avatar

Online Defensive Driving

[...]please check out the web sites we stick to, which includes this 1, because it represents our picks through the web[...]

Posted by Online Defensive Driving | April 21, 2017
Online Defensive Driving Avatar

Online Defensive Driving

[...]we prefer to honor several other online websites around the web, even when they aren?t linked to us, by linking to them. Below are some webpages worth checking out[...]

Posted by Online Defensive Driving | April 21, 2017
Free classified fundraising sites Avatar

Free classified fundraising sites

[...]the time to study or check out the content material or web-sites we have linked to below the[...]

Posted by Free classified fundraising sites | April 21, 2017
pay stub maker Avatar

pay stub maker

[...]Every the moment in a even though we select blogs that we read. Listed beneath would be the most current websites that we select [...]

Posted by pay stub maker | April 21, 2017
towny Avatar

towny

[...]Wonderful story, reckoned we could combine a couple of unrelated information, nonetheless definitely worth taking a appear, whoa did one particular master about Mid East has got much more problerms too [...]

Posted by towny | April 21, 2017
maytag repair Avatar

maytag repair

[...]Every once inside a though we opt for blogs that we study. Listed beneath are the most recent internet sites that we opt for [...]

Posted by maytag repair | April 21, 2017
Offshore kayak fishing Avatar

Offshore kayak fishing

[...]Here is a superb Weblog You might Come across Exciting that we Encourage You[...]

Posted by Offshore kayak fishing | April 22, 2017
mc towny pvp Avatar

mc towny pvp

[...]check below, are some entirely unrelated web sites to ours, on the other hand, they are most trustworthy sources that we use[...]

Posted by mc towny pvp | April 22, 2017
appliance service contract Avatar

appliance service contract

[...]please visit the web-sites we adhere to, which includes this one particular, because it represents our picks through the web[...]

Posted by appliance service contract | April 22, 2017
pvp minecraft Avatar

pvp minecraft

[...]below you?ll locate the link to some web-sites that we consider you ought to visit[...]

Posted by pvp minecraft | April 22, 2017
mc towny pvp Avatar

mc towny pvp

[...]very handful of sites that transpire to be in depth beneath, from our point of view are undoubtedly effectively worth checking out[...]

Posted by mc towny pvp | April 23, 2017
servers Avatar

servers

[...]Sites of interest we have a link to[...]

Posted by servers | April 23, 2017
towny servers Avatar

towny servers

[...]although sites we backlink to beneath are considerably not connected to ours, we really feel they may be really worth a go by way of, so have a look[...]

Posted by towny servers | April 23, 2017
akuamma seeds Avatar

akuamma seeds

[...]we prefer to honor several other internet websites around the web, even when they aren?t linked to us, by linking to them. Below are some webpages worth checking out[...]

Posted by akuamma seeds | April 24, 2017
Picralima Nitida Avatar

Picralima Nitida

[...]Here are a number of the web-sites we advise for our visitors[...]

Posted by Picralima Nitida | April 24, 2017
akuamma seeds for sale Avatar

akuamma seeds for sale

[...]one of our guests lately advised the following website[...]

Posted by akuamma seeds for sale | April 24, 2017