JPPF Issue Tracker
star_faded.png
Please log in to bookmark issues
enhancement_small.png
CLOSED  Enhancement JPPF-55  -  Extensions to NodeLifeCycleListener
Posted Aug 28, 2012 - updated Sep 19, 2012
action_vote_minus_faded.png
1
Votes
action_vote_plus_faded.png
icon_info.png This issue has been closed with status "Closed" and resolution "RESOLVED".
Issue details
  • Type of issue
    Enhancement
  • Status
     
    Closed
  • Assigned to
     lolo4j
  • Progress
       
  • Type of bug
    Not triaged
  • Likelihood
    Not triaged
  • Effect
    Not triaged
  • Posted by
     lolo4j
  • Owned by
    Not owned by anyone
  • Category
    Node
  • Resolution
    RESOLVED
  • Priority
    Normal
  • Targetted for
    icon_milestones.png JPPF 3.2
Issue description
In the node, the tasks are deserialized before calling NodeLifeCycleListener.jobStarting(). A consequence of this is that, when a task has an explicit reference (e.g. via an "import" statement) to another class that is in a downloaded jar (see Extended Class Loading sample), this will cause a ClassNotFoundException at deserialization time.

We propose to add a notification method like jobHeaderLoaded(NodeLifeCycleEvent) and add a getTaskClassLoader() method to the event class. The new notification will be sent right after the job header (including the JobMetadata) is deserialized and before the tasks are deserialized. Also, to avoid breaking the API with regards to existing applications that use NodeLifeCycleListener, we would prefer to create a new interface that would extend it, e.g.:
public interface NodeLifeCycleListenerEx extends NodeLifeCycleListener {
  public void jobHeaderLoaded(NodeLifeCycleEvent event);
}
This would allow us to deprecate NodeLifeCycleListener in a first time, while keeping its functionality intact, then eventually remove it in a later version.


#4
Comment posted by
 lolo4j
Sep 16, 18:12
This is now implemented. Updated Exenteded Class Loading sample accordingly. Changes committed to SVN trunk revision 2389

The issue was updated with the following change(s):
  • This issue has been closed
  • The status has been updated, from New to Closed.
  • This issue's progression has been updated to 100 percent completed.
  • The resolution has been updated, from Not determined to RESOLVED.
  • Information about the user working on this issue has been changed, from lolo4j to Not being worked on.
#6
Comment posted by
 lolo4j
Sep 18, 08:05
I'm reopening this issue, because I forgot to implement access to the job's DataProvider from the NodeLifeCycleListener.
#7
Comment posted by
 lolo4j
Sep 19, 08:19
Done: revision 2400

The issue was updated with the following change(s):
  • This issue has been closed
  • The status has been updated, from New to Closed.
  • This issue's progression has been updated to 100 percent completed.
  • The resolution has been updated, from Not determined to RESOLVED.