ctubbsii opened a new pull request, #34: URL: https://github.com/apache/accumulo-classloaders/pull/34
Core changes: * Use a generic DeduplicationCache implementation with the property of guaranteeing no duplicate classloader instances for any given context version, but also with a minimum on-access lifetime * Track the current context versions separately from the classloader instances, so there's only one update task per context, but immutable instances of URLClassloader in the deduplication cache are independent from the updating (makes it easier to reason about the lifetime of objects, and the update code); this removes the update method from the LocalCachingContext object and replaces it with a new instance (TODO: this could be further cleaned up since LocalCachingContext is now just a bag of utility code rather than something that holds classloader state to be updated) * Use compute method to atomically update the current context definitions and access the deduplciated URLClassloader instances to ensure that the two structures are always coherent * Use LinkedHashSet instead of TreeSet to preserve Resource ordering, as specified in the user's context file Other changes: * update to latest spotbugs to remove some spammy console output * remove use of deprecated doPrivileged and suppress spotbugs warning * add justifications to spotbugs warnings about reading from user provided URL * remove some spotbugs warnings by removing setters to make ContextDefinition and Resource objects immutable * use asSubclass to avoid warnings about casting during dynamic class loading * Create WrappedException for use in lambdas to make wrapping/unwrapping more predictable * (unrelated) Update VFSManager to guard the initialization of the VFS static field with an AtomicBoolean to avoid a spotbugs warning * suppress Eclipse warnings about maven-dependency-plugin executions -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
