Return-Path: X-Original-To: apmail-hawq-dev-archive@minotaur.apache.org Delivered-To: apmail-hawq-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 54CEE18C9B for ; Tue, 29 Mar 2016 01:55:58 +0000 (UTC) Received: (qmail 12880 invoked by uid 500); 29 Mar 2016 01:55:58 -0000 Delivered-To: apmail-hawq-dev-archive@hawq.apache.org Received: (qmail 12813 invoked by uid 500); 29 Mar 2016 01:55:58 -0000 Mailing-List: contact dev-help@hawq.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hawq.incubator.apache.org Delivered-To: mailing list dev@hawq.incubator.apache.org Received: (qmail 12802 invoked by uid 99); 29 Mar 2016 01:55:57 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Mar 2016 01:55:57 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 78374180219 for ; Tue, 29 Mar 2016 01:55:57 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.021 X-Spam-Level: X-Spam-Status: No, score=-4.021 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id z5RcA1eWmX8v for ; Tue, 29 Mar 2016 01:55:56 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 850895F1ED for ; Tue, 29 Mar 2016 01:55:55 +0000 (UTC) Received: (qmail 12796 invoked by uid 99); 29 Mar 2016 01:55:54 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Mar 2016 01:55:54 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 847C5DFC73; Tue, 29 Mar 2016 01:55:54 +0000 (UTC) From: sansanichfb To: dev@hawq.incubator.apache.org Reply-To: dev@hawq.incubator.apache.org References: In-Reply-To: Subject: [GitHub] incubator-hawq pull request: HAWQ-577. Updated PXF metadata api to... Content-Type: text/plain Message-Id: <20160329015554.847C5DFC73@git1-us-west.apache.org> Date: Tue, 29 Mar 2016 01:55:54 +0000 (UTC) Github user sansanichfb commented on a diff in the pull request: https://github.com/apache/incubator-hawq/pull/522#discussion_r57663034 --- Diff: pxf/pxf-service/src/main/java/org/apache/hawq/pxf/service/MetadataResponseFormatter.java --- @@ -46,76 +45,49 @@ * @return JSON formatted response * @throws IOException if converting the data to JSON fails */ - public static String formatResponseString(List metadataList) throws IOException { - return MetadataResponseFormatter.metadataToJSON(metadataList); - } - - /** - * Serializes a metadata in JSON, - * To be used as the result string for HAWQ. - * An example result is as follows: - * - * {"PXFMetadata":[{"item":{"path":"default","name":"t1"},"fields":[{"name":"a","type":"int"},{"name":"b","type":"float"}]}]} - */ - private static String metadataToJSON(List metadataList) throws IOException { - - if (metadataList == null || metadataList.isEmpty()) { - return METADATA_DEFAULT_RESPONSE; + public static MetadataResponse formatResponse(List metadataList, String path) throws IOException { + /* print the fragment list to log when in debug level */ + if (LOG.isDebugEnabled()) { + MetadataResponseFormatter.printMetadata(metadataList, path); } - StringBuilder result = null; - - for(Metadata metadata: metadataList) { - if(metadata == null) { - throw new IllegalArgumentException("metadata object is null - cannot serialize"); - } - if ((metadata.getFields() == null) || metadata.getFields().isEmpty()) { - throw new IllegalArgumentException("metadata for " + metadata.getItem() + " contains no fields - cannot serialize"); - } - if (result == null) { - result = new StringBuilder("{\"PXFMetadata\":["); /* prefix info */ - } else { - result.append(","); - } - - ObjectMapper mapper = new ObjectMapper(); - mapper.setSerializationInclusion(Inclusion.NON_EMPTY); // ignore empty fields - result.append(mapper.writeValueAsString(metadata)); - } - - return result.append("]}").toString(); /* append suffix info */ - + return new MetadataResponse(metadataList); } /** * Converts metadata list to a readable string. * Intended for debugging purposes only. */ - private static String metadataToString(List metadataList) { - StringBuilder result = new StringBuilder("Metadata:"); + private static void printMetadata(List metadataList, String path) { + LOG.debug("Metadata List for path " + path + ": "); + + if (null == metadataList || metadataList.isEmpty()) { + LOG.debug("No metadata"); + return; + } for(Metadata metadata: metadataList) { - result.append(" Metadata for item \""); + StringBuilder result = new StringBuilder(); if (metadata == null) { - return "No metadata"; + result.append("None"); --- End diff -- Literal "None" was used couple times, might me a constant. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---