Since the latest update to SLAMD broke backward compatibility with previous versions, then anyone who has written their own custom jobs will need to update them to work with the latest release. Here’s what you need to do in order to achieve that:
- The overall package structure has changed from “
com.sun.slamd.*” to be “
com.slamd.*“. For example, if you had previously imported “
com.sun.slamd.parameter.ParameterList“, then you will now need to import “
- The former “
com.sun.slamd.example” package, which holds most of the jobs provided with SLAMD, has been renamed to “
- The code has been updated to use generics, so any collections used within SLAMD have been generified. In order to avoid build warnings, you should use generics in your code as well.
- All cases in the code in which the
StringBufferclass was previously used have been replaced with the new
StringBuilderclass can help improve performance because it doesn’t perform any synchronization the way that
- Previously, the
JobClassclass, which is the base class for all SLAMD jobs, had a single
getJobDescription()method which could be used to obtain the description for the job. That has now been replaced with the following two methods:
public abstract String getShortDescription()— This should return a short (preferably a single sentence) overview of the purpose for the job. It will be used in a few places in the administrative interface, including as a pop-up hint when hovering over the name of the job on the page listing the jobs available to be scheduled. This method must be provided.
public String getLongDescription()— This may be used to return a more detailed description of the sentence. It should return a string array, and each element of the array will be treated as a separate paragraph in the administrative interface. If this method is not provided, then the short description will be used.
JobClassclass formerly provided a
destroy()method that allowed you to provide code that would be used in an attempt to forcefully kill a job. Because the
Thread, it overrode the deprecated
Thread.destroy()method, which could generate build warnings. I have renamed the
JobClass.destroy()method to be
destroyThread()to eliminate this conflict. I also made
JobClass.destroy()final so that you can no longer override it in job classes.
- The former
com.sun.slamd.example.Base64Encoderclass has been removed. The ability to perform base64 encoding and decoding is now provided by the
com.unboundid.util.Base64class in the UnboundID LDAP SDK for Java.
- The former
com.sun.slamd.example.ValuePatternclass has been removed. This capability is now provided by the
com.unboundid.util.ValuePatternclass in the UnboundID LDAP SD for Java. The
com.sun.slamd.example.NumericRangeclass, which had been used by the old
ValuePatternimplementation has also been removed.