A comprehensive utility library for Light-4J microservices framework providing string manipulation, networking, I/O, security, and configuration utilities.
—
Configuration utilities for service mapping, path normalization, and key management in microservices environments. Designed for Light-4J framework configuration patterns and service discovery mechanisms.
Utility class providing configuration management functionality for service mapping and path normalization.
/**
* Configuration utilities for service mapping and path normalization
*/
public class ConfigUtils {
public static final String DELIMITOR = "@";
// Service mapping
public static String findServiceEntry(String method, String searchKey, Map<String, Object> mapping);
// Path operations
public static String normalisePath(String requestPath);
// Key management
public static String toInternalKey(String key);
public static String toInternalKey(String method, String path);
// Data normalization
public static Map<String, Object> normalizeMap(Map<String, Object> map, List<String> keysToNotSort);
public static List<?> normalizeList(List<?> list, List<String> keysToNotSort);
// Pattern matching
public static boolean matchesAny(String input, List<String> stringsToMatch);
}Usage Examples:
import com.networknt.utility.ConfigUtils;
import java.util.*;
// Service discovery and mapping
Map<String, Object> serviceMapping = Map.of(
"GET@/api/users", "UserService",
"POST@/api/orders", "OrderService",
"GET@/api/products/{id}", "ProductService"
);
String service = ConfigUtils.findServiceEntry("GET", "/api/users", serviceMapping);
// Result: "UserService"
// Path normalization
String normalizedPath = ConfigUtils.normalisePath("/api//users///123/");
// Result: "/api/users/123"
// Internal key generation
String methodPathKey = ConfigUtils.toInternalKey("GET", "/api/users");
// Result: "GET@/api/users"
String simpleKey = ConfigUtils.toInternalKey("user.config");
// Result: normalized internal key format
// Configuration map normalization
Map<String, Object> config = new HashMap<>();
config.put("database.host", "localhost");
config.put("database.port", 5432);
config.put("api.version", "v1");
List<String> preserveOrder = Arrays.asList("api.version");
Map<String, Object> normalized = ConfigUtils.normalizeMap(config, preserveOrder);
// Pattern matching for configuration
List<String> patterns = Arrays.asList("*.json", "*.yml", "*.properties");
boolean matches = ConfigUtils.matchesAny("config.json", patterns); // true
// Service routing example
public class ServiceRouter {
private final Map<String, Object> routingConfig;
public ServiceRouter(Map<String, Object> routingConfig) {
this.routingConfig = ConfigUtils.normalizeMap(routingConfig, null);
}
public String findService(String method, String path) {
String normalizedPath = ConfigUtils.normalisePath(path);
return ConfigUtils.findServiceEntry(method, normalizedPath, routingConfig);
}
}Install with Tessl CLI
npx tessl i tessl/maven-com-networknt--utility