Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2008, 2010 VMware Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: VMware Inc. - initial contribution /
 
 
 package org.eclipse.virgo.nano.config.internal;
 
 import java.io.File;
 import java.util.List;
 
 
 public final class KernelConfiguration {
 
     private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
 
     static final String PROPERTY_KERNEL_CONFIG = "org.eclipse.virgo.kernel.config";
 
     static final String PROPERTY_KERNEL_HOME = "org.eclipse.virgo.kernel.home";
 
     static final String PROPERTY_KERNEL_DOMAIN = "org.eclipse.virgo.kernel.domain";
 
     static final String PROPERTY_KERNEL_STARTUP_WAIT_LIMIT = "org.eclipse.virgo.kernel.startup.wait.limit";
 
     private static final String DEFAULT_WORK_DIRECTORY_NAME = "work";
 
     private static final String DEFAULT_CONFIG_DIRECTORY_NAME = "config";
 
     private static final String DEFAULT_KERNEL_DOMAIN = "org.eclipse.virgo.kernel";
 
     private static final int DEFAULT_STARTUP_WAIT_LIMIT = 180; // 3 minutes
 
     private final File homeDirectory;
 
     private final File[] configDirectories;
 
     private final File workDirectory;
 
     private final String domain;
 
     private final int startupWaitLimit;
 
     public KernelConfiguration(BundleContext context) {
         this. = readHomeDirectory(context);
         this. = readConfigDirectories(context);
         this. = new File(this.);
         this. = readDomain(context);
         this. = readBundleStartupWaitLimit(context);
     }
 
     public File getHomeDirectory() {
         return ;
     }
 
     public File[] getConfigDirectories() {
         return .clone();
     }
 
     public File getWorkDirectory() {
         return ;
     }
 
     public String getDomain() {
         return ;
     }
 
     public int getStartupWaitLimit() {
         return ;
     }
 
     private static File readHomeDirectory(BundleContext context) {
         String kernelHomeProperty = readFrameworkProperty(context);
         if (!hasText(kernelHomeProperty)) {
             throw new IllegalStateException( + " property must be specified, and must not be empty");
         } else {
             return new File(kernelHomeProperty);
         }
     }
 
     private static File[] readConfigDirectories(BundleContext context) {
         String kernelConfigProperty = readFrameworkProperty(context);
         List<FileconfigDirectories = new ArrayList<File>();
 
         if (hasText(kernelConfigProperty)) {
             parseKernelConfigProperty(kernelConfigPropertyconfigDirectories);
         }
 
         if (configDirectories.isEmpty()) {
             configDirectories.add(new File());
         }
        return configDirectories.toArray(new File[configDirectories.size()]);
    }
    private static void parseKernelConfigProperty(String kernelConfigPropertyList<FileconfigDirectories) {
        String[] components = kernelConfigProperty.split(",");
        for (String component : components) {
            File configDir = new File(component.trim());
            if (!configDir.isAbsolute()) {
                configDir = new File(component.trim());
            }
            configDirectories.add(configDir);
        }
    }
    private static String readDomain(BundleContext context) {
        String kernelDomainProperty = readFrameworkProperty(context);
        if (!hasText(kernelDomainProperty)) {
            kernelDomainProperty = ;
        }
        return kernelDomainProperty;
    }
    private int readBundleStartupWaitLimit(BundleContext context) {
        String waitLimitProperty = readFrameworkProperty(context);
        if (!hasText(waitLimitProperty)) {
          return ;
        }
        try {
            return Integer.parseInt(waitLimitProperty);
        } catch (NumberFormatException e) {
            .warn("Could not parse property {} with value '{}'. Using default limit {} seconds",
                        new Object[]{waitLimitProperty});
            return ;
        }
    }
    private static String readFrameworkProperty(String propertyKeyBundleContext context) {
        return context.getProperty(propertyKey);
    }
    private static boolean hasText(String string) {
        return (string != null && !string.trim().isEmpty());
    }
New to GrepCode? Check out our FAQ X