Wednesday, May 18, 2011

use maven to create a basic project

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.2 -DgroupId=com.travelsoft.services -DartifactId=HostServices

When Agile/Scrum should NOT be used

Today I read this article, it is very interesting. And I agree most of the points he list there. Details please check. http://blog.matrixresources.com/blog/when-agilescrum-should-not-be-used

Below are the list of quotes which I think are useful.

1. Non-High Profile Project
2. Stable Technology
3. No Major Process Innovation
4. Requirements are Stable
5. Quick Time to Market not Needed

Resource Characteristics:

1. Inability to Co-located
2. Low Cost Talent Available
3. Team Size Varies
Company Characteristics:

1. Command and Control Company Culture: “dictator” type project management
2. Contracts Require Full Scope and Documentation

Tuesday, May 17, 2011

Encrypt a password in JPA persistent.xml

Below is a example how to encrypt password in JPA persistent.

1. Generate a encrypted password (See previous blog)
2. Add below entrance into spring applicationcontext.xml




PBEWithMD5AndDES


JAMES_PWD


4





strongHibernateStringEncryptor







3. change persistent.xml




value="org.jasypt.hibernate.connectionprovider.EncryptedPasswordDriverManagerConnectionProvider"/>

How to encrypt password in spring configuration file

I just finish a project which use "jasypt" to encrypt the password in spring configuration file. Below are the steps and notes.

1. Regarding Maven entrance, please check below

org.jasypt
jasypt
1.7.1

2. Develop a program to encrypt password.

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setAlgorithm("PBEWithMD5AndDES");
encryptor.setPassword("JAMES_PWD"); // could be got from web, env variable...
return encryptor.encrypt(input) ;
3. Create a environment variable to hold temporary password
APP_ENCRYPTION_PASSWORD = JAMES_PWD

4. Change your spring configuration file to read property from file.


class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">





class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">


-->






class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">



classpath:connection.properties