@@ -4,19 +4,24 @@ Complete guide to all advanced transport protocols supported by JClassLoader.
44
55## Messaging Systems
66
7+ Requires [ jmessaging] ( https://github.com/FlossWare/jmessaging ) library.
8+
79### Apache Kafka
810Load classes distributed via Kafka topics. Perfect for dynamic class loading in microservices.
911
1012``` java
11- KafkaClassSource kafka = KafkaClassSource . builder()
13+ import org.flossware.messaging.KafkaMessageClient ;
14+ import org.flossware.jclassloader.MessageClientClassSource ;
15+
16+ MessageClient kafka = KafkaMessageClient . builder()
1217 .bootstrapServers(" localhost:9092" )
1318 .topic(" class-updates" )
1419 .groupId(" jclassloader-consumer" )
1520 .pollTimeout(1000 )
1621 .build();
1722
1823JClassLoader loader = JClassLoader . builder()
19- .addClassSource(kafka)
24+ .addClassSource(new MessageClientClassSource ( kafka) )
2025 .build();
2126```
2227
@@ -32,7 +37,9 @@ JClassLoader loader = JClassLoader.builder()
3237Ultra-fast class loading from Redis cache/store.
3338
3439``` java
35- RedisClassSource redis = RedisClassSource . builder()
40+ import org.flossware.messaging.RedisMessageClient ;
41+
42+ MessageClient redis = RedisMessageClient . builder()
3643 .host(" localhost" )
3744 .port(6379 )
3845 .password(" secret" )
@@ -41,7 +48,7 @@ RedisClassSource redis = RedisClassSource.builder()
4148 .build();
4249
4350JClassLoader loader = JClassLoader . builder()
44- .addClassSource(redis)
51+ .addClassSource(new MessageClientClassSource ( redis) )
4552 .build();
4653```
4754
@@ -81,27 +88,32 @@ JClassLoader loader = JClassLoader.builder()
8188
8289## Version Control Systems
8390
91+ Requires [ jvcs] ( https://github.com/FlossWare/jvcs ) library.
92+
8493### Git Repositories
8594Load classes directly from Git repositories (local or remote).
8695
8796``` java
97+ import org.flossware.vcs.GitVcsClient ;
98+ import org.flossware.jclassloader.VcsClientClassSource ;
99+
88100// From local Git repository
89- GitClassSource localGit = GitClassSource . builder()
101+ VcsClient localGit = GitVcsClient . builder()
90102 .repositoryPath(" /path/to/repo" )
91103 .branch(" main" )
92104 .basePath(" target/classes" )
93105 .build();
94106
95107// Clone from remote repository
96- GitClassSource remoteGit = GitClassSource . builder()
108+ VcsClient remoteGit = GitVcsClient . builder()
97109 .remoteUrl(" https://github.com/user/repo.git" )
98110 .branch(" release/v1.0" )
99111 .basePath(" build/classes" )
100112 .cloneDirectory(new File (" /tmp/git-classes" ))
101113 .build();
102114
103115JClassLoader loader = JClassLoader . builder()
104- .addClassSource(remoteGit)
116+ .addClassSource(new VcsClientClassSource ( remoteGit) )
105117 .build();
106118```
107119
@@ -121,17 +133,21 @@ JClassLoader loader = JClassLoader.builder()
121133
122134## Container & Orchestration
123135
136+ Requires [ jcontainer] ( https://github.com/FlossWare/jcontainer ) library.
137+
124138### Kubernetes ConfigMaps
125139Load classes from Kubernetes ConfigMaps.
126140
127141``` java
128- KubernetesConfigMapClassSource k8s = KubernetesConfigMapClassSource . builder()
142+ import org.flossware.container.KubernetesContainerClient ;
143+ import org.flossware.jclassloader.ContainerClientClassSource ;
144+
145+ ContainerClient k8s = KubernetesContainerClient . builder()
129146 .namespace(" production" )
130- .configMapName(" app-classes" )
131147 .build();
132148
133149JClassLoader loader = JClassLoader . builder()
134- .addClassSource(k8s)
150+ .addClassSource(new ContainerClientClassSource ( k8s, " app-classes " ) )
135151 .build();
136152```
137153
@@ -149,8 +165,8 @@ metadata:
149165 name : app-classes
150166 namespace : production
151167data :
152- com. example. MyClass : <base64-encoded-class-bytes>
153- com. example. Another : <base64-encoded-class-bytes>
168+ com/ example/ MyClass.class : <base64-encoded-class-bytes>
169+ com/ example/ Another.class : <base64-encoded-class-bytes>
154170` ` `
155171
156172---
@@ -275,21 +291,28 @@ JClassLoader loader = JClassLoader.builder()
275291
276292### Enterprise Hybrid Architecture
277293``` java
294+ import org.flossware.messaging.* ;
295+ import org.flossware.jclassloader.MessageClientClassSource ;
296+
297+ MessageClient redis = RedisMessageClient . builder()
298+ .host(" redis-cluster.internal" )
299+ .keyPrefix(" prod:class:" )
300+ .build();
301+
302+ MessageClient kafka = KafkaMessageClient . builder()
303+ .bootstrapServers(" kafka.internal:9092" )
304+ .topic(" class-updates" )
305+ .build();
306+
278307JClassLoader enterpriseLoader = JClassLoader . builder()
279308 // 1. Local development
280309 .addLocalSource(" /opt/app/classes" )
281310
282311 // 2. Redis cache for hot classes
283- .addClassSource(RedisClassSource . builder()
284- .host(" redis-cluster.internal" )
285- .keyPrefix(" prod:class:" )
286- .build())
312+ .addClassSource(new MessageClientClassSource (redis))
287313
288314 // 3. Kafka for dynamic updates
289- .addClassSource(KafkaClassSource . builder()
290- .bootstrapServers(" kafka.internal:9092" )
291- .topic(" class-updates" )
292- .build())
315+ .addClassSource(new MessageClientClassSource (kafka))
293316
294317 // 4. HDFS for big data classes
295318 .addClassSource(HdfsClassSource . builder()
@@ -312,20 +335,27 @@ JClassLoader enterpriseLoader = JClassLoader.builder()
312335
313336### Cloud-Native Kubernetes
314337``` java
338+ import org.flossware.container.KubernetesContainerClient ;
339+ import org.flossware.messaging.RedisMessageClient ;
340+ import org.flossware.jclassloader.ContainerClientClassSource ;
341+
342+ ContainerClient k8s = KubernetesContainerClient . builder()
343+ .namespace(" production" )
344+ .build();
345+
346+ MessageClient redis = RedisMessageClient . builder()
347+ .host(" redis-service" )
348+ .build();
349+
315350JClassLoader k8sLoader = JClassLoader . builder()
316351 // ConfigMaps for configuration
317- .addClassSource(KubernetesConfigMapClassSource . builder()
318- .namespace(" production" )
319- .configMapName(" app-classes" )
320- .build())
352+ .addClassSource(new ContainerClientClassSource (k8s, " app-classes" ))
321353
322354 // Redis for cross-pod sharing
323- .addClassSource(RedisClassSource . builder()
324- .host(" redis-service" )
325- .build())
355+ .addClassSource(new MessageClientClassSource (redis))
326356
327357 // S3 for persistence
328- .addS3Source (s3Classes)
358+ .addCloudStorage (s3Classes)
329359
330360 .build();
331361```
@@ -401,50 +431,62 @@ JClassLoader bigDataLoader = JClassLoader.builder()
401431
402432---
403433
404- ## Complete Protocol Count: ** 30 + Transports**
434+ ## Complete Protocol Count: ** 34 + Transports**
405435
406- ### Fully Implemented (23 Core Implementations )
436+ ### Core jclassloader (14 implementations )
407437
4084381 . ** Local File System** - LocalClassSource
4094392 . ** HTTP/HTTPS** - RemoteClassSource with JAR support
410- 3 . ** FTP/FTPS** - FtpClassSource
411- 4 . ** SFTP** - SftpClassSource
412- 5 . ** WebDAV** - WebDavClassSource
413- 6 . ** SMB/CIFS** - SmbClassSource
414- 7 . ** Maven Central** - MavenRepositoryClassSource
415- 8 . ** Nexus (Maven)** - MavenNexusClassSource
416- 9 . ** Nexus (Raw)** - NexusClassSource
417- 10 . ** Artifactory** - MavenRepositoryClassSource
418- 11 . ** REST API** - RestApiClassSource (Binary/JSON/Base64)
419- 12 . ** JDBC Database** - DatabaseClassSource
420- 13 . ** Apache Kafka** - KafkaClassSource
421- 14 . ** RabbitMQ** - RabbitMqClassSource
422- 15 . ** Redis** - RedisClassSource
423- 16 . ** Hadoop HDFS** - HdfsClassSource
424- 17 . ** Git** (GitHub/GitLab/Bitbucket) - GitClassSource
425- 18 . ** Kubernetes ConfigMaps** - KubernetesConfigMapClassSource
426- 19 . ** Docker** - DockerClassSource
427- 20 . ** Hazelcast** - HazelcastClassSource
428- 21 . ** Custom Protocol Handlers** - CustomProtocolClassSource
429-
430- ### Cloud Storage (via jcloudstorage library + CloudStorageClassSource adapter)
431-
432- 22 . ** AWS S3** - S3CloudStorageClient
433- 23 . ** Azure Blob Storage** - AzureBlobCloudStorageClient
434- 24 . ** Google Cloud Storage** - GcsCloudStorageClient
435- 25 . ** Google Drive** - GoogleDriveCloudStorageClient
436- 26 . ** Dropbox** - DropboxCloudStorageClient
437- 27 . ** OneDrive** - OneDriveCloudStorageClient
438-
439- ### S3-Compatible Storage (via MinioClassSource)
440-
441- 28 . ** MinIO** - MinioClassSource
442- 29 . ** Backblaze B2** - MinioClassSource
443- 30 . ** CloudFlare R2** - MinioClassSource
444- 31 . ** DigitalOcean Spaces** - MinioClassSource
445- 32 . ** Wasabi** - MinioClassSource
446- 33 . ** Alibaba Cloud OSS** - MinioClassSource
447- 34+. ** Any S3-compatible storage** - MinioClassSource
440+ 3 . ** Maven Central** - MavenRepositoryClassSource
441+ 4 . ** Nexus (Maven)** - MavenNexusClassSource
442+ 5 . ** Nexus (Raw)** - NexusClassSource
443+ 6 . ** Artifactory** - MavenRepositoryClassSource
444+ 7 . ** REST API** - RestApiClassSource (Binary/JSON/Base64)
445+ 8 . ** JDBC Database** - DatabaseClassSource
446+ 9 . ** Hadoop HDFS** - HdfsClassSource
447+ 10 . ** MinIO** - MinioClassSource
448+ 11 . ** Custom Protocol Handlers** - CustomProtocolClassSource
449+ 12 . ** JarRemoteClassSource** - Load from remote JAR files
450+ 13 . ** Backblaze B2** - MinioClassSource (S3-compatible)
451+ 14 . ** CloudFlare R2** - MinioClassSource (S3-compatible)
452+
453+ ### Cloud Storage (via [ jcloudstorage] ( https://github.com/FlossWare/jcloudstorage ) + CloudStorageClassSource)
454+
455+ 15 . ** AWS S3** - S3CloudStorageClient
456+ 16 . ** Azure Blob Storage** - AzureBlobCloudStorageClient
457+ 17 . ** Google Cloud Storage** - GcsCloudStorageClient
458+ 18 . ** Google Drive** - GoogleDriveCloudStorageClient
459+ 19 . ** Dropbox** - DropboxCloudStorageClient
460+ 20 . ** OneDrive** - OneDriveCloudStorageClient
461+
462+ ### File Transfer (via [ jfiletransfer] ( https://github.com/FlossWare/jfiletransfer ) + FileTransferClassSource)
463+
464+ 21 . ** SFTP** - SftpFileTransferClient
465+ 22 . ** WebDAV** - WebDavFileTransferClient
466+ 23 . ** SMB/CIFS** - SmbFileTransferClient
467+ 24 . ** FTP/FTPS** - FtpFileTransferClient
468+
469+ ### Messaging Systems (via [ jmessaging] ( https://github.com/FlossWare/jmessaging ) + MessageClientClassSource)
470+
471+ 25 . ** Apache Kafka** - KafkaMessageClient
472+ 26 . ** RabbitMQ** - RabbitMqMessageClient
473+ 27 . ** Redis** - RedisMessageClient
474+
475+ ### Container Systems (via [ jcontainer] ( https://github.com/FlossWare/jcontainer ) + ContainerClientClassSource)
476+
477+ 28 . ** Kubernetes ConfigMaps** - KubernetesContainerClient
478+ 29 . ** Docker** - DockerContainerClient
479+ 30 . ** Hazelcast** - HazelcastContainerClient
480+
481+ ### Version Control (via [ jvcs] ( https://github.com/FlossWare/jvcs ) + VcsClientClassSource)
482+
483+ 31 . ** Git (local)** - GitVcsClient
484+ 32 . ** Git (remote)** - GitVcsClient with auto-clone
485+ 33 . ** GitHub/GitLab/Bitbucket** - GitVcsClient
486+
487+ ### S3-Compatible Storage (additional via MinioClassSource)
488+
489+ 34+. ** DigitalOcean Spaces, Wasabi, Alibaba Cloud OSS, etc.** - MinioClassSource
448490
449491### Advanced/Optional (Manual Setup Required)
450492
0 commit comments