Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-1013 Improve console extensibility
  3. FELIX-1014

Hardcoded list of webconsole plugins in OSGiManager

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • webconsole-1.2.8
    • webconsole-2.0.0
    • Web Console
    • None

    Description

      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() );

      Attachments

        Activity

          People

            fmeschbe Felix Meschberger
            tdiesler Thomas Diesler
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: