private static String requireNonBlank(String s, String message) { if (s == null || s.isBlank()) { throw new IllegalArgumentException(message); } return s; }
public MetadataItem(Class<?> serviceProvider, Metadata holder) { providerName = serviceProvider.getName(); activateMethodName = holder.properties().getProperty(providerName + ACTIVATE_SUFFIX); var refs = holder.properties().getProperty(providerName + REFS_SUFFIX); if (refs != null && !refs.isBlank()) { var tokens = refs.split(COMMA); references = new ArrayList<>(tokens.length); for (String t : tokens) { references.add(new Reference(t, holder.module().getLayer())); } } else { references = List.of(); } }
@Override public JsonPersistence initialize(String defaultNamespace, Map<String, String> configuration, Set<String> managedDomains) { FDB fdb = FDB.selectAPIVersion(520); Database db = fdb.open(); String nodePrefixHex = configuration.get("foundationdb.directory.node-prefix.hex"); if (nodePrefixHex == null || nodePrefixHex.isBlank()) { nodePrefixHex = "0x23"; // default } String contentPrefixHex = configuration.get("foundationdb.directory.content-prefix.hex"); if (contentPrefixHex == null || contentPrefixHex.isBlank()) { contentPrefixHex = "0x24"; // default } int fragmentCapacityBytes = Integer.parseInt(ofNullable(configuration.get("persistence.fragment.capacity")).orElse("8192")); byte[] nodePrefix = hexToBytes(nodePrefixHex); byte[] contentPrefix = hexToBytes(contentPrefixHex); Directory directory = new DirectoryLayer(new Subspace(nodePrefix), new Subspace(contentPrefix)); FoundationDBPersistence persistence = new FoundationDBPersistence(new FoundationDBTransactionFactory(db), new DefaultFoundationDBDirectory(db, directory)); return new BufferedJsonPersistence(new DefaultFlattenedPersistence(persistence, fragmentCapacityBytes), fragmentCapacityBytes); }