Fork me on GitHub

n. Slang a rough lawless young Kuali developer.
[perhaps variant of Houlihan, Irish surname]
kualiganism n

Blog of an rSmart Java Developer. Full of code examples, solutions, best practices, et al.

Saturday, September 15, 2012

Spoiler: Rice Team quickstart-archetype Code on 2.1 Branch


The rice team has put together their own archetype compliments of Travis Schneeberger of Dechen Consulting Group. It's intended to replace the aging createproject.groovy script. I for one am excited and very eager to look at the code.


You can checkout the Jira comment about his checkin. Looks like it's slated for 2.2, but it's on the 2.1 branch right now. At some point, there's going to be a code review on this. I'd like to point out some features I already see just from the checkin comment.


Right off, you can tell it's pretty skeletal! That's because it's an overlay. Unlike the previous createproject.groovy that built a full project with rice as a resource, this creates an overlay project.

Sample Unit Tests

A config\archetype\quickstart\src\main\resources\archetype-resources\src\test\java
A config\archetype\quickstart\src\main\resources\archetype-resources\src\test\java\
A config\archetype\quickstart\src\main\resources\archetype-resources\src\test\java\
A config\archetype\quickstart\src\main\resources\archetype-resources\src\test\java\

looks like there are some sample unit tests there. Since there's no package, I take it that it's been filtered and whatever package you use to create your project will be used. Very happy about that.

Sample Services

Of course the tests mentioned earlier are for code that isn't in Rice. Here's the actual code it's testing:

A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\java\
A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\java\
A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\java\

Sample Spring Bootstrap Config!

It's better not to mess with the base rice config. You usually want to bootstrap the spring config. createproject.groovy didn't really give you good examples on that. Enter quickstart-archetype!

A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\resources\BootStrapConfig.xml
A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\resources\BootStrapSpringBeans.xml

Sample Integration Tests

Travis put together some pretty cool integration tests.

A config\archetype\quickstart\src\main\resources\archetype-resources\src\it
A config\archetype\quickstart\src\main\resources\archetype-resources\src\it\java
A config\archetype\quickstart\src\main\resources\archetype-resources\src\it\java\
A config\archetype\quickstart\src\main\resources\archetype-resources\src\it\resources

Sample Project Configurations

Before there was only one config (rice-config.xml) you could use. Now you can instrument various areas of your configuration before it hits the shelves.
D config\templates\createproject.SampleAppBeans.template.xml
D config\templates\createproject.SpringBeans.template.xml
C config\templates\createproject.pom.template.xml
D config\templates\createproject.standalone.meta-inf.config.template.xml
D config\templates\createproject.standalone.config.template.xml
D config\templates\createproject.standalone.RiceDataSourceSpringBeans.template.xml
D config\templates\createproject.config.template.xml
D config\templates\createproject.standalone.RiceSpringBeans.template.xml

Full Application Test

Before you even finish building the application from the archetype, it will test it out for you. That's a really good feature that createproject.groovy never had.

A it\config\src\test\groovy\org\kuali\rice\config\at\QuickStartTest.groovy
A it\config\src\test\resources
A it\config\src\test\resources\META-INF
A it\config\src\test\resources\META-INF\config-test-config.xml

Want to know more?

Check out The Confluence Page on it if you want to know more. They have tons of other features planned and great IDE integration! It's all planned to hit you before Kuali Days!

Excellent job guys!

Other Archetypes

I'd like to also point out that I have a fair a mount of archetypes I'm working on at my github project. Some time pre-or-post-code review I will go over the actual differences between the archetypes and why you would want to use one over the other.

No comments:

Post a Comment