You need separate project (let's call it YOUR-GEN-PROJECT) - if you need I can send you 'template'.
Than in src/main/java/generator/SpecialCases.xtend you can have for example something like this:
It's using simple naming convention - name have to be "OriginalTmpl" + "Override" and you need @ChainOverride annotation.
___________________________________________________________________
package generator
import org.sculptor.generator.util.CamelCaseConverter
import org.sculptor.generator.chain.ChainOverride
import org.sculptor.generator.template.jpa.JPATmpl
import org.sculptor.generator.template.service.ServiceTmpl
import sculptormetamodel.Application
import sculptormetamodel.Service
@ChainOverride
class JPATmplOverride extends JPATmpl {
override String persistenceUnitAnnotatedClasses(Application it, String unitName) {
next.persistenceUnitAnnotatedClasses(it, unitName) + '''
<!-- smartclient classes -->
<class>sk.f4s.albiq.process.domain.AlbiqProcess</class>
<class>sk.f4s.albiq.service.domain.Users</class>
'''
}
}
@ChainOverride
class ServiceTmplOverride extends ServiceTmpl {
override String springServiceAnnotation(Service service) {
'''@org.springframework.security.access.annotation.Secured("ROLE_�CamelCaseConverter::camelCaseToUnderscore(
service.name).toUpperCase()�")
'''
+ next.springServiceAnnotation(service)
}
}
And in service project you need to setup generator plugin like:
<plugin>
<groupId>org.sculptorgenerator</groupId>
<artifactId>sculptor-maven-plugin</artifactId>
<version>${sculptor.version}</version>
<executions>
<execution>
<id>cleanup</id>
<goals>
<goal>clean</goal>
</goals>
</execution>
<execution>
<id>code-generation</id>
<goals><goal>generate</goal></goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>COM.YOUR.COMPANY</groupId>
<artifactId>YOUR-GEN-PROJECT</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
Regards
Pavel