Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.felix.karaf.admin.main;
 
 import java.io.File;
 import java.util.List;
 import java.util.Map;
 
 
 public class Execute {
     static Class<? extends Actionx = CreateCommand.class;
     private static final Class<?> [] COMMAND_CLASSES = new Class[] {
         CreateCommand.class,
         StartCommand.class,
         StopCommand.class,
         DestroyCommand.class,
         ListCommand.class,
         ChangePortCommand.class};
     private static final Map<StringClass<?>> COMMANDS = new TreeMap<StringClass<?>>();
     static {
         for (Class<?> c : ) {
             Command ann = c.getAnnotation(Command.class);
             if (ann == null) {
                 continue;
             }
             .put(ann.name(), c);
         }
     }    
     
     // For testing
     static boolean exitAllowed = true;
 
     public static void main(String[] argsthrows Exception {
         AnsiConsole.systemInstall();
 
         if (args.length == 0) {
             listCommands();
             exit(0);
         }
         
         Class<?> cls = .get(args[0]);
         if (cls == null) {
             ..println("Command not found: " + args[0]);
             exit(-1);
         }
 
         String storage = System.getProperty("storage.location");
         if (storage == null) {
             ..println("System property 'storage.location' is not set. \n" +
         		"This property needs to be set to the full path of the instance.properties file.");
             exit(-1);
         }
         File storageFile = new File(storage);
         System.setProperty("user.dir"storageFile.getParentFile().getParentFile().getCanonicalPath());
         
         Object command = cls.newInstance();
         if (command instanceof AdminCommandSupport) {
             execute((AdminCommandSupportcommandstorageFileargs);            
         } else {
             ..println("Not an admin command: " + args[0]);
             exit(-1);
         }
     }
     
     static void execute(AdminCommandSupport commandFile storageFileString[] argsthrows Exception {
         DefaultActionPreparator dap = new DefaultActionPreparator();
         List<Objectparams = new ArrayList<Object>(Arrays.asList(args));
         params.remove(0); // this is the actual command name
 
         if (!dap.prepare(commandnullparams)) {
            return;
        }
                
        AdminServiceImpl admin = new AdminServiceImpl();
        admin.setStorageLocation(storageFile);
        admin.init();
        command.setAdminService(admin);
        command.execute(null);
    }
    private static void listCommands() {
        ..println("Available commands:");
        for (Map.Entry<StringClass<?>> entry : .entrySet()) {
            Command ann = entry.getValue().getAnnotation(Command.class);
            ..printf("  %s - %s\n"entry.getKey(), ann.description());
        }
        
        ..println("Type 'command --help' for more help on the specified command.");
    }
    private static void exit(int rc) {
        if () {
            System.exit(rc);
        } else {
            throw new RuntimeException("" + rc);
        }
    }
New to GrepCode? Check out our FAQ X