You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by br...@apache.org on 2013/07/16 16:20:38 UTC
svn commit: r1503728 - in /ace/sandbox/bramk/org.apache.ace.cli: deploy.gosh
src/org/apache/ace/cli/gogo/RepoCommands.java
src/org/apache/ace/cli/repository/RepositoryUtil.java
Author: bramk
Date: Tue Jul 16 14:20:38 2013
New Revision: 1503728
URL: http://svn.apache.org/r1503728
Log:
[sandbox] Extended with target create/register/approve and autoconf deploy/create
Modified:
ace/sandbox/bramk/org.apache.ace.cli/deploy.gosh
ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/gogo/RepoCommands.java
ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/repository/RepositoryUtil.java
Modified: ace/sandbox/bramk/org.apache.ace.cli/deploy.gosh
URL: http://svn.apache.org/viewvc/ace/sandbox/bramk/org.apache.ace.cli/deploy.gosh?rev=1503728&r1=1503727&r2=1503728&view=diff
==============================================================================
--- ace/sandbox/bramk/org.apache.ace.cli/deploy.gosh (original)
+++ ace/sandbox/bramk/org.apache.ace.cli/deploy.gosh Tue Jul 16 14:20:38 2013
@@ -1,53 +1,68 @@
+autoconfurl = "file:/tmp/org.apache.ace.deployment.rp.autoconf.jar"
sourceindex = (repo:index /tmp/testrepo)
sourcerepo = (repo:repo R5 $sourceindex)
targetrepo = (repo:repo OBR http://localhost:8080/obr/repository.xml)
releaserepo = (repo:repo OBR http://localhost:9091/obr/repository.xml)
-#repo:ls $sourcerepo "(osgi.identity=org.amdatu.opensocial)"
-#repo:ls $targetrepo "(osgi.identity=org.amdatu.opensocial)"
-#echo "delete"
-#repo:rm $targetrepo "(osgi.identity=org.amdatu.opensocial)"
-#echo "copy"
-#repo:cp $sourcerepo $targetrepo "(osgi.identity=org.amdatu.opensocial)"
-
echo "Deploying release"
deployed = repo:cd $releaserepo $sourcerepo $targetrepo
+echo "Ensuring autoconf resource"
+autoconf = (coll:first ($targetrepo find "(osgi.identity=org.apache.ace.deployment.rp.autoconf)"))
+if { $autoconf } { echo " -> exists" } \
+{
+ repo:d $targetrepo $autoconfurl
+ autoconf = (coll:first ($targetrepo find "(osgi.identity=org.apache.ace.deployment.rp.autoconf)"))
+ echo " -> deployed"
+}
+
echo "Opening workspace"
workspace = (ace:cw)
+echo "Ensuring autoconf artifact"
+if { (coll:first ($workspace lrp)) } { echo " -> exists" } \
+{
+ identity = $autoconf getIdentity
+ version = $autoconf getVersion
+ name = "$identity - $version"
+ url = $autoconf getUrl
+ mimetype = $autoconf getMimetype
+ mimetype = "application/vnd.osgi.bundle"
+ $workspace ca [ artifactName="$name" url="$url" mimetype="$mimetype" Bundle-SymbolicName="$identity" Bundle-Version="$version" Deployment-ProvidesResourceProcessor="org.osgi.deployment.rp.autoconf" ]
+ echo " -> created"
+}
+
echo "Purging artifacts"
artifacts = ($workspace la)
each $artifacts {
$workspace da $it
}
-echo "Checking cdfeature"
-feature = $workspace lf "(name=cdfeature)"
-if { math:eq ($feature size) 0 } { $workspace cf "cdfeature" }
-
-echo "Checking cddistribution"
-distribution = $workspace ld "(name=cddistribution)"
-if { math:eq ($distribution size) 0 } { $workspace cd "cddistribution" }
-
-echo "Checking f2d association"
-associations = $workspace lf2d
-found = 0
-each $associations {
- if { ($it getAttribute "leftEndpoint") equals "(name=cdfeature)" } { echo "FOUND"; found = 1 }
-}
-if { math:eq $found 0 } { $workspace cf2d "(name=cdfeature)" "(name=cddistribution)" "1" "1" }
+echo "Ensuring cdfeature exists"
+if { (coll:first ($workspace lf "(name=cdfeature)")) } { echo " -> exists" } { $workspace cf "cdfeature"; echo " -> created" }
-echo "Checking a2f association"
-associations = $workspace la2f
-found = 0
-each $associations {
- if { ($it getAttribute "rightEndpoint") equals "(name=cdfeature)" } { echo "FOUND"; found = 1 }
-}
-if { math:eq $found 0 } { $workspace ca2f "(cdartifact=true)" "(name=cdfeature)" "10000" "1" }
+echo "Ensuring cddistribution exists"
+if { (coll:first ($workspace ld "(name=cddistribution)")) } { echo " -> exists" } { $workspace cd "cddistribution"; echo " -> created" }
+
+echo "Ensuring cdtarget exists"
+if { (coll:first ($workspace lt "(id=cdtarget)")) } { echo " -> exists" } { $workspace ct "cdtarget"; echo " -> created" }
+
+echo "Ensuring cdtarget"
+target = (coll:first ($workspace lt "(id=cdtarget)"))
+if { $target isRegistered } { } { $target register }
+$target setAutoApprove false
+echo "Ensuring f2d association"
+if { (coll:first ($workspace lf2d "(leftEndpoint=*name=cdfeature*)")) } { echo " -> exists" } { $workspace cf2d "(name=cdfeature)" "(name=cddistribution)" "1" "1"; echo " -> created" }
+
+echo "Ensuring a2f association"
+if { (coll:first ($workspace la2f "(rightEndpoint=*name=cdfeature*)")) } { echo " -> exists" } { $workspace ca2f "(cdartifact=true)" "(name=cdfeature)" "10000" "1"; echo " -> created" }
+
+echo "Ensuring d2t association"
+if { (coll:first ($workspace ld2t "(leftEndpoint=*name=cddistribution*)")) } { echo " -> exists" } \
+ { $workspace cd2t "(name=cddistribution)" "(id=cdtarget)" "1" "1"; echo " -> created" }
echo "Creating artifacts"
each $deployed {
@@ -63,6 +78,9 @@ each $deployed {
{ $workspace ca [ artifactName="$name" url="$url" mimetype="$mimetype" Bundle-SymbolicName="$identity" Bundle-Version="$version" cdartifact="true" ] }
}
+echo "Ensuring approval on target"
+if { $target needsApprove } { echo " approving"; $target approve } { echo " no changes" }
+
echo "Comitting workspace"
$workspace commit
ace:rw $workspace
Modified: ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/gogo/RepoCommands.java
URL: http://svn.apache.org/viewvc/ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/gogo/RepoCommands.java?rev=1503728&r1=1503727&r2=1503728&view=diff
==============================================================================
--- ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/gogo/RepoCommands.java (original)
+++ ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/gogo/RepoCommands.java Tue Jul 16 14:20:38 2013
@@ -25,6 +25,7 @@ import static org.apache.ace.cli.reposit
import static org.apache.ace.cli.repository.RepositoryUtil.getRequirement;
import static org.apache.ace.cli.repository.RepositoryUtil.getUrl;
import static org.apache.ace.cli.repository.RepositoryUtil.indexDirectory;
+import static org.apache.ace.cli.repository.RepositoryUtil.uploadResource;
import java.net.URL;
import java.util.List;
@@ -38,7 +39,7 @@ import aQute.bnd.deployer.repository.Fix
public class RepoCommands {
public final static String SCOPE = "repo";
- public final static String[] FUNCTIONS = new String[] { "repo", "index", "ls", "cp", "rm", "cd" };
+ public final static String[] FUNCTIONS = new String[] { "repo", "index", "ls", "cp", "rm", "cd", "d" };
public CommandRepo repo(String type, String location) throws Exception {
return new CommandRepo(createRepository(type, location));
@@ -120,4 +121,15 @@ public class RepoCommands {
}
return null;
}
+
+ public void d(CommandRepo repo, String url) throws Exception {
+ d(repo, url, null);
+ }
+
+ public void d(CommandRepo repo, String url, String filename) throws Exception {
+ FixedIndexedRepo toRepo = repo.repo();
+ URL location = new URL(url);
+ uploadResource(toRepo, location, filename);
+ toRepo.reset();
+ }
}
Modified: ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/repository/RepositoryUtil.java
URL: http://svn.apache.org/viewvc/ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/repository/RepositoryUtil.java?rev=1503728&r1=1503727&r2=1503728&view=diff
==============================================================================
--- ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/repository/RepositoryUtil.java (original)
+++ ace/sandbox/bramk/org.apache.ace.cli/src/org/apache/ace/cli/repository/RepositoryUtil.java Tue Jul 16 14:20:38 2013
@@ -225,6 +225,25 @@ public class RepositoryUtil {
return resources;
}
+ public static void uploadResource(AbstractIndexedRepo toRepo, URL location, String filename) throws Exception {
+ InputStream input = null;
+ try {
+ input = location.openStream();
+ if (toRepo instanceof AceObrRepository) {
+ // ACE OBR can handle non bundle resource if we pass a filename
+ AceObrRepository aceToRepo = (AceObrRepository) toRepo;
+ aceToRepo.upload(input, filename, null);
+ }
+ else {
+ toRepo.put(input, null);
+ }
+ }
+ finally {
+ if (input != null)
+ input.close();
+ }
+ }
+
public static List<Resource> copyResources(AbstractIndexedRepo fromRepo, AbstractIndexedRepo toRepo, List<Resource> resources) throws Exception {
List<Resource> targetResources = new LinkedList<Resource>();
for (Resource resource : resources) {