Hardcoded list of webconsole plugins in OSGiManager
---------------------------------------------------

                 Key: FELIX-1014
                 URL: https://issues.apache.org/jira/browse/FELIX-1014
             Project: Felix
          Issue Type: Sub-task
          Components: Web Console
    Affects Versions: webconsole-1.2.8
            Reporter: Thomas Diesler


Instead of 

    private static final String[] PLUGIN_CLASSES =
        { 
"org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter",
            "org.apache.felix.webconsole.internal.compendium.ComponentsServlet",
            "org.apache.felix.webconsole.internal.compendium.ConfigManager",
            "org.apache.felix.webconsole.internal.core.BundlesServlet",
            "org.apache.felix.webconsole.internal.core.InstallAction",
            "org.apache.felix.webconsole.internal.core.SetStartLevelAction",
            "org.apache.felix.webconsole.internal.deppack.DepPackServlet",
            "org.apache.felix.webconsole.internal.misc.EventAdminServlet",
            "org.apache.felix.webconsole.internal.misc.LicenseServlet",
            "org.apache.felix.webconsole.internal.misc.ConfigurationRender",
            "org.apache.felix.webconsole.internal.misc.ShellServlet",
            "org.apache.felix.webconsole.internal.obr.BundleRepositoryRender",
            "org.apache.felix.webconsole.internal.obr.InstallFromRepoAction",
            "org.apache.felix.webconsole.internal.obr.RefreshRepoAction",
            "org.apache.felix.webconsole.internal.system.GCAction",
            "org.apache.felix.webconsole.internal.system.VMStatPlugin" };

we propose

    protected String[] getPluginClasses() 
    {
       return new String[] { 
           
"org.apache.felix.webconsole.internal.compendium.ComponentConfigurationPrinter",
           "org.apache.felix.webconsole.internal.compendium.ComponentsServlet",
           "org.apache.felix.webconsole.internal.compendium.ConfigManager",
           "org.apache.felix.webconsole.internal.core.BundlesServlet",
           "org.apache.felix.webconsole.internal.core.InstallAction",
           "org.apache.felix.webconsole.internal.core.SetStartLevelAction",
           "org.apache.felix.webconsole.internal.deppack.DepPackServlet",
           "org.apache.felix.webconsole.internal.misc.EventAdminServlet",
           "org.apache.felix.webconsole.internal.misc.LicenseServlet",
           "org.apache.felix.webconsole.internal.misc.ConfigurationRender",
           "org.apache.felix.webconsole.internal.misc.ShellServlet",
           "org.apache.felix.webconsole.internal.obr.BundleRepositoryRender",
           "org.apache.felix.webconsole.internal.obr.InstallFromRepoAction",
           "org.apache.felix.webconsole.internal.obr.RefreshRepoAction",
           "org.apache.felix.webconsole.internal.system.GCAction",
           "org.apache.felix.webconsole.internal.system.ShutdownAction",
           "org.apache.felix.webconsole.internal.system.ShutdownRender",
           "org.apache.felix.webconsole.internal.system.VMStatRender", };
    }
    
    /**
     * The default value for the {...@link #PROP_MANAGER_ROOT} configuration
     * property (value is "/system/console").
     */
    protected String getDefaultManagerRoot()
    {
       return DEFAULT_MANAGER_ROOT;
    }

----------------------
    
    public void init()
    {
        // base class initialization not needed, since the GenericServlet.init
        // is an empty method

        // get the installed plugin classes 
        String[] pluginClasses = getPluginClasses();
       
        // setup the included plugins
        ClassLoader classLoader = getClass().getClassLoader();
        for ( int i = 0; i < pluginClasses.length; i++ )
        {
            String pluginClassName = pluginClasses[i];
            try
            {

-------------------

    void updateConfiguration( Dictionary config )
    {
        // get the web manager root path
        webManagerRoot = this.getProperty( config, PROP_MANAGER_ROOT, 
getDefaultManagerRoot() );



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to