A comprehensive utility library for Light-4J microservices framework providing string manipulation, networking, I/O, security, and configuration utilities.
—
Framework constants and module registry functionality for Light-4J ecosystem integration, including HTTP headers, JWT claims, component registration, and general utility functions for microservices frameworks.
Shared constants for all Light-4J components providing standardized string constants for headers, JWT claims, protocols, and framework identifiers.
/**
* Shared constants for all light-4j components (65 total constants)
*/
public class Constants {
// HTTP Headers & Request/Response Constants
public static final String CORRELATION_ID_STRING = "X-Correlation-Id";
public static final String TRACEABILITY_ID_STRING = "X-Traceability-Id";
public static final String ADM_PASSTHROUGH_STRING = "X-Adm-PassThrough";
public static final String SCOPE_TOKEN_STRING = "X-Scope-Token";
public static final String CONSUL_TOKEN_STRING = "X-Consul-Token";
public static final String CSRF_TOKEN_STRING = "X-CSRF-TOKEN";
public static final String AUTHORIZATION_STRING = "authorization";
public static final String SWAGGER_OPERATION_STRING = "swagger_operation";
public static final String OPENAPI_OPERATION_STRING = "openapi_operation";
public static final String SERVICE_ID_STRING = "service_id";
public static final String SERVICE_URL_STRING = "service_url";
public static final String ENV_TAG_STRING = "env_tag";
public static final String HASH_KEY_STRING = "hash_key";
public static final String HEADER = "header";
public static final String HOST = "host";
// JWT Claims & Authentication Constants
public static final String USER_ID_STRING = "user_id";
public static final String UID = "uid";
public static final String USER_TYPE = "user_type";
public static final String ROLES = "roles";
public static final String CLIENT_ID_STRING = "client_id";
public static final String CID = "cid";
public static final String ISS = "iss";
public static final String CALLER_ID_STRING = "caller_id";
public static final String SCOPE_CLIENT_ID_STRING = "scope_client_id";
public static final String SCOPE_STRING = "scope";
public static final String SCP_STRING = "scp";
public static final String PRIMARY_SCOPES = "primary_scopes";
public static final String SECONDARY_SCOPES = "secondary_scopes";
public static final String ENDPOINT_STRING = "endpoint";
public static final String CSRF = "csrf";
public static final String EID = "eid";
public static final String AUDIT_INFO = "auditInfo";
public static final String SUBJECT_CLAIMS = "subject_claims";
public static final String ACCESS_CLAIMS = "access_claims";
public static final String ISSUER_CLAIMS = "issuer_claims";
// User Management & Entity Constants
public static final String ATT = "att";
public static final String POS = "pos";
public static final String GRP = "grp";
public static final String ROLE = "role";
public static final String EML = "eml";
public static final String EMAIL = "email";
public static final String GROUPS = "groups";
public static final String GROUP = "group";
public static final String POSITIONS = "positions";
public static final String POSITION = "position";
public static final String ATTRIBUTES = "attributes";
public static final String ATTRIBUTE = "attribute";
public static final String USERS = "users";
public static final String USER = "user";
public static final String COL = "col";
public static final String ROW = "row";
// Time & Numeric Constants
public static final int MILLS = 1;
public static final int SECOND_MILLS = 1000;
public static final int MINUTE_MILLS = 60 * SECOND_MILLS;
public static final int DEFAULT_INT_VALUE = 0;
// Protocol & Network Constants
public static final String PROTOCOL_SEPARATOR = "://";
public static final String PROTOCOL_LIGHT = "light";
public static final String PROTOCOL_HTTPS = "https";
public static final String HTTPS = "https";
public static final String PROTOCOL = "protocol";
public static final String REGISTRY_PROTOCOL_LOCAL = "local";
public static final String REGISTRY_PROTOCOL_DIRECT = "direct";
public static final String REGISTRY_PROTOCOL_ZOOKEEPER = "zookeeper";
public static final String ZOOKEEPER_REGISTRY_NAMESPACE = "/light";
public static final String ZOOKEEPER_REGISTRY_COMMAND = "/command";
// Framework & Service Constants
public static final String FRAMEWORK_NAME = "light";
public static final String METHOD_CONFIG_PREFIX = "methodconfig.";
public static final String LIGHT_4J = "Light4j";
public static final String SPRING_BOOT = "SpringBoot";
public static final String HYBRID_SERVICE_ID = "hybrid_service_id";
public static final String HYBRID_SERVICE_MAP = "hybrid_service_map";
public static final String HYBRID_SERVICE_DATA = "hybrid_service_data";
// Default Values & Configuration Constants
public static final String DEFAULT_VERSION = "1.0";
public static final String DEFAULT_VALUE = "default";
public static final String DEFAULT_CHARACTER = "utf-8";
public static final String UNKNOWN = "unknown";
public static final String NODE_TYPE_SERVICE = "service";
public static final String TAG_ENVIRONMENT = "environment";
public static final String PATH_SEPARATOR = "/";
// Rate Limiting Constants
public static final String RATELIMIT_LIMIT = "RateLimit-Limit";
public static final String RATELIMIT_REMAINING = "RateLimit-Remaining";
public static final String RATELIMIT_RESET = "RateLimit-Reset";
public static final String RETRY_AFTER = "Retry-After";
// Logging & Auditing Constants
public static final String AUDIT_LOGGER = "Audit";
public static final String STATUS = "Status";
public static final String STACK_TRACE = "StackTrace";
public static final String ERROR_MESSAGE = "errorMessage";
// Encoding & Compression Constants
public static final String ENCODE_GZIP = "gzip";
public static final String ENCODE_DEFLATE = "deflate";
// Miscellaneous Constants
public static final String REGISTRY_HEARTBEAT_SWITCHER = "RegistryHeartBeat";
public static final String RULE_ID = "ruleId";
}Generic utilities for UUID generation, encoding, version information, and various helper functions.
/**
* Generic utilities for UUID generation, encoding, etc.
*/
public class Util {
public static final List<String> METHODS; // List of HTTP methods
// UUID generation
public static String getUUID();
public static String getAlphaNumUUID();
// String utilities
public static String quote(String value);
// Network utilities
@Deprecated
public static InetAddress getInetAddress();
// Version information
public static String getJarVersion();
public static String getFrameworkVersion();
// Parsing utilities
public static int parseInteger(String intStr);
// URL encoding/decoding
public static String urlEncode(String value);
public static String urlDecode(String value);
// Template processing
public static String substituteVariables(String template, Map<String, String> variables);
// JWT utilities
public static Map<String, String> parseAttributes(String attributesString);
// Service identification
public static String getServiceId(Map<String, Object> jsonMap);
public static String getServiceId(String host, String service, String name, String version);
}Module and plugin registry for server info component providing dynamic component registration and discovery.
/**
* Module and plugin registry for server info component
*/
public class ModuleRegistry {
// Module registration
public static void registerModule(String configName, String moduleClass, Map<String, Object> config, List<String> masks);
public static Map<String, Object> getModuleRegistry();
public static List<String> getModuleClasses();
// Plugin registration
public static void registerPlugin(String pluginName, String pluginVersion, String configName, String pluginClass, Map<String, Object> config, List<String> masks);
public static Map<String, Object> getPluginRegistry();
public static List<Map<String, Object>> getPlugins();
public static List<String> getPluginClasses();
}Usage Examples:
import com.networknt.utility.Constants;
import com.networknt.utility.Util;
import com.networknt.utility.ModuleRegistry;
// Using framework constants
String correlationHeader = Constants.CORRELATION_ID_STRING; // "X-Correlation-Id"
String userIdClaim = Constants.USER_ID_STRING; // "user_id"
String jsonContentType = Constants.APPLICATION_JSON; // "application/json"
// Time calculations
long cacheExpiry = System.currentTimeMillis() + (5 * Constants.MINUTE_MILLS);
long dayInMillis = Constants.DAY_MILLS; // 86400000
// UUID generation
String uniqueId = Util.getUUID(); // Base64 URL-safe UUID
String alphaNumId = Util.getAlphaNumUUID(); // Alphanumeric only
// Service identification
String serviceId = Util.getServiceId("api.example.com", "user-service", "users", "1.0.0");
// Result: "api.example.com/user-service/users/1.0.0"
// Template variable substitution
String template = "Hello ${name}, welcome to ${service}";
Map<String, String> variables = Map.of("name", "Alice", "service", "UserAPI");
String result = Util.substituteVariables(template, variables);
// Result: "Hello Alice, welcome to UserAPI"
// URL encoding
String encoded = Util.urlEncode("hello world!"); // "hello%20world%21"
String decoded = Util.urlDecode(encoded); // "hello world!"
// Module registration
Map<String, Object> moduleConfig = Map.of(
"enabled", true,
"timeout", 5000
);
List<String> configMasks = Arrays.asList("password", "secret");
ModuleRegistry.registerModule(
"database-config",
"com.example.DatabaseModule",
moduleConfig,
configMasks
);
// Plugin registration
ModuleRegistry.registerPlugin(
"auth-plugin",
"1.2.0",
"auth-config",
"com.example.AuthPlugin",
Map.of("provider", "oauth2"),
Arrays.asList("clientSecret")
);
// Retrieve registered components
Map<String, Object> modules = ModuleRegistry.getModuleRegistry();
List<String> moduleClasses = ModuleRegistry.getModuleClasses();
List<Map<String, Object>> plugins = ModuleRegistry.getPlugins();
// Framework integration example
public class MicroserviceSetup {
public void configureService() {
// Use framework constants for consistent configuration
System.setProperty("framework.type", Constants.LIGHT_4J);
System.setProperty("protocol", Constants.PROTOCOL_HTTPS);
// Generate service identifiers
String serviceId = Util.getUUID();
String correlationId = Util.getAlphaNumUUID();
// Register service modules
ModuleRegistry.registerModule(
"service-config",
this.getClass().getName(),
getServiceConfig(),
getConfigMasks()
);
}
}Install with Tessl CLI
npx tessl i tessl/maven-com-networknt--utility