Index: features/command/src/main/java/org/apache/karaf/features/command/RemoveRepositoryCommand.java
===================================================================
--- features/command/src/main/java/org/apache/karaf/features/command/RemoveRepositoryCommand.java (revision 0)
+++ features/command/src/main/java/org/apache/karaf/features/command/RemoveRepositoryCommand.java (revision 0)
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.features.command;
+
+import java.net.URI;
+
+import org.apache.felix.gogo.commands.Argument;
+import org.apache.felix.gogo.commands.Command;
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.Repository;
+
+@Command(scope = "features", name = "removeRepository", description = "Removes the specified repository features service.")
+public class RemoveRepositoryCommand extends FeaturesCommandSupport {
+
+ @Argument(index = 0, name = "repository", description = "Name of the repository to remove.", required = true, multiValued = false)
+ private String repository;
+
+ protected void doExecute(FeaturesService admin) throws Exception {
+ URI uri = null;
+ for (Repository r :admin.listRepositories()) {
+ if (r.getName().equals(repository)) {
+ uri = r.getURI();
+ break;
+ }
+ }
+
+ if (uri == null) {
+ System.out.println("Repository '" + repository + "' not found.") ;
+ } else {
+ admin.removeRepository(uri);
+ }
+ }
+}
Index: features/command/src/main/java/org/apache/karaf/features/command/completers/FeatureRepositoryNameCompleter.java
===================================================================
--- features/command/src/main/java/org/apache/karaf/features/command/completers/FeatureRepositoryNameCompleter.java (revision 0)
+++ features/command/src/main/java/org/apache/karaf/features/command/completers/FeatureRepositoryNameCompleter.java (revision 0)
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.features.command.completers;
+
+import java.util.List;
+
+import org.apache.karaf.shell.console.completer.StringsCompleter;
+import org.apache.karaf.shell.console.Completer;
+import org.apache.karaf.features.FeaturesService;
+import org.apache.karaf.features.Repository;
+
+/**
+ * {@link jline.Completor} for Feature Repository URLs.
+ *
+ * Displays a list of currently installed Feature repositories.
+ *
+ */
+
+public class FeatureRepositoryNameCompleter implements Completer {
+
+ private FeaturesService featuresService;
+
+ public void setFeaturesService(FeaturesService featuresService) {
+ this.featuresService = featuresService;
+ }
+
+ public int complete(final String buffer, final int cursor, final List candidates) {
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ for (Repository repository : featuresService.listRepositories()) {
+ delegate.getStrings().add(repository.getName());
+ }
+ } catch (Exception e) {
+ // Ignore
+ }
+ return delegate.complete(buffer, cursor, candidates);
+ }
+
+}
Index: features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
===================================================================
--- features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml (revision 988429)
+++ features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml (working copy)
@@ -33,12 +33,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -93,7 +93,7 @@
-
+