Test archetypes in JBoss Central

    One solution to test your archetypes in JBoss Central is to define a Project Example User site.

     

    First, grab a copy of the last version of project-examples-shared-XXXX.xml and save it locally.

    Then, you need to edit it : remove all unwanted projects and keep the one you're interested in. You will have to change :

    • the <name> so it doesn't collide with existing names in JBT
    • The archetype coordinates :
      • <archetypeGroupId>
      • <archetypeArtifactd>
      • <archetypeVersion>
      • Add/change <archetypeRepository> to point to the location of the repository (local or remote) containing the archetype under test
    • The <tag> value must be set to central
    • You may change the rest of the example properties according to your needs.
    • Save your project example descriptor locally.

     

    You will end up with something like :

     

     

    <projects>
        <project>
            <category>Open Archetypes</category>
            <name>multi-helloworld</name>
            <included-projects>multi</included-projects>
            <shortDescription>Multi Module</shortDescription>
            <priority>1</priority>
            <description>This is an overly complex Hello world</description>
            <size>8192</size>
            <url/>
            <fixes>
                <fix type="wtpruntime">
                    <property name="allowed-types">org.jboss.ide.eclipse.as.runtime.70, org.jboss.ide.eclipse.as.runtime.71, org.jboss.ide.eclipse.as.runtime.eap.60</property>
                    <property name="description">This project example requires JBoss AS 7.0/7.1 or EAP 6 </property>
                    <property name="downloadId">org.jboss.tools.runtime.core.as.710</property>
                </fix>
                <fix type="plugin">
                    <property name="id">org.eclipse.m2e.core</property>
                    <property name="versions">[1.0.0,1.2.0)</property>
                    <property name="description">This project example requires m2e &gt;= 1.0.</property>
                    <property name="connectorIds">org.eclipse.m2e.feature</property>
                </fix>
                <fix type="plugin">
                    <property name="id">org.maven.ide.eclipse.wtp</property>
                    <property name="versions">[0.13.1,0.17)</property>
                    <property name="description">This project example requires m2eclipse-wtp &gt;= 0.13.1.</property>
                    <property name="connectorIds">org.maven.ide.eclipse.wtp</property>
                </fix>
                <fix type="plugin">
                    <property name="id">org.jboss.tools.maven.core</property>
                    <property name="versions">[1.3.0,1.4.0)</property>
                    <property name="description">This project example requires JBoss Maven Tools.</property>
                    <property name="connectorIds">org.jboss.tools.maven.feature,org.jboss.tools.maven.cdi.feature,org.jboss.tools.maven.hibernate.feature,org.jboss.tools.maven.jaxrs.feature,org.jboss.tools.maven.portlet.feature,org.jboss.tools.maven.seam.feature</property>
                </fix>
            </fixes>
            <importType>mavenArchetype</importType>
            <importTypeDescription>The project example requires the m2e, m2eclipse-wtp and JBoss Maven Integration features.</importTypeDescription>
            
            
            <defaultMavenProfiles>arq-jbossas-remote</defaultMavenProfiles>        
            <mavenArchetype>
                <!-- Archetype coordinates-->
                <archetypeGroupId>org.openarchetypes</archetypeGroupId>
                <archetypeArtifactId>multi-javaee6-archetype</archetypeArtifactId>
                <archetypeVersion>0.0.1-SNAPSHOT</archetypeVersion>
                <!-- You can remove the <archetypeRepository> if the archetype is available from Maven Central -->
                <archetypeRepository>http://open-archetypes.github.com/maven-repo/snapshots/</archetypeRepository>
                <!-- if you need to test with your local build
                <archetypeRepository>file:/path/to/your/local/mavenrepo/</archetypeRepository>
                 -->
                
                <!-- Pre-populate the project wizard input texts-->
                <groupId>foo.bar</groupId>
                <artifactId>multi</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <javaPackage>foo.bar.multi</javaPackage>
                <!-- Override default archetype properties -->
                <properties>
                    <property name="name" value="Java EE 6 webapp project"/>
                </properties>
            </mavenArchetype>
            
            <!-- use the tag 'central' to make this example appear in JBoss Central - Project Examples section -->
            <tags>central</tags> 
            
            <!-- Icon to use in JBoss Central-->
            <icon path="icons/newwebprj_wiz.gif" />
            
            <!-- Readme / Cheatsheet to open automatically when the project is generated -->
            <welcome type="editor" url="/${project[0]}/readme.md"/>
        </project>
    </projects>    
    
    
    

     

    Now you need to open Eclipse's preferences and got to JBoss Tools > Project Examples.

    • Check 'Show experimental sites'
    • Click on the 'Add' button to add your customized project example descriptor as a User Site

     

    add-user-site.png

     

    Back to JBoss Central, in the Project Examples section, click on the refresh button and see your archetype appear in the list :

    archetype-central.png

     

    You can now test your custom archetype exactly as if it was a built-in project wizard from JBoss Central