Author: jawi
Date: Wed Jul 12 12:56:41 2017
New Revision: 1801735
URL: http://svn.apache.org/viewvc?rev=1801735&view=rev
Log:
ACE-624 support OBRs with basic authentication
* Pass in the connection factory from ACE to the OBR repository, allowing it to
annotate URL connections with the right credentials;
* Fix was created by bramp in a private repository; ported it to the upstream
SVN repository.
Modified:
ace/trunk/org.apache.ace.gogo/bnd.bnd
ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/Activator.java
ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/repo/RepoCommands.java
Modified: ace/trunk/org.apache.ace.gogo/bnd.bnd
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.gogo/bnd.bnd?rev=1801735&r1=1801734&r2=1801735&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.gogo/bnd.bnd (original)
+++ ace/trunk/org.apache.ace.gogo/bnd.bnd Wed Jul 12 12:56:41 2017
@@ -8,15 +8,17 @@
org.osgi.impl.bundle.repoindex.lib;packages="org.osgi.service.indexer,org.osgi.service.indexer.impl",\
org.apache.felix.dependencymanager,\
org.apache.felix.gogo.runtime,\
+ org.apache.ace.bnd.registry;version=latest,\
org.apache.ace.bnd.repository;version=latest,\
org.apache.ace.log.server.store.api;version=latest,\
org.apache.ace.feedback.common;version=latest
Bundle-Name: Apache ACE Gogo commands
-Bundle-Description: Provides Gogo commands for working with ACE
+Bundle-Description: Provides Gogo commands for working with ACE
Bundle-Version: 1.0.2
Bundle-Activator: org.apache.ace.gogo.Activator
Private-Package: \
+ org.apache.ace.bnd.registry,\
org.apache.ace.bnd.repository,\
org.apache.ace.gogo,\
org.apache.ace.gogo.execute,\
@@ -85,4 +87,4 @@ Private-Package: \
org.osgi.impl.bundle.obr.*;-split-package:=merge-last,\
org.xmlpull.v1;-split-package:=first,\
org.kxml2.io;-split-package:=first
-
+
Modified: ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/Activator.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/Activator.java?rev=1801735&r1=1801734&r2=1801735&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/Activator.java
(original)
+++ ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/Activator.java Wed
Jul 12 12:56:41 2017
@@ -20,6 +20,7 @@ package org.apache.ace.gogo;
import java.util.Properties;
+import org.apache.ace.connectionfactory.ConnectionFactory;
import org.apache.ace.gogo.collection.CollectionCommands;
import org.apache.ace.gogo.execute.ExecuteCommands;
import org.apache.ace.gogo.execute.ScriptExecutor;
@@ -45,7 +46,8 @@ public class Activator extends Dependenc
public void init(BundleContext context, DependencyManager manager) throws
Exception {
manager.add(createComponent()
.setInterface(Object.class.getName(),
createProps(RepoCommands.SCOPE, RepoCommands.FUNCTIONS))
- .setImplementation(RepoCommands.class));
+ .setImplementation(RepoCommands.class)
+
.add(createServiceDependency().setService(ConnectionFactory.class).setRequired(true)));
manager.add(createComponent()
.setInterface(Object.class.getName(),
createProps(MathCommands.SCOPE, MathCommands.FUNCTIONS))
@@ -75,9 +77,8 @@ public class Activator extends Dependenc
manager.add(createComponent()
.setInterface(Object.class.getName(),
createProps(CollectionCommands.SCOPE, CollectionCommands.FUNCTIONS))
- .setImplementation(CollectionCommands.class)
- );
-
+ .setImplementation(CollectionCommands.class));
+
String script = System.getProperty("ace.gogo.script");
if (script != null) {
long delay = Long.getLong("ace.gogo.script.delay", 300L);
Modified:
ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/repo/RepoCommands.java
URL:
http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/repo/RepoCommands.java?rev=1801735&r1=1801734&r2=1801735&view=diff
==============================================================================
---
ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/repo/RepoCommands.java
(original)
+++
ace/trunk/org.apache.ace.gogo/src/org/apache/ace/gogo/repo/RepoCommands.java
Wed Jul 12 12:56:41 2017
@@ -31,6 +31,10 @@ import static org.apache.ace.gogo.repo.R
import java.net.URL;
import java.util.List;
+import org.apache.ace.bnd.registry.RegistryImpl;
+import org.apache.ace.bnd.repository.AceObrRepository;
+import org.apache.ace.bnd.repository.AceUrlConnector;
+import org.apache.ace.connectionfactory.ConnectionFactory;
import org.apache.felix.service.command.Descriptor;
import org.osgi.resource.Requirement;
import org.osgi.resource.Resource;
@@ -42,9 +46,17 @@ public class RepoCommands {
public final static String SCOPE = "repo";
public final static String[] FUNCTIONS = new String[] { "repo", "index",
"ls", "cp", "rm", "cd", "d" };
+ private volatile ConnectionFactory m_connectionFactory;
+
@Descriptor("Defines a repository")
- public static CommandRepo repo(@Descriptor("the type e { R5, OBR }")
String type, @Descriptor("url of the repository index") String location) throws
Exception {
- return new CommandRepo(createRepository(type, location));
+ public CommandRepo repo(@Descriptor("the type e { R5, OBR }") String type,
@Descriptor("url of the repository index") String location) throws Exception {
+ AceObrRepository repo = createRepository(type, location);
+
+ // ACE-624 allow support for different auth mechanisms...
+ RegistryImpl registry = new RegistryImpl(m_connectionFactory, new
AceUrlConnector(m_connectionFactory));
+ repo.setRegistry(registry);
+
+ return new CommandRepo(repo);
}
@Descriptor("Indexes a directory")