This is an automated email from the ASF dual-hosted git repository.
kturner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo-classloaders.git
The following commit(s) were added to refs/heads/main by this push:
new 2c3eb3b adds quickstart to caching classloader readme (#70)
2c3eb3b is described below
commit 2c3eb3b18d30d9fa18d744584c4595e4b4ffca9f
Author: Keith Turner <[email protected]>
AuthorDate: Mon Feb 9 17:12:44 2026 -0500
adds quickstart to caching classloader readme (#70)
Co-authored-by: Christopher Tubbs <[email protected]>
---
modules/caching-class-loader/README.md | 37 +++++++++++++++++++++-------------
1 file changed, 23 insertions(+), 14 deletions(-)
diff --git a/modules/caching-class-loader/README.md
b/modules/caching-class-loader/README.md
index 25f33b7..549baff 100644
--- a/modules/caching-class-loader/README.md
+++ b/modules/caching-class-loader/README.md
@@ -87,6 +87,28 @@ Here is an example manifest:
}
```
+## Quick Start
+
+The following are the steps to use this context classloader with jars
+accessible via URL.
+
+1. Add the jar for this project to the Accumulo classpath.
+2. Optionally add the jar for the [hdfs-urlstreamhandler-provider][2] project
+ to the Accumulo classpath. This will enable loading jars from HDFS URLs.
+3. Set the following Accumulo properties:
+ *
`general.context.class.loader.factory=org.apache.accumulo.classloader.ccl.CachingClassLoaderFactory`
+ *
`general.custom.classloader.ccl.cache.dir=file:/absolute/path/to/some/local/directory`
+ *
`general.custom.classloader.ccl.allowed.urls.pattern=someRegexPatternForAllowedUrls`
+ * (optional) `general.custom.classloader.ccl.update.grace.minutes=30`
+4. Restart Accumulo (required for the first two properties; the others can be
+ changed on a running system)
+5. Create a manifest like the example above, either manually, or by using the
+ provided tool (see "Creating a Manifest" section below) and make it
+ accessible with a URL.
+6. Set the following table property to link to a manifest's URL. For example:
+ *
`table.class.loader.context=(file|hdfs|http|https)://path/to/context/manifest.json`
+7. Repeat steps 5 and 6 for different contexts and/or tables.
+
## How it Works
When this factory receives a request for a `ClassLoader` for a given URL, it
@@ -176,7 +198,7 @@ stdout and can be redirected to a file. The command takes
two arguments:
1. the monitor interval, in seconds (e.g. `-i 300`),
2. an optional checksum algorithm to use (e.g. `-a 'SHA3-512'`), and
3. a list of file URLs (e.g. `hdfs://host:port/path/to/one.jar
- file://host/path/to/two.jar`)
+ file:/host/path/to/two.jar`)
## Updating a Manifest
@@ -270,18 +292,5 @@ break the application in any way, but doing so may result
in a redundant
download, which can result in increased network activity or storage space (see
the previous section for considerations regarding the `resources` directory).
-## Accumulo Configuration
-
-To use this with Accumulo:
-
-1. Set the following Accumulo properties:
- *
`general.context.class.loader.factory=org.apache.accumulo.classloader.ccl.CachingClassLoaderFactory`
- * `general.custom.classloader.ccl.cache.dir=file://path/to/some/directory`
- *
`general.custom.classloader.ccl.allowed.urls.pattern=someRegexPatternForAllowedUrls`
- * (optional) `general.custom.classloader.ccl.update.grace.minutes=30`
-2. Set the following table property to link to a manifest. For example:
- *
`table.class.loader.context=(file|hdfs|http|https)://path/to/context/manifest.json`
-
-
[1]:
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/spi/URLStreamHandlerProvider.html
[2]:
https://github.com/apache/accumulo-classloaders/tree/main/modules/hdfs-urlstreamhandler-provider