Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rapicault2011-05-06 03:17:15 +0000
committerPascal Rapicault2011-05-06 03:17:15 +0000
commit5c45886212a6e9d856100864d5acb4ee07e28e80 (patch)
tree88db7c13e2c060d86ceac28d2e6b67193d22dd9d /bundles/org.eclipse.equinox.p2.repository.tools
parent388a6d0b41f52f400d95883462d6b13bb6168b89 (diff)
downloadrt.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')
-rw-r--r--bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/CompositeRepositoryApplication.java5
-rw-r--r--bundles/org.eclipse.equinox.p2.repository.tools/src/org/eclipse/equinox/p2/internal/repository/tools/RepositoryDescriptor.java9
-rw-r--r--bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/CreateCompositeArtifactRepositoryTask.java13
-rw-r--r--bundles/org.eclipse.equinox.p2.repository.tools/src_ant/org/eclipse/equinox/p2/internal/repository/tools/tasks/DestinationRepository.java4
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;
}

Back to the top