diff options
author | Pascal Rapicault | 2011-05-06 03:17:15 +0000 |
---|---|---|
committer | Pascal Rapicault | 2011-05-06 03:17:15 +0000 |
commit | 5c45886212a6e9d856100864d5acb4ee07e28e80 (patch) | |
tree | 88db7c13e2c060d86ceac28d2e6b67193d22dd9d /bundles/org.eclipse.equinox.p2.repository.tools | |
parent | 388a6d0b41f52f400d95883462d6b13bb6168b89 (diff) | |
download | rt.equinox.p2-5c45886212a6e9d856100864d5acb4ee07e28e80.tar.gz rt.equinox.p2-5c45886212a6e9d856100864d5acb4ee07e28e80.tar.xz rt.equinox.p2-5c45886212a6e9d856100864d5acb4ee07e28e80.zip |
Bug 344851 - [repository] Composite repo "create" ant tasks should have the ability to set atomic flag
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.repository.tools')
4 files changed, 30 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/CompositeRepositoryApplication.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/CompositeRepositoryApplication.java index 71778e857..03d3a1fda 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/CompositeRepositoryApplication.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/CompositeRepositoryApplication.java @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository; +import org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository; import org.eclipse.equinox.internal.p2.repository.helpers.RepositoryHelper; import org.eclipse.equinox.p2.core.ProvisionException; import org.eclipse.equinox.p2.metadata.IInstallableUnit; @@ -121,6 +122,8 @@ public class CompositeRepositoryApplication extends AbstractApplication { //No existing repository; create a new repository at destinationLocation but with source's attributes. IArtifactRepository repo = mgr.createRepository(toInit.getRepoLocation(), toInit.getName() != null ? toInit.getName() : (source != null ? source.getName() : Messages.CompositeRepository_default_artifactRepo_name), IArtifactRepositoryManager.TYPE_COMPOSITE_REPOSITORY, source != null ? source.getProperties() : null); initRepository(repo, toInit); + if (toInit.getAtomic() != null) + repo.setProperty(CompositeMetadataRepository.PROP_ATOMIC_LOADING, Boolean.toString(Boolean.valueOf(toInit.getAtomic()))); return repo; } catch (IllegalStateException e) { mgr.removeRepository(toInit.getRepoLocation()); @@ -159,6 +162,8 @@ public class CompositeRepositoryApplication extends AbstractApplication { //No existing repository; create a new repository at destinationLocation but with source's attributes. IMetadataRepository repo = mgr.createRepository(toInit.getRepoLocation(), toInit.getName() != null ? toInit.getName() : (source != null ? source.getName() : Messages.CompositeRepository_default_metadataRepo_name), IMetadataRepositoryManager.TYPE_COMPOSITE_REPOSITORY, source != null ? source.getProperties() : null); initRepository(repo, toInit); + if (toInit.getAtomic() != null) + repo.setProperty(CompositeMetadataRepository.PROP_ATOMIC_LOADING, Boolean.toString(Boolean.valueOf(toInit.getAtomic()))); return repo; } catch (IllegalStateException e) { mgr.removeRepository(toInit.getRepoLocation()); diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RepositoryDescriptor.java b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RepositoryDescriptor.java index 2482a61e0..6b1d9c04f 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RepositoryDescriptor.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RepositoryDescriptor.java @@ -29,6 +29,7 @@ public class RepositoryDescriptor { private int kind = TYPE_BOTH; private URI originalLocation = null; private boolean optional = false; + private String atomic = null; public void setCompressed(boolean compress) { compressed = compress; @@ -103,6 +104,14 @@ public class RepositoryDescriptor { kind = determineKind(repoKind); } + public void setAtomic(String booleanForAtomic) { + atomic = booleanForAtomic; + } + + public String getAtomic() { + return atomic; + } + /* * Determine the repository type */ diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/CreateCompositeArtifactRepositoryTask.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/CreateCompositeArtifactRepositoryTask.java index cac2fd13f..5cfac9125 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/CreateCompositeArtifactRepositoryTask.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/CreateCompositeArtifactRepositoryTask.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 IBM Corporation and others. + * Copyright (c) 2008, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -7,6 +7,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * SAP AG - repository atomic loading *******************************************************************************/ package org.eclipse.equinox.p2.internal.repository.tools.tasks; @@ -30,6 +31,7 @@ public class CreateCompositeArtifactRepositoryTask extends Task { URI location; // desired location of the composite repository String name = "Composite Artifact Repository"; + boolean atomic = false; boolean compressed = true; boolean failOnExists = false; // should we fail if a repo already exists? Map<String, String> properties = new HashMap<String, String>(); @@ -67,6 +69,8 @@ public class CreateCompositeArtifactRepositoryTask extends Task { // set the properties if (compressed) properties.put(IRepository.PROP_COMPRESSED, Boolean.toString(true)); + if (atomic) + properties.put(CompositeArtifactRepository.PROP_ATOMIC_LOADING, Boolean.toString(true)); // create the repository try { @@ -108,6 +112,13 @@ public class CreateCompositeArtifactRepositoryTask extends Task { } /* + * Set a value indicating whether or not the repository should be atomic. + */ + public void setAtomic(boolean value) { + atomic = value; + } + + /* * Set whether or not we should fail the operation if a repository * already exists at the location. */ diff --git a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/DestinationRepository.java b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/DestinationRepository.java index 71602d595..6c520f180 100644 --- a/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/DestinationRepository.java +++ b/bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/DestinationRepository.java @@ -52,6 +52,10 @@ public class DestinationRepository extends DataType { descriptor.setKind(repoKind); } + public void setAtomic(String atomicAsBoolean) { + descriptor.setAtomic(atomicAsBoolean); + } + RepositoryDescriptor getDescriptor() { return descriptor; } |