In this particular case we might need to leave unit testing world (mocks, spies and other test doubles) and develop real integration tests. The SeamTest module together with JBoss Embedded could help but it's really a tough task to make it running with Maven. On the other hand JBoss AS wasn't the target environment for us. Thankfully there is a new kid on the block from JBoss called Arquillian.
Java
Submitted by david on Tue, 07/20/2010 - 21:56
One of the hardest things about staying up to date on software development is to "Know what you don't know". If you don't even have knowledge of a new technology out there, you don't know if it is something that you should be considering for your architecture or not.
Java both benefits and suffers from the Free and Open Source Software (FOSS) world. There are a plethora of libraries and frameworks out there to keep you from reinventing the wheel. But there are a lot of wheels out there....and there are also some wheels out there that are designed more like boxes. Not all open source software is worth your time...but now do you know which ones to invest in?
This gets to the heart of why translucent development was created. We hope to be those rose-colored glasses that help you navigate the treacherous software waters.
The thing about Software Engineering is that while you may have a degree, you are never done with school....These days, everything you learn is old by the time it makes its way to production - and it is impossible to stay up to date on the latest technology.
If you are working in the Java world today, there are of course some key technologies that you should be aware of. We will attempt to help guide you through this sea of technologies:
One of the hardest things about staying up to date on software development is to "Know what you don't know". If you don't even have knowledge of a new technology out there, you don't know if it is something that you should be considering for your architecture or not.
Java both benefits and suffers from the Free and Open Source Software (FOSS) world. There are a plethora of libraries and frameworks out there to keep you from reinventing the wheel. But there are a lot of wheels out there....and there are also some wheels out there that are designed more like boxes. Not all open source software is worth your time...but now do you know which ones to invest in?
This gets to the heart of why translucent development was created. We hope to be those rose-colored glasses that help you navigate the treacherous software waters.
The thing about Software Engineering is that while you may have a degree, you are never done with school....These days, everything you learn is old by the time it makes its way to production - and it is impossible to stay up to date on the latest technology.
If you are working in the Java world today, there are of course some key technologies that you should be aware of. We will attempt to help guide you through this sea of technologies:
- Spring
- JPA/ORM
- CDI/Weld
- EJB3
- Restful Services
- Build Tools (ant, maven, gradle)
- Dynamic Languages on the JVM
- JMS
- Collections/Generics
- Concurrency
- Web Frameworks
- IDE
-
arquilliancditesting
-
Dan Allen's presentation on how JSR-299 will impact SeamcdijavaSeam
-
I may be a Spring fanboy but I’m also convinced a technology should embrace standards. Although Spring is now a de facto standard, it is in competition with other products, like Google Guice for example. It makes my work as an architect harder since my craft is to devise the most perennial solutions: standards are my allies in achieving this goal. CDI, formerly known as JSR 299, is an attempt at describing a true standard on Dependency Injection. What makes CDI appealing at first glance is that both SpringSource and Google took a seat in the specifications team.cdijava
-
Digging in further to CDI, this entry talks about Producers, Interceptors, Decorators, Observers, and Alternatives. It also touches on AOP and testing a bit.cdijava
-
But it turns out--somewhat unintuitively--that if you inherit from a class that has an injection point in it--even if the injection point is defined in terms of Java EE and not CDI--and if that abstract class comes from a jar that is not a bean archive, then dependency injection by the CDI provider will not be applied to its injection point until you make sure that its jar file contains a META-INF/beans.xml file. A simpler way to put this is that for any given inheritance chain, all jars in the chain containing classes with injection points must be bean archives.cdijava
-
Going to go over the steps to get a simple HelloWorld web-app up and running on JBoss 6 using JSF 2 and CDI. Background information and full documentation for the technologies used can be found at the Java EE 6 home page and Weld documentation site.cdijavamaven
-
The Current State Due to Spring’s early success and adoption, Java EE 5 and Java EE 6 were pushed to greatly simplify the Java EE programming model, increase developer productivity and become much simpler to use than previous versions. The current Java EE 6 solutions are thus just now achieving the ability to compete against Spring's programming model. Developers now are ready to ask the question "Why you would prefer Spring?" Here is my take:cdijavaJPAspringweld
-
I do have some issues with Cameron's statements that frameworks are mistakes of the J2EE past and that Java EE 6 represents the future. Open source frameworks made J2EE successful. Struts and Hibernate came out in the early days of J2EE and still exist today. Spring came out shortly after and has turned into the do-everything J2EE implementation it was trying to fix. Java EE 6 might be a better foundation to build upon, but it's certainly not going to replace frameworks.cdijavaJPAJSFweld
-
Java Collections Framework contains most commonly asked Java interview questions. A good understanding of Collections framework is required to understand and leverage many powerful features of Java technology. Understand what the Collections API is, and really understand Sets, Lits, SortedSets, Maps, and SortedMaps. Understand the legacy collections, versus what was added in Java 2. What about concurrency? When should you still use Vectors? When should a HashTable be used over a HashMap? Understand the ins and outs of the Collections Frameworkcollectionsconcurrencyinterviewjava
-
With Java 7 (Dolphin), we’ll have some concurrency and collections updates with the JSR166y, extension of the JSR166 of Doug Lea. This post delves into the Fork/Join Framework, the TransferQueue
collection, and the ThreadLocalRandom class. As multicores become the norm, concurrency can no longer be a specialization, but needs to part of normal operations for all developers. collectionsconcurrencyjava -
The primary purpose of both this post, and my previous post on comparing Google AppEngine language performance is to show that while Google offer Java on AppEngine, the performance of Java Applications for low-traffic (or growing) sites may not be what you are expecting on day one.appenginegroovygrailsjava
-
My friend Dan Allen's presentation on using Arquillian and ShrinkWrap to really test in the Java EE container - Don't Fake It!arquillianjavatesting
-
I started to write this with Ant/Maven, and then switched to Gradle. I'll present few code snippets here, that should give you a decent understanding of difference that Gradle makes. Please judge for yourself if the switch from Ant/Maven to Gradle was worth the effort.build toolsjavamaven
-
I agree that Maven has its warts, but I don't think it's that bad. I've also heard that Maven has been successfully implemented at large companyies like eBay, Intuit and E*Trade[1]. Is the "Maven sucks" meme largely something that exists in the blogosphere, but not in the real world?build toolsjavamaven
-
I'm uncomfortable with the increasing number of build tools available for Java. At the beginning, everything was simple : Ant was here, and did its job. However, while Ant is very good at build customization, it had the cons of its pros: for each project, you had to copy parts of your ant scripts from another project, or create an Ant plugin. However, in every organization, or worse, every developer had its own way of building projects, organizing source code and so you could rapidly come with projects which used the same build tool, but in a totally different manner.build toolsgroovyjavamaven
-
Amazon has announced the new AWS SDK for Java this March. The aim of the new SDK is to simplify the development of java applications that are hosted on the Amazon EC2.cloudjava
-
CodingBat is a free site of live coding problems to build coding skill in Java, and now in Python (example problem), created by Nick Parlante who is computer science lecturer at Stanford. The coding problems give immediate feedback, so it's an opportunity to practice and solidify understanding of the concepts. The problems could be used as homework, or for self-study practice, or in a lab, or as live lecture examples. The problems, all listed off the CodingBat home, have low overhead: short problem statements (like an exam) and immediate feedback in the browser.careerinterviewjava
-
We are constantly told that APIs built on REST have great advantages for distributed systems that have to be scalable. We are told this by speakers at conferences, by various blog writers that we read, and even by wikipedia. And then somewhere, they lose us. They start talking about Representational State transfer, and the transfer of "representations" of "resources". And somewhere in there they lose most people in the language they choose to describe what REST is.javaREST
-
Is Google not going to be the white knight that keeps Java advancing in a good direction?!? This link made me wonder just that.
Today's commercial-grade programming languages -- C++ and Java, in particular -- are way too complex and not adequately suited for today's computing environments, Google distinguished engineer Rob Pike argued in a talk Thursday at the O'Reilly Open Source Conference.Gojava -
"There have been a number of language[s] coming up lately," noted James Gosling today at Sun’s World Wide Education & Research Conference in New York City when asked if Java was in any kind of danger from the newcomers. "PHP and Ruby are perfectly fine systems," he continued, "but they are scripting languages and get their power through specialization: they just generate web pages. But none of them attempt any serious breadth in the application domain and they both have really serious scaling and performance problems."dynamic languagesjava
-
Nevertheless Spring AOP framework comes with certain limitations in comparison to a complete AOP implementation, such as AspectJ. The most common problems people encounter while working with Spring AOP framework derive from the fact that Spring AOP is “proxy – based”.AOPspring
-
An article showing you how to create a: * Spring 3.0.3.RELEASE application * that is a desktop application (no application server/servlet container required) but might be deployed to a server too * and that connects to a database (HSQLDB) * using JPA 2.0 * without using provider specific code (such as Hibernate) in Java files * and that allows for declarative transaction management (next article).JPAmavenspring
-
In the Java™ world, you can build a RESTful web service in several ways: Some folks use JSR 311(JAX-RS) and its reference implementation Jersey, others use the Restlet framework, and some might even implement from scratch. Spring, the well-known framework for building Java EE applications, now supports REST in its MVC layer. This article introduces the "Spring way" to build RESTful web services. Learn how to use Spring APIs and annotations to build RESTful web services, and see how Spring integrates this new feature seamlessly into its original framework.RESTspringSpringMVC
-
In this showcase you'll see the following in action: * The simplest possible @Controller * Mapping Requests * Obtaining Request Data * Generating Responses * Message Converters * Rendering Views * Type Conversion * Validation * Forms * File Upload * Exception HandlingSpringMVCweb frameworks
