http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/java/org/apache/falcon/resource/InstancesSummaryResult.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/resource/InstancesSummaryResult.java b/client/src/main/java/org/apache/falcon/resource/InstancesSummaryResult.java deleted file mode 100644 index aa0db99..0000000 --- a/client/src/main/java/org/apache/falcon/resource/InstancesSummaryResult.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.falcon.resource; - -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlRootElement; -import java.util.Map; - -/** - * Pojo for JAXB marshalling / unmarshalling. - */ - -//SUSPEND CHECKSTYLE CHECK VisibilityModifierCheck -@XmlRootElement [email protected]({"EI_EXPOSE_REP", "EI_EXPOSE_REP2"}) -public class InstancesSummaryResult extends APIResult { - - /** - * RestAPI supports filterBy these fields of instanceSummary. - */ - public static enum InstanceSummaryFilterFields { - STATUS, CLUSTER - } - - @XmlElement - private InstanceSummary[] instancesSummary; - - private InstancesSummaryResult() { // for jaxb - super(); - } - - public InstancesSummaryResult(Status status, String message) { - super(status, message); - } - - public InstanceSummary[] getInstancesSummary() { - return instancesSummary; - } - - public void setInstancesSummary(InstanceSummary[] instancesSummary) { - this.instancesSummary = instancesSummary; - } - - @Override - public Object[] getCollection() { - return getInstancesSummary(); - } - - @Override - public void setCollection(Object[] items) { - if (items == null) { - setInstancesSummary(new InstanceSummary[0]); - } else { - InstanceSummary[] newInstances = new InstanceSummary[items.length]; - for (int index = 0; index < items.length; index++) { - newInstances[index] = (InstanceSummary)items[index]; - } - setInstancesSummary(newInstances); - } - } - - /** - * A single instance object inside instance result. - */ - @XmlRootElement(name = "instance-summary") - public static class InstanceSummary { - - @XmlElement - public String cluster; - @XmlElementWrapper(name="map") - public Map<String, Long> summaryMap; - - public InstanceSummary() { - } - - public InstanceSummary(String cluster, Map<String, Long> summaryMap) { - this.cluster = cluster; - this.summaryMap = summaryMap; - } - - public Map<String, Long> getSummaryMap() { - return summaryMap; - } - - public String getCluster() { - return cluster; - } - - @Override - public String toString() { - return "cluster: " + (this.cluster == null ? "" : this.cluster) - + "summaryMap: " + summaryMap.toString(); - } - } - -} -//RESUME CHECKSTYLE CHECK VisibilityModifierCheck
http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/java/org/apache/falcon/resource/LineageGraphResult.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/resource/LineageGraphResult.java b/client/src/main/java/org/apache/falcon/resource/LineageGraphResult.java deleted file mode 100644 index 0e10e38..0000000 --- a/client/src/main/java/org/apache/falcon/resource/LineageGraphResult.java +++ /dev/null @@ -1,191 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.falcon.resource; - -import org.apache.commons.lang3.StringUtils; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -/** - * LineageGraphResult is the output returned by all the apis returning a DAG. - */ -@XmlRootElement(name = "result") -@XmlAccessorType (XmlAccessType.FIELD) [email protected]({"EI_EXPOSE_REP", "EI_EXPOSE_REP2"}) -public class LineageGraphResult { - - private String[] vertices; - - @XmlElement(name="edges") - private Edge[] edges; - - private static final JAXBContext JAXB_CONTEXT; - - static { - try { - JAXB_CONTEXT = JAXBContext.newInstance(LineageGraphResult.class); - } catch (JAXBException e) { - throw new RuntimeException(e); - } - } - - public LineageGraphResult() { - // default constructor for JAXB - } - - /** - * A class to represent an edge in a DAG. - */ - @XmlRootElement(name = "edge") - @XmlAccessorType(XmlAccessType.FIELD) - public static class Edge { - @XmlElement - private String from; - @XmlElement - private String to; - @XmlElement - private String label; - - public Edge() { - - } - - public Edge(String from, String to, String label) { - this.from = from; - this.to = to; - this.label = label; - } - - public String getFrom() { - return from; - } - - public void setFrom(String from) { - this.from = from; - } - - public String getTo() { - return to; - } - - public void setTo(String to) { - this.to = to; - } - - public String getLabel() { - return label; - } - - public void setLabel(String label) { - this.label = label; - } - - public String getDotNotation() { - StringBuilder result = new StringBuilder(); - if (StringUtils.isNotBlank(this.from) && StringUtils.isNotBlank(this.to) - && StringUtils.isNotBlank(this.label)) { - result.append("\"" + this.from +"\""); - result.append(" -> "); - result.append("\"" + this.to + "\""); - result.append(" [ label = \"" + this.label + "\" ] \n"); - } - return result.toString(); - } - - @Override - public String toString() { - return getDotNotation(); - } - - @Override - public boolean equals(Object o) { - if (o == this) { - return true; - } - - if (o == null || getClass() != o.getClass()) { - return false; - } - - Edge that = (Edge) o; - if (StringUtils.equals(that.getLabel(), label) && StringUtils.equals(that.getFrom(), from) - && StringUtils.equals(that.getTo(), to)) { - return true; - } - return false; - } - - @Override - public int hashCode() { - int result = from != null ? from.hashCode() : 0; - result = 31 * result + (to != null ? to.hashCode() : 0); - result = 31 * result + (label != null ? label.hashCode() : 0); - return result; - } - - } - - - public String getDotNotation() { - StringBuilder result = new StringBuilder(); - result.append("digraph g{ \n"); - if (this.vertices != null) { - for (String v : this.vertices) { - result.append("\"" + v + "\""); - result.append("\n"); - } - } - - if (this.edges != null) { - for (Edge e : this.edges) { - result.append(e.getDotNotation()); - } - } - result.append("}\n"); - return result.toString(); - } - - public String[] getVertices() { - return vertices; - } - - public void setVertices(String[] vertices) { - this.vertices = vertices; - } - - public Edge[] getEdges() { - return edges; - } - - public void setEdges(Edge[] edges) { - this.edges = edges; - } - - - @Override - public String toString() { - return getDotNotation(); - } - -} http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstance.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstance.java b/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstance.java deleted file mode 100644 index 0968734..0000000 --- a/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstance.java +++ /dev/null @@ -1,175 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.falcon.resource; - -import org.apache.commons.lang3.StringUtils; -import org.apache.falcon.entity.v0.EntityType; -import org.apache.falcon.entity.v0.SchemaHelper; - -import java.util.Date; - -/** - * Instance of a Schedulable Entity (Feed/Process). - */ -public class SchedulableEntityInstance implements Comparable<SchedulableEntityInstance> { - - public static final String INPUT = "Input"; - public static final String OUTPUT = "Output"; - - private String entityName; - - private String cluster; - - private Date instanceTime; - - private EntityType entityType; - - private String tags; - - //for JAXB - private SchedulableEntityInstance() { - - } - - public SchedulableEntityInstance(String entityName, String cluster, Date instanceTime, EntityType type) { - this.entityName = entityName; - this.cluster = cluster; - this.entityType = type; - if (instanceTime != null) { - this.instanceTime = new Date(instanceTime.getTime()); - } - } - - public String getTags() { - return tags; - } - - public void setTags(String tags) { - this.tags = tags; - } - - public String getEntityName() { - return entityName; - } - - public void setEntityName(String entityName) { - this.entityName = entityName; - } - - public String getCluster() { - return cluster; - } - - public void setCluster(String cluster) { - this.cluster = cluster; - } - - public EntityType getEntityType() { - return entityType; - } - - public void setEntityType(EntityType entityType) { - this.entityType = entityType; - } - - public Date getInstanceTime() { - return new Date(instanceTime.getTime()); - } - - public void setInstanceTime(Date instanceTime) { - this.instanceTime = new Date(instanceTime.getTime()); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("name: " + entityName - + ", type: " + entityType - + ", cluster: " + cluster - + ", instanceTime: " + SchemaHelper.formatDateUTC(instanceTime)); - sb.append(", tags: " + ((tags != null) ? tags : "")); - return sb.toString(); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - SchedulableEntityInstance that = (SchedulableEntityInstance) o; - - if (instanceTime == null ? that.instanceTime != null : !instanceTime.equals(that.instanceTime)) { - return false; - } - - if (!entityType.equals(that.entityType)) { - return false; - } - - if (!StringUtils.equals(entityName, that.entityName)) { - return false; - } - - if (!StringUtils.equals(cluster, that.cluster)) { - return false; - } - - if (!StringUtils.equals(tags, that.tags)) { - return false; - } - - return true; - } - - @Override - public int hashCode() { - int result = instanceTime.hashCode(); - result = 31 * result + entityName.hashCode(); - result = 31 * result + entityType.hashCode(); - result = 31 * result + cluster.hashCode(); - if (tags != null) { - result = 31 * result + tags.hashCode(); - } - return result; - } - - @Override - public int compareTo(SchedulableEntityInstance o) { - int result = this.cluster.compareTo(o.cluster); - if (result != 0) { - return result; - } - - result = this.entityType.compareTo(o.entityType); - if (result != 0) { - return result; - } - - result = this.entityName.compareToIgnoreCase(o.entityName); - if (result != 0) { - return result; - } - - return this.instanceTime.compareTo(o.instanceTime); - } -} http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstanceResult.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstanceResult.java b/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstanceResult.java deleted file mode 100644 index 752c48d..0000000 --- a/client/src/main/java/org/apache/falcon/resource/SchedulableEntityInstanceResult.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.falcon.resource; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import java.util.Arrays; - -/** - * Instances list used for marshalling / unmarshalling with REST calls. - */ -@XmlRootElement(name = "instances") -@XmlAccessorType(XmlAccessType.FIELD) [email protected]({"EI_EXPOSE_REP", "EI_EXPOSE_REP2"}) -public class SchedulableEntityInstanceResult extends APIResult { - - @XmlElement(name = "instances") - private SchedulableEntityInstance[] instances; - - //For JAXB - private SchedulableEntityInstanceResult() { - super(); - } - - public SchedulableEntityInstanceResult(Status status, String message) { - super(status, message); - } - - public SchedulableEntityInstance[] getInstances() { - return instances; - } - - public void setInstances(SchedulableEntityInstance[] instances) { - this.instances = instances; - } - - - @Override - public Object[] getCollection() { - return getInstances(); - } - - @Override - public void setCollection(Object[] items) { - if (items == null) { - setInstances(new SchedulableEntityInstance[0]); - } else { - SchedulableEntityInstance[] newInstances = new SchedulableEntityInstance[items.length]; - for (int index = 0; index < items.length; index++) { - newInstances[index] = (SchedulableEntityInstance)items[index]; - } - setInstances(newInstances); - } - } - - @Override - public String toString() { - StringBuilder buffer = new StringBuilder(); - if (instances != null) { - Arrays.sort(instances); - for (SchedulableEntityInstance element : instances) { - buffer.append(element.toString()); - buffer.append("\n"); - } - } - return buffer.toString(); - } -} http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/java/org/apache/falcon/resource/TriageResult.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/falcon/resource/TriageResult.java b/client/src/main/java/org/apache/falcon/resource/TriageResult.java deleted file mode 100644 index 131e2e1..0000000 --- a/client/src/main/java/org/apache/falcon/resource/TriageResult.java +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.falcon.resource; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; - -/** - * Resut for instance triage. - */ -@XmlRootElement(name = "triage") -@XmlAccessorType(XmlAccessType.FIELD) [email protected]({"EI_EXPOSE_REP", "EI_EXPOSE_REP2"}) -public class TriageResult extends APIResult { - - @XmlElement(name = "triageGraphs") - private LineageGraphResult[] triageGraphs; - - //For JAXB - private TriageResult() { - super(); - } - - public TriageResult(Status status, String message) { - super(status, message); - } - - - - public LineageGraphResult[] getTriageGraphs() { - return triageGraphs; - } - - public void setTriageGraphs(LineageGraphResult[] triageGraphs) { - this.triageGraphs = triageGraphs; - } - - - @Override - public Object[] getCollection() { - return getTriageGraphs(); - } - - - @Override - public void setCollection(Object[] items) { - if (items == null) { - setTriageGraphs(new LineageGraphResult[0]); - } else { - LineageGraphResult[] graphs = new LineageGraphResult[items.length]; - for (int index = 0; index < items.length; index++) { - graphs[index] = (LineageGraphResult)items[index]; - } - setTriageGraphs(graphs); - } - } - - @Override - public String toString() { - StringBuilder buffer = new StringBuilder(); - if (triageGraphs != null) { - for (LineageGraphResult graph : triageGraphs) { - buffer.append(graph.getDotNotation()); - buffer.append("\n\n"); - } - } - return buffer.toString(); - } -} http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/resources/cluster-0.1.xsd ---------------------------------------------------------------------- diff --git a/client/src/main/resources/cluster-0.1.xsd b/client/src/main/resources/cluster-0.1.xsd deleted file mode 100644 index 03e9f84..0000000 --- a/client/src/main/resources/cluster-0.1.xsd +++ /dev/null @@ -1,214 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" - targetNamespace="uri:falcon:cluster:0.1" xmlns="uri:falcon:cluster:0.1" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"> - <xs:annotation> - <xs:documentation> - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version - 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. - See the License for the specific language governing permissions and - limitations under the License. - </xs:documentation> - <xs:appinfo> - <jaxb:schemaBindings> - <jaxb:package name="org.apache.falcon.entity.v0.cluster"/> - </jaxb:schemaBindings> - </xs:appinfo> - </xs:annotation> - <xs:element name="cluster" type="cluster"> - </xs:element> - <xs:complexType name="cluster"> - <xs:annotation> - <xs:documentation>The cluster contains the definition of different - interfaces which are used by Falcon like readonly, write, workflow and messaging. - A cluster is referenced by feeds and processes which are on-boarded - to Falcon by its name. - name: the name of cluster, which must be unique. - colo: the name of the colo to which this cluster belongs to. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="KEY_VALUE_PAIR" name="tags" minOccurs="0"> - <xs:annotation> - <xs:documentation> - tags: a process specifies an optional list of comma separated tags, - Key Value Pairs, separated by comma, - which is used for classification of processes. - Example: [email protected], [email protected], department=forecasting - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element type="interfaces" name="interfaces"/> - <xs:element type="locations" name="locations"/> - <xs:element type="ACL" name="ACL" minOccurs="0" maxOccurs="1"/> - <xs:element type="properties" name="properties" minOccurs="0"/> - </xs:sequence> - <xs:attribute type="IDENTIFIER" name="name" use="required"/> - <xs:attribute type="xs:string" name="description"/> - <xs:attribute type="xs:string" name="colo" use="required"/> - <xs:attribute type="xs:int" name="version" use="optional" default="0"/> - </xs:complexType> - <xs:complexType name="locations"> - <xs:annotation> - <xs:documentation>A list of locations on cluster. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="location" name="location" maxOccurs="unbounded" minOccurs="1"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="property"> - <xs:annotation> - <xs:documentation> - A key-value pair, which are propagated to the - workflow engine. - Ideally the Mapred's job queue name (queueName) and - JMS impl class nameof messaging engine (brokerImplClass) - should be defined here. - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="name" use="required"/> - <xs:attribute type="xs:string" name="value" use="required"/> - </xs:complexType> - <xs:complexType name="interface"> - <xs:annotation> - <xs:documentation> - An interface specifies the interface type, Falcon uses it to schedule - entities in workflow engine, to save and read data from hadoop and to - publish messages to messaging engine. - endpoint: is the url for each interface; examples: for write it is the - url of hdfs (fs.defaultFS) and - for workflow it is url of workflow engine like oozie. - version: The current runtime version of each interface. - </xs:documentation> - </xs:annotation> - <xs:attribute type="interfacetype" name="type" use="required"/> - <xs:attribute type="xs:string" name="endpoint" use="required"/> - <xs:attribute type="xs:string" name="version" use="required"/> - </xs:complexType> - <xs:complexType name="properties"> - <xs:annotation> - <xs:documentation> - A list of property elements. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="property" name="property" maxOccurs="unbounded" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="location"> - <xs:annotation> - <xs:documentation> - Location has the name and the path. - name: is the type of locations which can be - staging, temp and working only. - staging is a mandatory type. - path: the hdfs path for each location. - Falcon would use the location to do intermediate - processing of entities in hdfs and hence Falcon - should have read/write/execute permission on these - locations. - </xs:documentation> - </xs:annotation> - <xs:attribute type="cluster-location-type" name="name" use="required"/> - <xs:attribute type="xs:string" name="path" use="required"/> - </xs:complexType> - <xs:complexType name="interfaces"> - <xs:annotation> - <xs:documentation> - A list of interfaces. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="interface" name="interface" maxOccurs="unbounded" minOccurs="3"/> - </xs:sequence> - </xs:complexType> - <xs:simpleType name="interfacetype"> - <xs:annotation> - <xs:documentation> - An interface has 6 different interface types: readonly, write, - execute, workflow, messaging, registry. - readonly specifies the hadoop's hftp address, it's endpoint is the value of - dfs.http.address.ex: hftp://corp.namenode:50070/ - write specifies the interface to write to hdfs, it's endpoint is the value - of fs.defaultFS ex: hdfs://corp.namenode:8020 - execute specifies the interface for job tracker, it's endpoint is the value - of mapreduce.jobtracker.address. ex:corp.jt:8021 - workflow specifies the interface for workflow engine, example of it's - endpoint is value for OOZIE_URL.ex: http://corp.oozie:11000/oozie - messaging specifies the interface for sending feed availability messages, it's - endpoint is broker url with tcp address.ex: tcp://corp.messaging:61616?daemon=true - registry specifies the interface for Hcatalog. - spark specifies the interface for spark master. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="readonly"/> - <xs:enumeration value="write"/> - <xs:enumeration value="execute"/> - <xs:enumeration value="workflow"/> - <xs:enumeration value="messaging"/> - <xs:enumeration value="registry"/> - <xs:enumeration value="spark"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="IDENTIFIER"> - <xs:restriction base="xs:string"> - <xs:pattern value="(([a-zA-Z]([\-a-zA-Z0-9])*){1,39})"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="KEY_VALUE_PAIR"> - <xs:restriction base="xs:string"> - <xs:pattern value="([\w_]+=[^,]+)?([,]?[ ]*[\w_]+=[^,]+)*"/> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="ACL"> - <xs:annotation> - <xs:documentation> - Access control list for this cluster. - owner is the Owner of this entity. - group is the one which has access to read - not used at this time. - permission is not enforced at this time - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="owner"/> - <xs:attribute type="xs:string" name="group"/> - <xs:attribute type="xs:string" name="permission" default="*"/> - </xs:complexType> - <xs:simpleType name="cluster-location-type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="staging"/> - <xs:enumeration value="working"/> - <xs:enumeration value="temp"/> - </xs:restriction> - </xs:simpleType> -</xs:schema> http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/resources/datasource-0.1.xsd ---------------------------------------------------------------------- diff --git a/client/src/main/resources/datasource-0.1.xsd b/client/src/main/resources/datasource-0.1.xsd deleted file mode 100644 index d78d967..0000000 --- a/client/src/main/resources/datasource-0.1.xsd +++ /dev/null @@ -1,282 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" - targetNamespace="uri:falcon:datasource:0.1" xmlns="uri:falcon:datasource:0.1" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"> - <xs:annotation> - <xs:documentation> - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version - 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. - See the License for the specific language governing permissions and - limitations under the License. - </xs:documentation> - <xs:appinfo> - <jaxb:schemaBindings> - <jaxb:package name="org.apache.falcon.entity.v0.datasource"/> - </jaxb:schemaBindings> - </xs:appinfo> - </xs:annotation> - <xs:element name="datasource" type="datasource"> - </xs:element> - <xs:complexType name="datasource"> - <xs:annotation> - <xs:documentation>The datasource contains various information required - to connect to a data source like a MySQL datasource or Kafka cluster. - A datasource is referenced by feeds that represent an object like - Table (or Topic) in the MySQL database (or Kafka Cluster). - name: the name of datasource, which must be unique. - colo: the name of the colo to which this datasource belongs to. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="KEY_VALUE_PAIR" name="tags" minOccurs="0" maxOccurs="1"> - <xs:annotation> - <xs:documentation> - tags: a process specifies an optional list of comma separated tags, - Key Value Pairs, separated by comma, - which is used for classification of datasource entity. - Example: [email protected], [email protected], department=forecasting - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element type="interfaces" name="interfaces"/> - <xs:element type="driver" name="driver" minOccurs="1" maxOccurs="1" /> - <xs:element type="properties" name="properties" minOccurs="0"/> - <xs:element type="ACL" name="ACL" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - <xs:attribute type="IDENTIFIER" name="name" use="required"/> - <xs:attribute type="xs:string" name="colo" use="required"/> - <xs:attribute type="xs:string" name="description"/> - <xs:attribute type="xs:int" name="version" use="optional" default="0"/> - <xs:attribute type="datasource-type" name="type" use="required"> - <xs:annotation> - <xs:documentation> - datasource type could be Relational Databases (MySQL, Oracle etc.), Messgaing systems like - Kafka, etc. - </xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:complexType> - <xs:complexType name="property"> - <xs:annotation> - <xs:documentation> - A key-value pair to pass in any datasource specific properties. - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="name" use="required"/> - <xs:attribute type="xs:string" name="value" use="required"/> - </xs:complexType> - <xs:complexType name="interface"> - <xs:annotation> - <xs:documentation> - An interface specifies the interface type (read or write), and an - endpoint url. Falcon uses these endpoints to import or export - data from datasources. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="driver" name="driver" minOccurs="0" maxOccurs="1" /> - <xs:element type="credential" name="credential" minOccurs="0" maxOccurs="1"/> - <xs:element type="properties" name="properties" minOccurs="0"/> - </xs:sequence> - <xs:attribute type="interfacetype" name="type" use="required"/> - <xs:attribute type="xs:string" name="endpoint" use="required"/> - </xs:complexType> - <xs:complexType name="properties"> - <xs:annotation> - <xs:documentation> - A list of property elements. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="property" name="property" maxOccurs="unbounded" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="interfaces"> - <xs:annotation> - <xs:documentation> - A list of interfaces. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="interface" name="interface" maxOccurs="2" minOccurs="1"/> - <xs:element type="credential" name="credential" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - </xs:complexType> - <xs:simpleType name="interfacetype"> - <xs:annotation> - <xs:documentation> - An interface for datasource has 2 different interface types: readonly, write. - The readonly endpoint specifies the url/mechanism to use for data IMPORT operation - from a datasource while write endpoint specifies the url/mechanism to use for data - EXPORT operatrion. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="readonly"/> - <xs:enumeration value="write"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="IDENTIFIER"> - <xs:restriction base="xs:string"> - <xs:pattern value="(([a-zA-Z]([\-a-zA-Z0-9])*){1,39})"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="KEY_VALUE_PAIR"> - <xs:restriction base="xs:string"> - <xs:pattern value="([\w_]+=[^,]+)?([,]?[ ]*[\w_]+=[^,]+)*"/> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="credential"> - <xs:sequence minOccurs="1" maxOccurs="1" > - <xs:element name="userName" minOccurs="1" maxOccurs="1" type="xs:string"> - <xs:annotation> - <xs:documentation> - The User for the datasource. - </xs:documentation> - </xs:annotation> - </xs:element> - - <xs:choice minOccurs="1" maxOccurs="1"> - <xs:element name="passwordFile" type="xs:string"> - <xs:annotation> - <xs:documentation> - The FQ path to a file on HDFS containing the datasource - server password with 400 permissions. Only the user - submitting the job has read access to this file which - will be securely passed to the mappers. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="passwordText" type="xs:string"> - <xs:annotation> - <xs:documentation> - Plain text password. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="passwordAlias" type="passwordAliasType"> - <xs:annotation> - <xs:documentation> - Password alias using hadoop credential store. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:choice> - </xs:sequence> - <xs:attribute name="type" type="credentialtype" use="required"/> - </xs:complexType> - <xs:complexType name="passwordAliasType"> - <xs:sequence minOccurs="1" maxOccurs="1"> - <xs:element name="alias" type="xs:string"> - <xs:annotation> - <xs:documentation> Provide password alias. </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element name="providerPath" type="xs:string"> - <xs:annotation> - <xs:documentation>jceks provider HDFS file path </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - <xs:simpleType name="credentialtype"> - <xs:annotation> - <xs:documentation> - user-password credentials are supported today which can be extended. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="password-file" /> - <xs:enumeration value="password-text" /> - <xs:enumeration value="password-alias" /> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="datasource-type"> - <xs:annotation> - <xs:documentation> - The datasource type can be MySQL, ORACLE, Teradata etc. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="mysql"/> - <xs:enumeration value="oracle"/> - <xs:enumeration value="hsql"/> - <xs:enumeration value="postgres"/> - <xs:enumeration value="db2"/> - <xs:enumeration value="netezza"/> - <xs:enumeration value="teradata"/> - <xs:enumeration value="generic"/> - </xs:restriction> - </xs:simpleType> - - <xs:complexType name="driver"> - <xs:annotation> - <xs:documentation> - Driver information. - </xs:documentation> - </xs:annotation> - <xs:sequence minOccurs="1" maxOccurs="1"> - <xs:element type="xs:string" name="clazz" minOccurs="1" maxOccurs="1"> - <xs:annotation> - <xs:documentation> - Fully qualified class name for the datasource driver used - for validating the datasource connection in Falcon. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element type="xs:string" name="jar" minOccurs="1" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation> - Path to the connector jar files on HDFS thats shipped with the workflow. - You'd need to put the connector jar files in oozie sharelib and since this - is using all the latest features in sqoop 1.x, requires 1.5 snapshot. - </xs:documentation> - </xs:annotation> - </xs:element> - </xs:sequence> - </xs:complexType> - <xs:complexType name="ACL"> - <xs:annotation> - <xs:documentation> - Access control list for this Entity. - owner is the Owner of this entity. - group is the one which has access to read - not used at this time. - permission is not enforced at this time - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="owner"/> - <xs:attribute type="xs:string" name="group"/> - <xs:attribute type="xs:string" name="permission" default="*"/> - </xs:complexType> -</xs:schema> http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/resources/feed-0.1.xsd ---------------------------------------------------------------------- diff --git a/client/src/main/resources/feed-0.1.xsd b/client/src/main/resources/feed-0.1.xsd deleted file mode 100644 index cbc97b9..0000000 --- a/client/src/main/resources/feed-0.1.xsd +++ /dev/null @@ -1,578 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" - targetNamespace="uri:falcon:feed:0.1" xmlns="uri:falcon:feed:0.1" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.1"> - - <xs:annotation> - <xs:documentation> - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for - additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version - 2.0 - (the "License"); you may not use this file - except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in - writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. - See the License - for the specific language governing permissions and - limitations under the License. - </xs:documentation> - <xs:appinfo> - <jaxb:schemaBindings> - <jaxb:package name="org.apache.falcon.entity.v0.feed"/> - </jaxb:schemaBindings> - </xs:appinfo> - </xs:annotation> - - <xs:element name="feed" type="feed"> - </xs:element> - <xs:complexType name="feed"> - <xs:annotation> - <xs:documentation> - name: A feed should have a unique name and this name is referenced - by processes as input or output feed. - tags: a feed specifies an optional list of comma separated tags - which is used for classification of data sets. - groups: a feed specifies a list of comma separated groups, - a group is a logical grouping of feeds and a group is said to be - available if all the feeds belonging to a group are available. - The frequency of all - the feed which belong to the same group - must be same. - availabilityFlag: specifies the name of a file which when - present/created - in a feeds data directory, the feed is - termed as available. ex: _SUCCESS, if - this element is ignored then Falcon would consider the presence of feed's - data directory as feed availability. - A feed has a - frequency and a periodicity which specifies the frequency by which - this feed is generated. ex: it can be generated every hour, every 5 minutes, daily, weekly etc. - valid frequency type for a feed are minutes, hours, days, months. - sla: A feed can have SLA and each SLA has two properties - slaLow and slaHigh. Both slaLow and slaHigh - are written using expressions like frequency. slaLow is intended to serve for alerting for feeds which - are in danger of missing their availability SLAs. slaHigh is intended to serve for reporting the feeds - which missed their SLAs. SLAs are relative to feed instance time. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="KEY_VALUE_PAIR" name="tags" minOccurs="0"> - <xs:annotation> - <xs:documentation> - tags: a feed specifies an optional list of comma separated tags, - Key Value Pairs, separated by comma, - which is used for classification of processes. - Example: [email protected], [email protected], department=forecasting - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element type="partitions" name="partitions" minOccurs="0"/> - <xs:element type="group-type" name="groups" minOccurs="0"/> - <xs:element type="xs:string" name="availabilityFlag" minOccurs="0"/> - <xs:element type="frequency-type" name="frequency"/> - <xs:element type="sla" name="sla" minOccurs="0"/> - <xs:element name="timezone" minOccurs="0" default="UTC"> - <xs:simpleType> - <xs:annotation> - <xs:appinfo> - <jaxb:javaType name="java.util.TimeZone" parseMethod="java.util.TimeZone.getTimeZone" - printMethod="org.apache.falcon.entity.v0.SchemaHelper.getTimeZoneId"/> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:string"/> - </xs:simpleType> - </xs:element> - <xs:element type="late-arrival" name="late-arrival" minOccurs="0"/> - <xs:element type="clusters" name="clusters"/> - <xs:choice minOccurs="1" maxOccurs="1"> - <xs:element type="locations" name="locations"/> - <xs:element type="catalog-table" name="table"/> - </xs:choice> - <xs:element type="notification" name="notification" minOccurs="0"> - <xs:annotation> - <xs:documentation>Notification will help to notify the users about the finished status of Falcon - Instance. Currently Email type notification is supported and users must specify the receiver's - email address. - </xs:documentation> - </xs:annotation> - </xs:element> - <xs:element type="ACL" name="ACL"/> - <xs:element type="schema" name="schema"/> - <xs:element type="properties" name="properties" minOccurs="0"/> - <xs:element type="lifecycle" name="lifecycle" minOccurs="0" /> - </xs:sequence> - <xs:attribute type="IDENTIFIER" name="name" use="required"/> - <xs:attribute type="xs:string" name="description"/> - <xs:attribute type="xs:int" name="version" use="optional" default="0"/> - </xs:complexType> - <xs:complexType name="cluster"> - <xs:annotation> - <xs:documentation> - Feed references a cluster by it's name, before submitting a feed all the - referenced cluster should be submitted to Falcon. - type: specifies whether the - referenced cluster should be treated as a - source or target for a feed. - Validity of a feed on cluster specifies duration for which this feed is - valid on this cluster. - Retention specifies how long the feed is retained on this cluster and the - action to be taken on the feed after the expiry of retention period. - The retention limit is - specified by expression frequency(times), ex: if - feed should be retained for at least 6 hours then retention's limit="hours(6)". - The field partitionExp contains - partition tags. Number of partition tags has to be equal to number of partitions specified in feed - schema. - A partition tag can be a wildcard(*), a static string or - an expression. Atleast one of the strings has to be an expression. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="validity" name="validity"/> - <xs:element type="retention" name="retention"/> - <xs:element type="sla" name="sla" minOccurs="0" maxOccurs="1"/> - <xs:element type="import" name="import" minOccurs="0" maxOccurs="1"/> - <xs:element type="export" name="export" minOccurs="0" maxOccurs="1"/> - <xs:choice minOccurs="0" maxOccurs="1"> - <xs:element type="locations" name="locations" minOccurs="0"/> - <xs:element type="catalog-table" name="table"/> - </xs:choice> - <xs:element type="lifecycle" name="lifecycle" minOccurs="0" /> - </xs:sequence> - <xs:attribute type="IDENTIFIER" name="name" use="required"/> - <xs:attribute type="cluster-type" name="type" use="optional"/> - <xs:attribute type="xs:string" name="partition" use="optional"/> - <xs:attribute type="frequency-type" name="delay" use="optional" /> - <xs:attribute type="xs:int" name="version" use="optional" default="0"/> - </xs:complexType> - <xs:complexType name="partitions"> - <xs:annotation> - <xs:documentation> - A list of partition, which is the logical partition of a feed and this - is maintained in Hcatalog registry. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="partition" name="partition" maxOccurs="unbounded" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="schema"> - <xs:annotation> - <xs:documentation>A schema specifies the location of a schema file - for a feed and the provider of schema like protobuf, thrift etc. - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="location" use="required"/> - <xs:attribute type="xs:string" name="provider" use="required"/> - </xs:complexType> - <xs:complexType name="properties"> - <xs:annotation> - <xs:documentation> - A list of name-value pair of property. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="property" name="property" maxOccurs="unbounded" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="validity"> - <xs:annotation> - <xs:documentation> - A validity has a start, which is the validity start date and end the - validity - end date. ex: start="2011-11-01T00:00Z" in TZ format. - timezone can be UTC, - GMT. - Processes referring this feed would consider the validity period for - validation. - </xs:documentation> - </xs:annotation> - <xs:attribute type="date-time-type" name="start" use="required"/> - <xs:attribute type="date-time-type" name="end" use="required"/> - </xs:complexType> - <xs:complexType name="sla"> - <xs:annotation> - <xs:documentation> - sla has two properties - slaLow and slaHigh. Both slaLow and slaHigh - are written using expressions like frequency. slaLow is intended to serve for alerting for feeds which - are in danger of missing their availability SLAs. slaHigh is intended to serve for reporting the feeds - which missed their SLAs. SLAs are relative to feed instance time. - </xs:documentation> - </xs:annotation> - <xs:attribute type="frequency-type" name="slaLow" use="required"/> - <xs:attribute type="frequency-type" name="slaHigh" use="required"/> - </xs:complexType> - <xs:complexType name="locations"> - <xs:annotation> - <xs:documentation> - A list of locations on the file system. - </xs:documentation> - </xs:annotation> - <xs:choice maxOccurs="unbounded" minOccurs="0"> - <xs:element type="location" name="location"/> - </xs:choice> - </xs:complexType> - <xs:complexType name="late-arrival"> - <xs:annotation> - <xs:documentation> - late-arrival specifies the cut-off period till which the feed is - expected to arrive late and should be honored be processes referring - to it as input - feed by rerunning the instances in case - the data arrives late with in a cut-off period. - The cut-off period is specified by expression - frequency(times), ex: if the feed - can arrive late - upto 8 hours then late-arrival's cut-off="hours(8)" - </xs:documentation> - </xs:annotation> - <xs:attribute type="frequency-type" name="cut-off" use="required"/> - </xs:complexType> - <xs:complexType name="property"> - <xs:annotation> - <xs:documentation> - A key-value pair, which are propagated to the - workflow engine. - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="name" use="required"/> - <xs:attribute type="xs:string" name="value" use="required"/> - </xs:complexType> - <xs:complexType name="clusters"> - <xs:annotation> - <xs:documentation> - A list of clusters. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="cluster" name="cluster" maxOccurs="unbounded" minOccurs="1"> - </xs:element> - </xs:sequence> - </xs:complexType> - <xs:complexType name="retention"> - <xs:attribute type="retention-type" name="type" default="instance"/> - <xs:attribute type="frequency-type" name="limit" use="required"/> - <xs:attribute type="action-type" name="action" use="required"/> - </xs:complexType> - <xs:simpleType name="retention-type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="instance"/> - <!-- <xs:enumeration value="age" /> --> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="location"> - <xs:annotation> - <xs:documentation> - location specifies the type of location like data, meta, stats - and the corresponding paths for them. - A feed should at least define the location for type - data, which - specifies the HDFS path pattern where the feed is generated - periodically. ex: type="data" path="/projects/TrafficHourly/${YEAR}-${MONTH}-${DAY}/traffic" - </xs:documentation> - </xs:annotation> - <xs:attribute type="location-type" name="type" use="required"/> - <xs:attribute type="non-empty-string" name="path" use="required"/> - </xs:complexType> - <xs:complexType name="partition"> - <xs:attribute type="IDENTIFIER" name="name" use="required"/> - </xs:complexType> - <xs:complexType name="notification"> - <xs:annotation> - <xs:documentation> - Notification specifies the "type" of notification to be used to send notification. - Currently email based notification type is supported and user can specify the comma - separated email address with "to" property. - e.g: type="email" to="falcon@localhost,hive@localhost" - "limit" property in notification will help to set the frequency of email notification - in case of Falcon instance failure. Incase of feed entity limit="attempt" is only supported - as there is no retry element. - </xs:documentation> - </xs:annotation> - <xs:attribute name="type" use="required"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="email"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="level" use="optional"> - <xs:simpleType> - <xs:restriction base="xs:string"> - <xs:enumeration value="attempt"/> - <xs:enumeration value="instance"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute type="xs:string" name="to" use="required"/> - </xs:complexType> - <xs:complexType name="ACL"> - <xs:annotation> - <xs:documentation> - Access control list for this feed. - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="owner"/> - <xs:attribute type="xs:string" name="group"/> - <xs:attribute type="xs:string" name="permission" default="*"/> - </xs:complexType> - <xs:simpleType name="action-type"> - <xs:restriction base="xs:string"> - <xs:annotation> - <xs:documentation> - action type specifies the action that should be taken on a feed - when the retention period of a feed expires on a cluster, - the only valid action is delete. - </xs:documentation> - </xs:annotation> - <xs:enumeration value="delete"/> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="lifecycle"> - <xs:annotation> - <xs:documentation> - Lifecycle of the feed consists of various stages. For example typical stages of a feed are import, - replication, archival, retention and export. All these stages together are called lifecycle of a feed. - </xs:documentation> - </xs:annotation> - - <xs:all> - <xs:element type="retention-stage" name="retention-stage" minOccurs="0"></xs:element> - </xs:all> - - </xs:complexType> - - <xs:simpleType name="cluster-type"> - <xs:annotation> - <xs:documentation> - The clusters on feed can be either defined as source or target, - a feed - should at least have one source cluster defined. - the target clusters - are used for - replication of feed. - </xs:documentation> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:enumeration value="source"/> - <xs:enumeration value="target"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="location-type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="data"/> - <xs:enumeration value="stats"/> - <xs:enumeration value="meta"/> - <xs:enumeration value="tmp"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="IDENTIFIER"> - <xs:restriction base="xs:string"> - <xs:pattern value="(([a-zA-Z]([\-a-zA-Z0-9])*){1,39})"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="frequency-type"> - <xs:annotation> - <xs:appinfo> - <jaxb:javaType name="org.apache.falcon.entity.v0.Frequency" - parseMethod="org.apache.falcon.entity.v0.Frequency.fromString" - printMethod="org.apache.falcon.entity.v0.Frequency.toString"/> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:pattern value="(minutes|hours|days|months)\([1-9]\d*\)"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="date-time-type"> - <xs:annotation> - <xs:appinfo> - <jaxb:javaType name="java.util.Date" parseMethod="org.apache.falcon.entity.v0.SchemaHelper.parseDateUTC" - printMethod="org.apache.falcon.entity.v0.SchemaHelper.formatDateUTC"/> - </xs:appinfo> - </xs:annotation> - <xs:restriction base="xs:string"> - <xs:pattern - value="((19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])T([0-1][0-9]|2[0-3]):([0-5][0-9]))Z"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="group-type"> - <xs:restriction base="xs:string"> - <xs:pattern value="(\w+(,\w+)*)"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="KEY_VALUE_PAIR"> - <xs:restriction base="xs:string"> - <xs:pattern value="([\w_]+=[^,]+)?([,]?[ ]*[\w_]+=[^,]+)*"/> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="catalog-table"> - <xs:annotation> - <xs:documentation> - catalog specifies the uri of a Hive table along with the partition spec. - uri="catalog:$database:$table#(partition-key=partition-value);+" - Example: catalog:logs-db:clicks#ds=${YEAR}-${MONTH}-${DAY} - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="uri" use="required"/> - </xs:complexType> - <xs:simpleType name="non-empty-string"> - <xs:restriction base="xs:string"> - <xs:minLength value="1"/> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="import"> - <xs:sequence> - <xs:element type="datasource" name="source"/> - <xs:element type="arguments" name="arguments" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="export"> - <xs:sequence> - <xs:element type="datasource" name="target"/> - <xs:element type="arguments" name="arguments" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="datasource"> - <xs:annotation> - <xs:documentation> - Specifies the source entity name from which data can be imported or exported. - This can be Database or other data source types in the future. The connection - and authentication details of the data source are defined in the Datasource - entity. - Table name specifies the table to import or export depending on the action type. - Extract type specifies a extraction method (full or incremental). - DeltaColumn specifies the column name on source databbase table - to identify the new data since the last extraction. - Merge type specifies how the data will be organized on Hadoop. - The supported types are snapshot (as in a particular time) or append - (as in timeseries partitions). - Load type specifies if new rows are inserted (load type=insertallowed) into - the database table or updated (load type=updateonly). If updateonly load type - is specified, then update columns need to be passed via the arguments. - Fields can be specified as includes or excludes of fields. If exlusion list - is specified, all column except the ones specified will not be imported or exported. - If inclusion list is specified, only the specified columns are exported or imported. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:choice minOccurs="1" maxOccurs="1"> - <xs:element type="extract" name="extract"/> - <xs:element type="load" name="load"/> - </xs:choice> - <xs:element type="fields-type" name="fields" minOccurs="0" maxOccurs="1"/> - </xs:sequence> - <xs:attribute type="non-empty-string" name="name" use="required"/> - <xs:attribute type="non-empty-string" name="tableName" use="required"/> - <xs:attribute type="xs:int" name="version" use="optional" default="0"/> - </xs:complexType> - <xs:complexType name="extract"> - <xs:sequence> - <xs:element type="xs:string" name="deltacolumn" minOccurs="0" maxOccurs="1"/> - <xs:element type="merge-type" name="mergepolicy" minOccurs="1" maxOccurs="1"/> - </xs:sequence> - <xs:attribute type="extract-method" name="type" use="required"/> - </xs:complexType> - <xs:complexType name="load"> - <xs:attribute type="load-method" name="type" use="required"/> - </xs:complexType> - <xs:simpleType name="extract-method"> - <xs:restriction base="xs:string"> - <xs:enumeration value="full"/> - <xs:enumeration value="incremental"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType name="load-method"> - <xs:restriction base="xs:string"> - <xs:enumeration value="updateonly"/> - <xs:enumeration value="allowinsert"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="merge-type"> - <xs:restriction base="xs:string"> - <xs:enumeration value="snapshot"/> - <xs:enumeration value="append"/> - </xs:restriction> - </xs:simpleType> - <xs:complexType name="fields-type"> - <xs:annotation> - <xs:documentation> - Specifies either an include or exclude fields list. If include field list is specified, only - the specified fields will be imported. If exclude field list is specified, all fields except - the ones specified will be imported from datasource to HDFS. - </xs:documentation> - </xs:annotation> - <xs:choice minOccurs="1" maxOccurs="1"> - <xs:element type="field-include-exclude" name="includes"/> - <xs:element type="field-include-exclude" name="excludes"/> - </xs:choice> - </xs:complexType> - <xs:complexType name="field-include-exclude"> - <xs:sequence> - <xs:element type="xs:string" name="field" maxOccurs="unbounded" minOccurs="1"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="arguments"> - <xs:annotation> - <xs:documentation> - A list of name-value pair of extra arguments to be passed to the concrete implementation. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element type="argument" name="argument" maxOccurs="unbounded" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - <xs:complexType name="argument"> - <xs:annotation> - <xs:documentation> - A key-value pair, which are used while invoking - ingestion engines. - </xs:documentation> - </xs:annotation> - <xs:attribute type="xs:string" name="name" use="required"/> - <xs:attribute type="xs:string" name="value" use="required"/> - </xs:complexType> - <xs:complexType name="retention-stage"> - <xs:annotation> - <xs:documentation> - Retention stage is the new way to define retention for a feed using feed lifecycle feature. Retention - has a configurable policy which does the validation and the real execution through workflow engine. - This method of specifying retention gives you more control like using different queue name, priority - and execution-order for retention than other lifecycle stages of feed like replication. - </xs:documentation> - </xs:annotation> - <xs:all> - <xs:element type="non-empty-string" name="policy" minOccurs="0" maxOccurs="1"></xs:element> - <xs:element type="frequency-type" name="frequency" minOccurs="0" maxOccurs="1"></xs:element> - <xs:element type="xs:string" name="queue" minOccurs="0" maxOccurs="1"></xs:element> - <xs:element type="xs:string" name="priority" minOccurs="0" maxOccurs="1"></xs:element> - <xs:element type="properties" name="properties" minOccurs="0" maxOccurs="1"></xs:element> - </xs:all> - </xs:complexType> -</xs:schema> http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/resources/jaxb-binding.xjb ---------------------------------------------------------------------- diff --git a/client/src/main/resources/jaxb-binding.xjb b/client/src/main/resources/jaxb-binding.xjb deleted file mode 100644 index 978145f..0000000 --- a/client/src/main/resources/jaxb-binding.xjb +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<jaxb:bindings - version="2.1" - jaxb:extensionBindingPrefixes="xjc jaxb xs inheritance annox" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" - xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" - xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <jaxb:bindings schemaLocation="cluster-0.1.xsd" node="//xs:complexType[@name='cluster']"> - <inheritance:extends>org.apache.falcon.entity.v0.Entity</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="cluster-0.1.xsd" node="//xs:complexType[@name='ACL']"> - <inheritance:extends>org.apache.falcon.entity.v0.AccessControlList</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="feed-0.1.xsd" node="//xs:complexType[@name='feed']"> - <inheritance:extends>org.apache.falcon.entity.v0.Entity</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="feed-0.1.xsd" node="//xs:complexType[@name='ACL']"> - <inheritance:extends>org.apache.falcon.entity.v0.AccessControlList</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="feed-0.1.xsd" node="//xs:complexType[@name='notification']"> - <inheritance:extends>org.apache.falcon.entity.v0.EntityNotification</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="process-0.1.xsd" node="//xs:complexType[@name='process']"> - <inheritance:extends>org.apache.falcon.entity.v0.Entity</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="process-0.1.xsd" node="//xs:complexType[@name='ACL']"> - <inheritance:extends>org.apache.falcon.entity.v0.AccessControlList</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="process-0.1.xsd" node="//xs:complexType[@name='notification']"> - <inheritance:extends>org.apache.falcon.entity.v0.EntityNotification</inheritance:extends> - </jaxb:bindings> - - - <jaxb:bindings schemaLocation="datasource-0.1.xsd" node="//xs:complexType[@name='datasource']"> - <inheritance:extends>org.apache.falcon.entity.v0.Entity</inheritance:extends> - </jaxb:bindings> - - <jaxb:bindings schemaLocation="datasource-0.1.xsd" node="//xs:complexType[@name='ACL']"> - <inheritance:extends>org.apache.falcon.entity.v0.AccessControlList</inheritance:extends> - </jaxb:bindings> - - <jaxb:globalBindings> - <xjc:simple/> - </jaxb:globalBindings> - -</jaxb:bindings> http://git-wip-us.apache.org/repos/asf/falcon/blob/9e25ede1/client/src/main/resources/mysql_database.xml ---------------------------------------------------------------------- diff --git a/client/src/main/resources/mysql_database.xml b/client/src/main/resources/mysql_database.xml deleted file mode 100644 index 5f88ba4..0000000 --- a/client/src/main/resources/mysql_database.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<database colo="west-coast" description="MySQL database on west coast" type="mysql" name="mysql-db" xmlns="uri:falcon:database:0.1"> - <tags>[email protected], [email protected]</tags> - <interfaces> - - <!-- ***** read interface ***** --> - <interface type="readonly" endpoint="jdbc:mysql://c6402/test"> - <credential type="password-file"> - <userName>sqoop_user</userName> - <passwordFile>/user/ambari-qa/password-store/password_read_user</passwordFile> - </credential> - </interface> - - <!-- ***** write interface ***** --> - <interface type="write" endpoint="jdbc:mysql://c6402/test"> - <credential type="password-file"> - <userName>sqoop2_user</userName> - <passwordFile>/user/ambari-qa/password-store/password_write_user</passwordFile> - </credential> - </interface> - - <!-- ***** default credential ***** --> - <credential type="password-file"> - <userName>sqoop2_user</userName> - <passwordFile>/user/ambari-qa/password-store/password_write_user</passwordFile> - </credential> - - </interfaces> -</database>
