001// Name
002//  $RCSfile: Deploy.java,v $
003// 
004// Copyright
005//  Copyright 2013 Cloud Software Group, Inc. ALL RIGHTS RESERVED. 
006//  Cloud Software Group, Inc. Confidential Information
007//
008// History
009//  $Revision: 1.1.2.2 $ $Date: 2013/01/05 19:24:52 $
010//
011package com.kabira.platform.property;
012
013/**
014 * Property names for system properties which may be set at deployment 
015 * time and read by the application at runtime.
016 * <p>
017 * These properties may be optionally set as system properties during
018 * deployment using the -DPropertyName=propertyValue JVM option.
019 * <p>
020 * These properties may be read by the application at runtime using
021 * System.getProperty().
022 * <p>
023 * Setting these properties programmatically at runtime is not supported and
024 * will result in undefined behavior.
025 */
026public class Deploy
027{    
028    /**
029     * {@value} -
030     * Control whether components are loaded at JVM startup.
031     * <p>
032     * A boolean property.
033     * A value of true loads all configured components.
034     * A value of false disables the loading of components at startup.
035     * The default value is true.
036     */
037    public static final String LOAD_COMPONENTS =
038            "com.kabira.platform.component.manager";
039    
040    /**
041     * {@value} -
042     * When set to true causes the class loader 
043     * to create a class file in the node directory for each class modified
044     * at load time.
045     * <p>
046     * A boolean property. The default value is false.
047     */
048    public static final String DEBUG_CLASSES = 
049            "com.kabira.platform.debugClasses";
050    
051    /**
052     * {@value} -
053     * An optional string property that identifies classes that
054     * do not contain Managed Objects, or references to Managed Objects.
055     * <p>
056     * This property
057     * is a list of package names (or package prefixes), separated by the
058     * system path separator character (path.separator). The class loader 
059     * will skip the byte code rewriting required
060     * to support Managed Objects, and will not attempt to fetch from a
061     * remote deployment tool, all classes that match an ignored package
062     * prefix. None of these classes can contain Managed Object definitions
063     * or references to Managed Objects.
064     */
065    public static final String IGNORED_PACKAGES =
066            "com.kabira.platform.ignoredPackages";
067    /**
068     * {@value} -
069     * Control whether JMX is initialized at JVM startup.
070     * <p>
071     * A boolean property. A value of true
072     * initializes JMX. A value of false disables the initialization of JMX at
073     * startup. The default value is true.
074     */
075    public static final String JMX_ENABLE =
076            "com.kabira.platform.management.jmxEnable";
077    
078    /**
079     * {@value} -
080     * An optional string property that identifies non-managed
081     * classes that do not access any Managed Objects via reflection.
082     * <p>
083     * This property is a
084     * list of class names, or package prefixes, separated by the system
085     * path separator character (path.separator). The 
086     * class loader will skip the byte code rewriting required
087     * to access Managed Objects via reflection for all classes in this list.
088     */
089    public static final String NO_MANAGED_OBJECT_REFLECTION =
090            "com.kabira.platform.noManagedObjectReflection";
091    
092    /**
093     * {@value} -
094     * An optional string property which lists packages to be loaded by the
095     * parent of the class loader.
096     * <p>
097     * A list of package names, separated by the
098     * system path separator character (normally ":"). These packages are
099     * defined as system packages. Classes contained in these packages will
100     * always be loaded by the parent of the class loader.
101     */
102    public static final String SYSTEM_PACKAGES =
103            "com.kabira.platform.systemPackages";
104}