Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Submit a bug/patch to the software (do this in any case)
  2. Try to replace an interface or implementation in the jar

    Code Block
    Suppose in Hibernate, there is this class “HelloWorldImpl” that is defective. The declaration of the class is as such:
    
    public class HelloWorldImpl implements HelloWorld {}
    
    Rather than patching HelloWorldImpl directly in the JAR, do this instead:
    
    public class GrouperHelloWorld implements HelloWorld {}
    
    Leave the JAR. Leave the original Impl. 
    
    Then, do:
    
    hibernateEngine.setHelloWorld(new GrouperHelloWorld()); 
    
    So long as HelloWorld remains intact, you’d be fine. The trick is to find the actual setHelloWorld() method,
    and instructing hibernate how to use our impl, rather than the default. Keep the patches inside the Grouper github repo. Update the Javadoc directly in the code. 
  3. If there is no way to replace an implementation, get the source, recompile, but change the package to a grouper specific package.  e.g. from org.hibernate to edu.internet2.middleware.grouper.jarExt.org.hibernate, host on sonatype as a grouper jar for that software.  Refactor grouper source to use that package
  4. If it doesnt work to changchange the package, just compile the jar and host on sonatype