Opened 47 years ago

Last modified 6 years ago

#927 new enhancement

IZ683: expose loaded modules description per jvm

Reported by: easymf Owned by:
Priority: high Milestone:
Component: hedeby Version: current
Severity: Keywords: Sun misc
Cc:

Description

[Imported from gridengine issuezilla http://gridengine.sunsource.net/issues/show_bug.cgi?id=683]

        Issue #:      683          Platform:     Sun           Reporter: easymf (easymf)
       Component:     hedeby          OS:        All
     Subcomponent:    misc         Version:      current          CC:    None defined
        Status:       NEW          Priority:     P2
      Resolution:                 Issue type:    ENHANCEMENT
                               Target milestone: 1.0u5next
      Assigned to:    adoerr (adoerr)
      QA Contact:     adoerr
          URL:
       * Summary:     expose loaded modules description per jvm
   Status whiteboard:
      Attachments:


     Issue 683 blocks:
   Votes for issue 683:     Vote for this issue


   Opened: Tue Sep 29 06:01:00 -0700 2009 
------------------------


   Description:

   The current (28.09.09) version of SDM does not allow to access information about
   modules loaded by JVM from outside the JVM.

   While system is fully functional, it bring annoying consequences to monitoring
   tools like INSPECT - it is not possible to show modules that are loaded be
   remote JVM and thus to identify possible discrepancies in the SDM system.

   Evaluation:

   High urgency because:
      * not much work
      * changes API, so it'd be great to deliver in U5 which will change API anyway
      * enhances monitoring which might be more than useful for demoing

   Suggested fix/ Work Around:

   No workaround.
   Fix (RFE) has to ensure that modules information will be available to read remotely.

   Analysis:

   One solution could be to make Module interface Serializable (as well as other
   "interesting" data (ResourceTypes, evt. ConfigPackages)) and expose the modules
   loaded by an JVM through a getter in JVM interface like:

   public interface JVM {
    ...
    public Set<Module> getLoadedModules();
    ...
   }

   The solution would bring minimal changes to current system, but is a little bit
   cumbersome.

   Another possibility is to introduce:

   1. interface ResourceTypeDescriptor holding the "descriptive" data of
   ResourceType (name, propertytypes)
   2. interface ModuleDescriptor holding the "descriptive" data of Module (name,
   version, vendor, list of resource type descriptors for resource types delivered
   by the module)

   As a result, JVM interface would be changed:

   public interface JVM {
      ...
      public getModulesDescriptors();
      ...
   }

   Module interface would change:

   public interface Module {
      ...
      public ModuleDescriptor getModuleDescriptor();
      ...
   }

   ModulesDescriptor interface would look like:

   public interface ModuleDescriptor{
      public String getModuleName();
      public String getVendor();
      public String getVersion();
      public Set<ResourceTypeDescriptor> getResourceTypesDescriptors();
   }

   ResourceType interface can be changed (not necessarily):

   public interface ResourceType {
      ...
      public ResourceTypeDescriptor getResourceTypeDescriptor();
      ...
   }

   And ResourceTypeDescriptor would look like:

   public interface ResourceTypeDescriptor{
      public String getResourceTypeName();
      public Map<String,ResourcePropertyType> getPropertyTypes();
   }

   How to test:

   JUnit test is fine

   ETC:

   3 PD

   ATC:
               ------- Additional comments from marcingoldyn Tue Oct 13 03:11:37 -0700 2009 -------
   I would go with the solution 2 here. We just need to move to JVM class
   implemenation of show_module command. From the module object we can obtain also
   resource types.
               ------- Additional comments from rhierlmeier Wed Nov 25 07:21:12 -0700 2009 -------
   Milestone changed

Change History (0)

Note: See TracTickets for help on using tickets.