http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml new file mode 100644 index 0000000..c4128b8 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<queryPlan> + <tablesQueried> + <tablesQueried>table1</tablesQueried> + <tablesQueried>table2</tablesQueried> + </tablesQueried> + <hasSubQuery>false</hasSubQuery> + <execMode>MapReduce</execMode> + <scanMode>scanning mode 1</scanMode> + <planString>plan is to + run this + big query one + by one + </planString> + <queryCost> + <estimatedExecTimeMillis>1000</estimatedExecTimeMillis> + <estimatedResourceUsage>10000.0</estimatedResourceUsage> + <costType>HIGH</costType> + </queryCost> + <prepareHandle> + <prepareHandleId>81799e48-574c-4305-bd51-1c277c15713d</prepareHandleId> + </prepareHandle> +</queryPlan> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml new file mode 100644 index 0000000..879227a --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPlan.yaml @@ -0,0 +1,29 @@ +# 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. +Tables Queried: table1, table2 +Is Has Sub Query: false +Exec Mode: MapReduce +Scan Mode: scanning mode 1 +Prepare Handle: 81799e48-574c-4305-bd51-1c277c15713d +Plan String: plan is to + run this + big query one + by one + +Query Cost: + Estimated Exec Time Millis: 1000 + Estimated Resource Usage: 10000.0 + Cost Type: HIGH http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml new file mode 100644 index 0000000..21c5294 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<queryPrepareHandle> + <prepareHandleId>81799e48-574c-4305-bd51-1c277c15713d</prepareHandleId> +</queryPrepareHandle> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml new file mode 100644 index 0000000..8bce762 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryPrepareHandle.yaml @@ -0,0 +1,16 @@ +# 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. +81799e48-574c-4305-bd51-1c277c15713d \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml new file mode 100644 index 0000000..f24e934 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<queryResultSetMetadata> + <columns> + <columns> + <name>col1</name> + <type>STRING</type> + </columns> + <columns> + <name>col2</name> + <type>BOOLEAN</type> + </columns> + </columns> +</queryResultSetMetadata> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.yaml new file mode 100644 index 0000000..f8a3263 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryResultSetMetadata.yaml @@ -0,0 +1,17 @@ +# 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. +col1: STRING +col2: BOOLEAN http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.xml new file mode 100644 index 0000000..70f9c93 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<queryStatus> + <progress>10.0</progress> + <status>RUNNING</status> + <statusMessage>query running</statusMessage> + <isResultSetAvailable>false</isResultSetAvailable> + <lensErrorTO> + <code>9999</code> + <message>error message</message> + <stackTrace>random stack trace</stackTrace> + </lensErrorTO> + <errorMessage>error message</errorMessage> + <progressMessage>progress message</progressMessage> + <queueNumber>11</queueNumber> +</queryStatus> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.yaml new file mode 100644 index 0000000..749cc87 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.QueryStatus.yaml @@ -0,0 +1,22 @@ +# 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. +Progress: 10.0 +Queue Number: 11 +Status: RUNNING +Status Message: query running +Is Result Set Available: false +Progress Message: progress message +Error Message: error message http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.xml new file mode 100644 index 0000000..6a9145f --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<resultRow> + <values> + <values xsi:type="xs:int" xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1</values> + <values xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">name</values> + <values xsi:type="xs:double" xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">3.5</values> + <values xsi:type="xs:boolean" xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">true</values> + </values> +</resultRow> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.yaml new file mode 100644 index 0000000..4167aa7 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.ResultRow.yaml @@ -0,0 +1,16 @@ +# 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. +[1, name, 3.5, true] \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.xml new file mode 100644 index 0000000..ef7d0c7 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<schedulerJobHandle> + <handleId>e554a2a4-b19a-4df9-9015-323d0f145d7f</handleId> +</schedulerJobHandle> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.yaml new file mode 100644 index 0000000..567d8cf --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.query.SchedulerJobHandle.yaml @@ -0,0 +1,16 @@ +# 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. +e554a2a4-b19a-4df9-9015-323d0f145d7f \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.xml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.xml b/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.xml new file mode 100644 index 0000000..de59c19 --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + + 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. + +--> +<queryCostTO> + <estimatedExecTimeMillis>1000</estimatedExecTimeMillis> + <estimatedResourceUsage>10000.0</estimatedResourceUsage> + <costType>HIGH</costType> +</queryCostTO> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.yaml ---------------------------------------------------------------------- diff --git a/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.yaml b/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.yaml new file mode 100644 index 0000000..1de6e5c --- /dev/null +++ b/lens-api/src/test/resources/toString/org.apache.lens.api.result.QueryCostTO.yaml @@ -0,0 +1,18 @@ +# 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. +Estimated Exec Time Millis: 1000 +Estimated Resource Usage: 10000.0 +Cost Type: HIGH \ No newline at end of file http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java index 66a6c4d..0c10198 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/BaseLensCommand.java @@ -24,21 +24,22 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import org.apache.lens.api.ToXMLString; import org.apache.lens.api.util.PathValidator; import org.apache.lens.client.LensClient; import org.apache.lens.client.LensClientSingletonWrapper; -import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; +import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.impl.Indenter; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; import org.codehaus.jackson.util.DefaultPrettyPrinter; +import org.jvnet.jaxb2_commons.lang.ToString; import org.springframework.shell.core.ExecutionProcessor; import org.springframework.shell.event.ParseResult; import com.google.common.collect.Sets; - import lombok.extern.slf4j.Slf4j; /** @@ -46,6 +47,8 @@ import lombok.extern.slf4j.Slf4j; */ @Slf4j public class BaseLensCommand implements ExecutionProcessor { + public static final String LENS_CLI_PREFIX = "lens.cli."; + public static final String JSON_PRETTY_SUFFIX = "json.pretty"; /** The mapper. */ protected ObjectMapper mapper; @@ -100,11 +103,10 @@ public class BaseLensCommand implements ExecutionProcessor { pp = new DefaultPrettyPrinter(); pp.indentObjectsWith(new Indenter() { @Override - public void writeIndentation(JsonGenerator jg, int level) throws IOException, JsonGenerationException { - if (level > 2) { - jg.writeRaw(" "); - } else { - jg.writeRaw("\n"); + public void writeIndentation(JsonGenerator jg, int level) throws IOException { + jg.writeRaw("\n"); + for (int i = 0; i < level; i++) { + jg.writeRaw(" "); } } @@ -134,12 +136,25 @@ public class BaseLensCommand implements ExecutionProcessor { /** * Pretty printing JSON object into CLI String. * - * @param json to be formatted + * @param data to be formatted * @return cli formatted string */ - public String formatJson(String json) { - return json.replaceAll("\\[ \\{", "\n\n ").replaceAll("\\{", "").replaceAll("}", "").replaceAll("\\[", "") - .replaceAll("]", "\n").replaceAll(",", "").replaceAll("\"", "").replaceAll("\n\n", "\n"); + public String formatJson(Object data) { + try { + if (data instanceof ToString || data instanceof ToXMLString) { + return data.toString(); + } + String json = mapper.writer(pp).writeValueAsString(data); + JsonNode tree = mapper.valueToTree(data); + System.out.println(tree); + if (getClient().getConf().getBoolean(LENS_CLI_PREFIX + JSON_PRETTY_SUFFIX, false)) { + return json; + } + return json.replaceAll("\\[ \\{", "\n\n ").replaceAll("\\{", "").replaceAll("}", "").replaceAll("\\[", "") + .replaceAll("]", "\n").replaceAll(",", "").replaceAll("\"", "").replaceAll("\n\n", "\n"); + } catch (IOException e) { + throw new IllegalArgumentException(e); + } } /** http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCRUDCommand.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCRUDCommand.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCRUDCommand.java index a0c05b4..6ce8209 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCRUDCommand.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensCRUDCommand.java @@ -19,7 +19,6 @@ package org.apache.lens.cli.commands; import java.io.File; -import java.io.IOException; import java.util.List; import org.apache.lens.api.APIResult; @@ -44,11 +43,7 @@ public abstract class LensCRUDCommand<T> extends BaseLensCommand { } public String describe(String name) { - try { - return formatJson(mapper.writer(pp).writeValueAsString(doRead(name))); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } + return formatJson(doRead(name)); } public String update(String entity, File path) { http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/main/java/org/apache/lens/cli/commands/LensConnectionCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensConnectionCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensConnectionCommands.java index 0aa51a8..b760dad 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensConnectionCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensConnectionCommands.java @@ -27,6 +27,7 @@ import org.apache.lens.api.APIResult; import org.apache.lens.api.LensSessionHandle; import org.apache.lens.cli.commands.annotations.UserDocumentation; import org.apache.lens.client.LensClient; +import org.apache.lens.client.LensClientConfig; import org.slf4j.LoggerFactory; import org.springframework.shell.core.ExitShellRequest; @@ -34,12 +35,15 @@ import org.springframework.shell.core.annotation.CliCommand; import org.springframework.shell.core.annotation.CliOption; import org.springframework.stereotype.Component; -import ch.qos.logback.classic.*; +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.PatternLayout; import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.*; - +import ch.qos.logback.core.Appender; +import ch.qos.logback.core.ConsoleAppender; +import ch.qos.logback.core.Context; import com.google.common.base.Joiner; - import lombok.NonNull; import lombok.extern.slf4j.Slf4j; @@ -66,10 +70,16 @@ public class LensConnectionCommands extends BaseLensCommand { if (pair.length != 2) { return "Error: Pass parameter as <key>=<value>"; } - APIResult result = getClient().setConnectionParam(pair[0], pair[1]); - return result.getMessage(); + if (pair[0].startsWith(LENS_CLI_PREFIX) || pair[0].startsWith(LensClientConfig.CLIENT_PFX)) { + getClient().getConf().set(pair[0], pair[1]); + return "Client side Set " + pair[0] + "=" + pair[1]; + } else { + APIResult result = getClient().setConnectionParam(pair[0], pair[1]); + return result.getMessage(); + } } + /** * Gets the param. * @@ -182,7 +192,7 @@ public class LensConnectionCommands extends BaseLensCommand { help = "prints all class level logs and verbose logs on cli for debugging purpose." + " 'debug false' to turn off all class level logging and verbose level logging ") public void debug(@CliOption(key = {"", "enable"}, - mandatory = false, unspecifiedDefaultValue = "true") boolean enable) { + mandatory = false, unspecifiedDefaultValue = "true") boolean enable) { Logger logger = LoggerUtil.getRootLogger(); Logger cliLogger = LoggerUtil.getCliLogger(); if (enable) { @@ -201,7 +211,7 @@ public class LensConnectionCommands extends BaseLensCommand { @CliCommand(value = {"verbose"}, help = "Show cliLogger logs on cli. 'verbose false' turns off the cliLogger logs on console") public void verbose(@CliOption(key = {"", "enable"}, - mandatory = false, unspecifiedDefaultValue = "true") boolean enable) { + mandatory = false, unspecifiedDefaultValue = "true") boolean enable) { Logger cliLogger = LoggerUtil.getCliLogger(); if (enable) { LoggerUtil.addConsoleAppenderIfNotPresent(cliLogger); http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java index dc8349e..952577f 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensDimensionCommands.java @@ -19,7 +19,6 @@ package org.apache.lens.cli.commands; import java.io.File; -import java.io.IOException; import java.util.List; import org.apache.lens.api.APIResult; @@ -73,11 +72,7 @@ public class LensDimensionCommands extends ConceptualTableCrudCommand<XDimension @CliCommand(value = "describe dimension", help = "describe dimension <dimension_name>") public String describeDimension( @CliOption(key = {"", "name"}, mandatory = true, help = "<dimension_name>") String name) { - try { - return formatJson(mapper.writer(pp).writeValueAsString(getClient().getDimension(name))); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } + return formatJson(getClient().getDimension(name)); } /** http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java index e2ac3af..007bf34 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LensQueryCommands.java @@ -194,11 +194,7 @@ public class LensQueryCommands extends BaseLensCommand { if (query == null) { return "Unable to find query for " + qh; } - try { - return formatJson(mapper.writer(pp).writeValueAsString(query)); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } + return formatJson(query); } /** http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java b/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java index a04d5c8..e0b60c2 100644 --- a/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java +++ b/lens-cli/src/main/java/org/apache/lens/cli/commands/LogicalTableCrudCommand.java @@ -19,7 +19,6 @@ package org.apache.lens.cli.commands; import java.io.File; -import java.io.IOException; import java.util.List; import org.apache.lens.api.APIResult; @@ -58,11 +57,7 @@ public abstract class LogicalTableCrudCommand<T> extends LensCRUDCommand<T> { } public String getStorage(String tableName, String storage) { - try { - return formatJson(mapper.writer(pp).writeValueAsString(readStorage(tableName, storage))); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } + return formatJson(readStorage(tableName, storage)); } public String dropStorage(String tableName, String storageName) { @@ -74,11 +69,7 @@ public abstract class LogicalTableCrudCommand<T> extends LensCRUDCommand<T> { } public String getAllPartitions(String tableName, String storageName, String filter) { - try { - return formatJson(mapper.writer(pp).writeValueAsString(readAllPartitions(tableName, storageName, filter))); - } catch (IOException e) { - throw new IllegalArgumentException(e); - } + return formatJson(readAllPartitions(tableName, storageName, filter)); } public String addPartition(String tableName, String storageName, File path) { http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/test/java/org/apache/lens/cli/LensCliApplicationTest.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/test/java/org/apache/lens/cli/LensCliApplicationTest.java b/lens-cli/src/test/java/org/apache/lens/cli/LensCliApplicationTest.java index 8312335..c536ed6 100644 --- a/lens-cli/src/test/java/org/apache/lens/cli/LensCliApplicationTest.java +++ b/lens-cli/src/test/java/org/apache/lens/cli/LensCliApplicationTest.java @@ -31,8 +31,7 @@ import org.testng.annotations.BeforeTest; * The Class LensCliApplicationTest. */ public class LensCliApplicationTest extends LensAllApplicationJerseyTest { - public static final String SUCCESS_MESSAGE = "<?xml version=\"1.0\" encoding=\"utf-8\" " - + "standalone=\"yes\"?><apiresult><status>succeeded</status><message></message></apiresult>"; + public static final String SUCCESS_MESSAGE = "status: succeeded\n"; @Override protected int getTestPort() { http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/test/java/org/apache/lens/cli/TestLensCubeCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensCubeCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensCubeCommands.java index 43d0722..97ca2c8 100644 --- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensCubeCommands.java +++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensCubeCommands.java @@ -173,9 +173,8 @@ public class TestLensCubeCommands extends LensCliApplicationTest { String desc = command.describeCube("sample_cube"); LensClient client = command.getClient(); LOG.debug(desc); - String propString = "name : sample_cube.prop value : sample"; - String propString1 = "name : sample_cube.prop1 value : sample1"; - + String propString = "sample_cube.prop: sample"; + String propString1 = "sample_cube.prop1: sample1"; assertTrue(desc.contains(propString)); command.updateCube("sample_cube", new File("target/sample_cube1.xml")); http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionCommands.java index 160699b..45555f4 100644 --- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionCommands.java +++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionCommands.java @@ -157,8 +157,8 @@ public class TestLensDimensionCommands extends LensCliApplicationTest { String desc = command.describeDimension("test_dim"); log.debug(desc); - String propString = "name : test_dim.prop value : test"; - String propString1 = "name : test_dim.prop1 value : test1"; + String propString = "test_dim.prop: test"; + String propString1 = "test_dim.prop1: test1"; Assert.assertTrue(desc.contains(propString)); command.updateDimension("test_dim", new File("target/test_dim1.xml")); http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionTableCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionTableCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionTableCommands.java index bf92044..bea128b 100644 --- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionTableCommands.java +++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensDimensionTableCommands.java @@ -166,9 +166,9 @@ public class TestLensDimensionTableCommands extends LensCliApplicationTest { String desc = command.describeDimensionTable("dim_table2"); log.debug(desc); - String propString = "name : dim2.prop value : d2"; - String propString1 = "name : dim2.prop value : d1"; - String propString2 = "name : dim2.prop1 value : d2"; + String propString = "dim2.prop: d2"; + String propString1 = "dim2.prop: d1"; + String propString2 = "dim2.prop1: d2"; assertTrue(desc.contains(propString)); command.updateDimensionTable("dim_table2", new File("target/local-dim1.xml")); http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java index 448d0f6..1454e5f 100644 --- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java +++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java @@ -158,8 +158,8 @@ public class TestLensFactCommands extends LensCliApplicationTest { String desc = command.describeFactTable("fact1"); log.debug(desc); - String propString = "name : fact1.prop value : f1"; - String propString1 = "name : fact1.prop1 value : f2"; + String propString = "fact1.prop: f1"; + String propString1 = "fact1.prop1: f2"; assertTrue(desc.contains(propString)); http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-cli/src/test/java/org/apache/lens/cli/TestLensStorageCommands.java ---------------------------------------------------------------------- diff --git a/lens-cli/src/test/java/org/apache/lens/cli/TestLensStorageCommands.java b/lens-cli/src/test/java/org/apache/lens/cli/TestLensStorageCommands.java index 8bccac2..a178296 100644 --- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensStorageCommands.java +++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensStorageCommands.java @@ -149,14 +149,14 @@ public class TestLensStorageCommands extends LensCliApplicationTest { String desc = command.describeStorage(storageName); LOG.debug(desc); System.out.println(desc); - String propString = "name : storage.url value : file:///"; + String propString = "storage.url: file:///"; Assert.assertTrue(desc.contains(propString)); String updateResult = command.updateStorage(storageName, new File(updateFilePath)); Assert.assertTrue(updateResult.contains("succeeded")); desc = command.describeStorage(storageName); LOG.debug(desc); - String propString2 = "name : storage.prop1 value : v1"; + String propString2 = "storage.prop1: v1"; Assert.assertTrue(desc.contains(propString)); Assert.assertTrue(desc.contains(propString2)); } finally { http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-client/src/main/java/org/apache/lens/client/LensClient.java ---------------------------------------------------------------------- diff --git a/lens-client/src/main/java/org/apache/lens/client/LensClient.java b/lens-client/src/main/java/org/apache/lens/client/LensClient.java index f7f99c7..ea0cd76 100644 --- a/lens-client/src/main/java/org/apache/lens/client/LensClient.java +++ b/lens-client/src/main/java/org/apache/lens/client/LensClient.java @@ -49,6 +49,7 @@ import lombok.extern.slf4j.Slf4j; public class LensClient { public static final String CLILOGGER = "cliLogger"; private static final String DEFAULT_PASSWORD = ""; + @Getter private final LensClientConfig conf; @Getter private final LensMetadataClient mc; http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java ---------------------------------------------------------------------- diff --git a/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java b/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java index 07ce41e..d0f2b57 100644 --- a/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java +++ b/lens-client/src/main/java/org/apache/lens/client/LensMetadataClient.java @@ -18,9 +18,7 @@ */ package org.apache.lens.client; -import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.util.Date; import java.util.List; @@ -46,19 +44,6 @@ public class LensMetadataClient { private final LensConnectionParams params; private final ObjectFactory objFact; - public static final Unmarshaller JAXB_UNMARSHALLER; - - static { - try { - JAXBContext jaxbContext = new LensJAXBContext(ObjectFactory.class); - JAXB_UNMARSHALLER = jaxbContext.createUnmarshaller(); - } catch (JAXBException e) { - log.error("Could not initialize JAXBContext. ", e); - throw new RuntimeException("Could not initialize JAXBContext. ", e); - } - } - - public LensMetadataClient(LensConnection connection) { this.connection = connection; this.params = connection.getLensConnectionParams(); @@ -166,16 +151,7 @@ public class LensMetadataClient { } private <T> T readFromXML(String filename) throws JAXBException, IOException { - if (filename.startsWith("/")) { - return ((JAXBElement<T>) JAXB_UNMARSHALLER.unmarshal(new File(filename))).getValue(); - } else { - // load from classpath - InputStream file = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename); - if (file == null) { - throw new IOException("File not found:" + filename); - } - return ((JAXBElement<T>) JAXB_UNMARSHALLER.unmarshal(file)).getValue(); - } + return LensJAXBContext.unmarshallFromFile(filename); } public APIResult createCube(String cubeSpec) { http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-client/src/main/java/org/apache/lens/client/LensStatement.java ---------------------------------------------------------------------- diff --git a/lens-client/src/main/java/org/apache/lens/client/LensStatement.java b/lens-client/src/main/java/org/apache/lens/client/LensStatement.java index 0009182..33c26e1 100644 --- a/lens-client/src/main/java/org/apache/lens/client/LensStatement.java +++ b/lens-client/src/main/java/org/apache/lens/client/LensStatement.java @@ -218,7 +218,7 @@ public class LensStatement { query.getDriverOpHandle()); } while (!query.getStatus().finished() - && !(query.getStatus().toString().equals(Status.CLOSED.toString()))) { + && !(query.getStatus().getStatus().equals(Status.CLOSED))) { query = getQuery(handle); LensClient.getCliLooger().info("Query Status:{} ", query.getStatus()); try { http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-client/src/main/resources/lens-client-default.xml ---------------------------------------------------------------------- diff --git a/lens-client/src/main/resources/lens-client-default.xml b/lens-client/src/main/resources/lens-client-default.xml index 1b7c978..e8dbd2c 100644 --- a/lens-client/src/main/resources/lens-client-default.xml +++ b/lens-client/src/main/resources/lens-client-default.xml @@ -51,4 +51,9 @@ <value>10</value> <description>Interval at which query progress will be polled. Interval has to be given in milliseconds</description> </property> + <property> + <name>lens.cli.json.pretty</name> + <value>false</value> + <description>Should CLI try to prettify the JSON of an object before priting.</description> + </property> </configuration> http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/pom.xml ---------------------------------------------------------------------- diff --git a/lens-examples/pom.xml b/lens-examples/pom.xml index c97392e..a13ee33 100644 --- a/lens-examples/pom.xml +++ b/lens-examples/pom.xml @@ -19,7 +19,8 @@ under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <name>Lens Examples</name> <parent> @@ -41,6 +42,14 @@ <dependency> <groupId>org.apache.lens</groupId> + <artifactId>lens-api</artifactId> + <version>${project.version}</version> + <type>test-jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.lens</groupId> <artifactId>lens-client</artifactId> <version>${project.version}</version> </dependency> @@ -55,5 +64,10 @@ <artifactId>hsqldb</artifactId> </dependency> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + </dependency> + </dependencies> </project> http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/main/java/org/apache/lens/examples/SampleMetastore.java ---------------------------------------------------------------------- diff --git a/lens-examples/src/main/java/org/apache/lens/examples/SampleMetastore.java b/lens-examples/src/main/java/org/apache/lens/examples/SampleMetastore.java index b6385d4..0c2301b 100644 --- a/lens-examples/src/main/java/org/apache/lens/examples/SampleMetastore.java +++ b/lens-examples/src/main/java/org/apache/lens/examples/SampleMetastore.java @@ -21,7 +21,10 @@ package org.apache.lens.examples; import java.io.IOException; import java.io.InputStream; -import javax.xml.bind.*; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; import org.apache.lens.api.APIResult; import org.apache.lens.api.jaxb.LensJAXBContext; http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/main/resources/example-job.xml ---------------------------------------------------------------------- diff --git a/lens-examples/src/main/resources/example-job.xml b/lens-examples/src/main/resources/example-job.xml index 93f36d4..3fb9be8 100644 --- a/lens-examples/src/main/resources/example-job.xml +++ b/lens-examples/src/main/resources/example-job.xml @@ -19,16 +19,17 @@ under the License. --> -<job xmlns="uri:lens:job:0.1"> +<job xmlns="uri:lens:job:0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="uri:lens:job:0.1 scheduler-job-0.1.xsd "> <name>Sample Scheduler job</name> <execution> - <resource_path>/path/to/a/resource/</resource_path> <session> <db>myDb</db> <conf> <key>userName</key> <value>ajayyadava</value> </conf> + <resource_path>/path/to/a/resource/</resource_path> </session> <query> <query>cube select measure2 from sample_cube where time_range_in(dt, '2014-06-24-23', '2014-06-25-00')</query> http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/java/org/apache/lens/examples/ExampleSchemaToStringTest.java ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/java/org/apache/lens/examples/ExampleSchemaToStringTest.java b/lens-examples/src/test/java/org/apache/lens/examples/ExampleSchemaToStringTest.java new file mode 100644 index 0000000..b884368 --- /dev/null +++ b/lens-examples/src/test/java/org/apache/lens/examples/ExampleSchemaToStringTest.java @@ -0,0 +1,45 @@ +/** + * 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.lens.examples; + + +import static org.apache.lens.api.jaxb.LensJAXBContext.unmarshallFromFile; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.util.List; + +import javax.xml.bind.JAXBException; + +import org.apache.lens.api.jaxb.YAMLToStringStrategyTest; + +import com.beust.jcommander.internal.Lists; + +public class ExampleSchemaToStringTest extends YAMLToStringStrategyTest { + + public List<ToStringTestData> provideData() throws URISyntaxException, JAXBException, IOException { + List<ToStringTestData> ret = Lists.newArrayList(); + for (String yamlName : new File(getClass().getResource("/yaml").toURI()).list()) { + ret.add(new ToStringTestData(yamlName, unmarshallFromFile("/" + yamlName.replaceAll("yaml$", "xml")), + readYAML("/yaml/" + yamlName))); + } + return ret; + } +} http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/city-local-part.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/city-local-part.yaml b/lens-examples/src/test/resources/yaml/city-local-part.yaml new file mode 100644 index 0000000..9c076d6 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/city-local-part.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-03-27T12:00:00 +factOrDimensionTableName: city_table +location: examples/data/city_local +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/city.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/city.yaml b/lens-examples/src/test/resources/yaml/city.yaml new file mode 100644 index 0000000..a5c8a32 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/city.yaml @@ -0,0 +1,23 @@ +# 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. +attributes: + id: type: INT + name: type: STRING + POI [Point of interests]: type: ARRAY<STRING> + population: type: BIGINT +properties: + dimension.city.timed.dimension: dt +name: city http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/city_subset.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/city_subset.yaml b/lens-examples/src/test/resources/yaml/city_subset.yaml new file mode 100644 index 0000000..cd5c8ad --- /dev/null +++ b/lens-examples/src/test/resources/yaml/city_subset.yaml @@ -0,0 +1,30 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name +storageTables: + mydb: + tableDesc: + tableParameters: + lens.metastore.native.db.name: default + external: true + tableLocation: /tmp/db-storage.db + fieldDelimiter: , + storageHandlerName: org.apache.lens.storage.db.DBStorageHandler +dimensionName: city +tableName: city_subset +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/city_table.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/city_table.yaml b/lens-examples/src/test/resources/yaml/city_table.yaml new file mode 100644 index 0000000..4f3b986 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/city_table.yaml @@ -0,0 +1,36 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name + POI: type: ARRAY<STRING>, comment: Point of interests + population: type: BIGINT, comment: city population +properties: + city.prop: d1 +storageTables: + local: + updatePeriods: HOURLY + tableDesc: + partCols: + dt: type: STRING, comment: Time column + timePartCols: dt + external: true + tableLocation: /tmp/examples/city + fieldDelimiter: , + collectionDelimiter: : +dimensionName: city +tableName: city_table +weight: 10.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/customer-local-part.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/customer-local-part.yaml b/lens-examples/src/test/resources/yaml/customer-local-part.yaml new file mode 100644 index 0000000..638a9cc --- /dev/null +++ b/lens-examples/src/test/resources/yaml/customer-local-part.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-03-27T12:00:00 +factOrDimensionTableName: customer_table +location: examples/data/customer_local +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/customer.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/customer.yaml b/lens-examples/src/test/resources/yaml/customer.yaml new file mode 100644 index 0000000..1a6368d --- /dev/null +++ b/lens-examples/src/test/resources/yaml/customer.yaml @@ -0,0 +1,38 @@ +# 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. +attributes: + id: type: INT + name: type: STRING + gender: values: M, F, type: STRING + age: type: INT + city_id: type: INT + Customer City(customer_city_name) [City name to which the customer belongs]: + chainRefColumn: + - + chainName: customer_city + refCol: name + type: string + customer_credit_status: + type: STRING + startTime: 2015-03-01T00:00:00 +joinChains: + customer_city: + paths: + - + customer.city_id=city.id +properties: + dimension.customer.timed.dimension: dt +name: customer http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/customer_table.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/customer_table.yaml b/lens-examples/src/test/resources/yaml/customer_table.yaml new file mode 100644 index 0000000..2de5cd9 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/customer_table.yaml @@ -0,0 +1,45 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name + gender: type: STRING + age: type: INT + city_id: type: INT + customer_credit_status: type: STRING +properties: + dim4.prop: d1 +storageTables: + local: + updatePeriods: HOURLY + tableDesc: + partCols: + dt: type: STRING, comment: Time column + timePartCols: dt + external: true + tableLocation: /tmp/examples/customer + fieldDelimiter: , + mydb: + tableDesc: + tableParameters: + lens.metastore.native.db.name: default + external: true + tableLocation: /tmp/db-storage.db + fieldDelimiter: , + storageHandlerName: org.apache.lens.storage.db.DBStorageHandler +dimensionName: customer +tableName: customer_table +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/db-storage.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/db-storage.yaml b/lens-examples/src/test/resources/yaml/db-storage.yaml new file mode 100644 index 0000000..6e3c6bc --- /dev/null +++ b/lens-examples/src/test/resources/yaml/db-storage.yaml @@ -0,0 +1,19 @@ +# 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. +properties: + lens.storage.db.url: file:///tmp/db-storage.db +name: mydb +classname: org.apache.lens.storage.db.DBStorage http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim1-local-part.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim1-local-part.yaml b/lens-examples/src/test/resources/yaml/dim1-local-part.yaml new file mode 100644 index 0000000..db42585 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim1-local-part.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-03-27T12:00:00 +factOrDimensionTableName: dim_table +location: examples/data/dim1_local +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim2-local-part.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim2-local-part.yaml b/lens-examples/src/test/resources/yaml/dim2-local-part.yaml new file mode 100644 index 0000000..e98e24d --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim2-local-part.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-03-27T12:00:00 +factOrDimensionTableName: dim_table2 +location: examples/data/dim2_local +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim4-local-part.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim4-local-part.yaml b/lens-examples/src/test/resources/yaml/dim4-local-part.yaml new file mode 100644 index 0000000..be79a70 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim4-local-part.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-03-27T12:00:00 +factOrDimensionTableName: dim_table4 +location: examples/data/dim4_local +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim_table.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim_table.yaml b/lens-examples/src/test/resources/yaml/dim_table.yaml new file mode 100644 index 0000000..8191456 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim_table.yaml @@ -0,0 +1,35 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name + detail: type: STRING, comment: more details + d2id: type: INT, comment: d2 ID +properties: + dim1.prop: d1 +storageTables: + local: + updatePeriods: HOURLY + tableDesc: + partCols: + dt: type: STRING, comment: Time column + timePartCols: dt + external: true + tableLocation: /tmp/examples/dim1 + fieldDelimiter: , +dimensionName: sample_dim +tableName: dim_table +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim_table2.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim_table2.yaml b/lens-examples/src/test/resources/yaml/dim_table2.yaml new file mode 100644 index 0000000..0df4682 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim_table2.yaml @@ -0,0 +1,34 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name + detail2: type: STRING, comment: more details for dim2 +properties: + dim2.prop: d2 +storageTables: + local: + updatePeriods: HOURLY + tableDesc: + partCols: + dt: type: STRING, comment: Time column + timePartCols: dt + external: true + tableLocation: /tmp/examples/dim2 + fieldDelimiter: , +dimensionName: sample_dim2 +tableName: dim_table2 +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim_table3.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim_table3.yaml b/lens-examples/src/test/resources/yaml/dim_table3.yaml new file mode 100644 index 0000000..74cd367 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim_table3.yaml @@ -0,0 +1,34 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name + detail: type: STRING, comment: more details + d2id: type: INT, comment: d2 ID +properties: + dim3.prop: d1 +storageTables: + mydb: + tableDesc: + tableParameters: + lens.metastore.native.db.name: default + external: true + tableLocation: /tmp/db-storage.db + fieldDelimiter: , + storageHandlerName: org.apache.lens.storage.db.DBStorageHandler +dimensionName: sample_db_dim +tableName: dim_table3 +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/dim_table4.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/dim_table4.yaml b/lens-examples/src/test/resources/yaml/dim_table4.yaml new file mode 100644 index 0000000..f26c2cd --- /dev/null +++ b/lens-examples/src/test/resources/yaml/dim_table4.yaml @@ -0,0 +1,43 @@ +# 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. +columns: + id: type: INT, comment: ID + name: type: STRING, comment: name + detail: type: STRING, comment: more details + d2id: type: INT, comment: d2 ID +properties: + dim4.prop: d1 +storageTables: + local: + updatePeriods: HOURLY + tableDesc: + partCols: + dt: type: STRING, comment: Time column + timePartCols: dt + external: true + tableLocation: /tmp/examples/dim4 + fieldDelimiter: , + mydb: + tableDesc: + tableParameters: + lens.metastore.native.db.name: default + external: true + tableLocation: /tmp/db-storage.db + fieldDelimiter: , + storageHandlerName: org.apache.lens.storage.db.DBStorageHandler +dimensionName: sample_dim +tableName: dim_table4 +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/example-job.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/example-job.yaml b/lens-examples/src/test/resources/yaml/example-job.yaml new file mode 100644 index 0000000..62788bb --- /dev/null +++ b/lens-examples/src/test/resources/yaml/example-job.yaml @@ -0,0 +1,39 @@ +# 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. +name: Sample Scheduler job +execution: + session: + db: myDb + conf: + - + key: userName + value: ajayyadava + resourcePath: /path/to/a/resource/ + query: + query: cube select measure2 from sample_cube where time_range_in(dt, '2014-06-24-23', '2014-06-25-00') + conf: + - + key: queryKey1 + value: queryValue1 +trigger: + cronExpression: 0 15 10 * * ? 2014 + timezone: UTC +jobConf: + - + key: key1 + value: value1 +startTime: 2013-11-30T00:00:00 +endTime: 2015-12-30T00:00:00 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact1-local-part1.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact1-local-part1.yaml b/lens-examples/src/test/resources/yaml/fact1-local-part1.yaml new file mode 100644 index 0000000..03c3f67 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact1-local-part1.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-06-24T23:00:00 +factOrDimensionTableName: fact1 +location: examples/data/fact1_local1 +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact1-local-part2.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact1-local-part2.yaml b/lens-examples/src/test/resources/yaml/fact1-local-part2.yaml new file mode 100644 index 0000000..8de4540 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact1-local-part2.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-06-25T00:00:00 +factOrDimensionTableName: fact1 +location: examples/data/fact1_local2 +updatePeriod: DAILY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact1-local-part3.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact1-local-part3.yaml b/lens-examples/src/test/resources/yaml/fact1-local-part3.yaml new file mode 100644 index 0000000..ff07faa --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact1-local-part3.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-06-26T00:00:00 +factOrDimensionTableName: fact1 +location: examples/data/fact1_local3 +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact1.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact1.yaml b/lens-examples/src/test/resources/yaml/fact1.yaml new file mode 100644 index 0000000..4252e33 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact1.yaml @@ -0,0 +1,35 @@ +# 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. +columns: + dim1: type: INT + measure2: type: BIGINT + measure3: type: INT + measure4: type: FLOAT +properties: + cube.fact.is.aggregated: true +storageTables: + local: + updatePeriods: HOURLY, DAILY + tableDesc: + partCols: + dt: type: STRING, comment: Time column + timePartCols: dt + external: true + tableLocation: /tmp/examples/fact1_local + fieldDelimiter: , +name: fact1 +cubeName: sample_cube +weight: 100.0 http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact2-local-part1.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact2-local-part1.yaml b/lens-examples/src/test/resources/yaml/fact2-local-part1.yaml new file mode 100644 index 0000000..b19a1c8 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact2-local-part1.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-06-24T23:00:00 +factOrDimensionTableName: fact2 +location: examples/data/fact2_local1 +updatePeriod: HOURLY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact2-local-part2.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact2-local-part2.yaml b/lens-examples/src/test/resources/yaml/fact2-local-part2.yaml new file mode 100644 index 0000000..26f7b06 --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact2-local-part2.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-06-25T00:00:00 +factOrDimensionTableName: fact2 +location: examples/data/fact2_local2 +updatePeriod: DAILY http://git-wip-us.apache.org/repos/asf/lens/blob/b805ee98/lens-examples/src/test/resources/yaml/fact2-local-part3.yaml ---------------------------------------------------------------------- diff --git a/lens-examples/src/test/resources/yaml/fact2-local-part3.yaml b/lens-examples/src/test/resources/yaml/fact2-local-part3.yaml new file mode 100644 index 0000000..7a802cd --- /dev/null +++ b/lens-examples/src/test/resources/yaml/fact2-local-part3.yaml @@ -0,0 +1,20 @@ +# 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. +timePartitionSpec: + dt: 2014-06-26T00:00:00 +factOrDimensionTableName: fact2 +location: examples/data/fact2_local3 +updatePeriod: HOURLY