Author: hair
Date: 2008-05-01 05:18:39-0700
New Revision: 10547
Modified:
trunk/ (props changed)
trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl
trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl
trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java
trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java
trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java
Log:
SCB1584 - Import issues from Jira
importing attachments implemented
Modified: trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl?view=diff&rev=10547&p1=trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl&p2=trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl&r1=10546&r2=10547
==============================================================================
--- trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl (original)
+++ trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/bugzilla.xsl 2008-05-01 05:18:39-0700
@@ -24,7 +24,8 @@
<!-- Path to our resources. We look in $resources_path/attachments for
attachment files. The server instance must be able to see this
- path during the import. -->
+ path during the import.
+ Default is ${catalina.home}/../extensions/bugzilla -->
<xsl:param name="resources_path" as="xs:string"/>
<!-- The Scarab module code -->
Modified: trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl?view=diff&rev=10547&p1=trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl&p2=trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl&r1=10546&r2=10547
==============================================================================
--- trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl (original)
+++ trunk/src/conf/classes/org/tigris/scarab/util/xmlissues/xsls/jira.xsl 2008-05-01 05:18:39-0700
@@ -5,10 +5,18 @@
Author : hair
Description: Transform a jira xml into scarab xml. The transformed xml can then be imported into scarab.
-->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<!-- doctype-system="http://scarab.tigris.org/dtd/scarab-0.21.0.dtd"/-->
+ <!-- Path to our resources. We look in $resources_path/attachments for
+ attachment files. The server instance must be able to see this
+ path during the import.
+ Default is WEB-INF/attachments -->
+ <xsl:param name="resources_path" as="xs:string"/>
+
<xsl:template match="rss/channel">
<scarab-issues>
@@ -145,18 +153,23 @@
<format>EEE, d MMM yyyy HH:mm:ss Z (z)</format>
<timestamp><xsl:value-of select="../../updated"/></timestamp>
</created-date>
- <attachment>
- <name>comment</name>
- <type>COMMENT</type>
- <data><xsl:call-template name="tidy-html"><xsl:with-param name="input" select="."/></xsl:call-template></data>
- <mimetype>text/plain</mimetype>
- <created-date>
- <format>EEE, d MMM yyyy HH:mm:ss Z (z)</format>
- <timestamp><xsl:value-of select="@created"/></timestamp>
- </created-date>
- <created-by><xsl:value-of select="@author"/></created-by>
- <deleted>false</deleted>
- </attachment>
+ <activities>
+ <activity>
+ <attribute>NullAttribute</attribute>
+ <attachment>
+ <name>comment</name>
+ <type>COMMENT</type>
+ <data><xsl:call-template name="tidy-html"><xsl:with-param name="input" select="."/></xsl:call-template></data>
+ <mimetype>text/plain</mimetype>
+ <created-date>
+ <format>EEE, d MMM yyyy HH:mm:ss Z (z)</format>
+ <timestamp><xsl:value-of select="@created"/></timestamp>
+ </created-date>
+ <created-by><xsl:value-of select="@author"/></created-by>
+ <deleted>false</deleted>
+ </attachment>
+ </activity>
+ </activities>
</activity-set>
</xsl:for-each>
@@ -216,7 +229,37 @@
</activity-set>
</xsl:for-each>
-
+
+ <xsl:for-each select="attachments/attachment">
+ <activity-set>
+ <type>Edit Issue</type>
+ <created-date>
+ <format>EEE, d MMM yyyy HH:mm:ss Z (z)</format>
+ <timestamp><xsl:value-of select="@created"/></timestamp>
+ </created-date>
+ <activities>
+ <activity>
+ <attribute>NullAttribute</attribute>
+ <attachment>
+ <name>attachment</name>
+ <type>ATTACHMENT</type>
+ <!-- the following path presumes all attachments have been copied into WEB-INF/attachments/ -->
+ <filename><xsl:value-of select="$resources_path"/><xsl:value-of select="@id"/>_<xsl:value-of select="@name"/></filename>
+ <!-- and this will copy it to the correct subdirectory in WEB-INF/attachments (or what scarab.attachents.repository is) -->
+ <reconcile-path>true</reconcile-path>
+ <created-date>
+ <format>EEE, d MMM yyyy HH:mm:ss Z (z)</format>
+ <timestamp><xsl:value-of select="@created"/></timestamp>
+ </created-date>
+ <created-by><xsl:value-of select="@author"/></created-by>
+ <deleted>false</deleted>
+ <description>Added file attachment '<xsl:value-of select="@id"/>_<xsl:value-of select="@name"/>'</description>
+ </attachment>
+ </activity>
+ </activities>
+ </activity-set>
+ </xsl:for-each>
+
</activity-sets>
</issue>
Modified: trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java?view=diff&rev=10547&p1=trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java&p2=trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java&r1=10546&r2=10547
==============================================================================
--- trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java (original)
+++ trunk/src/java/org/tigris/scarab/screens/admin/XMLImportIssuesResults.java 2008-05-01 05:18:39-0700
@@ -115,8 +115,9 @@
{
final ScarabUser user = (ScarabUser)data.getUser();
final ImportIssues importIssues = new ImportIssues(
- false,
- user.hasPermission(ScarabSecurity.DOMAIN__ADMIN, (Module)null));
+ user.hasPermission(ScarabSecurity.DOMAIN__ADMIN, (Module)null),
+ user.hasPermission(ScarabSecurity.DOMAIN__ADMIN, (Module)null),
+ data.getServletConfig().getServletContext().getRealPath("/") + "/WEB-INF/attachments/");
final ScarabRequestTool scarabR = getScarabRequestTool(context);
final String type = data.getParameters().getString("xmlFormat");
Modified: trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java?view=diff&rev=10547&p1=trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java&p2=trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java&r1=10546&r2=10547
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java (original)
+++ trunk/src/java/org/tigris/scarab/util/xmlissues/ImportIssues.java 2008-05-01 05:18:39-0700
@@ -184,6 +184,7 @@
private boolean sendEmail = false;
private File xmlFile = null;
private boolean allowGlobalImports;
+ private String resourceDirectory;
/**
* Current file attachment handling code contains a security hole
@@ -210,13 +211,17 @@
public ImportIssues()
{
- this(false, false);
+ this(true, false, null);
}
- public ImportIssues(final boolean allowFileAttachments, final boolean allowGlobalImports)
+ public ImportIssues(
+ final boolean allowFileAttachments,
+ final boolean allowGlobalImports,
+ final String resourceDirectory)
{
this.allowFileAttachments = allowFileAttachments;
this.allowGlobalImports = allowGlobalImports;
+ this.resourceDirectory = resourceDirectory;
this.importErrors = new ImportErrors();
}
@@ -822,7 +827,8 @@
{
// Location of the extensions directory for Bugzilla
// Transform configuration, mappings and attachments are here
- String extensions = System.getProperty("catalina.home") + "/../extensions/bugzilla";
+ // TODO move onto resourceDirectory derivative
+ final String extensions = System.getProperty("catalina.home") + "/../extensions/bugzilla";
// Locate the Bugzilla to Scarab XSL transform
final InputStream xsl = getClass().getResourceAsStream(BUGZILLA_XSL);
@@ -837,10 +843,11 @@
}
else if( JIRA == type )
{
+
// transform xml to scarab format
final InputStream xsl = getClass().getResourceAsStream(JIRA_XSL);
final Reader result = transformXML(
- new StreamSource(readerFor(input)), xsl, currModule, null);
+ new StreamSource(readerFor(input)), xsl, currModule, resourceDirectory);
// insert missing information (module)
returnValue = insertModuleNode(result, currModule);
}
Modified: trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java?view=diff&rev=10547&p1=trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java&p2=trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java&r1=10546&r2=10547
==============================================================================
--- trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java (original)
+++ trunk/src/java/org/tigris/scarab/util/xmlissues/ScarabIssues.java 2008-05-01 05:18:39-0700
@@ -94,6 +94,7 @@
import org.tigris.scarab.om.ScarabUserManager;
import org.tigris.scarab.tools.localization.L10NKey;
import org.tigris.scarab.tools.localization.L10NKeySet;
+import org.tigris.scarab.util.ComponentLocator;
import org.tigris.scarab.util.ScarabConstants;
import org.tigris.scarab.util.ScarabException;
@@ -1157,15 +1158,12 @@
// same so there is no reason to re-create the attachment
// again.
final String previousXmlId = activityAttachment.getId();
- final String previousId = (String)attachmentIdMap
- .get(previousXmlId);
+ final String previousId = (String)attachmentIdMap.get(previousXmlId);
if (previousId == null)
{
- activityAttachmentOM = createAttachment(
- issueOM, activityAttachment);
+ activityAttachmentOM = createAttachment(issueOM, activityAttachment);
activityAttachmentOM.save();
- attachmentIdMap.put(previousXmlId,
- activityAttachmentOM.getPrimaryKey().toString());
+ attachmentIdMap.put(previousXmlId, activityAttachmentOM.getPrimaryKey().toString());
// Special case. After the Attachment object has been
// saved, if the ReconcilePath == true, then assume
@@ -1460,7 +1458,9 @@
{
attachmentOM.setName(attachment.getName());
attachmentOM.setAttachmentType(type);
- attachmentOM.setMimeType(attachment.getMimetype());
+ attachmentOM.setMimeType(null != attachment.getMimetype()
+ ? attachment.getMimetype()
+ : ComponentLocator.getMimeTypeService().getContentType(attachment.getFilename(), null));
attachmentOM.setFileName(attachment.getFilename());
attachmentOM.setData(attachment.getData());
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.