Choose many Spring contexts over a single context

Written by MikeNereson

July 26th, 2009 at 9:29 am

Posted in java

Tagged with , ,

With 2 comments

This is a short introduction to splitting up your bean definitions from one single Spring application context, to many application contexts. That is, from one XML file to many XML files. The general idea is to have one single primary application context, usually titled applicationContext.xml, and then many other application contexts with are named what they contain.

Example

For example, a single web project might contain the following contexts.

Breakdown

In this example, your DAO definitions, transaction managers, and DAO or integration interceptors are defined in applicationContext-dao.xml. We have further broken the DAO application context to a dao-datasource which contains our data sources. LDAP configuration, beans, and DAOs are in their own applicationContext-ldap.xml.

Benefits

Why so many? There have been a few benefits so far.

Responsibility

The Single Responsibility Principal is widely accepted and states that

… every object should have a single responsibility, and that all its services should be narrowly aligned with that responsibility.states that every object should have a single responsibility, and that all its services should be narrowly aligned with that responsibility.

The same holds true for XML contexts.  The general ides is to make our contexts more robust and to be able to isolate a context’s tasks and capabilities. And clearly, working with a smaller XML file is easier than working with one enormous file. It is easier to maintain and easier to read.

Testing

When I wrote my tests for LDAP, I had my LDAP configuration in applicationContext.xml, but then every time I ran an LDAP test, I would get the WebApplicationContext, which would import applicationContext-hibernate, which would connect to the database. Tests took forever and needless resources were used. Now I just get applicationContext-ldap.xml which only contains LDAP configurations, so no needless resources are loaded and tests remain quick.

Inclusion and Exclusion

Finally, its really easy to comment out a line like

<import resource="applicationContext-aspects.xml"/>

and quickly have all my aspects, which for me only write logs, disabled. Or easy to add a line like

<import resource="applicationContext-dao-mock.xml"/>

which overrides all of your DAO implementations with mock DAOs. This would be for testing.

Does anyone else use multiple application context files? See any other benefits? Or problems?

  • Share/Bookmark

List of Version Control Web Sites

Written by Welzie

July 24th, 2009 at 10:07 am

I recently needed to find a web site that offered version control services. I was having server issues and needed to find a reliable place to keep my code. Below is a list of sites that I found and some info about each one. Please add comments if you like or dislike any of these.

Note: The “cost” list below only shows the basic packages. Visit the sites for other plan details.

FREE – Version Control Hosts/Hosting

Cost
Per
Month
Disk
Space
Number
of
Repos
Number
of
users
Version
Control
Options
SSL
beanstalkapp.com free 100mb 1 3 SVN no
unfuddle.com free 200mb unlimited 2 git, SVN
projectlocker.com free 500mb unlimited 5 git, SVN no
bitbucket.org free 500mb 1 ? mercurial yes
xp-dev.com free 500mb unlimited unlimited SVN no

Cost – Version Control Hosts/Hosting (Basic Packages)

Cost
Per
Month
Disk
Space
Number
of
Repos
Number
of
users
Version
Control
Options
Other
Tools
Available
assembla.com $3 per project
+ $3 per gig
pay per gb 1 pay per user SVN, git, mercurial ?
svnrepository.com $3.95 500mb 1 unlimited SVN, git, mercurial trac, redmine
hosted-projects.com $7 100mb unlimited unlimited SVN trac, WebDAV
wush.net $6.5 1gb 1 unlimited SVN Trac, Bugzilla, FogBugz, WebDAV, WebSVN
cvsdude.com $6 250mb 2 5 SVN ?
beanstalkapp.com $15 3gb 10 5 SVN basecmap, campfire, fogbuz
svnsite.com $5 400mb 1 4 SVN
unfuddle.com $9 512mb unlimited 10 git, SVN
codespaces.com $3 500mb unlimited 2 SVN ?
projectlocker.com $2.08 2.5gb unlimited 2 git, SVN Trac
GitHub.com $7 600mb 5 1 git ?
bitbucket.org $5 500mb 5 1 mercurial ?
xp-dev.com $3.3 ($40 a year) 2000mb unlimited unlimited SVN ?


Version Control with Git (Amazon)


Pro Git (Amazon)


Practical Subversion, 2nd Edition (Amazon)




Mercurial: The Definitive Guide (Animal Guide)
  • Share/Bookmark

PHP Framework Comparison

Written by Welzie

July 23rd, 2009 at 11:37 pm

Posted in php

Tagged with ,

With 17 comments

Yes this is yet another PHP Framework comparison. A few months back I was trying to decide which PHP framework to use on a project. I wanted to use a currently popular framework because that way I would get the best support from the devoted contributors and users. Choosing a popular or active project is important when dealing with open source tools.

From my research I found that cakePHP, Zend Framework, and codeIgniter are currently the most popular PHP frameworks. Below are my notes and thoughts about of each framework.

Some of this will only make since if you are familiar with MVC frameworks, if you are not read this first http://en.wikipedia.org/wiki/Model-view-controller

cakePHP

http://cakephp.org/

Google results

Books







Mailing List/Forum Activity

Pros

Cons

Notes

Zend Framework

http://framework.zend.com/

Google results

Books







Mailing List/Forum Activity

Pros

Cons

Notes

CodeIgniter

http://codeigniter.com/

Google results

Books





Mailing List/Forum Activity

Pros

Cons

Notes

  • Share/Bookmark