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/java/org/apache/karaf/features/command/ListUrlCommand.java
===================================================================
--- features/command/src/main/java/org/apache/karaf/features/command/ListUrlCommand.java (revision 988429)
+++ features/command/src/main/java/org/apache/karaf/features/command/ListUrlCommand.java (working copy)
@@ -23,46 +23,15 @@
@Command(scope = "features", name = "listUrl", description = "Displays a list of all defined repository URLs.")
public class ListUrlCommand extends FeaturesCommandSupport {
- private static final String REPOSITORY = "Repository";
- private static final String REPOSITORY_URL = "Repository URL";
-
protected void doExecute(FeaturesService admin) throws Exception {
-
- StringBuffer sb = null;
-
Repository[] repos = admin.listRepositories();
-
- int maxRepositorySize = REPOSITORY.length();
- int maxRepositoryUrlSize = REPOSITORY_URL.length();
- for (Repository r : repos) {
- maxRepositorySize = Math.max(maxRepositorySize, r.getName().length());
- maxRepositoryUrlSize = Math.max(maxRepositoryUrlSize, r.getURI().toString().length());
- }
-
if ((repos != null) && (repos.length > 0)) {
- // Prepare the header
- sb = new StringBuffer();
- append(sb, REPOSITORY, maxRepositorySize + 2);
- append(sb, REPOSITORY_URL, maxRepositoryUrlSize + 2);
- System.out.println(sb.toString());
-
-
- for (int i = 0; i < repos.length; i++) {
- sb = new StringBuffer();
- append(sb, repos[i].getName(), maxRepositorySize + 2);
- append(sb, repos[i].getURI().toString(), maxRepositoryUrlSize + 2);
- sb.append(repos[i].isValid() ? " valid" : " invalid");
- System.out.println(sb.toString());
+ for (int i = 0; i < repos.length; i++) {
+ String status = repos[i].isValid() ? " valid" : " invalid";
+ System.out.println(repos[i].getURI().toString() + status);
}
} else {
System.out.println("No repository URLs are set.");
}
}
-
- private void append(StringBuffer sb, String s, int width) {
- sb.append(s);
- for (int i = s.length(); i < width; i++) {
- sb.append(" ");
- }
- }
}
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 @@
-
+