Skip to content

Latest commit

 

History

History
100 lines (66 loc) · 3.32 KB

File metadata and controls

100 lines (66 loc) · 3.32 KB

Stub Module Status

This document clarifies the implementation status of various platform-java modules that are marked as stubs.

What is a Stub Module?

A stub module is a placeholder implementation that provides the basic structure, dependencies, and API contracts but is not yet fully functional or production-ready. Stub modules may contain:

  • Partial or incomplete implementations
  • Core classes with basic scaffolding
  • Test infrastructure
  • Dependencies configured but not fully integrated
  • Documentation for future implementation

Stub Modules List

The following modules are currently stubs and should not be used in production:

Clustering

  • platform-java-cluster-etcd - etcd-based cluster state coordination
  • platform-java-cluster-redis - Redis-based cluster coordination
  • platform-java-cluster-zookeeper - Apache ZooKeeper-based cluster coordination

Service Registry

  • platform-java-registry-etcd - etcd-based service registry
  • platform-java-registry-eureka - Netflix Eureka-based service registry

Storage (Persistent Volumes)

  • platform-java-storage-s3 - AWS S3 or S3-compatible persistent storage
  • platform-java-storage-database - SQL database-based persistent storage
  • platform-java-storage-redis - Redis-based persistent storage

Configuration Management

  • platform-java-config-consul - HashiCorp Consul configuration source
  • platform-java-config-etcd - etcd-based configuration source
  • platform-java-config-vault - HashiCorp Vault-based secrets and configuration

API Server

  • platform-java-rest-api-netty - Alternative Netty-based REST API server

Using Stub Modules

For Development/Testing

If you wish to work on implementing a stub module:

  1. The stub modules are included in the build
  2. Classes are marked with @Deprecated annotations
  3. POM descriptions clearly indicate stub status
  4. Dependencies are already configured
  5. Basic test structure is in place

For Production

Do NOT use stub modules in production. Instead:

  • For clustering: Use platform-java-cluster-consul (implemented)
  • For service registry: Use platform-java-registry-consul (implemented)
  • For storage: Use platform-java-storage (filesystem-based, implemented)
  • For configuration: Use platform-java-config (YAML/JSON-based, implemented)
  • For REST API: Use platform-java-rest-api (default, implemented)

Build Considerations

Stub modules are currently:

  • INCLUDED in the standard build
  • INCLUDED in published artifacts
  • Marked with @Deprecated in Java code
  • Documented in POM <description> elements

This approach allows developers to:

  1. See the intended architecture for integrations
  2. Implement stubs incrementally
  3. Understand planned functionality from code structure
  4. Avoid breaking changes when implementations are completed

Contributing

To implement a stub module:

  1. Review the @Deprecated annotation and class documentation
  2. Complete the implementation
  3. Add comprehensive tests
  4. Update this document
  5. Remove the @Deprecated marker
  6. Create a pull request with the implementation

See GitHub issues for specific implementation tasks and roadmaps.

Version Notes

  • Since: 1.1 - Initial stub modules added
  • Status: Ongoing - Implementations pending based on community needs and contribution efforts