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

# Kualigan

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

## Overview

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.

## Details

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.

### Overlay

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\MultiplicationProductServiceImplTest.java
A config\archetype\quickstart\src\main\resources\archetype-resources\src\test\java\AbstractProductServiceImplTest.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\AdditionProductServiceImpl.java
A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\java\MultiplicationProductServiceImpl.java
A config\archetype\quickstart\src\main\resources\archetype-resources\src\main\java\ProductService.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\BasicApplicationIT.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!

## 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.