Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 223065 Details for
Bug 269201
[jar exporter] ant file produced by Export runnable jar contains absolute paths instead of relative to workspace
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch for ant exporter to use relative paths
patch_269201_20121101.txt (text/plain), 20.14 KB, created by
Ferenc Hechler
on 2012-11-01 05:05:51 EDT
(
hide
)
Description:
patch for ant exporter to use relative paths
Filename:
MIME Type:
Creator:
Ferenc Hechler
Created:
2012-11-01 05:05:51 EDT
Size:
20.14 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui >Index: ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java,v >retrieving revision 1.8 >diff -u -r1.8 FatJarAntExporter.java >--- ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java 27 Apr 2011 07:48:36 -0000 1.8 >+++ ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java 1 Nov 2012 09:00:46 -0000 >@@ -11,12 +11,20 @@ > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 220257 [jar application] ANT build file does not create Class-Path Entry in Manifest > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 219530 [jar application] add Jar-in-Jar ClassLoader option > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262766 [jar exporter] ANT file for Jar-in-Jar option contains relative path to jar-rsrc-loader.zip >+ * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 269201 [jar exporter] ant file produced by Export runnable jar contains absolut paths instead of relative to workspace > *******************************************************************************/ > package org.eclipse.jdt.internal.ui.jarpackagerfat; > >+import java.io.File; > import java.io.FileNotFoundException; > import java.io.IOException; > import java.util.ArrayList; >+import java.util.HashMap; >+import java.util.Map; >+ >+import org.w3c.dom.Document; >+import org.w3c.dom.Element; >+import org.w3c.dom.Node; > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IPath; >@@ -25,6 +33,8 @@ > import org.eclipse.core.runtime.Path; > import org.eclipse.core.runtime.Status; > >+import org.eclipse.core.resources.ResourcesPlugin; >+ > import org.eclipse.debug.core.ILaunchConfiguration; > > import org.eclipse.jdt.internal.corext.util.Messages; >@@ -47,6 +57,14 @@ > */ > public abstract class FatJarAntExporter { > >+ private static final String ANT_PROPERTYNAME_DIR_BUILDFILE= "dir.buildfile"; //$NON-NLS-1$ >+ private static final String ANT_PROPERTYNAME_DIR_WORKSPACE= "dir.workspace"; //$NON-NLS-1$ >+ private static final String ANT_PROPERTYNAME_DIR_JARFILE= "dir.jarfile"; //$NON-NLS-1$ >+ >+ private static final String ANT_PROPERTY_DIR_BUILDFILE= "${"+ANT_PROPERTYNAME_DIR_BUILDFILE+"}"; //$NON-NLS-1$ //$NON-NLS-2$ >+ private static final String ANT_PROPERTY_DIR_WORKSPACE= "${"+ANT_PROPERTYNAME_DIR_WORKSPACE+"}"; //$NON-NLS-1$ //$NON-NLS-2$ >+ private static final String ANT_PROPERTY_DIR_JARFILE= "${"+ANT_PROPERTYNAME_DIR_JARFILE+"}"; //$NON-NLS-1$ //$NON-NLS-2$ >+ > protected static class SourceInfo { > > public final boolean isJar; >@@ -60,10 +78,47 @@ > } > } > >+ /** >+ * Helper class for path-substitutions. >+ * This class manages a set of path substitutions. >+ * On apply the longest substitution is chosen. >+ */ >+ private static class PathSubstituter { >+ private Map<String, String> pathSubstitutions = new HashMap<String, String>(); >+ public PathSubstituter addSubstitution(String basePath, String baseReplacement) { >+ pathSubstitutions.put(basePath, baseReplacement); >+ return this; >+ } >+ public String substitute(String path) { >+ int len = 0; >+ String result = path; >+ for (String basePath:pathSubstitutions.keySet()) { >+ if (basePath.length() < len) { >+ continue; >+ } >+ if (path.equals(basePath)) { >+ result = pathSubstitutions.get(basePath); >+ break; >+ } >+ if (path.startsWith(basePath+File.separator)) { >+ len = basePath.length(); >+ result = pathSubstitutions.get(basePath)+path.substring(len); >+ } >+ } >+ return result; >+ } >+ } >+ > private ILaunchConfiguration fLaunchConfiguration; > private IPath fAbsJarfile; > private IPath fAntScriptLocation; >- >+ >+ private String fBuildfileDir; >+ private String fWorkspaceDir; >+ private String fJarfileDir; >+ >+ private PathSubstituter pathSubstituter; >+ > /** > * Create an instance of the ANT exporter. An ANT exporter can generate an ANT script > * at the given ant script location for the given launch configuration >@@ -75,6 +130,28 @@ > fLaunchConfiguration= launchConfiguration; > fAbsJarfile= jarLocation; > fAntScriptLocation= antScriptLocation; >+ pathSubstituter = new PathSubstituter(); >+ try { >+ fBuildfileDir = antScriptLocation.toFile().getParentFile().getCanonicalPath(); >+ pathSubstituter.addSubstitution(fBuildfileDir, ANT_PROPERTY_DIR_BUILDFILE); >+ } catch (Exception e) { >+ JavaPlugin.log(e); >+ fBuildfileDir= "?"; //$NON-NLS-1$ >+ } >+ try { >+ fJarfileDir = jarLocation.toFile().getParentFile().getCanonicalPath(); >+ pathSubstituter.addSubstitution(fJarfileDir, ANT_PROPERTY_DIR_JARFILE); >+ } catch (Exception e) { >+ JavaPlugin.log(e); >+ fJarfileDir= "?"; //$NON-NLS-1$ >+ } >+ try { >+ fWorkspaceDir= ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile().getCanonicalPath(); >+ pathSubstituter.addSubstitution(fWorkspaceDir, ANT_PROPERTY_DIR_WORKSPACE); >+ } catch (Exception e) { >+ JavaPlugin.log(e); >+ fWorkspaceDir= "?"; //$NON-NLS-1$ >+ } > } > > /** >@@ -164,6 +241,101 @@ > return result; > } > >+ >+ /** >+ * add dir properties to ANT-Buildfile. >+ * <ul> >+ * <li><property name="dir.buildfile" value="." /></li> >+ * <li><property name="dir.workspace" value="${dir.buildfile}/../.." /></li> >+ * <li><property name="dir.jarfile" value="C:/TEMP" /></li> >+ * </ul> >+ * >+ * @param document the dom document of the ant buildscript >+ * @param project the project tag >+ */ >+ protected void addBaseDirProperties(Document document, Element project) { >+ >+ Node comment= document.createComment("define folder properties"); //$NON-NLS-1$ >+ project.appendChild(comment); >+ >+ Element property= document.createElement("property"); //$NON-NLS-1$ >+ property.setAttribute("name", ANT_PROPERTYNAME_DIR_BUILDFILE); //$NON-NLS-1$ >+ property.setAttribute("value", "."); //$NON-NLS-1$ //$NON-NLS-2$ >+ project.appendChild(property); >+ >+ property= document.createElement("property"); //$NON-NLS-1$ >+ property.setAttribute("name", ANT_PROPERTYNAME_DIR_WORKSPACE); //$NON-NLS-1$ >+ property.setAttribute("value", getWorkspaceRelativeDir()); //$NON-NLS-1$ >+ project.appendChild(property); >+ >+ property= document.createElement("property"); //$NON-NLS-1$ >+ property.setAttribute("name", ANT_PROPERTYNAME_DIR_JARFILE); //$NON-NLS-1$ >+ property.setAttribute("value", getJarfileRelativeDir()); //$NON-NLS-1$ >+ project.appendChild(property); >+ } >+ >+ >+ /** >+ * Try to make the given filename relative to any of the ant-property-dirs. >+ * <ul> >+ * <li>buidfile-dir (where the ant script is)</li> >+ * <li>workspace-dir (eclipse workspace dir)</li> >+ * <li>jarfile-dir (where the jar is written to)</li> >+ * </ul> >+ * >+ * @param absFilename filename whichs base dir is substituted >+ * @return either the original filename or a relative path from one of the base-dirs >+ */ >+ protected String substituteBaseDirs(String absFilename) { >+ String canonicleFilename; >+ try { >+ canonicleFilename= new File(absFilename).getCanonicalPath(); >+ } catch (IOException e) { >+ e.printStackTrace(); >+ return absFilename; >+ } >+ String result = pathSubstituter.substitute(canonicleFilename); >+ result = result.replace(File.separatorChar, '/'); >+ return result; >+ } >+ >+ /** >+ * @return workspace-dir relative to buildfile-dir if possible >+ */ >+ protected String getWorkspaceRelativeDir() { >+ String result; >+ if (fBuildfileDir.startsWith(fWorkspaceDir+File.separator)) { >+ int lastSlash = fWorkspaceDir.length(); >+ result = "${dir.buildfile}"+File.separator+".."; //$NON-NLS-1$ //$NON-NLS-2$ >+ lastSlash = fBuildfileDir.indexOf(File.separator, lastSlash+1); >+ while (lastSlash != -1) { >+ result += File.separator+".."; //$NON-NLS-1$ >+ lastSlash = fBuildfileDir.indexOf(File.separator, lastSlash+1); >+ } >+ } >+ else { >+ result = new PathSubstituter() >+ .addSubstitution(fBuildfileDir, ANT_PROPERTY_DIR_BUILDFILE) >+ .substitute(fWorkspaceDir); >+ } >+ result = result.replace(File.separatorChar, '/'); >+ return result; >+ } >+ >+ >+ /** >+ * @return jarfile-dir relative to buildfile-dir or workspace-dir if possible >+ */ >+ protected String getJarfileRelativeDir() { >+ String result = new PathSubstituter() >+ .addSubstitution(fBuildfileDir, ANT_PROPERTY_DIR_BUILDFILE) >+ .addSubstitution(fWorkspaceDir, ANT_PROPERTY_DIR_WORKSPACE) >+ .substitute(fJarfileDir); >+ result = result.replace(File.separatorChar, '/'); >+ return result; >+ } >+ >+ > /** > * Create an ANT script at the given location. > * >Index: ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java,v >retrieving revision 1.6 >diff -u -r1.6 FatJarRsrcUrlAntExporter.java >--- ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java 27 Apr 2011 07:48:36 -0000 1.6 >+++ ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java 1 Nov 2012 09:00:46 -0000 >@@ -11,6 +11,7 @@ > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262766 [jar exporter] ANT file for Jar-in-Jar option contains relative path to jar-rsrc-loader.zip > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262763 [jar exporter] remove Built-By attribute in ANT files from Fat JAR Exporter > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262748 [jar exporter] extract constants for string literals in JarRsrcLoader et al. >+ * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 269201 [jar exporter] ant file produced by Export runnable jar contains absolut paths instead of relative to workspace > *******************************************************************************/ > package org.eclipse.jdt.internal.ui.jarpackagerfat; > >@@ -94,18 +95,20 @@ > Element project= document.createElement("project"); //$NON-NLS-1$ > project.setAttribute("name", "Create Runnable Jar for Project " + projectName + " with Jar-in-Jar Loader"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ > project.setAttribute("default", "create_run_jar"); //$NON-NLS-1$ //$NON-NLS-2$ >- comment= document.createComment("this file was created by Eclipse Runnable JAR Export Wizard"); //$NON-NLS-1$ >+ comment= document.createComment("this file was created by Eclipse Runnable JAR file Export Wizard"); //$NON-NLS-1$ > project.appendChild(comment); >- comment= document.createComment("ANT 1.7 is required "); //$NON-NLS-1$ >+ comment= document.createComment("ANT 1.7 is required"); //$NON-NLS-1$ > project.appendChild(comment); > document.appendChild(project); > >+ addBaseDirProperties(document, project); >+ > Element target= document.createElement("target"); //$NON-NLS-1$ > target.setAttribute("name", "create_run_jar"); //$NON-NLS-1$ //$NON-NLS-2$ > project.appendChild(target); > > Element jar= document.createElement("jar"); //$NON-NLS-1$ >- jar.setAttribute("destfile", absJarname); //$NON-NLS-1$s >+ jar.setAttribute("destfile", substituteBaseDirs(absJarname)); //$NON-NLS-1$s > target.appendChild(jar); > > Element manifest= document.createElement("manifest"); //$NON-NLS-1$ >@@ -149,12 +152,12 @@ > if (sourceInfo.isJar) { > File jarFile= new File(sourceInfo.absPath); > Element fileset= document.createElement("zipfileset"); //$NON-NLS-1$ >- fileset.setAttribute("dir", jarFile.getParent()); //$NON-NLS-1$ >+ fileset.setAttribute("dir", substituteBaseDirs(jarFile.getParent())); //$NON-NLS-1$ > fileset.setAttribute("includes", jarFile.getName()); //$NON-NLS-1$ > jar.appendChild(fileset); > } else { > Element fileset= document.createElement("fileset"); //$NON-NLS-1$ >- fileset.setAttribute("dir", sourceInfo.absPath); //$NON-NLS-1$ >+ fileset.setAttribute("dir", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$ > jar.appendChild(fileset); > } > } >Index: ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java,v >retrieving revision 1.6 >diff -u -r1.6 UnpackFatJarAntExporter.java >--- ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java 27 Apr 2011 07:48:36 -0000 1.6 >+++ ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java 1 Nov 2012 09:00:46 -0000 >@@ -10,6 +10,7 @@ > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 83258 [jar exporter] Deploy java application as executable jar > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262766 [jar exporter] ANT file for Jar-in-Jar option contains relative path to jar-rsrc-loader.zip > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262763 [jar exporter] remove Built-By attribute in ANT files from Fat JAR Exporter >+ * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 269201 [jar exporter] ant file produced by Export runnable jar contains absolut paths instead of relative to workspace > *******************************************************************************/ > package org.eclipse.jdt.internal.ui.jarpackagerfat; > >@@ -55,6 +56,7 @@ > try { > docBuilder= factory.newDocumentBuilder(); > } catch (ParserConfigurationException ex) { >+ outputStream.close(); > throw new IOException(FatJarPackagerMessages.FatJarPackageAntScript_error_couldNotGetXmlBuilder); > } > Document document= docBuilder.newDocument(); >@@ -65,18 +67,20 @@ > Element project= document.createElement("project"); //$NON-NLS-1$ > project.setAttribute("name", "Create Runnable Jar for Project " + projectName); //$NON-NLS-1$ //$NON-NLS-2$ > project.setAttribute("default", "create_run_jar"); //$NON-NLS-1$ //$NON-NLS-2$ >- comment= document.createComment("this file was created by Eclipse Runnable JAR Export Wizard"); //$NON-NLS-1$ >+ document.appendChild(project); >+ comment= document.createComment("this file was created by Eclipse Runnable JAR file Export Wizard"); //$NON-NLS-1$ > project.appendChild(comment); >- comment= document.createComment("ANT 1.7 is required "); //$NON-NLS-1$ >+ comment= document.createComment("ANT 1.7 is required"); //$NON-NLS-1$ > project.appendChild(comment); >- document.appendChild(project); >+ >+ addBaseDirProperties(document, project); > > Element target= document.createElement("target"); //$NON-NLS-1$ > target.setAttribute("name", "create_run_jar"); //$NON-NLS-1$ //$NON-NLS-2$ > project.appendChild(target); > > Element jar= document.createElement("jar"); //$NON-NLS-1$ >- jar.setAttribute("destfile", absJarname); //$NON-NLS-1$s >+ jar.setAttribute("destfile", substituteBaseDirs(absJarname)); //$NON-NLS-1$s > jar.setAttribute("filesetmanifest", "mergewithoutmain"); //$NON-NLS-1$ //$NON-NLS-2$ > target.appendChild(jar); > >@@ -97,12 +101,12 @@ > SourceInfo sourceInfo= sourceInfos[i]; > if (sourceInfo.isJar) { > Element zipfileset= document.createElement("zipfileset"); //$NON-NLS-1$ >- zipfileset.setAttribute("src", sourceInfo.absPath); //$NON-NLS-1$ >+ zipfileset.setAttribute("src", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$ > zipfileset.setAttribute("excludes", "META-INF/*.SF"); //$NON-NLS-1$ //$NON-NLS-2$ > jar.appendChild(zipfileset); > } else { > Element fileset= document.createElement("fileset"); //$NON-NLS-1$ >- fileset.setAttribute("dir", sourceInfo.absPath); //$NON-NLS-1$ >+ fileset.setAttribute("dir", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$ > jar.appendChild(fileset); > } > } >Index: ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java,v >retrieving revision 1.5 >diff -u -r1.5 UnpackJarAntExporter.java >--- ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java 27 Apr 2011 07:48:36 -0000 1.5 >+++ ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java 1 Nov 2012 09:00:46 -0000 >@@ -10,6 +10,7 @@ > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 219530 [jar application] add Jar-in-Jar ClassLoader option > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262766 [jar exporter] ANT file for Jar-in-Jar option contains relative path to jar-rsrc-loader.zip > * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262763 [jar exporter] remove Built-By attribute in ANT files from Fat JAR Exporter >+ * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 269201 [jar exporter] ant file produced by Export runnable jar contains absolut paths instead of relative to workspace > *******************************************************************************/ > package org.eclipse.jdt.internal.ui.jarpackagerfat; > >@@ -61,6 +62,7 @@ > try { > docBuilder= factory.newDocumentBuilder(); > } catch (ParserConfigurationException ex) { >+ outputStream.close(); > throw new IOException(FatJarPackagerMessages.FatJarPackageAntScript_error_couldNotGetXmlBuilder); > } > Document document= docBuilder.newDocument(); >@@ -71,18 +73,20 @@ > Element project= document.createElement("project"); //$NON-NLS-1$ > project.setAttribute("name", "Create Runnable Jar for Project " + projectName + " with libraries in sub-folder"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ > project.setAttribute("default", "create_run_jar"); //$NON-NLS-1$ //$NON-NLS-2$ >- comment= document.createComment("this file was created by Eclipse Runnable JAR Export Wizard"); //$NON-NLS-1$ >+ comment= document.createComment("this file was created by Eclipse Runnable JAR file Export Wizard"); //$NON-NLS-1$ > project.appendChild(comment); >- comment= document.createComment("ANT 1.7 is required "); //$NON-NLS-1$ >+ comment= document.createComment("ANT 1.7 is required"); //$NON-NLS-1$ > project.appendChild(comment); > document.appendChild(project); > >+ addBaseDirProperties(document, project); >+ > Element target= document.createElement("target"); //$NON-NLS-1$ > target.setAttribute("name", "create_run_jar"); //$NON-NLS-1$ //$NON-NLS-2$ > project.appendChild(target); > > Element jar= document.createElement("jar"); //$NON-NLS-1$ >- jar.setAttribute("destfile", absJarname); //$NON-NLS-1$s >+ jar.setAttribute("destfile", substituteBaseDirs(absJarname)); //$NON-NLS-1$s > target.appendChild(jar); > > Element manifest= document.createElement("manifest"); //$NON-NLS-1$ >@@ -112,18 +116,18 @@ > SourceInfo sourceInfo= sourceInfos[i]; > if (!sourceInfo.isJar) { > Element fileset= document.createElement("fileset"); //$NON-NLS-1$ >- fileset.setAttribute("dir", sourceInfo.absPath); //$NON-NLS-1$ >+ fileset.setAttribute("dir", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$ > jar.appendChild(fileset); > } > } > > > Element delete= document.createElement("delete"); //$NON-NLS-1$ >- delete.setAttribute("dir", absSubfolder); //$NON-NLS-1$s >+ delete.setAttribute("dir", substituteBaseDirs(absSubfolder)); //$NON-NLS-1$s > target.appendChild(delete); > > Element mkdir= document.createElement("mkdir"); //$NON-NLS-1$ >- mkdir.setAttribute("dir", absSubfolder); //$NON-NLS-1$s >+ mkdir.setAttribute("dir", substituteBaseDirs(absSubfolder)); //$NON-NLS-1$s > target.appendChild(mkdir); > > // add libraries >@@ -131,8 +135,8 @@ > SourceInfo sourceInfo= sourceInfos[i]; > if (sourceInfo.isJar) { > Element copy= document.createElement("copy"); //$NON-NLS-1$ >- copy.setAttribute("file", sourceInfo.absPath); //$NON-NLS-1$ >- copy.setAttribute("todir", absSubfolder); //$NON-NLS-1$ >+ copy.setAttribute("file", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$ >+ copy.setAttribute("todir", substituteBaseDirs(absSubfolder)); //$NON-NLS-1$ > target.appendChild(copy); > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 269201
:
129325
|
129326
|
132288
|
132476
|
222585
|
223065
|
244414