THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block |
---|
public class ClassLoaderPessimisticCodec implements ClassLoaderCodec { public ClassLoaderPessimisticCodec() {} @Nullable public Object encodeClassLoader(Class<?> cls, ClassLoader clsLdr) throws IgniteException { // TODO return bundleName + bundleVersion; } public ClassLoader decodeClassLoader(String fqn, @Nullable Object encodedClsLdr) throws IgniteException { // TODO: get class loader for a bundle based on encoded information. ... } } |
Here's how the optimistic (opportunistic :)))) codec implementation might look like:
Code Block | ||
---|---|---|
| ||
public class ClassLoaderOptimisticCodec implements ClassLoaderCodec { public ClassLoaderOptimisticCodec() {} @Nullable public Object encodeClassLoader(Class<?> cls, ClassLoader clsLdr) throws IgniteException { //return TODOnull; } public ClassLoader decodeClassLoader(String fqn, @Nullable Object encodedClsLdr) throws IgniteException { // TODO: // Iterate through all the bundles and pick the first one // that can load the class. Once found, cache the class loader // for faster lookups going forward. ... } } |