| Kaamelot Build Kit is released ... |
Pedigree
| Name | Kaamelot Build Kit |
|---|---|
| Versions | 1.0 |
| Release Date | 2008.02.05 |
| Author(s) | Vincent Thoulé |
| Price | Free |
| License | BSD |
| JavaDocs | n/a |
| IssueTracking | http://developer.atlassian.com/jira/browse/KAAM |
| Maven2 Release Repository | http://kaamelot.fr.free.fr/repository/m2 |
| Maven2 SNAPSHOT Repository | http://kaamelot.fr.free.fr/repository/m2.snapshot |
| Download Source | https://svn.atlassian.com/svn/public/contrib/jira/jira-kaamelot-plugins/tags/jira-build-kit-1.0 https://svn.atlassian.com/svn/public/contrib/jira/jira-kaamelot-plugins/trunk/jira-build-kit |
Description/Features
- Build a JIRA Instance with a Plugin integration from any Maven 2 Repository.
- Integrate complex plugins (Kaamelot plugin) providing settings or code intrusion
Samples
| JIRA | Integrated Plug-ins | Kit |
|---|---|---|
| 3.10.2 |
|
jira-kaamelot-3.10.1.0 |
| 3.12.1 |
|
jira-kaamelot-3.10.1.0 |
- Maven 2.0.7 installed
- Some Maven Repositories
- At least a Local one,
- in case of Remote Repository, then you have to declare it in Maven Settings (UserHome/.m2/settings.xml)
- yourRepositoryId : an Identification key
- yourRepositoryURL : an valid URL using one of supported protocol (FTP, SCP, ... )
- A downloaded release of JIRA from http://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-enterprise-X.Y.Z.zip into your <downloadDir>,
- installed on Maven Local Repository.
mvn install:install-file -DgroupId=com.atlassian -DartifactId=atlassian-jira-enterprise -Dversion=3.10.2 -Dpackaging=jar -Dfile=G:\Workspaces\_\atlassian-jira-enterprise-3.10.2.zip - and/or deployed on Maven Remote Repository
mvn deploy:deploy-file -DgroupId=com.atlassian -DartifactId=atlassian-jira-enterprise -Dversion=3.11 -Dpackaging=jar -Dfile=c:/Temp/atlassian-jira-enterprise-3.11.zip -Durl=ftp://kaamelot.fr.free.fr/repository/m2 -DrepositoryId=ftp-kaamelot.fr.free.fr -DgeneratePom=true
- installed on Maven Local Repository.
Kaamelot Build Kit is Maven Project providing :
- Some Build settings with configuration for below Maven plugins :
- maven-dependency-plugin
- maven-antrun-plugin
- maven-install-plugin
- maven-deploy-plugin
- An ANT Script able to build a JIRA EAR ready for Deployment.
This ANT script will :
- Extract the JIRA Distribution in Build Directory (target sub-folder)
- Integrate all changes provided by Plugin identified as Settings.
- Merge I18n Properties provided by Plugin identified as I18n Provider.
- Deploy all Added Libraries (Plugin Jar, I18n Jar or new dependencies) in JIRA Editable Libraries folder (edit-webapp/WEB-INF/lib)
- Launch of standard Atlassian JIRA ANT Build Script.
By Settings Plugin, you have to understand that it will be a JAR file providing :
- Web Resources to copy in edit-webapp/
- Resources to copy in etc/
- Sources to copy in src/
- Replacement Settings
# List of ReplacementSet keys (comma separated) replacementSets=<set1>[,<set2>] # 1st Set <set1>.filePath=<Relative File Path needing Replacement> <set1>.<tokenSet1>=<tokenSet1> <set1>.<tokenSet1>.token=<tokenToReplace> <set1>.<tokenSet1>.value=<replacingValue>
By I18n Plugin, you have to understand that it will be a JAR file providing I18n resources.
In root of the JAR, it should provided a supportedLanguages.properties file, describing the list of provided Languages resources, and used suffix.
In below sample, two languages are supported (French and English) :
- French properties files are suffixed by fr
- English properties files are suffixed by en_UK
# List of Language supported supportedLanguages=fr_FR,en_UK localeUsed.fr_FR=fr localeUsed.en_UK=en_UK
In the Integration process, the I18n resources identified as overridden properties (same name as standard properties file) will be merge with orginal one.
For example, if your I18n Plugin provides a com\atlassian\jira\web\action\JiraWebActionSupport_fr_FR.properties, then the Integration process will append your Properties at the End of the original JiraWebActionSupport_fr_FR.properties, and so, as it the Bundle Properties are managed through a HashMap, it is your translations which will be used.
As is provided the Kaamelot JIRA Builder, it is not able to perform a build, you will have to extend it by creating a new Maven Project.
You will have to create a POM file (pom.xml) as follow :
<?xml version="1.0" encoding="ISO-8859-1"?> <project> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.atlassian.jira</groupId> <artifactId>jira-build-kit</artifactId> <version>1.0-SNAPSHOT</version> </parent> <groupId>com.yourcompany.jira</groupId> <artifactId>jira-yourcompany</artifactId> <packaging>pom</packaging> <name>jira-yourcompany</name> <version>1.0-SNAPSHOT</version> <properties> <!-- See Below for details --> </properties> <dependencies> <!-- See Below for details --> <dependencies> <build> <!-- See Below for details --> </build> </project>
In this project, you will have to :
- Specify the JIRA Distribution to use
- Enumerate the list of JIRA Plugin to integrate in your final Build
- Enumerate the list of JIRA Plugin Settings to merge in your final Build
- Enumerate the list of I18n and Settings Plugins
- Define replacements depending on target environnement
To specify the JIRA Distribution to use, you will have to define in the <properties> section, a atlassian.jira.enterprise.version property as follow.
<properties> <atlassian.jira.enterprise.version>3.11</atlassian.jira.enterprise.version> </properties>
<dependencies> <!-- JIRA Kaamelot Core Module --> <dependency> <groupId>fr.kaamelot.atlassian.jira</groupId> <artifactId>jira-plugin-kaamelot-core</artifactId> <version>${jira.kaamelot.version}</version> </dependency> <!-- Any other JIRA Plugin --> <dependency> <groupId>any.plugin.atlassian.jira</groupId> <artifactId>jira-plugin-any.plugin-core</artifactId> <version>${jira.any.plugin.version}</version> </dependency> <dependencies> </project>
The List of JIRA Plugin Settings (if needed) to merge, you will have to define in the <build> section,
a new <execution> definition for the maven-dependency-plugin as follow.
<execution> <id>copy.Plugins</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <!-- JIRA Any.Plugin Settings Module Distribution --> <artifactItem> <groupId>any.plugin.atlassian.jira</groupId> <artifactId>jira-plugin-any.plugin-settings</artifactId> <version>${jira.any.plugin.version}</version> </artifactItem> </artifactItems> <outputDirectory>${build.lib}</outputDirectory> </configuration> </execution>
To specify which plugin provides I18n and Settings, you will have to define in the <properties> section, the properties plugins.settings and plugins.i18n, as follow.
<properties> <jira.any.plugin.version>1.0-SNAPSHOT</jira.any.plugin.version> <!-- Initialize here, the List of Settings to used for Build. Required Property : plugins.settings --> <plugin.any.plugin.settings>jira-plugin-any.plugin-settings-${jira.any.plugin.version}.jar</plugin.any.plugin.settings> <plugins.settings>${plugin.any.plugin.settings}</plugins.settings> <!-- Initialize here, the List of i18n to used for Build. Required Property : plugins.i18n --> <plugin.any.plugin.i18n>jira-plugin-any.plugin-i18n-${jira.any.plugin.version}.jar</plugin.any.plugin.i18n> <plugins.i18n>${plugin.any.plugin.i18n}</plugins.i18n> </properties>
Required replacements have to be declared, specifying impacted files.
For exemple, entityengine.xml will required below replacements :
- JIRA Database Type
- JIRA Database Schema
- JIRA Dabase JNDI
- JIRA User Transaction JNDI
- JIRA Transaction Manager JNDI
This definition will be done by creating a XXX.properties file, following the description done in Concept of Settings Plugin.
Generaly, XXX is a name specifying the target environement.
To build a new JIRA Artifact (WAR or EAR) with an integration of Kaamelot Plugin, you will have to :
- Download the Build Kit project (See Overview)
- And execute the below Maven command from its donwload folder :
mvn package -DbuildType=tomcat.dev
_Here, tomcat.dev is the name of replacement properties, implying the deployment on Tomcat with Developpement settings (Mysql for exemple).

Comments (5)
Jan 31, 2008
Jonathan Belisle says:
Hi My Name is Jonathan Belisle from VDL2.ca and we recently bought a JIRA ...Hi My Name is Jonathan Belisle from VDL2.ca and we recently bought a JIRA licenseand Installed the Kamelot Plugin.
I am having a hard time finding information on How to generate a very simple report. I cannot find or Understand your Confluence Forum Navigation....where can I ask specific instructions to resolve my Simple request.
I need to create a kamelot reports of containing all of the following data:
http://developer.atlassian.com/jira/secure/ConfigureReport\!default.jspa?selectedProjectId=10078&reportKey=com.atlassian.jira.plugin.system.reports:time-tracking
Feb 01, 2008
Vincent Thoulé says:
Hi Jonathan, 1. Your request should be done on Kaamelot or directly on Issue tr...Hi Jonathan,
1. Your request should be done on Kaamelot or directly on Issue tracker.
2. For a report containing Task(Issues), Worked Hours and Client (Project), you may use a Workload Report (Issue).
You will have to select all required criteria (for agregation and for filtering)
The generated URL would be something like :
http://yourDomain/jira/secure/ConfigureReport.jspa?reportId=PR,IS&startDate=01%2F02%2F2008&endDate=29%2F02%2F2008&projectId=10000&unitType=2&showKey=yes&showSummary=yes&selectedProjectId=10000&reportKey=jira.plugin.kaamelot.core%3Aworkload-issue
Passed parameters are :
Possible values are defined here
Possible values are 1=Day Fraction and 2=JIRA mode (9w 9d 9m 9s)
3. Currently, I do not try to manage Customfields through a generic way. For other agregation criteria, you will have to implement them yourself in your own plugin ...
Follow the steps described in KAAM-107
Rgds
Vincent
Feb 06, 2008
Vincent Thoulé says:
Kaamelot JIRA Build Kit 1.0 is available. A sample implementation is provided : ...Kaamelot JIRA Build Kit 1.0 is available.
A sample implementation is provided : jira-kaamelot-3.10.1.0.
It is configured in order to build a JIRA 3.10.2 with Kaamelot 3.10.1.21 on Tomcat and MySQL.
Give me returns.
Vincent
Jul 14
Terry Bell says:
When trying to build with the latest version of Jira, I am running into the foll...When trying to build with the latest version of Jira, I am running into the following issue:
[INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Failed to resolve artifact. Missing: ---------- 1) com.atlassian:atlassian-jira-parent:pom:3.12 Path to dependency: 1) fr.kaamelot.atlassian.jira:jira-kaamelot:pom:3.12.1.1 2) fr.kaamelot.atlassian.jira:jira-plugin-kaamelot-core:jar:3.12.1.22 3) com.atlassian:atlassian-jira-parent:pom:3.12 ---------- 1 required artifact is missing. for artifact: fr.kaamelot.atlassian.jira:jira-kaamelot:pom:3.12.1.1 from the specified remote repositories: kaamelot.fr.free.fr.snapshot (http://kaamelot.fr.free.fr/repository/m2.snapshot), scm.selkirksystems.com-releases (http://scm.selkirksystems.com/artifactory/repo), kaamelot (http://kaamelot.fr.free.fr/repository/m2), kaamelot.fr.free.fr (http://kaamelot.fr.free.fr/repository/m2), snapshots (http://scm.selkirksystems.com/artifactory/repo)I was wondering if maybe I missed something in my pom file, or if the structure of the tar.gz version of the jira project has changed so when I installed it into my local repo, it had the wrong structure. I unpackaged and re-zipped the tar.gz, and updated the version as part of the install
Jul 15
Vincent Thoulé says:
Hi Terry, The com.atlassian:atlassianjiraparent:pom:3.12 is not deployed on the...Hi Terry,
The com.atlassian:atlassian-jira-parent:pom:3.12 is not deployed on the Kaamelot repository.
It is available in Atlassian Subversion
Gves me more details on "The wrong structure" you mentionned;
You have to exprt it to you environment, build it and install/deploy it to you repository
Note that :
Rgds
Vincent