Source Allies Logo

Blog Insights

  • development icon

    Learning a new Language

    I attended a No Fluff Just Stuff Symposium a few weeks ago. One of the main emphasis during the weekend was learning new languages that are available on the JVM. While there are a variety of reasons that we need to take time to learn new programming languages, one of...
  • development icon

    Spring Injection with @Resource, @Autowired and @Inject

    Annotations public interface Party { } 'Person' is a component and it implements 'Party'. package com.sourceallies.person; ... @Component public class Person implements Party { } 'Organization' is a component and it implements 'Party'. package com.sourceallies.organization; ... @Component public class Organization implements Party { } I setup a Spring context that scans both of these packages for beans marked with '@Component'. <context:component-scan base-package="com.sourceallies.organization"/> <context:component-scan base-package="com.sourceallies.person"/> @Resource private Party party;</pre> ```java @Autowired private Party...
  • development icon

    Debugging memory leaks with VisualVM

    At work I had run into a memory leak when scrolling through large result sets returned from Hibernate. I thought I had fixed it by performing a evict()/clear()/flush() in the HibernateTemplate that I was using but suddenly the leak was back. I was using VisualVm to monitor the...
  • development icon

    Creating an Open Source Project

    I feel like I understand the differences a little better, but I would like to know what other open source projects are using. I found a list of the “Top 20 Most Commonly Used Licenses in Open Source Projects" (http://www.blackducksoftware.com/oss/licenses). With the comparisons and the ranking I am leaning towards...
  • development icon

    Maven 3 Tutorial - Project Setup

    To illustrate this point I will share a story from my early years in software development. Our shop used Ant without Ivy.  Ivy didn’t become a full fledged Apache project until October, 2007. Each team had their own Ant build. As we began to move from team to team we had to find...
  • testing icon

    Testing Spring Wiring

    One of our partners suffered from this very issue. Due to environmental constraints they could not run automated, in-container tests that would have identified misconfigured beans. After repeatedly committing stupid configuration mistakes, I decided that I would write a Spring wiring test. As I began to write this I encountered...
  • testing icon

    Mock Me With Fewer Words

    With Mockito 1.8.3 or higher you can significantly reduce your test code setup. Here is the code before. public class MockitoTest { private EmailFactory emailFactory; private Notifier notifier; private Emailer emailer; private Email email; @Before public void setUp(){ ...
  • default icon

    Rethinking the DAO-Service layer relationship

    Lately I have been thinking that the standard service-calling-the-dao-layer architecture hasn't been working out as well as I would hope. The applications I have been working on have been using Spring and Hibernate with a dao object per model object. While this does provide a good separation between...
  • testing icon

    Selenium IDE - Part II

    In Part I we covered All examples will use the sample site https://sites.google.com/site/example4selenium/. <li>You can verify your XPath by clicking the 'Find' button. The element will be highlighted in the browser with flashing neon green if it exists.</li> <li>If you want to select elements by position, you may want the following information....
  • agile icon

    Pair Programming 101

    Pair programming is a technique where two programmers work at a single work station.  One person "drives" or has control of the mouse and keyboard.  The other person "navigates" or keeps track of where they are and where they are headed.  This is a perfect environment for teaching and learning...