Link to figure Example of Provider Subclass
This figure consists of a cylinder labeled Provider C and a box. Dotted lines are used to indicate that Provider C contains the contents of the box. The box contains the following headers and Java code:
provider.java
public class fooJCA extends Provider {
    .
    .
    .
    put("MessageDigest.MD5", "com.foo.MD5");
    .
    .
    .
{}com.foo.MD5.java
package com.foo;
public class MD5 extends
    MessageDigestSpi {
    .
    .
    .
}