Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 255913 | Differences between
and this patch

Collapse All | Expand All

(-)p2 tools - mirror metadata.launch (-24 lines)
Removed Link Here
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
3
<booleanAttribute key="append.args" value="true"/>
4
<booleanAttribute key="automaticAdd" value="false"/>
5
<booleanAttribute key="automaticValidate" value="false"/>
6
<stringAttribute key="bootstrap" value=""/>
7
<stringAttribute key="checked" value="[NONE]"/>
8
<booleanAttribute key="clearConfig" value="false"/>
9
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/p2 tools - mirror metadata"/>
10
<booleanAttribute key="default_auto_start" value="false"/>
11
<intAttribute key="default_start_level" value="4"/>
12
<booleanAttribute key="includeOptional" value="false"/>
13
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
14
<stringAttribute key="org.eclipse.jdt.launching.JAVA_COMMAND" value="java"/>
15
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-console -consolelog -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication&#13;&#10;-source http://download.eclipse.org/eclipse/updates/3.4milestones/&#13;&#10;-destination file:c:/p2"/>
16
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
17
<stringAttribute key="pde.version" value="3.3"/>
18
<booleanAttribute key="show_selected_only" value="false"/>
19
<stringAttribute key="target_bundles" value="org.eclipse.equinox.security@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.app@default:true,org.eclipse.osgi.services@default:default,org.eclipse.osgi@:,org.eclipse.equinox.launcher@default:default,org.eclipse.equinox.common@default:default,org.eclipse.equinox.registry@default:default,javax.servlet@default:default,org.eclipse.core.jobs@default:default"/>
20
<booleanAttribute key="tracing" value="false"/>
21
<booleanAttribute key="useDefaultConfigArea" value="true"/>
22
<booleanAttribute key="useNamedJRE" value="true"/>
23
<stringAttribute key="workspace_bundles" value="org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.provider.filetransfer@default:default,org.sat4j.pb@default:default,org.eclipse.equinox.simpleconfigurator@default:true,org.eclipse.equinox.p2.director@default:default,org.sat4j.core@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.ecf@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.jarprocessor@default:default"/>
24
</launchConfiguration>
(-)build.properties (-1 / +7 lines)
Lines 14-19 Link Here
14
               .,\
14
               .,\
15
               about.html,\
15
               about.html,\
16
               plugin.xml,\
16
               plugin.xml,\
17
               plugin.properties
17
               plugin.properties,\
18
               ant_tasks/metadataRepository-ant.jar
18
src.includes = about.html,\
19
src.includes = about.html,\
19
               schema/
20
               schema/
21
jars.extra.classpath = platform:/plugin/org.apache.ant/lib/ant.jar
22
jars.compile.order = .,\
23
                     ant_tasks/metadataRepository-ant.jar
24
source.ant_tasks/metadataRepository-ant.jar = src_ant/
25
output.ant_tasks/metadataRepository-ant.jar = bin_ant/
(-).classpath (+1 lines)
Lines 3-7 Link Here
3
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
3
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
4
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5
	<classpathentry kind="src" path="src"/>
5
	<classpathentry kind="src" path="src"/>
6
	<classpathentry kind="src" output="bin_ant" path="src_ant"/>
6
	<classpathentry kind="output" path="bin"/>
7
	<classpathentry kind="output" path="bin"/>
7
</classpath>
8
</classpath>
(-)plugin.xml (+32 lines)
Lines 22-25 Link Here
22
        <filter suffix="compositeContent.xml"/>
22
        <filter suffix="compositeContent.xml"/>
23
        <factory class="org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory"/>
23
        <factory class="org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory"/>
24
   </extension>
24
   </extension>
25
   
26
   <extension point="org.eclipse.ant.core.antTasks">
27
   		<antTask
28
			library="ant_tasks/metadataRepository-ant.jar"
29
			name="eclipse.p2.metadataMirrorApplication"
30
			class="org.eclipse.equinox.internal.p2.metadata.repository.ant.MirrorApplicationTask">
31
		</antTask>
32
		
33
		<antTask
34
			library="ant_tasks/metadataRepository-ant.jar"
35
			name="eclipse.p2.CompositeMetadataRepository.create"
36
			class="org.eclipse.equinox.internal.p2.metadata.repository.ant.CreateCompositeMetadataRepositoryTask">
37
		</antTask>
38
		
39
		<antTask
40
			library="ant_tasks/metadataRepository-ant.jar"
41
			name="eclipse.p2.CompositeMetadataRepository.addChild"
42
			class="org.eclipse.equinox.internal.p2.metadata.repository.ant.AddChildTask">
43
		</antTask>
44
		
45
		<antTask
46
			library="ant_tasks/metadataRepository-ant.jar"
47
			name="eclipse.p2.CompositeMetadataRepository.removeChild"
48
			class="org.eclipse.equinox.internal.p2.metadata.repository.ant.RemoveChildTask">
49
		</antTask>
50
		
51
		<antTask
52
			library="ant_tasks/metadataRepository-ant.jar"
53
			name="eclipse.p2.CompositeMetadataRepository.removeAllChildren"
54
			class="org.eclipse.equinox.internal.p2.metadata.repository.ant.RemoveAllChildrenTask">
55
		</antTask>
56
	</extension>
25
</plugin>
57
</plugin>
(-).project (+10 lines)
Lines 25-30 Link Here
25
			<arguments>
25
			<arguments>
26
			</arguments>
26
			</arguments>
27
		</buildCommand>
27
		</buildCommand>
28
		<buildCommand>
29
			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
30
			<triggers>full,incremental,</triggers>
31
			<arguments>
32
				<dictionary>
33
					<key>LaunchConfigHandle</key>
34
					<value>&lt;project&gt;/.externalToolBuilders/org.eclipse.equinox.p2.metadata.reposiroy buildAntTasks.xml.launch</value>
35
				</dictionary>
36
			</arguments>
37
		</buildCommand>
28
	</buildSpec>
38
	</buildSpec>
29
	<natures>
39
	<natures>
30
		<nature>org.eclipse.pde.PluginNature</nature>
40
		<nature>org.eclipse.pde.PluginNature</nature>
(-)src_ant/org/eclipse/equinox/internal/p2/metadata/repository/ant/AddChildTask.java (+38 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.metadata.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.apache.tools.ant.Task;
7
import org.eclipse.core.runtime.URIUtil;
8
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
9
import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
10
import org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository;
11
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
12
import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
13
14
public class AddChildTask extends Task {
15
	URI location;
16
	URI child;
17
18
	public void execute() {
19
		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
20
21
		CompositeMetadataRepository repo = null;
22
		try {
23
			repo = (CompositeMetadataRepository) manager.loadRepository(location, null);
24
		} catch (ProvisionException e) {
25
			throw new BuildException("Exception while loading repository.", e);
26
		}
27
28
		repo.addChild(child);
29
	}
30
31
	public void setLocation(String value) throws URISyntaxException {
32
		location = URIUtil.fromString(value);
33
	}
34
35
	public void setChild(String value) throws URISyntaxException {
36
		child = URIUtil.fromString(value);
37
	}
38
}
(-)src_ant/org/eclipse/equinox/internal/p2/metadata/repository/ant/RemoveChildTask.java (+37 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.metadata.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.apache.tools.ant.Task;
7
import org.eclipse.core.runtime.URIUtil;
8
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
9
import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
10
import org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository;
11
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
12
import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
13
14
public class RemoveChildTask extends Task {
15
	URI location;
16
	URI child;
17
18
	public void execute() {
19
		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
20
21
		CompositeMetadataRepository repo;
22
		try {
23
			repo = (CompositeMetadataRepository) manager.loadRepository(location, null);
24
		} catch (ProvisionException e) {
25
			throw new BuildException("Exception while loading repository.", e);
26
		}
27
		repo.removeChild(child);
28
	}
29
30
	public void setLocation(String value) throws URISyntaxException {
31
		location = URIUtil.fromString(value);
32
	}
33
34
	public void setChild(String value) throws URISyntaxException {
35
		child = URIUtil.fromString(value);
36
	}
37
}
(-)src_ant/org/eclipse/equinox/internal/p2/metadata/repository/ant/RemoveAllChildrenTask.java (+32 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.metadata.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.apache.tools.ant.Task;
7
import org.eclipse.core.runtime.URIUtil;
8
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
9
import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
10
import org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository;
11
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
12
import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
13
14
public class RemoveAllChildrenTask extends Task {
15
	URI location;
16
17
	public void execute() {
18
		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
19
20
		CompositeMetadataRepository repo = null;
21
		try {
22
			repo = (CompositeMetadataRepository) manager.loadRepository(location, null);
23
		} catch (ProvisionException e) {
24
			throw new BuildException("Exception while loading repository.", e);
25
		}
26
		repo.removeAllChildren();
27
	}
28
29
	public void setLocation(String value) throws URISyntaxException {
30
		location = URIUtil.fromString(value);
31
	}
32
}
(-)src_ant/org/eclipse/equinox/internal/p2/metadata/repository/ant/CreateCompositeMetadataRepositoryTask.java (+50 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.metadata.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import java.util.HashMap;
6
import java.util.Map;
7
import org.apache.tools.ant.BuildException;
8
import org.apache.tools.ant.Task;
9
import org.eclipse.core.runtime.URIUtil;
10
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
11
import org.eclipse.equinox.internal.p2.metadata.repository.Activator;
12
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
13
import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
14
import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
15
16
public class CreateCompositeMetadataRepositoryTask extends Task {
17
	URI location;
18
	String name = "Composite Metadata Repository";
19
	boolean compressed = true;
20
	Map properties = new HashMap();
21
22
	public void execute() {
23
		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) ServiceHelper.getService(Activator.getContext(), IMetadataRepositoryManager.class.getName());
24
25
		//remove the repo first.
26
		manager.removeRepository(location);
27
28
		if (compressed)
29
			properties.put(IRepository.PROP_COMPRESSED, "true");
30
31
		try {
32
			manager.createRepository(location, name, IMetadataRepositoryManager.TYPE_COMPOSITE_REPOSITORY, properties);
33
		} catch (ProvisionException e) {
34
			throw new BuildException("Exception while creating composite artifact repository.", e);
35
		}
36
	}
37
38
	public void setName(String value) {
39
		name = value;
40
	}
41
42
	public void setLocation(String value) throws URISyntaxException {
43
		location = URIUtil.fromString(value);
44
	}
45
46
	public void setCompressed(boolean value) {
47
		compressed = value;
48
	}
49
50
}
(-)src_ant/org/eclipse/equinox/internal/p2/metadata/repository/ant/MirrorApplicationTask.java (+91 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.metadata.repository.ant;
2
3
import java.net.MalformedURLException;
4
import java.net.URL;
5
import java.util.HashMap;
6
import java.util.Map;
7
import org.apache.tools.ant.BuildException;
8
import org.apache.tools.ant.Task;
9
import org.eclipse.equinox.app.IApplicationContext;
10
import org.eclipse.equinox.internal.p2.metadata.mirror.MirrorApplication;
11
import org.osgi.framework.Bundle;
12
13
public class MirrorApplicationTask extends Task {
14
	URL source;
15
	URL destination;
16
	String message = "";
17
	boolean emptyRepository = false;
18
19
	//TODO add transitive and roots attributed when implemented.
20
21
	/**
22
	 * runs the mirror application with arguments args
23
	 */
24
	private void runMirrorApplication(String msg, final String[] args) throws Exception {
25
		MirrorApplication application = new MirrorApplication();
26
		application.start(new IApplicationContext() {
27
28
			public void applicationRunning() {
29
			}
30
31
			public Map getArguments() {
32
				Map arguments = new HashMap();
33
34
				arguments.put(IApplicationContext.APPLICATION_ARGS, args);
35
36
				return arguments;
37
			}
38
39
			public String getBrandingApplication() {
40
				return null;
41
			}
42
43
			public Bundle getBrandingBundle() {
44
				return null;
45
			}
46
47
			public String getBrandingDescription() {
48
				return null;
49
			}
50
51
			public String getBrandingId() {
52
				return null;
53
			}
54
55
			public String getBrandingName() {
56
				return null;
57
			}
58
59
			public String getBrandingProperty(String key) {
60
				return null;
61
			}
62
		});
63
	}
64
65
	public void execute() {
66
		//create arguments
67
		String[] args = new String[] {"-source", source.toExternalForm(), "-destination", destination.toExternalForm(), emptyRepository ? "-emptyRepository" : ""};
68
69
		try {
70
			runMirrorApplication(message, args);
71
		} catch (Exception e) {
72
			throw new BuildException("Exception while running mirror application.", e);
73
		}
74
	}
75
76
	public void setSource(String value) throws MalformedURLException {
77
		source = new URL(value);
78
	}
79
80
	public void setDestination(String value) throws MalformedURLException {
81
		destination = new URL(value);
82
	}
83
84
	public void setMessage(String value) {
85
		message = value;
86
	}
87
88
	public void setEmptyRepository(boolean value) {
89
		emptyRepository = value;
90
	}
91
}
(-)buildAntTasks.xml (+9 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project name="org.eclipse.equinox.p2.metadata.generator" default="default" basedir=".">
3
4
	<target name="default" description="Compile ant tasks" >
5
		<mkdir dir="${basedir}/ant_tasks" />
6
		<delete file="${basedir}/ant_tasks/metadataRepository-ant.jar" failonerror="false"/>
7
		<jar destfile="${basedir}/ant_tasks/metadataRepository-ant.jar" basedir="${basedir}/bin_ant"/>
8
	</target>
9
</project>
(-).externalToolBuilders/org.eclipse.equinox.p2.metadata.reposiroy (+18 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
3
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
4
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
5
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
6
<listEntry value="/org.eclipse.equinox.p2.metadata.repository/buildAntTasks.xml"/>
7
</listAttribute>
8
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
9
<listEntry value="1"/>
10
</listAttribute>
11
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
12
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
13
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
14
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.metadata.repository"/>
15
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.metadata.repository/buildAntTasks.xml}"/>
16
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
17
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
18
</launchConfiguration>
(-).classpath (+1 lines)
Lines 3-7 Link Here
3
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
3
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
4
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
4
	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5
	<classpathentry kind="src" path="src"/>
5
	<classpathentry kind="src" path="src"/>
6
	<classpathentry kind="src" output="bin_ant" path="src_ant"/>
6
	<classpathentry kind="output" path="bin"/>
7
	<classpathentry kind="output" path="bin"/>
7
</classpath>
8
</classpath>
(-)build.properties (-1 / +7 lines)
Lines 14-19 Link Here
14
               .,\
14
               .,\
15
               plugin.xml,\
15
               plugin.xml,\
16
               about.html,\
16
               about.html,\
17
               plugin.properties
17
               plugin.properties,\
18
               ant_tasks/artifactRepository-ant.jar
18
src.includes = about.html,\
19
src.includes = about.html,\
19
               schema/
20
               schema/
21
jars.extra.classpath = platform:/plugin/org.apache.ant/lib/ant.jar
22
jars.compile.order = .,\
23
                     ant_tasks/artifactRepository-ant.jar
24
source.ant_tasks/artifactRepository-ant.jar = src_ant/
25
output.ant_tasks/artifactRepository-ant.jar = bin_ant/
(-)plugin.xml (+38 lines)
Lines 43-46 Link Here
43
		<artifactComparator class="org.eclipse.equinox.internal.p2.artifact.processors.md5.MD5ArtifactComparator"
43
		<artifactComparator class="org.eclipse.equinox.internal.p2.artifact.processors.md5.MD5ArtifactComparator"
44
		id="org.eclipse.equinox.artifact.md5.comparator"/>
44
		id="org.eclipse.equinox.artifact.md5.comparator"/>
45
	</extension>
45
	</extension>
46
	
47
	<extension point="org.eclipse.ant.core.antTasks">
48
		<antTask
49
			library="ant_tasks/artifactRepository-ant.jar"
50
			name="eclipse.p2.artifactMirrorApplication"
51
			class="org.eclipse.equinox.internal.p2.artifact.repository.ant.MirrorApplicationTask">
52
		</antTask>
53
		
54
		<antTask
55
			library="ant_tasks/artifactRepository-ant.jar"
56
			name="eclipse.p2.CompositeArtifactRepository.create"
57
			class="org.eclipse.equinox.internal.p2.artifact.repository.ant.CreateCompositeArtifactRepositoryTask">
58
		</antTask>
59
		
60
		<antTask
61
			library="ant_tasks/artifactRepository-ant.jar"
62
			name="eclipse.p2.CompositeArtifactRepository.addChild"
63
			class="org.eclipse.equinox.internal.p2.artifact.repository.ant.AddChildTask">
64
		</antTask>
65
		
66
		<antTask
67
			library="ant_tasks/artifactRepository-ant.jar"
68
			name="eclipse.p2.CompositeArtifactRepository.removeChild"
69
			class="org.eclipse.equinox.internal.p2.artifact.repository.ant.RemoveChildTask">
70
		</antTask>
71
		
72
		<antTask
73
			library="ant_tasks/artifactRepository-ant.jar"
74
			name="eclipse.p2.CompositeArtifactRepository.removeAllChildren"
75
			class="org.eclipse.equinox.internal.p2.artifact.repository.ant.RemoveAllChildrenTask">
76
		</antTask>
77
		
78
		<antTask
79
			library="ant_tasks/artifactRepository-ant.jar"
80
			name="eclipse.p2.CompositeArtifactRepository.sanityCheck"
81
			class="org.eclipse.equinox.internal.p2.artifact.repository.ant.SanityCheckTask">
82
		</antTask>
83
	</extension>
46
</plugin>
84
</plugin>
(-).project (+10 lines)
Lines 20-25 Link Here
20
			<arguments>
20
			<arguments>
21
			</arguments>
21
			</arguments>
22
		</buildCommand>
22
		</buildCommand>
23
		<buildCommand>
24
			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
25
			<triggers>full,incremental,</triggers>
26
			<arguments>
27
				<dictionary>
28
					<key>LaunchConfigHandle</key>
29
					<value>&lt;project&gt;/.externalToolBuilders/org.eclipse.equinox.p2.artifact.repository buildAntTasks.xml.launch</value>
30
				</dictionary>
31
			</arguments>
32
		</buildCommand>
23
	</buildSpec>
33
	</buildSpec>
24
	<natures>
34
	<natures>
25
		<nature>org.eclipse.pde.PluginNature</nature>
35
		<nature>org.eclipse.pde.PluginNature</nature>
(-)src_ant/org/eclipse/equinox/internal/p2/artifact/repository/ant/CreateCompositeArtifactRepositoryTask.java (+50 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.artifact.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import java.util.HashMap;
6
import java.util.Map;
7
import org.apache.tools.ant.BuildException;
8
import org.apache.tools.ant.Task;
9
import org.eclipse.core.runtime.URIUtil;
10
import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
11
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
12
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
13
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
14
import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepository;
15
16
public class CreateCompositeArtifactRepositoryTask extends Task {
17
	URI location;
18
	String name = "Composite Artifact Repository";
19
	boolean compressed = true;
20
	Map properties = new HashMap();
21
22
	public void execute() {
23
		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
24
25
		//remove the repo first.
26
		manager.removeRepository(location);
27
28
		if (compressed)
29
			properties.put(IRepository.PROP_COMPRESSED, "true");
30
31
		try {
32
			manager.createRepository(location, name, IArtifactRepositoryManager.TYPE_COMPOSITE_REPOSITORY, properties);
33
		} catch (ProvisionException e) {
34
			throw new BuildException("Exception while creating composite artifact repository.", e);
35
		}
36
	}
37
38
	public void setName(String value) {
39
		name = value;
40
	}
41
42
	public void setLocation(String value) throws URISyntaxException {
43
		location = URIUtil.fromString(value);
44
	}
45
46
	public void setCompressed(boolean value) {
47
		compressed = value;
48
	}
49
50
}
(-)build.xml (+355 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project name="org.eclipse.equinox.p2.artifact.repository" default="build.jars" basedir=".">
3
4
	<property name="basews" value="${ws}"/>
5
	<property name="baseos" value="${os}"/>
6
	<property name="basearch" value="${arch}"/>
7
	<property name="basenl" value="${nl}"/>
8
	<property name="bundleId" value="org.eclipse.equinox.p2.artifact.repository"/>
9
	<property name="bundleVersion" value="1.0.100.z200811211449"/>
10
11
	<!-- Compiler settings. -->
12
	<property name="javacFailOnError" value="false"/>
13
	<property name="javacDebugInfo" value="on"/>
14
	<property name="javacVerbose" value="false"/>
15
	<property name="logExtension" value=".log"/>
16
	<property name="compilerArg" value=""/>
17
	<property name="javacSource" value="1.3"/>
18
	<property name="javacTarget" value="1.2"/>
19
	<condition property="dir_bootclasspath" value="${java.home}/../Classes">
20
		<os family="mac"/>
21
	</condition>
22
	<property name="dir_bootclasspath" value="${java.home}/lib"/>
23
	<path id="path_bootclasspath">
24
		<fileset dir="${dir_bootclasspath}">
25
			<include name="*.jar"/>
26
		</fileset>
27
	</path>
28
	<property name="bootclasspath" refid="path_bootclasspath"/>
29
<condition property="bundleBootClasspath" value="${J2SE-1.4}"	>
30
		<isset property="J2SE-1.4"/>
31
	</condition>
32
<condition property="bundleJavacSource" value="1.3"	>
33
		<isset property="J2SE-1.4"/>
34
	</condition>
35
<condition property="bundleJavacTarget" value="1.2"	>
36
		<isset property="J2SE-1.4"/>
37
	</condition>
38
<condition property="bundleBootClasspath" value="${CDC-1.1/Foundation-1.1}"	>
39
		<isset property="CDC-1.1/Foundation-1.1"/>
40
	</condition>
41
<condition property="bundleJavacSource" value="1.3"	>
42
		<isset property="CDC-1.1/Foundation-1.1"/>
43
	</condition>
44
<condition property="bundleJavacTarget" value="1.2"	>
45
		<isset property="CDC-1.1/Foundation-1.1"/>
46
	</condition>
47
	<property name="bundleJavacSource" value="${javacSource}"/>
48
	<property name="bundleJavacTarget" value="${javacTarget}"/>
49
	<property name="bundleBootClasspath" value="${bootclasspath}"/>
50
51
	<target name="init" depends="properties">
52
<condition property="pluginTemp" value="${buildTempFolder}/plugins"		>
53
			<isset property="buildTempFolder"/>
54
		</condition>
55
		<property name="pluginTemp" value="${basedir}"/>
56
<condition property="build.result.folder" value="${pluginTemp}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449"		>
57
			<isset property="buildTempFolder"/>
58
		</condition>
59
		<property name="build.result.folder" value="${basedir}"/>
60
		<property name="temp.folder" value="${basedir}/temp.folder"/>
61
		<property name="plugin.destination" value="${basedir}"/>
62
	</target>
63
64
	<target name="properties" if="eclipse.running">
65
		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
66
67
	</target>
68
69
	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.equinox.p2.artifact.repository for an update site.">
70
		<delete dir="${temp.folder}"/>
71
		<mkdir dir="${temp.folder}"/>
72
		<antcall target="build.jars"/>
73
		<antcall target="gather.bin.parts">
74
			<param name="destination.temp.folder" value="${temp.folder}/"/>
75
		</antcall>
76
		<jar destfile="${plugin.destination}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449.jar" basedir="${temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" filesetmanifest="merge"/>
77
		<delete dir="${temp.folder}"/>
78
	</target>
79
80
	<target name="@dot" depends="init" unless="@dot" description="Create jar: org.eclipse.equinox.p2.artifact.repository @dot.">
81
		<delete dir="${build.result.folder}/@dot"/>
82
		<mkdir dir="${build.result.folder}/@dot"/>
83
		<path id="@dot.classpath">
84
			<pathelement path="../org.eclipse.osgi/bin/"/>
85
			<pathelement path="../org.eclipse.osgi/@dot"/>
86
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime_3.5.0.v20081110.jar"/>
87
			<pathelement path="../org.eclipse.equinox.common/bin/"/>
88
			<pathelement path="../org.eclipse.equinox.common/@dot"/>
89
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.jobs_3.4.100.v20081026.jar"/>
90
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20081026/runtime_registry_compatibility.jar"/>
91
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20081026"/>
92
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.registry_3.4.100.v20081024-1200.jar"/>
93
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.preferences_3.2.300.v20080722-0430.jar"/>
94
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.contenttype_3.4.0.v20081117.jar"/>
95
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar"/>
96
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.app_1.2.0.v20080901.jar"/>
97
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.osgi.services_3.1.200.v20071203.jar"/>
98
			<pathelement path="../../../../Program Files/eclipse/plugins/javax.servlet_2.4.0.v200806031604.jar"/>
99
			<pathelement path="../org.eclipse.equinox.p2.core/bin/"/>
100
			<pathelement path="../org.eclipse.equinox.p2.core/@dot"/>
101
			<pathelement path="../org.eclipse.equinox.p2.jarprocessor/bin/"/>
102
			<pathelement path="../org.eclipse.equinox.p2.jarprocessor/@dot"/>
103
			<pathelement path="../org.eclipse.equinox.p2.metadata/bin/"/>
104
			<pathelement path="../org.eclipse.equinox.p2.metadata/@dot"/>
105
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.security_1.0.100.v20080722-0430.jar"/>
106
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.security.win32.x86_1.0.100.v20080722-0430.jar"/>
107
			<pathelement path="../org.eclipse.ecf.filetransfer/bin/"/>
108
			<pathelement path="../org.eclipse.ecf.filetransfer/@dot"/>
109
			<pathelement path="../org.eclipse.ecf/bin/"/>
110
			<pathelement path="../org.eclipse.ecf/@dot"/>
111
			<pathelement path="../org.eclipse.ecf.ssl/bin/"/>
112
			<pathelement path="../org.eclipse.ecf.ssl/@dot"/>
113
			<pathelement path="../org.eclipse.ecf.core.identity/bin/"/>
114
			<pathelement path="../org.eclipse.ecf.core.identity/@dot"/>
115
			<pathelement path="../../../../Program Files/eclipse/plugins/org.apache.ant_1.7.1/lib/ant.jar"/>
116
		</path>
117
		<!-- compile the source code -->
118
		<javac destdir="${build.result.folder}/@dot" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bundleBootClasspath}" source="${bundleJavacSource}" target="${bundleJavacTarget}"		>
119
			<compilerarg line="${compilerArg}" compiler="${build.compiler}"/>
120
			<classpath refid="@dot.classpath" />
121
			<src path="src/"			/>
122
			<compilerarg value="@${basedir}/javaCompiler...args" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/>
123
			<compilerarg line="-log '${build.result.folder}/@dot${logExtension}'" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/>
124
		</javac>
125
		<!-- Copy necessary resources -->
126
		<copy todir="${build.result.folder}/@dot" failonerror="true" overwrite="false">
127
			<fileset dir="src/">
128
				<exclude name="**/*.java"/>
129
				<exclude name="**/package.htm*"/>
130
			</fileset>
131
		</copy>
132
	</target>
133
134
	<target name="src.zip" depends="init" unless="src.zip">
135
		<mkdir dir="${build.result.folder}"/>
136
		<antcall target="zip.src.zip"/>
137
	</target>
138
	<target name="zip.src.zip">
139
		<zip destfile="${build.result.folder}/src.zip" filesonly="false" whenempty="skip" update="false">
140
			<fileset dir="src/">
141
				<include name="**/*.java"/>
142
			</fileset>
143
		</zip>
144
	</target>
145
	<target name="copy.src.zip">
146
		<copy todir="${source.destination.folder}/" failonerror="true" overwrite="true">
147
			<fileset dir="src/">
148
				<include name="**/*.java"/>
149
			</fileset>
150
		</copy>
151
	</target>
152
153
	<target name="ant_tasks/artifactRepository-ant.jar" depends="init" unless="ant_tasks/artifactRepository-ant.jar" description="Create jar: org.eclipse.equinox.p2.artifact.repository ant_tasks/artifactRepository-ant.jar.">
154
		<delete dir="${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin"/>
155
		<mkdir dir="${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin"/>
156
		<path id="ant_tasks/artifactRepository-ant.jar.classpath">
157
			<pathelement path="../org.eclipse.osgi/bin/"/>
158
			<pathelement path="../org.eclipse.osgi/@dot"/>
159
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime_3.5.0.v20081110.jar"/>
160
			<pathelement path="../org.eclipse.equinox.common/bin/"/>
161
			<pathelement path="../org.eclipse.equinox.common/@dot"/>
162
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.jobs_3.4.100.v20081026.jar"/>
163
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20081026/runtime_registry_compatibility.jar"/>
164
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20081026"/>
165
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.registry_3.4.100.v20081024-1200.jar"/>
166
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.preferences_3.2.300.v20080722-0430.jar"/>
167
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.contenttype_3.4.0.v20081117.jar"/>
168
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar"/>
169
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.app_1.2.0.v20080901.jar"/>
170
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.osgi.services_3.1.200.v20071203.jar"/>
171
			<pathelement path="../../../../Program Files/eclipse/plugins/javax.servlet_2.4.0.v200806031604.jar"/>
172
			<pathelement path="../org.eclipse.equinox.p2.core/bin/"/>
173
			<pathelement path="../org.eclipse.equinox.p2.core/@dot"/>
174
			<pathelement path="../org.eclipse.equinox.p2.jarprocessor/bin/"/>
175
			<pathelement path="../org.eclipse.equinox.p2.jarprocessor/@dot"/>
176
			<pathelement path="../org.eclipse.equinox.p2.metadata/bin/"/>
177
			<pathelement path="../org.eclipse.equinox.p2.metadata/@dot"/>
178
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.security_1.0.100.v20080722-0430.jar"/>
179
			<pathelement path="../../../../Program Files/eclipse/plugins/org.eclipse.equinox.security.win32.x86_1.0.100.v20080722-0430.jar"/>
180
			<pathelement path="../org.eclipse.ecf.filetransfer/bin/"/>
181
			<pathelement path="../org.eclipse.ecf.filetransfer/@dot"/>
182
			<pathelement path="../org.eclipse.ecf/bin/"/>
183
			<pathelement path="../org.eclipse.ecf/@dot"/>
184
			<pathelement path="../org.eclipse.ecf.ssl/bin/"/>
185
			<pathelement path="../org.eclipse.ecf.ssl/@dot"/>
186
			<pathelement path="../org.eclipse.ecf.core.identity/bin/"/>
187
			<pathelement path="../org.eclipse.ecf.core.identity/@dot"/>
188
			<pathelement path="bin/"/>
189
			<pathelement path="${build.result.folder}/../org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449/bin/"/>
190
			<pathelement path="${build.result.folder}/@dot"/>
191
			<pathelement path="${build.result.folder}/../org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449/@dot"/>
192
			<pathelement path="../../../../Program Files/eclipse/plugins/org.apache.ant_1.7.1/lib/ant.jar"/>
193
		</path>
194
		<!-- compile the source code -->
195
		<javac destdir="${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bundleBootClasspath}" source="${bundleJavacSource}" target="${bundleJavacTarget}"		>
196
			<compilerarg line="${compilerArg}" compiler="${build.compiler}"/>
197
			<classpath refid="ant_tasks/artifactRepository-ant.jar.classpath" />
198
			<src path="src_ant/"			/>
199
			<compilerarg value="@${basedir}/javaCompiler.ant_tasks_artifactRepository-ant.jar.args" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/>
200
			<compilerarg line="-log '${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin${logExtension}'" compiler="org.eclipse.jdt.core.JDTCompilerAdapter"/>
201
		</javac>
202
		<!-- Copy necessary resources -->
203
		<copy todir="${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin" failonerror="true" overwrite="false">
204
			<fileset dir="src_ant/">
205
				<exclude name="**/*.java"/>
206
				<exclude name="**/package.htm*"/>
207
			</fileset>
208
		</copy>
209
		<mkdir dir="${build.result.folder}/ant_tasks"/>
210
		<jar destfile="${build.result.folder}/ant_tasks/artifactRepository-ant.jar" basedir="${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin"/>
211
		<delete dir="${temp.folder}/ant_tasks/artifactRepository-ant.jar.bin"/>
212
	</target>
213
214
	<target name="ant_tasks/artifactRepository-antsrc.zip" depends="init" unless="ant_tasks/artifactRepository-antsrc.zip">
215
		<mkdir dir="${build.result.folder}/ant_tasks"/>
216
		<antcall target="zip.ant_tasks/artifactRepository-antsrc.zip"/>
217
	</target>
218
	<target name="zip.ant_tasks/artifactRepository-antsrc.zip">
219
		<zip destfile="${build.result.folder}/ant_tasks/artifactRepository-antsrc.zip" filesonly="false" whenempty="skip" update="false">
220
			<fileset dir="src_ant/">
221
				<include name="**/*.java"/>
222
			</fileset>
223
		</zip>
224
	</target>
225
	<target name="copy.ant_tasks/artifactRepository-antsrc.zip">
226
		<copy todir="${source.destination.folder}/ant_tasks/artifactRepository-antsrc" failonerror="true" overwrite="true">
227
			<fileset dir="src_ant/">
228
				<include name="**/*.java"/>
229
			</fileset>
230
		</copy>
231
	</target>
232
233
	<target name="build.jars" depends="init" description="Compile classes and build nested jars for the plug-in: org.eclipse.equinox.p2.artifact.repository.">
234
		<available property="@dot" file="${build.result.folder}/@dot"/>
235
		<antcall target="@dot"/>
236
		<available property="ant_tasks/artifactRepository-ant.jar" file="${build.result.folder}/ant_tasks/artifactRepository-ant.jar"/>
237
		<antcall target="ant_tasks/artifactRepository-ant.jar"/>
238
	</target>
239
240
	<target name="build.sources" depends="init">
241
		<available property="src.zip" file="${build.result.folder}/src.zip"/>
242
		<antcall target="src.zip"/>
243
		<available property="ant_tasks/artifactRepository-antsrc.zip" file="${build.result.folder}/ant_tasks/artifactRepository-antsrc.zip"/>
244
		<antcall target="ant_tasks/artifactRepository-antsrc.zip"/>
245
	</target>
246
247
	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
248
		<mkdir dir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449"/>
249
		<copy todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" failonerror="true" overwrite="false">
250
			<fileset dir="${build.result.folder}">
251
				<include name="ant_tasks/artifactRepository-ant.jar"/>
252
			</fileset>
253
		</copy>
254
		<copy todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" failonerror="true" overwrite="false">
255
			<fileset dir="${build.result.folder}/@dot">
256
				<include name="**"/>
257
			</fileset>
258
		</copy>
259
		<copy todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" failonerror="true" overwrite="false">
260
			<fileset dir="${basedir}">
261
				<include name="META-INF/"/>
262
				<include name="plugin.xml"/>
263
				<include name="about.html"/>
264
				<include name="plugin.properties"/>
265
				<include name="ant_tasks/artifactRepository-ant.jar"/>
266
			</fileset>
267
		</copy>
268
		<eclipse.versionReplacer path="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" version="1.0.100.z200811211449"/>
269
	</target>
270
271
	<target name="build.zips" depends="init">
272
	</target>
273
274
	<target name="gather.sources" depends="init" if="destination.temp.folder">
275
		<mkdir dir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449/ant_tasks"/>
276
		<copy file="${build.result.folder}/ant_tasks/artifactRepository-antsrc.zip" todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449/ant_tasks" failonerror="false" overwrite="false"/>
277
		<mkdir dir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449"/>
278
		<copy file="${build.result.folder}/src.zip" todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" failonerror="false" overwrite="false"/>
279
		<antcall target="copy.src.includes">
280
			<param name="source.destination.folder" value="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449"/>
281
		</antcall>
282
	</target>
283
284
	<target name="gather.individual.sources" depends="init">
285
		<antcall target="copy.ant_tasks/artifactRepository-antsrc.zip">
286
			<param name="source.destination.folder" value="${destination.temp.folder}"/>
287
		</antcall>
288
		<antcall target="copy.src.zip">
289
			<param name="source.destination.folder" value="${destination.temp.folder}"/>
290
		</antcall>
291
		<antcall target="copy.src.includes">
292
			<param name="source.destination.folder" value="${destination.temp.folder}"/>
293
		</antcall>
294
	</target>
295
296
	<target name="copy.src.includes" depends="init">
297
		<copy todir="${source.destination.folder}" failonerror="false" overwrite="false">
298
			<fileset dir="${basedir}">
299
				<include name="about.html"/>
300
				<include name="schema/"/>
301
			</fileset>
302
		</copy>
303
	</target>
304
305
	<target name="gather.logs" depends="init" if="destination.temp.folder">
306
		<mkdir dir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449/ant_tasks"/>
307
		<copy todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449/ant_tasks" failonerror="false" overwrite="false">
308
			<fileset dir="${temp.folder}/ant_tasks">
309
				<include name="artifactRepository-ant.jar.bin${logExtension}"/>
310
			</fileset>
311
		</copy>
312
		<mkdir dir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449"/>
313
		<copy todir="${destination.temp.folder}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449" failonerror="false" overwrite="false">
314
			<fileset dir="${build.result.folder}">
315
				<include name="@dot${logExtension}"/>
316
			</fileset>
317
		</copy>
318
	</target>
319
320
	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.equinox.p2.artifact.repository of all the zips, jars and logs created.">
321
		<delete file="${build.result.folder}/ant_tasks/artifactRepository-ant.jar"/>
322
		<delete file="${build.result.folder}/ant_tasks/artifactRepository-antsrc.zip"/>
323
		<delete dir="${build.result.folder}/@dot"/>
324
		<delete file="${build.result.folder}/src.zip"/>
325
		<delete file="${plugin.destination}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449.jar"/>
326
		<delete file="${plugin.destination}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449.zip"/>
327
		<delete dir="${temp.folder}"/>
328
	</target>
329
330
	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
331
		<eclipse.convertPath fileSystemPath="C:/Documents and Settings/agcattle/workspace/org.eclipse.equinox.p2.artifact.repository" property="resourcePath"/>
332
		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
333
	</target>
334
335
	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.equinox.p2.artifact.repository.">
336
		<delete dir="${temp.folder}"/>
337
		<mkdir dir="${temp.folder}"/>
338
		<antcall target="build.jars"/>
339
		<antcall target="build.sources"/>
340
		<antcall target="gather.bin.parts">
341
			<param name="destination.temp.folder" value="${temp.folder}/"/>
342
		</antcall>
343
		<antcall target="gather.sources">
344
			<param name="destination.temp.folder" value="${temp.folder}/"/>
345
		</antcall>
346
		<delete>
347
			<fileset dir="${temp.folder}">
348
				<include name="**/*.bin${logExtension}"/>
349
			</fileset>
350
		</delete>
351
		<zip destfile="${plugin.destination}/org.eclipse.equinox.p2.artifact.repository_1.0.100.z200811211449.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
352
		<delete dir="${temp.folder}"/>
353
	</target>
354
355
</project>
(-)src_ant/org/eclipse/equinox/internal/p2/artifact/repository/ant/MirrorApplicationTask.java (+122 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.artifact.repository.ant;
2
3
import java.net.MalformedURLException;
4
import java.net.URL;
5
import java.util.HashMap;
6
import java.util.Map;
7
import org.apache.tools.ant.BuildException;
8
import org.apache.tools.ant.Task;
9
import org.eclipse.equinox.app.IApplicationContext;
10
import org.eclipse.equinox.internal.p2.artifact.mirror.MirrorApplication;
11
import org.osgi.framework.Bundle;
12
13
public class MirrorApplicationTask extends Task {
14
	URL source;
15
	URL destination;
16
	URL baseline;
17
	String comparatorID;
18
	String message = "";
19
	boolean emptyRepository = false;
20
	boolean compare = false;
21
	boolean ignoreErrors = false;
22
	boolean raw = false;
23
	boolean verbose = false;
24
25
	/**
26
	 * runs the mirror application with arguments args
27
	 */
28
	private void runMirrorApplication(String msg, final String[] args) throws Exception {
29
		MirrorApplication application = new MirrorApplication();
30
		application.start(new IApplicationContext() {
31
32
			public void applicationRunning() {
33
			}
34
35
			public Map getArguments() {
36
				Map arguments = new HashMap();
37
38
				arguments.put(IApplicationContext.APPLICATION_ARGS, args);
39
40
				return arguments;
41
			}
42
43
			public String getBrandingApplication() {
44
				return null;
45
			}
46
47
			public Bundle getBrandingBundle() {
48
				return null;
49
			}
50
51
			public String getBrandingDescription() {
52
				return null;
53
			}
54
55
			public String getBrandingId() {
56
				return null;
57
			}
58
59
			public String getBrandingName() {
60
				return null;
61
			}
62
63
			public String getBrandingProperty(String key) {
64
				return null;
65
			}
66
		});
67
	}
68
69
	public void execute() {
70
		//Compare against if baseline specified
71
		boolean compareAgainst = baseline != null;
72
		boolean comparator = comparatorID != null;
73
		//create arguments
74
		String[] args = new String[] {"-source", source.toExternalForm(), "-destination", destination.toExternalForm(), emptyRepository ? "-emptyRepository" : "", compare ? "-compare" : "", ignoreErrors ? "-ignoreErrors" : "", raw ? "-raw" : "", verbose ? "-verbose" : "", compareAgainst ? "-compareAgainst" : "", compareAgainst ? baseline.toExternalForm() : "", comparator ? "-comparator" : "", comparator ? comparatorID : ""};
75
76
		try {
77
			runMirrorApplication(message, args);
78
		} catch (Exception e) {
79
			throw new BuildException("Exception while running mirror application.", e);
80
		}
81
	}
82
83
	public void setSource(String value) throws MalformedURLException {
84
		source = new URL(value);
85
	}
86
87
	public void setDestination(String value) throws MalformedURLException {
88
		destination = new URL(value);
89
	}
90
91
	public void setBaseline(String value) throws MalformedURLException {
92
		baseline = new URL(value);
93
	}
94
95
	public void setComparatorID(String value) {
96
		comparatorID = value;
97
	}
98
99
	public void setMessage(String value) {
100
		message = value;
101
	}
102
103
	public void setEmptyRepository(boolean value) {
104
		emptyRepository = value;
105
	}
106
107
	public void setCompare(boolean value) {
108
		compare = value;
109
	}
110
111
	public void setIgnoreErrors(boolean value) {
112
		ignoreErrors = value;
113
	}
114
115
	public void setRaw(boolean value) {
116
		raw = value;
117
	}
118
119
	public void setVerbose(boolean value) {
120
		verbose = value;
121
	}
122
}
(-)buildAntTasks.xml (+9 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<project name="org.eclipse.equinox.p2.metadata.generator" default="default" basedir=".">
3
4
	<target name="default" description="Jar up the binaries that were compiled by the jdt builder" >
5
		<mkdir dir="${basedir}/ant_tasks" />
6
		<delete file="${basedir}/ant_tasks/artifactRepository-ant.jar" failonerror="false"/>
7
		<jar destfile="${basedir}/ant_tasks/artifactRepository-ant.jar" basedir="${basedir}/bin_ant"/>
8
	</target>
9
</project>
(-)src_ant/org/eclipse/equinox/internal/p2/artifact/repository/ant/RemoveAllChildrenTask.java (+32 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.artifact.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.apache.tools.ant.Task;
7
import org.eclipse.core.runtime.URIUtil;
8
import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
9
import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository;
10
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
11
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
12
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
13
14
public class RemoveAllChildrenTask extends Task {
15
	URI location;
16
17
	public void execute() {
18
		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
19
20
		CompositeArtifactRepository repo = null;
21
		try {
22
			repo = (CompositeArtifactRepository) manager.loadRepository(location, null);
23
		} catch (ProvisionException e) {
24
			throw new BuildException("Exception while loading repository.", e);
25
		}
26
		repo.removeAllChildren();
27
	}
28
29
	public void setLocation(String value) throws URISyntaxException {
30
		location = URIUtil.fromString(value);
31
	}
32
}
(-)src_ant/org/eclipse/equinox/internal/p2/artifact/repository/ant/ValidateTask.java (+40 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.artifact.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.eclipse.core.runtime.URIUtil;
7
import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
8
import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository;
9
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
10
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
11
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
12
13
public class ValidateTask {
14
	URI location;
15
	String comparatorID;
16
17
	public void execute() {
18
		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
19
20
		CompositeArtifactRepository repo = null;
21
		try {
22
			repo = (CompositeArtifactRepository) manager.loadRepository(location, null);
23
		} catch (ProvisionException e) {
24
			throw new BuildException("Exception while loading repository.", e);
25
		}
26
27
		if (repo.validate(comparatorID))
28
			System.err.println("Sanity Check is OK");
29
		else
30
			System.err.println("Sanity Check failed");
31
	}
32
33
	public void setLocation(String value) throws URISyntaxException {
34
		location = URIUtil.fromString(value);
35
	}
36
37
	public void setComparatorID(String value) {
38
		comparatorID = value;
39
	}
40
}
(-)src_ant/org/eclipse/equinox/internal/p2/artifact/repository/ant/AddChildTask.java (+50 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.artifact.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.apache.tools.ant.Task;
7
import org.eclipse.core.runtime.URIUtil;
8
import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
9
import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository;
10
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
11
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
12
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
13
14
public class AddChildTask extends Task {
15
	URI location;
16
	URI child;
17
	String comparatorID;
18
19
	public void execute() {
20
		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
21
22
		CompositeArtifactRepository repo = null;
23
		try {
24
			repo = (CompositeArtifactRepository) manager.loadRepository(location, null);
25
		} catch (ProvisionException e) {
26
			throw new BuildException("Exception while loading repository.", e);
27
		}
28
29
		if (comparatorID != null) {
30
			if (repo.addChild(child, comparatorID))
31
				System.out.println(child + " was added successfully");
32
			else
33
				System.out.println(child + " was not added");
34
		} else {
35
			repo.addChild(child);
36
		}
37
	}
38
39
	public void setLocation(String value) throws URISyntaxException {
40
		location = URIUtil.fromString(value);
41
	}
42
43
	public void setChild(String value) throws URISyntaxException {
44
		child = URIUtil.fromString(value);
45
	}
46
47
	public void setComparatorID(String value) {
48
		comparatorID = value;
49
	}
50
}
(-)src_ant/org/eclipse/equinox/internal/p2/artifact/repository/ant/RemoveChildTask.java (+37 lines)
Added Link Here
1
package org.eclipse.equinox.internal.p2.artifact.repository.ant;
2
3
import java.net.URI;
4
import java.net.URISyntaxException;
5
import org.apache.tools.ant.BuildException;
6
import org.apache.tools.ant.Task;
7
import org.eclipse.core.runtime.URIUtil;
8
import org.eclipse.equinox.internal.p2.artifact.repository.Activator;
9
import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository;
10
import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
11
import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
12
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
13
14
public class RemoveChildTask extends Task {
15
	URI location;
16
	URI child;
17
18
	public void execute() {
19
		IArtifactRepositoryManager manager = (IArtifactRepositoryManager) ServiceHelper.getService(Activator.getContext(), IArtifactRepositoryManager.class.getName());
20
21
		CompositeArtifactRepository repo;
22
		try {
23
			repo = (CompositeArtifactRepository) manager.loadRepository(location, null);
24
		} catch (ProvisionException e) {
25
			throw new BuildException("Exception while loading repository.", e);
26
		}
27
		repo.removeChild(child);
28
	}
29
30
	public void setLocation(String value) throws URISyntaxException {
31
		location = URIUtil.fromString(value);
32
	}
33
34
	public void setChild(String value) throws URISyntaxException {
35
		child = URIUtil.fromString(value);
36
	}
37
}
(-).externalToolBuilders/org.eclipse.equinox.p2.artifact.repository (+18 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
3
<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
4
<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
5
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
6
<listEntry value="/org.eclipse.equinox.p2.artifact.repository/buildAntTasks.xml"/>
7
</listAttribute>
8
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
9
<listEntry value="1"/>
10
</listAttribute>
11
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
12
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
13
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
14
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.equinox.p2.artifact.repository"/>
15
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.equinox.p2.artifact.repository/buildAntTasks.xml}"/>
16
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
17
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
18
</launchConfiguration>

Return to bug 255913