Java 类org.apache.hadoop.fs.XAttrCodec 实例源码

项目:hadoop-oss    文件:XAttrCommands.java   
@Override
protected void processOptions(LinkedList<String> args) throws IOException {
  name = StringUtils.popOptionWithArgument("-n", args);
  String v = StringUtils.popOptionWithArgument("-v", args);
  if (v != null) {
    value = XAttrCodec.decodeValue(v);
  }
  xname = StringUtils.popOptionWithArgument("-x", args);

  if (name != null && xname != null) {
    throw new HadoopIllegalArgumentException(
        "Can not specify both '-n name' and '-x name' option.");
  }
  if (name == null && xname == null) {
    throw new HadoopIllegalArgumentException(
        "Must specify '-n name' or '-x name' option.");
  }

  if (args.isEmpty()) {
    throw new HadoopIllegalArgumentException("<path> is missing.");
  }
  if (args.size() > 1) {
    throw new HadoopIllegalArgumentException("Too many arguments.");
  }
}
项目:hadoop    文件:FSOperations.java   
/**
 * Converts xAttrs to a JSON object.
 *
 * @param xAttrs file xAttrs.
 * @param encoding format of xattr values.
 *
 * @return The JSON representation of the xAttrs.
 * @throws IOException 
 */
@SuppressWarnings({"unchecked", "rawtypes"})
private static Map xAttrsToJSON(Map<String, byte[]> xAttrs, 
    XAttrCodec encoding) throws IOException {
  Map jsonMap = new LinkedHashMap();
  JSONArray jsonArray = new JSONArray();
  if (xAttrs != null) {
    for (Entry<String, byte[]> e : xAttrs.entrySet()) {
      Map json = new LinkedHashMap();
      json.put(HttpFSFileSystem.XATTR_NAME_JSON, e.getKey());
      if (e.getValue() != null) {
        json.put(HttpFSFileSystem.XATTR_VALUE_JSON, 
            XAttrCodec.encodeValue(e.getValue(), encoding));
      }
      jsonArray.add(json);
    }
  }
  jsonMap.put(HttpFSFileSystem.XATTRS_JSON, jsonArray);
  return jsonMap;
}
项目:hadoop    文件:WebHdfsFileSystem.java   
@Override
public Map<String, byte[]> getXAttrs(Path p, final List<String> names) 
    throws IOException {
  Preconditions.checkArgument(names != null && !names.isEmpty(), 
      "XAttr names cannot be null or empty.");
  Param<?,?>[] parameters = new Param<?,?>[names.size() + 1];
  for (int i = 0; i < parameters.length - 1; i++) {
    parameters[i] = new XAttrNameParam(names.get(i));
  }
  parameters[parameters.length - 1] = new XAttrEncodingParam(XAttrCodec.HEX);

  final HttpOpParam.Op op = GetOpParam.Op.GETXATTRS;
  return new FsPathResponseRunner<Map<String, byte[]>>(op, parameters, p) {
    @Override
    Map<String, byte[]> decodeResponse(Map<?, ?> json) throws IOException {
      return JsonUtil.toXAttrs(json);
    }
  }.run();
}
项目:hadoop    文件:FSEditLogOp.java   
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
项目:hadoop    文件:FSEditLogOp.java   
private static List<XAttr> readXAttrsFromXml(Stanza st)
    throws InvalidXmlException {
  if (!st.hasChildren("XATTR")) {
    return null;
  }

  List<Stanza> stanzas = st.getChildren("XATTR");
  List<XAttr> xattrs = Lists.newArrayListWithCapacity(stanzas.size());
  for (Stanza a: stanzas) {
    XAttr.Builder builder = new XAttr.Builder();
    builder.setNameSpace(XAttr.NameSpace.valueOf(a.getValue("NAMESPACE"))).
        setName(a.getValue("NAME"));
    String v = a.getValueOrNull("VALUE");
    if (v != null) {
      try {
        builder.setValue(XAttrCodec.decodeValue(v));
      } catch (IOException e) {
        throw new InvalidXmlException(e.toString());
      }
    }
    xattrs.add(builder.build());
  }
  return xattrs;
}
项目:hadoop    文件:TestJsonUtil.java   
@Test
public void testToJsonFromXAttrs() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);

  Assert.assertEquals(jsonString, JsonUtil.toJsonString(xAttrs, 
      XAttrCodec.HEX));
}
项目:hadoop    文件:TestJsonUtil.java   
@Test
public void testToXAttrMap() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  ObjectReader reader = new ObjectMapper().reader(Map.class);
  Map<?, ?> json = reader.readValue(jsonString);
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);
  Map<String, byte[]> xAttrMap = XAttrHelper.buildXAttrMap(xAttrs);
  Map<String, byte[]> parsedXAttrMap = JsonUtil.toXAttrs(json);

  Assert.assertEquals(xAttrMap.size(), parsedXAttrMap.size());
  Iterator<Entry<String, byte[]>> iter = xAttrMap.entrySet().iterator();
  while(iter.hasNext()) {
    Entry<String, byte[]> entry = iter.next();
    Assert.assertArrayEquals(entry.getValue(), 
        parsedXAttrMap.get(entry.getKey()));
  }
}
项目:hadoop    文件:XAttrCommands.java   
@Override
protected void processOptions(LinkedList<String> args) throws IOException {
  name = StringUtils.popOptionWithArgument("-n", args);
  String v = StringUtils.popOptionWithArgument("-v", args);
  if (v != null) {
    value = XAttrCodec.decodeValue(v);
  }
  xname = StringUtils.popOptionWithArgument("-x", args);

  if (name != null && xname != null) {
    throw new HadoopIllegalArgumentException(
        "Can not specify both '-n name' and '-x name' option.");
  }
  if (name == null && xname == null) {
    throw new HadoopIllegalArgumentException(
        "Must specify '-n name' or '-x name' option.");
  }

  if (args.isEmpty()) {
    throw new HadoopIllegalArgumentException("<path> is missing.");
  }
  if (args.size() > 1) {
    throw new HadoopIllegalArgumentException("Too many arguments.");
  }
}
项目:aliyun-oss-hadoop-fs    文件:FSOperations.java   
/**
 * Converts xAttrs to a JSON object.
 *
 * @param xAttrs file xAttrs.
 * @param encoding format of xattr values.
 *
 * @return The JSON representation of the xAttrs.
 * @throws IOException 
 */
@SuppressWarnings({"unchecked", "rawtypes"})
private static Map xAttrsToJSON(Map<String, byte[]> xAttrs, 
    XAttrCodec encoding) throws IOException {
  Map jsonMap = new LinkedHashMap();
  JSONArray jsonArray = new JSONArray();
  if (xAttrs != null) {
    for (Entry<String, byte[]> e : xAttrs.entrySet()) {
      Map json = new LinkedHashMap();
      json.put(HttpFSFileSystem.XATTR_NAME_JSON, e.getKey());
      if (e.getValue() != null) {
        json.put(HttpFSFileSystem.XATTR_VALUE_JSON, 
            XAttrCodec.encodeValue(e.getValue(), encoding));
      }
      jsonArray.add(json);
    }
  }
  jsonMap.put(HttpFSFileSystem.XATTRS_JSON, jsonArray);
  return jsonMap;
}
项目:aliyun-oss-hadoop-fs    文件:WebHdfsFileSystem.java   
@Override
public Map<String, byte[]> getXAttrs(Path p, final List<String> names)
    throws IOException {
  Preconditions.checkArgument(names != null && !names.isEmpty(),
      "XAttr names cannot be null or empty.");
  Param<?,?>[] parameters = new Param<?,?>[names.size() + 1];
  for (int i = 0; i < parameters.length - 1; i++) {
    parameters[i] = new XAttrNameParam(names.get(i));
  }
  parameters[parameters.length - 1] = new XAttrEncodingParam(XAttrCodec.HEX);

  final HttpOpParam.Op op = GetOpParam.Op.GETXATTRS;
  return new FsPathResponseRunner<Map<String, byte[]>>(op, parameters, p) {
    @Override
    Map<String, byte[]> decodeResponse(Map<?, ?> json) throws IOException {
      return JsonUtilClient.toXAttrs(json);
    }
  }.run();
}
项目:aliyun-oss-hadoop-fs    文件:FSEditLogOp.java   
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
项目:aliyun-oss-hadoop-fs    文件:FSEditLogOp.java   
private static List<XAttr> readXAttrsFromXml(Stanza st)
    throws InvalidXmlException {
  if (!st.hasChildren("XATTR")) {
    return null;
  }

  List<Stanza> stanzas = st.getChildren("XATTR");
  List<XAttr> xattrs = Lists.newArrayListWithCapacity(stanzas.size());
  for (Stanza a: stanzas) {
    XAttr.Builder builder = new XAttr.Builder();
    builder.setNameSpace(XAttr.NameSpace.valueOf(a.getValue("NAMESPACE"))).
        setName(a.getValue("NAME"));
    String v = a.getValueOrNull("VALUE");
    if (v != null) {
      try {
        builder.setValue(XAttrCodec.decodeValue(v));
      } catch (IOException e) {
        throw new InvalidXmlException(e.toString());
      }
    }
    xattrs.add(builder.build());
  }
  return xattrs;
}
项目:aliyun-oss-hadoop-fs    文件:TestJsonUtil.java   
@Test
public void testToJsonFromXAttrs() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);

  Assert.assertEquals(jsonString, JsonUtil.toJsonString(xAttrs, 
      XAttrCodec.HEX));
}
项目:aliyun-oss-hadoop-fs    文件:TestJsonUtil.java   
@Test
public void testToXAttrMap() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  ObjectReader reader = new ObjectMapper().reader(Map.class);
  Map<?, ?> json = reader.readValue(jsonString);
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);
  Map<String, byte[]> xAttrMap = XAttrHelper.buildXAttrMap(xAttrs);
  Map<String, byte[]> parsedXAttrMap = JsonUtilClient.toXAttrs(json);

  Assert.assertEquals(xAttrMap.size(), parsedXAttrMap.size());
  Iterator<Entry<String, byte[]>> iter = xAttrMap.entrySet().iterator();
  while(iter.hasNext()) {
    Entry<String, byte[]> entry = iter.next();
    Assert.assertArrayEquals(entry.getValue(), 
        parsedXAttrMap.get(entry.getKey()));
  }
}
项目:aliyun-oss-hadoop-fs    文件:XAttrCommands.java   
@Override
protected void processOptions(LinkedList<String> args) throws IOException {
  name = StringUtils.popOptionWithArgument("-n", args);
  String v = StringUtils.popOptionWithArgument("-v", args);
  if (v != null) {
    value = XAttrCodec.decodeValue(v);
  }
  xname = StringUtils.popOptionWithArgument("-x", args);

  if (name != null && xname != null) {
    throw new HadoopIllegalArgumentException(
        "Can not specify both '-n name' and '-x name' option.");
  }
  if (name == null && xname == null) {
    throw new HadoopIllegalArgumentException(
        "Must specify '-n name' or '-x name' option.");
  }

  if (args.isEmpty()) {
    throw new HadoopIllegalArgumentException("<path> is missing.");
  }
  if (args.size() > 1) {
    throw new HadoopIllegalArgumentException("Too many arguments.");
  }
}
项目:big-c    文件:FSOperations.java   
/**
 * Converts xAttrs to a JSON object.
 *
 * @param xAttrs file xAttrs.
 * @param encoding format of xattr values.
 *
 * @return The JSON representation of the xAttrs.
 * @throws IOException 
 */
@SuppressWarnings({"unchecked", "rawtypes"})
private static Map xAttrsToJSON(Map<String, byte[]> xAttrs, 
    XAttrCodec encoding) throws IOException {
  Map jsonMap = new LinkedHashMap();
  JSONArray jsonArray = new JSONArray();
  if (xAttrs != null) {
    for (Entry<String, byte[]> e : xAttrs.entrySet()) {
      Map json = new LinkedHashMap();
      json.put(HttpFSFileSystem.XATTR_NAME_JSON, e.getKey());
      if (e.getValue() != null) {
        json.put(HttpFSFileSystem.XATTR_VALUE_JSON, 
            XAttrCodec.encodeValue(e.getValue(), encoding));
      }
      jsonArray.add(json);
    }
  }
  jsonMap.put(HttpFSFileSystem.XATTRS_JSON, jsonArray);
  return jsonMap;
}
项目:big-c    文件:WebHdfsFileSystem.java   
@Override
public Map<String, byte[]> getXAttrs(Path p, final List<String> names) 
    throws IOException {
  Preconditions.checkArgument(names != null && !names.isEmpty(), 
      "XAttr names cannot be null or empty.");
  Param<?,?>[] parameters = new Param<?,?>[names.size() + 1];
  for (int i = 0; i < parameters.length - 1; i++) {
    parameters[i] = new XAttrNameParam(names.get(i));
  }
  parameters[parameters.length - 1] = new XAttrEncodingParam(XAttrCodec.HEX);

  final HttpOpParam.Op op = GetOpParam.Op.GETXATTRS;
  return new FsPathResponseRunner<Map<String, byte[]>>(op, parameters, p) {
    @Override
    Map<String, byte[]> decodeResponse(Map<?, ?> json) throws IOException {
      return JsonUtil.toXAttrs(json);
    }
  }.run();
}
项目:big-c    文件:FSEditLogOp.java   
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
项目:big-c    文件:FSEditLogOp.java   
private static List<XAttr> readXAttrsFromXml(Stanza st)
    throws InvalidXmlException {
  if (!st.hasChildren("XATTR")) {
    return null;
  }

  List<Stanza> stanzas = st.getChildren("XATTR");
  List<XAttr> xattrs = Lists.newArrayListWithCapacity(stanzas.size());
  for (Stanza a: stanzas) {
    XAttr.Builder builder = new XAttr.Builder();
    builder.setNameSpace(XAttr.NameSpace.valueOf(a.getValue("NAMESPACE"))).
        setName(a.getValue("NAME"));
    String v = a.getValueOrNull("VALUE");
    if (v != null) {
      try {
        builder.setValue(XAttrCodec.decodeValue(v));
      } catch (IOException e) {
        throw new InvalidXmlException(e.toString());
      }
    }
    xattrs.add(builder.build());
  }
  return xattrs;
}
项目:big-c    文件:TestJsonUtil.java   
@Test
public void testToJsonFromXAttrs() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);

  Assert.assertEquals(jsonString, JsonUtil.toJsonString(xAttrs, 
      XAttrCodec.HEX));
}
项目:big-c    文件:TestJsonUtil.java   
@Test
public void testToXAttrMap() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  ObjectReader reader = new ObjectMapper().reader(Map.class);
  Map<?, ?> json = reader.readValue(jsonString);
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);
  Map<String, byte[]> xAttrMap = XAttrHelper.buildXAttrMap(xAttrs);
  Map<String, byte[]> parsedXAttrMap = JsonUtil.toXAttrs(json);

  Assert.assertEquals(xAttrMap.size(), parsedXAttrMap.size());
  Iterator<Entry<String, byte[]>> iter = xAttrMap.entrySet().iterator();
  while(iter.hasNext()) {
    Entry<String, byte[]> entry = iter.next();
    Assert.assertArrayEquals(entry.getValue(), 
        parsedXAttrMap.get(entry.getKey()));
  }
}
项目:big-c    文件:XAttrCommands.java   
@Override
protected void processOptions(LinkedList<String> args) throws IOException {
  name = StringUtils.popOptionWithArgument("-n", args);
  String v = StringUtils.popOptionWithArgument("-v", args);
  if (v != null) {
    value = XAttrCodec.decodeValue(v);
  }
  xname = StringUtils.popOptionWithArgument("-x", args);

  if (name != null && xname != null) {
    throw new HadoopIllegalArgumentException(
        "Can not specify both '-n name' and '-x name' option.");
  }
  if (name == null && xname == null) {
    throw new HadoopIllegalArgumentException(
        "Must specify '-n name' or '-x name' option.");
  }

  if (args.isEmpty()) {
    throw new HadoopIllegalArgumentException("<path> is missing.");
  }
  if (args.size() > 1) {
    throw new HadoopIllegalArgumentException("Too many arguments.");
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSOperations.java   
/**
 * Converts xAttrs to a JSON object.
 *
 * @param xAttrs file xAttrs.
 * @param encoding format of xattr values.
 *
 * @return The JSON representation of the xAttrs.
 * @throws IOException 
 */
@SuppressWarnings({"unchecked", "rawtypes"})
private static Map xAttrsToJSON(Map<String, byte[]> xAttrs, 
    XAttrCodec encoding) throws IOException {
  Map jsonMap = new LinkedHashMap();
  JSONArray jsonArray = new JSONArray();
  if (xAttrs != null) {
    for (Entry<String, byte[]> e : xAttrs.entrySet()) {
      Map json = new LinkedHashMap();
      json.put(HttpFSFileSystem.XATTR_NAME_JSON, e.getKey());
      if (e.getValue() != null) {
        json.put(HttpFSFileSystem.XATTR_VALUE_JSON, 
            XAttrCodec.encodeValue(e.getValue(), encoding));
      }
      jsonArray.add(json);
    }
  }
  jsonMap.put(HttpFSFileSystem.XATTRS_JSON, jsonArray);
  return jsonMap;
}
项目:hadoop-2.6.0-cdh5.4.3    文件:WebHdfsFileSystem.java   
@Override
public Map<String, byte[]> getXAttrs(Path p, final List<String> names) 
    throws IOException {
  Preconditions.checkArgument(names != null && !names.isEmpty(), 
      "XAttr names cannot be null or empty.");
  Param<?,?>[] parameters = new Param<?,?>[names.size() + 1];
  for (int i = 0; i < parameters.length - 1; i++) {
    parameters[i] = new XAttrNameParam(names.get(i));
  }
  parameters[parameters.length - 1] = new XAttrEncodingParam(XAttrCodec.HEX);

  final HttpOpParam.Op op = GetOpParam.Op.GETXATTRS;
  return new FsPathResponseRunner<Map<String, byte[]>>(op, parameters, p) {
    @Override
    Map<String, byte[]> decodeResponse(Map<?, ?> json) throws IOException {
      return JsonUtil.toXAttrs(json);
    }
  }.run();
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSEditLogOp.java   
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:FSEditLogOp.java   
private static List<XAttr> readXAttrsFromXml(Stanza st)
    throws InvalidXmlException {
  if (!st.hasChildren("XATTR")) {
    return null;
  }

  List<Stanza> stanzas = st.getChildren("XATTR");
  List<XAttr> xattrs = Lists.newArrayListWithCapacity(stanzas.size());
  for (Stanza a: stanzas) {
    XAttr.Builder builder = new XAttr.Builder();
    builder.setNameSpace(XAttr.NameSpace.valueOf(a.getValue("NAMESPACE"))).
        setName(a.getValue("NAME"));
    String v = a.getValueOrNull("VALUE");
    if (v != null) {
      try {
        builder.setValue(XAttrCodec.decodeValue(v));
      } catch (IOException e) {
        throw new InvalidXmlException(e.toString());
      }
    }
    xattrs.add(builder.build());
  }
  return xattrs;
}
项目:hadoop-2.6.0-cdh5.4.3    文件:TestJsonUtil.java   
@Test
public void testToJsonFromXAttrs() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);

  Assert.assertEquals(jsonString, JsonUtil.toJsonString(xAttrs, 
      XAttrCodec.HEX));
}
项目:hadoop-2.6.0-cdh5.4.3    文件:TestJsonUtil.java   
@Test
public void testToXAttrMap() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  Map<?, ?> json = (Map<?, ?>)JSON.parse(jsonString);
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);
  Map<String, byte[]> xAttrMap = XAttrHelper.buildXAttrMap(xAttrs);
  Map<String, byte[]> parsedXAttrMap = JsonUtil.toXAttrs(json);

  Assert.assertEquals(xAttrMap.size(), parsedXAttrMap.size());
  Iterator<Entry<String, byte[]>> iter = xAttrMap.entrySet().iterator();
  while(iter.hasNext()) {
    Entry<String, byte[]> entry = iter.next();
    Assert.assertArrayEquals(entry.getValue(), 
        parsedXAttrMap.get(entry.getKey()));
  }
}
项目:hadoop-2.6.0-cdh5.4.3    文件:XAttrCommands.java   
@Override
protected void processOptions(LinkedList<String> args) throws IOException {
  name = StringUtils.popOptionWithArgument("-n", args);
  String v = StringUtils.popOptionWithArgument("-v", args);
  if (v != null) {
    value = XAttrCodec.decodeValue(v);
  }
  xname = StringUtils.popOptionWithArgument("-x", args);

  if (name != null && xname != null) {
    throw new HadoopIllegalArgumentException(
        "Can not specify both '-n name' and '-x name' option.");
  }
  if (name == null && xname == null) {
    throw new HadoopIllegalArgumentException(
        "Must specify '-n name' or '-x name' option.");
  }

  if (args.isEmpty()) {
    throw new HadoopIllegalArgumentException("<path> is missing.");
  }
  if (args.size() > 1) {
    throw new HadoopIllegalArgumentException("Too many arguments.");
  }
}
项目:FlexMap    文件:WebHdfsFileSystem.java   
@Override
public Map<String, byte[]> getXAttrs(Path p, final List<String> names) 
    throws IOException {
  Preconditions.checkArgument(names != null && !names.isEmpty(), 
      "XAttr names cannot be null or empty.");
  Param<?,?>[] parameters = new Param<?,?>[names.size() + 1];
  for (int i = 0; i < parameters.length - 1; i++) {
    parameters[i] = new XAttrNameParam(names.get(i));
  }
  parameters[parameters.length - 1] = new XAttrEncodingParam(XAttrCodec.HEX);

  final HttpOpParam.Op op = GetOpParam.Op.GETXATTRS;
  return new FsPathResponseRunner<Map<String, byte[]>>(op, parameters, p) {
    @Override
    Map<String, byte[]> decodeResponse(Map<?, ?> json) throws IOException {
      return JsonUtil.toXAttrs(json);
    }
  }.run();
}
项目:FlexMap    文件:FSEditLogOp.java   
private static void appendXAttrsToXml(ContentHandler contentHandler,
    List<XAttr> xAttrs) throws SAXException {
  for (XAttr xAttr: xAttrs) {
    contentHandler.startElement("", "", "XATTR", new AttributesImpl());
    XMLUtils.addSaxString(contentHandler, "NAMESPACE",
        xAttr.getNameSpace().toString());
    XMLUtils.addSaxString(contentHandler, "NAME", xAttr.getName());
    if (xAttr.getValue() != null) {
      try {
        XMLUtils.addSaxString(contentHandler, "VALUE",
            XAttrCodec.encodeValue(xAttr.getValue(), XAttrCodec.HEX));
      } catch (IOException e) {
        throw new SAXException(e);
      }
    }
    contentHandler.endElement("", "", "XATTR");
  }
}
项目:FlexMap    文件:FSEditLogOp.java   
private static List<XAttr> readXAttrsFromXml(Stanza st)
    throws InvalidXmlException {
  if (!st.hasChildren("XATTR")) {
    return null;
  }

  List<Stanza> stanzas = st.getChildren("XATTR");
  List<XAttr> xattrs = Lists.newArrayListWithCapacity(stanzas.size());
  for (Stanza a: stanzas) {
    XAttr.Builder builder = new XAttr.Builder();
    builder.setNameSpace(XAttr.NameSpace.valueOf(a.getValue("NAMESPACE"))).
        setName(a.getValue("NAME"));
    String v = a.getValueOrNull("VALUE");
    if (v != null) {
      try {
        builder.setValue(XAttrCodec.decodeValue(v));
      } catch (IOException e) {
        throw new InvalidXmlException(e.toString());
      }
    }
    xattrs.add(builder.build());
  }
  return xattrs;
}
项目:FlexMap    文件:TestJsonUtil.java   
@Test
public void testToJsonFromXAttrs() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);

  Assert.assertEquals(jsonString, JsonUtil.toJsonString(xAttrs, 
      XAttrCodec.HEX));
}
项目:FlexMap    文件:TestJsonUtil.java   
@Test
public void testToXAttrMap() throws IOException {
  String jsonString = 
      "{\"XAttrs\":[{\"name\":\"user.a1\",\"value\":\"0x313233\"}," +
      "{\"name\":\"user.a2\",\"value\":\"0x313131\"}]}";
  Map<?, ?> json = (Map<?, ?>)JSON.parse(jsonString);
  XAttr xAttr1 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a1").setValue(XAttrCodec.decodeValue("0x313233")).build();
  XAttr xAttr2 = (new XAttr.Builder()).setNameSpace(XAttr.NameSpace.USER).
      setName("a2").setValue(XAttrCodec.decodeValue("0x313131")).build();
  List<XAttr> xAttrs = Lists.newArrayList();
  xAttrs.add(xAttr1);
  xAttrs.add(xAttr2);
  Map<String, byte[]> xAttrMap = XAttrHelper.buildXAttrMap(xAttrs);
  Map<String, byte[]> parsedXAttrMap = JsonUtil.toXAttrs(json);

  Assert.assertEquals(xAttrMap.size(), parsedXAttrMap.size());
  Iterator<Entry<String, byte[]>> iter = xAttrMap.entrySet().iterator();
  while(iter.hasNext()) {
    Entry<String, byte[]> entry = iter.next();
    Assert.assertArrayEquals(entry.getValue(), 
        parsedXAttrMap.get(entry.getKey()));
  }
}
项目:hops    文件:XAttrCommands.java   
@Override
protected void processOptions(LinkedList<String> args) throws IOException {
  name = StringUtils.popOptionWithArgument("-n", args);
  String v = StringUtils.popOptionWithArgument("-v", args);
  if (v != null) {
    value = XAttrCodec.decodeValue(v);
  }
  xname = StringUtils.popOptionWithArgument("-x", args);

  if (name != null && xname != null) {
    throw new HadoopIllegalArgumentException(
        "Can not specify both '-n name' and '-x name' option.");
  }
  if (name == null && xname == null) {
    throw new HadoopIllegalArgumentException(
        "Must specify '-n name' or '-x name' option.");
  }

  if (args.isEmpty()) {
    throw new HadoopIllegalArgumentException("<path> is missing.");
  }
  if (args.size() > 1) {
    throw new HadoopIllegalArgumentException("Too many arguments.");
  }
}
项目:hadoop-oss    文件:XAttrCommands.java   
private void printXAttr(String name, byte[] value) throws IOException{
  if (value != null) {
    if (value.length != 0) {
      out.println(name + "=" + XAttrCodec.encodeValue(value, encoding));
    } else {
      out.println(name);
    }
  }
}
项目:hadoop    文件:HttpFSFileSystem.java   
@Override
public void setXAttr(Path f, String name, byte[] value,
    EnumSet<XAttrSetFlag> flag) throws IOException {
  Map<String, String> params = new HashMap<String, String>();
  params.put(OP_PARAM, Operation.SETXATTR.toString());
  params.put(XATTR_NAME_PARAM, name);
  if (value != null) {
    params.put(XATTR_VALUE_PARAM, 
        XAttrCodec.encodeValue(value, XAttrCodec.HEX));
  }
  params.put(XATTR_SET_FLAG_PARAM, EnumSetParam.toString(flag));
  HttpURLConnection conn = getConnection(Operation.SETXATTR.getMethod(),
      params, f, true);
  HttpExceptionUtils.validateResponse(conn, HttpURLConnection.HTTP_OK);
}
项目:hadoop    文件:HttpFSFileSystem.java   
/** Convert xAttrs json to xAttrs map */
private Map<String, byte[]> createXAttrMap(JSONArray jsonArray) 
    throws IOException {
  Map<String, byte[]> xAttrs = Maps.newHashMap();
  for (Object obj : jsonArray) {
    JSONObject jsonObj = (JSONObject) obj;
    final String name = (String)jsonObj.get(XATTR_NAME_JSON);
    final byte[] value = XAttrCodec.decodeValue(
        (String)jsonObj.get(XATTR_VALUE_JSON));
    xAttrs.put(name, value);
  }

  return xAttrs;
}
项目:hadoop    文件:FSOperations.java   
public FSSetXAttr(String path, String name, String encodedValue, 
    EnumSet<XAttrSetFlag> flag) throws IOException {
  this.path = new Path(path);
  this.name = name;
  this.value = XAttrCodec.decodeValue(encodedValue);
  this.flag = flag;
}
项目:hadoop    文件:TestHttpFSServer.java   
/** Decode xattr value from string */
private byte[] decodeXAttrValue(String value) throws IOException {
  if (value != null) {
    return XAttrCodec.decodeValue(value);
  } else {
    return new byte[0];
  }
}