blob: 3bac602f0141e708028b1dfa79ab29a413c1b8e9 [file] [log] [blame]
package org.apache.maven.archetype.generator
import groovy.xml.MarkupBuilder
/**
*
* @author raphaelpieroni
* @plexus.component role-hint="legacy"
*/
class LegacyGenerator
extends AbstractFilesetArchetypeGenerator {
def loadArchetypeDescriptor( File archetypeFile ) {println"LegacyGenerator ${archetypeFile}"
def oldDescriptor = new XmlSlurper().parse( archetypeArtifactManager.getLegacyArchetypeDescriptor( archetypeFile ) )
def filesetDescriptor = new StringWriter()
def filesetDescriptorBuilder = new MarkupBuilder( filesetDescriptor )
filesetDescriptorBuilder.'archetype-descriptor'( name:oldDescriptor.id.toString(), partial:getPartial(oldDescriptor) ) {
fileSets {
oldDescriptor?.sources?.source.each { source ->
fileSet( engine:'velocity', packaged:true, filtered:true ) {
directory getSourceDirectory( source.toString() )
includes {
include getSourcePath( source.toString() )
}
}
}
oldDescriptor?.testSources?.source.each { source ->
fileSet( engine:'velocity', packaged:true, filtered:true ) {
directory getSourceDirectory( source.toString() )
includes {
include getSourcePath( source.toString() )
}
}
}
oldDescriptor?.resources?.resource.each { resource ->
fileSet( engine:'velocity', packaged:false, filtered:getFiltered( resource?.@filtered.toString() ) ) {
directory getResourceDirectory( resource.toString() )
includes {
include getResourcePath( resource.toString() )
}
}
}
oldDescriptor?.siteResources?.resource.each { resource ->
fileSet( engine:'velocity', packaged:false, filtered:getFiltered( resource?.@filtered.toString() ) ) {
directory getResourceDirectory( resource.toString() )
includes {
include getResourcePath( resource.toString() )
}
}
}
}
}
// filesetDescriptor = filesetDescriptor.toString()
logger.error"Using translated descriptor ${filesetDescriptor.toString()}"
new XmlSlurper().parseText( filesetDescriptor.toString() )
}
def getPartial( oldDescriptor ) {
if(oldDescriptor.allowPartial.toString()) return oldDescriptor.allowPartial.toString()
return false
}
def getSourceDirectory( source ) {
source.substring 0, source.lastIndexOf( 'java/' ) + 4
}
def getResourceDirectory( source ) {
source.substring 0, source.lastIndexOf( '/' )
}
def getSourcePath( source ) {
source.substring source.lastIndexOf( 'java/' ) + 5
}
def getResourcePath( source ) {
source.substring source.lastIndexOf( '/' ) + 1
}
def getFiltered( filtered ) {
filtered ? filtered : true
}
}