use of io.kubernetes.client.proto.V1.Namespace in project JMRI by JMRI.
the class LocaleSelectorTest method testFindPartialCode.
public void testFindPartialCode() {
LocaleSelector.suffixes = new String[] { "kl_KL", "kl" };
Namespace xml = Namespace.XML_NAMESPACE;
Element el = new Element("foo").setAttribute("temp", "a").addContent(new Element("temp").setAttribute("lang", "aa_BB", xml).addContent("b")).addContent(new Element("temp").setAttribute("lang", "kl", xml).addContent("c")).addContent(new Element("temp").setAttribute("lang", "kl_AA", xml).addContent("d"));
String result = LocaleSelector.getAttribute(el, "temp");
Assert.assertEquals("find default", "c", result);
}
use of io.kubernetes.client.proto.V1.Namespace in project JMRI by JMRI.
the class LocaleSelectorTest method testFindFullCode.
public void testFindFullCode() {
LocaleSelector.suffixes = new String[] { "kl_KL", "kl" };
Namespace xml = Namespace.XML_NAMESPACE;
Element el = new Element("foo").setAttribute("temp", "a").addContent(new Element("temp").setAttribute("lang", "aa_BB", xml).addContent("b")).addContent(new Element("temp").setAttribute("lang", "kl", xml).addContent("b")).addContent(new Element("temp").setAttribute("lang", "kl_KL", xml).addContent("c"));
String result = LocaleSelector.getAttribute(el, "temp");
Assert.assertEquals("find default", "c", result);
}
use of io.kubernetes.client.proto.V1.Namespace in project JMRI by JMRI.
the class RevHistoryXml method loadRevision.
static void loadRevision(RevHistory r, Element e) {
Element s;
Namespace n = Namespace.getNamespace(NAMESPACE);
int revnumber = 0;
s = e.getChild("revnumber", n);
if (s != null) {
String c = s.getText();
revnumber = Integer.parseInt(c);
}
String date = null;
s = e.getChild("date", n);
if (s != null) {
date = s.getText();
}
String authorinitials = null;
s = e.getChild("authorinitials", n);
if (s != null) {
authorinitials = s.getText();
}
String revremark = null;
s = e.getChild("revremark", n);
if (s != null) {
revremark = s.getText();
}
r.addRevision(revnumber, date, authorinitials, revremark);
}
use of io.kubernetes.client.proto.V1.Namespace in project scylla by bptlab.
the class CommonProcessElementsParser method parse.
@Override
public CommonProcessElements parse(Element rootElement) throws ScyllaValidationException {
String definitionsId = rootElement.getAttributeValue("id");
Namespace bpmnNamespace = rootElement.getNamespace();
Map<String, GlobalTaskType> globalTasks = new HashMap<String, GlobalTaskType>();
Map<String, Element> globalTaskElements = new HashMap<String, Element>();
Map<String, Map<String, String>> resources = new HashMap<String, Map<String, String>>();
Map<String, Map<String, String>> messages = new HashMap<String, Map<String, String>>();
Map<String, Map<String, String>> errors = new HashMap<String, Map<String, String>>();
Map<String, Map<String, String>> escalations = new HashMap<String, Map<String, String>>();
// global tasks called by call activities
for (GlobalTaskType gtt : GlobalTaskType.values()) {
List<Element> gte = rootElement.getChildren(gtt.toString(), bpmnNamespace);
for (Element el : gte) {
String elementId = el.getAttributeValue("id");
globalTasks.put(elementId, gtt);
globalTaskElements.put(elementId, el);
}
}
// common elements: chapter 8.4 in BPMN 2.0.2 definition
List<Element> resourceElements = rootElement.getChildren("resource", bpmnNamespace);
for (Element el : resourceElements) {
Map<String, String> resource = new HashMap<String, String>();
String elementId = el.getAttributeValue("id");
String name = el.getAttributeValue("name");
if (name != null) {
resource.put("name", name);
}
resources.put(elementId, resource);
}
List<Element> messageElements = rootElement.getChildren("message", bpmnNamespace);
for (Element el : messageElements) {
Map<String, String> message = new HashMap<String, String>();
String elementId = el.getAttributeValue("id");
String name = el.getAttributeValue("name");
if (name != null) {
message.put("name", name);
}
messages.put(elementId, message);
}
List<Element> errorElements = rootElement.getChildren("error", bpmnNamespace);
for (Element el : errorElements) {
Map<String, String> error = new HashMap<String, String>();
String elementId = el.getAttributeValue("id");
String name = el.getAttributeValue("name");
if (name != null) {
error.put("name", name);
}
String errorCode = el.getAttributeValue("errorCode");
if (errorCode != null) {
error.put("errorCode", errorCode);
}
errors.put(elementId, error);
}
List<Element> escalationElements = rootElement.getChildren("escalation", bpmnNamespace);
for (Element el : escalationElements) {
Map<String, String> escalation = new HashMap<String, String>();
String elementId = el.getAttributeValue("id");
String name = el.getAttributeValue("name");
if (name != null) {
escalation.put("name", name);
}
String escalationCode = el.getAttributeValue("escalationCode");
if (escalationCode != null) {
escalation.put("escalationCode", escalationCode);
}
escalations.put(elementId, escalation);
}
CommonProcessElements commonProcessElements = new CommonProcessElements(definitionsId, globalTasks, globalTaskElements, resources, messages, errors, escalations);
return commonProcessElements;
}
use of io.kubernetes.client.proto.V1.Namespace in project scylla by bptlab.
the class ProcessModelParser method parseExtensions.
private Map<Integer, BatchActivity> parseExtensions(Element el, Namespace bpmnNamespace, Integer nodeId, Map<Integer, BatchActivity> batchActivities) throws ScyllaValidationException {
// Check that only elements with extensions get parsed
if (el.getChild("extensionElements", bpmnNamespace) == null)
return batchActivities;
String id = el.getAttributeValue("id");
Namespace camundaNamespace = Namespace.getNamespace("camunda", "http://camunda.org/schema/1.0/bpmn");
List<Namespace> namespaces = Arrays.asList(camundaNamespace, bpmnNamespace);
Predicate<Namespace> isOneOfUsedNamespaces = namespace -> el.getChild("extensionElements", bpmnNamespace).getChild("properties", namespace) == null;
if (namespaces.stream().allMatch(isOneOfUsedNamespaces))
return batchActivities;
Integer maxBatchSize = null;
BatchClusterExecutionType executionType = BatchClusterExecutionType.PARALLEL;
ActivationRule activationRule = null;
List<String> groupingCharacteristic = new ArrayList<String>();
for (Namespace namespace : namespaces) {
if (el.getChild("extensionElements", bpmnNamespace).getChild("properties", namespace) == null)
continue;
List<Element> propertiesList = el.getChild("extensionElements", bpmnNamespace).getChild("properties", namespace).getChildren("property", namespace);
for (Element property : propertiesList) {
// maximum batch size
switch(property.getAttributeValue("name")) {
case "maxBatchSize":
maxBatchSize = Integer.parseInt(property.getAttributeValue("value"));
break;
// execution type. if none is defined, take parallel as default
case "executionType":
String tmpExecutionType = property.getAttributeValue("value");
/*if (!(tmpExecutionType.equals("parallel") || tmpExecutionType.equals("sequential-taskbased") || tmpExecutionType.equals("sequential-casebased"))){
throw new ScyllaValidationException("Execution type " + tmpExecutionType + " not supported. Pleause us either parallel or sequential (either task or case-based)");
}
BatchClusterExecutionType bce = BatchClusterExecutionType.PARALLEL;
executionType = property.getAttributeValue("value");*/
switch(property.getAttributeValue("value")) {
case "parallel":
executionType = BatchClusterExecutionType.PARALLEL;
case "sequential-taskbased":
executionType = BatchClusterExecutionType.SEQUENTIAL_TASKBASED;
case "sequential-casebased":
executionType = BatchClusterExecutionType.SEQUENTIAL_CASEBASED;
}
break;
// grouping characteristic
case "groupingCharacteristic":
List<Element> groupings = property.getChildren("property", namespace);
for (Element grouping : groupings) {
if (grouping.getAttributeValue("name").equals("processVariable")) {
groupingCharacteristic.add(grouping.getAttributeValue("value"));
}
}
break;
// threshold capacity (minimum batch size) & timeout of activation rule
case "activationRule":
List<Element> ruleElements = property.getChildren("property", namespace);
if (ruleElements.size() != 1) {
throw new ScyllaValidationException("There must be exactly one activation rule for batch activity " + id + ", but there are " + ruleElements.size() + ".");
}
Element ruleElement = property.getChild("property", namespace);
String ruleElementName = ruleElement.getName();
switch(ruleElement.getAttributeValue("name")) {
case "thresholdRule":
// parsing threshold, if it is defined
int threshold = 0;
String thresholdString = ruleElement.getAttributeValue("threshold");
if (thresholdString != null && !thresholdString.isEmpty()) {
threshold = Integer.parseInt(thresholdString);
}
// parsing timeout, if it is defined
Duration timeout = null;
String timeoutString = ruleElement.getAttributeValue("timeout");
if (timeoutString != null) {
timeout = Duration.parse(timeoutString);
}
// parsing dueDate, if it is defined
String dueDate = ruleElement.getAttributeValue("duedate");
// either timeout or dueDate should not be null --> two different Constructors for the ThresholdRule
if (timeout != null) {
activationRule = new ThresholdRule(threshold, timeout);
} else if (dueDate != null) {
activationRule = new ThresholdRule(threshold, dueDate);
} else {
throw new ScyllaValidationException("A threshold rule was selected for" + ruleElementName + " then either timeout or duedate must be specified.");
}
break;
case "minMaxRule":
int minInstances = Integer.parseInt(ruleElement.getAttributeValue("minInstances"));
Duration minTimeout = Duration.parse(ruleElement.getAttributeValue("minTimeout"));
int maxInstances = Integer.parseInt(ruleElement.getAttributeValue("maxInstances"));
Duration maxTimeout = Duration.parse(ruleElement.getAttributeValue("maxTimeout"));
activationRule = new MinMaxRule(minInstances, minTimeout, maxInstances, maxTimeout);
break;
default:
throw new ScyllaValidationException("Activation rule type" + ruleElementName + " for batch activity " + id + " not supported.");
}
break;
}
}
}
if (maxBatchSize == null) {
throw new ScyllaValidationException("You have to specify a maxBatchSize at " + id + " .");
}
/*if (groupingCharacteristic.isEmpty()){
throw new ScyllaValidationException("You have to specify at least one groupingCharacteristic at "+ id +" .");
}*/
BatchActivity ba = new BatchActivity(nodeId, maxBatchSize, executionType, activationRule, groupingCharacteristic);
batchActivities.put(nodeId, ba);
return batchActivities;
/*System.out.println(maxBatchSize);
System.out.println(groupingCharacteristic);
System.out.println(activationRule);*/
}
Aggregations