private ControllerConfiguration[] copyControllerArray(ControllerConfiguration[] source) { ControllerConfiguration[] theCopy = new ControllerConfiguration[source.length]; for (int i = 0; i < source.length; i++) { theCopy[i] = new ControllerConfiguration(source[i]); } return theCopy; }
private String getOption(String optionName,String defaultValue) { if(controllerCfg!=null) { ObjectNode node=controllerCfg.getOptions(); if(node!=null) { JsonNode value=node.get(optionName); if(value!=null&&!value.isNull()) return value.asText(); } } return defaultValue; }
@Override public void initializeFromJson(JsonNode node) { if (node != null) { JsonNode x = node.get("controllers"); if (x instanceof ArrayNode) { List<ControllerConfiguration> list = new ArrayList<>(x.size()); for (Iterator<JsonNode> itr = ((ArrayNode) x).elements(); itr.hasNext();) { JsonNode controllerNode = itr.next(); ControllerConfiguration controller = new ControllerConfiguration(); controller.initializeFromJson(controllerNode); list.add(controller); } controllers = list.toArray(new ControllerConfiguration[list.size()]); } else { throw new IllegalArgumentException("'controllers' must be instanceof ArrayNode: " + node.toString()); } x=node.get("validateRequests"); if(x!=null) validateRequests=x.booleanValue(); } } }
private synchronized void initializeFactory() throws ClassNotFoundException, IllegalAccessException, InvocationTargetException, IOException, NoSuchMethodException, InstantiationException { if (factory == null) { JsonNode root; try (InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(CrudConfiguration.FILENAME)) { root = JsonUtils.json(is); } // convert root to Configuration object CrudConfiguration configuration = new CrudConfiguration(); configuration.initializeFromJson(root); // Set validation flag for all crud requests getJsonTranslator().setValidation(Request.class,configuration.isValidateRequests()); Factory f = new Factory(); f.addFieldConstraintValidators(new DefaultFieldConstraintValidators()); // Add default interceptors new UIDInterceptor().register(f.getInterceptors()); // validate if (!configuration.isValid()) { throw new IllegalStateException(CrudConstants.ERR_CONFIG_NOT_VALID + " - " + CrudConfiguration.FILENAME); } for (ControllerConfiguration x : configuration.getControllers()) { ControllerFactory cfactory = x.getControllerFactory().newInstance(); CRUDController controller = cfactory.createController(x, datasources); f.addCRUDController(x.getBackend(), controller); } // Make sure we assign factory after it is initialized. (factory is volatile, there's a memory barrier here) factory = f; } }
private ObjectNode findDomainNode(String domain) { ControllerConfiguration cfg=controller.getControllerConfiguration(); if(cfg!=null) { ObjectNode configNode=cfg.getExtensions(); if(configNode!=null) { JsonNode x=configNode.get("locking"); if(x instanceof ArrayNode) { ArrayNode arr=(ArrayNode)x; for(Iterator<JsonNode> domains=arr.elements(); domains.hasNext();) { x=domains.next(); if(x instanceof ObjectNode) { ObjectNode d=(ObjectNode)x; JsonNode domainName=d.get("domain"); if(domainName!=null&&domainName.asText().equals(domain)) return d; } } } } } return null; } }
for (Iterator<JsonNode> itr = ((ArrayNode) x).elements(); itr.hasNext();) { JsonNode controllerNode = itr.next(); ControllerConfiguration controller = new ControllerConfiguration(); controller.initializeFromJson(controllerNode); list.add(controller);
private synchronized void initializeFactory() throws ClassNotFoundException, IllegalAccessException, InvocationTargetException, IOException, NoSuchMethodException, InstantiationException { if (factory == null) { LOGGER.debug("Initializing factory"); if(crudConfiguration==null) initializeCrudConfiguration(); // Set validation flag for all crud requests getJsonTranslator().setValidation(Request.class, crudConfiguration.isValidateRequests()); Factory f = new Factory(); f.setBulkParallelExecutions(crudConfiguration.getBulkParallelExecutions()); f.setMemoryIndexThreshold(crudConfiguration.getMemoryIndexThreshold()); f.addFieldConstraintValidators(new DefaultFieldConstraintValidators()); f.setMaxResultSetSizeForReadsB(crudConfiguration.getMaxResultSetSizeForReadsB()); f.setWarnResultSetSizeB(crudConfiguration.getWarnResultSetSizeB()); f.setMaxResultSetSizeForWritesB(crudConfiguration.getMaxResultSetSizeForWritesB()); f.setMaxExecutionContextSizeForCompositeFindB(crudConfiguration.getMaxExecutionContextSizeForCompositeFindB()); // Add default interceptors new UIDInterceptor().register(f.getInterceptors()); new GeneratedFieldInterceptor().register(f.getInterceptors()); for (ControllerConfiguration x : crudConfiguration.getControllers()) { ControllerFactory cfactory = x.getControllerFactory().newInstance(); CRUDController controller = cfactory.createController(x, datasources); injectDependencies(controller); f.addCRUDController(x.getBackend(), controller); } // Make sure we assign factory after it is initialized. (factory is volatile, there's a memory barrier here) factory = f; LOGGER.info("Initialized factory: {}", factory); } }
@Override public String[] getLockingDomains() { List<String> list=new ArrayList<>(); LOGGER.debug("Getting configured locking domains"); ControllerConfiguration cfg=controller.getControllerConfiguration(); if(cfg!=null) { LOGGER.debug("Got controller configuration"); ObjectNode configNode=cfg.getExtensions(); if(configNode!=null) { LOGGER.debug("Extensions: {}",configNode); JsonNode x=configNode.get("locking"); if(x instanceof ArrayNode) { ArrayNode arr=(ArrayNode)x; LOGGER.debug("Locking:{}",arr); for(Iterator<JsonNode> domains=arr.elements(); domains.hasNext();) { x=domains.next(); if(x instanceof ObjectNode) { ObjectNode domain=(ObjectNode)x; JsonNode domainName=domain.get("domain"); if(domainName!=null) list.add(domainName.asText()); } } } } } LOGGER.debug("Domains:{}",list); return list.toArray(new String[list.size()]); }
for (Iterator<JsonNode> itr = ((ArrayNode) x).elements(); itr.hasNext();) { JsonNode controllerNode = itr.next(); ControllerConfiguration controller = new ControllerConfiguration(); controller.initializeFromJson(controllerNode); list.add(controller);
private synchronized void initializeFactory() throws ClassNotFoundException, IllegalAccessException, InvocationTargetException, IOException, NoSuchMethodException, InstantiationException { if (factory == null) { LOGGER.debug("Initializing factory"); if(crudConfiguration==null) initializeCrudConfiguration(); // Set validation flag for all crud requests getJsonTranslator().setValidation(Request.class, crudConfiguration.isValidateRequests()); Factory f = new Factory(); f.setBulkParallelExecutions(crudConfiguration.getBulkParallelExecutions()); f.setMemoryIndexThreshold(crudConfiguration.getMemoryIndexThreshold()); f.addFieldConstraintValidators(new DefaultFieldConstraintValidators()); f.setMaxResultSetSizeForReadsB(crudConfiguration.getMaxResultSetSizeForReadsB()); f.setWarnResultSetSizeB(crudConfiguration.getWarnResultSetSizeB()); f.setMaxResultSetSizeForWritesB(crudConfiguration.getMaxResultSetSizeForWritesB()); f.setMaxExecutionContextSizeForCompositeFindB(crudConfiguration.getMaxExecutionContextSizeForCompositeFindB()); // Add default interceptors new UIDInterceptor().register(f.getInterceptors()); new GeneratedFieldInterceptor().register(f.getInterceptors()); for (ControllerConfiguration x : crudConfiguration.getControllers()) { ControllerFactory cfactory = x.getControllerFactory().newInstance(); CRUDController controller = cfactory.createController(x, datasources); injectDependencies(controller); f.addCRUDController(x.getBackend(), controller); } // Make sure we assign factory after it is initialized. (factory is volatile, there's a memory barrier here) factory = f; LOGGER.info("Initialized factory: {}", factory); } }
if (cfg != null) { LOGGER.debug("Got controller configuration"); ObjectNode configNode = cfg.getExtensions(); if (configNode != null) { LOGGER.debug("Extensions: {}", configNode);
private ControllerConfiguration[] copyControllerArray(ControllerConfiguration[] source) { ControllerConfiguration[] theCopy = new ControllerConfiguration[source.length]; for (int i = 0; i < source.length; i++) { theCopy[i] = new ControllerConfiguration(source[i]); } return theCopy; }
public ConcurrentModificationDetectionCfg(ControllerConfiguration controllerCfg) { if(controllerCfg!=null) { ObjectNode options=controllerCfg.getOptions(); if(options!=null) { options=(ObjectNode)options.get("concurrentModification"); if(options!=null) { JsonNode value=options.get("detection"); if(value!=null) detect=options.asBoolean(); value=options.get("failureRetryCount"); if(value!=null) failureRetryCount=value.asInt(); value=options.get("reevaluateQueryForRetry"); if(value!=null) reevaluateQueryForRetry=value.asBoolean(); } } } }
private ObjectNode findDomainNode(String domain) { ControllerConfiguration cfg = controller.getControllerConfiguration(); if (cfg != null) { ObjectNode configNode = cfg.getExtensions(); if (configNode != null) { JsonNode x = configNode.get("locking"); if (x instanceof ArrayNode) { ArrayNode arr = (ArrayNode) x; for (Iterator<JsonNode> domains = arr.elements(); domains.hasNext();) { x = domains.next(); if (x instanceof ObjectNode) { ObjectNode d = (ObjectNode) x; JsonNode domainName = d.get("domain"); if (domainName != null && domainName.asText().equals(domain)) { return d; } } } } } } return null; } }
private ControllerConfiguration[] copyControllerArray(ControllerConfiguration[] source) { ControllerConfiguration[] theCopy = new ControllerConfiguration[source.length]; for (int i = 0; i < source.length; i++) { theCopy[i] = new ControllerConfiguration(source[i]); } return theCopy; }