public static String dumpConfigurationAsJson() {
   ImmutableCollection<String> keys = CONFIGURATION_SECTIONS.keySet();
   ObjectMapper mapper = new ObjectMapper();
   JsonFactory jfactory = mapper.getJsonFactory();
   StringWriter sw = new StringWriter();
   try {
     JsonGenerator gen = jfactory.createJsonGenerator(sw);
     gen.writeStartArray();
     for (String v : keys) {
       String st = dumpConfigurationAsJson(v);
       ObjectMapper op = new ObjectMapper();
       JsonNode p = op.readTree(st);
       Logger.debug("OBJECT:" + p.toString());
       Logger.debug("STRING:" + st);
       // JsonParser jp = jfactory.createJsonParser(st);
       gen.writeTree(p);
     }
     gen.writeEndArray();
     gen.close();
     return sw.toString();
   } catch (Exception e) {
     Logger.error("Cannot generate a json for the configuration", e);
   }
   return "[]";
 } // dumpConfigurationAsJson()
  public byte[] toJSONBytes() {
    try {
      ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
      JsonFactory jsonFactory = new JsonFactory();
      JsonGenerator jsonGenerator =
          jsonFactory.createJsonGenerator(outputStream, JsonEncoding.UTF8);

      jsonGenerator.useDefaultPrettyPrinter();

      jsonGenerator.writeStartObject();
      jsonGenerator.writeStringField("type", ContentType);
      jsonGenerator.writeStringField("version", Version);
      jsonGenerator.writeStringField("uuid", workspaceUUID);
      jsonGenerator.writeStringField("name", workspaceName);
      jsonGenerator.writeStringField("description", workspaceDescription);
      // TODO: More details about who is making the change when and from what previous version?
      // jsonGenerator.writeStringField("timestamp", timestamp);
      // jsonGenerator.writeStringField("user", user);
      // jsonGenerator.writeStringField("previous", previous);
      jsonGenerator.writeEndObject();
      jsonGenerator.close();
      return outputStream.toByteArray();
    } catch (IOException e) {
      e.printStackTrace();
      return null;
    }
  }
Beispiel #3
0
 public JsonWriter(OutputStream out, boolean pretty, boolean useExtendedOutput)
     throws IOException {
   JsonGenerator writer = factory.createJsonGenerator(out);
   if (pretty) {
     writer = writer.useDefaultPrettyPrinter();
   }
   if (useExtendedOutput) {
     gen = new ExtendedJsonOutput(writer);
   } else {
     gen = new BasicJsonOutput(writer);
   }
 }
 /**
  * Method that can be used to serialize any Java value as a String. Functionally equivalent to
  * calling {@link #writeValue(Writer,Object)} with {@link java.io.StringWriter} and constructing
  * String, but more efficient.
  *
  * <p>Note: prior to version 2.1, throws clause included {@link IOException}; 2.1 removed it.
  */
 public String writeValueAsString(Object value) throws JsonProcessingException {
   // alas, we have to pull the recycler directly here...
   SegmentedStringWriter sw = new SegmentedStringWriter(_jsonFactory._getBufferRecycler());
   try {
     _configAndWriteValue(_jsonFactory.createJsonGenerator(sw), value);
   } catch (JsonProcessingException e) { // to support [JACKSON-758]
     throw e;
   } catch (IOException e) { // shouldn't really happen, but is declared as possibility so:
     throw JsonMappingException.fromUnexpectedIOE(e);
   }
   return sw.getAndClear();
 }
 /**
  * Method that can be used to serialize any Java value as a byte array. Functionally equivalent to
  * calling {@link #writeValue(Writer,Object)} with {@link java.io.ByteArrayOutputStream} and
  * getting bytes, but more efficient. Encoding used will be UTF-8.
  *
  * <p>Note: prior to version 2.1, throws clause included {@link IOException}; 2.1 removed it.
  */
 public byte[] writeValueAsBytes(Object value) throws JsonProcessingException {
   ByteArrayBuilder bb = new ByteArrayBuilder(_jsonFactory._getBufferRecycler());
   try {
     _configAndWriteValue(_jsonFactory.createJsonGenerator(bb, JsonEncoding.UTF8), value);
   } catch (JsonProcessingException e) { // to support [JACKSON-758]
     throw e;
   } catch (IOException e) { // shouldn't really happen, but is declared as possibility so:
     throw JsonMappingException.fromUnexpectedIOE(e);
   }
   byte[] result = bb.toByteArray();
   bb.release();
   return result;
 }
  public static String dumpConfigurationSectionAsFlatJson(String section) {
    Class en = CONFIGURATION_SECTIONS.get(section);
    try {
      JsonFactory jfactory = new JsonFactory();
      StringWriter sw = new StringWriter();
      String enumDescription = "";
      JsonGenerator gen = jfactory.createJsonGenerator(sw);
      gen.writeStartArray();
      EnumSet values = EnumSet.allOf(en);
      for (Object v : values) {
        String key = (String) (en.getMethod("getKey")).invoke(v);

        boolean isVisible = (Boolean) (en.getMethod("isVisible")).invoke(v);
        String valueAsString;
        if (isVisible) valueAsString = (String) (en.getMethod("getValueAsString")).invoke(v);
        else valueAsString = "--HIDDEN--";
        boolean isEditable = (Boolean) (en.getMethod("isEditable")).invoke(v);
        boolean isOverridden = (Boolean) (en.getMethod("isOverridden")).invoke(v);
        String valueDescription = (String) (en.getMethod("getValueDescription")).invoke(v);
        Class type = (Class) en.getMethod("getType").invoke(v);

        gen.writeStartObject(); // 					{
        gen.writeStringField("key", key);
        gen.writeStringField("value", valueAsString);
        gen.writeStringField("description", valueDescription); // 						,"description":"description"
        gen.writeStringField("type", type.getSimpleName()); // 						,"type":"type"
        gen.writeBooleanField("editable", isEditable);
        gen.writeBooleanField("overridden", isOverridden);
        gen.writeEndObject(); // 					}
      }
      if (gen.getOutputContext().inArray()) gen.writeEndArray(); // 				]
      gen.close();
      return sw.toString();
    } catch (Exception e) {
      Logger.error(
          "Cannot generate a json for "
              + en.getSimpleName()
              + " Enum. Is it an Enum that implements the IProperties interface?",
          e);
    }
    return "{}";
  } // dumpConfigurationSectionAsJson(String)()
Beispiel #7
0
 public String obj2json(Object obj) {
   JsonGenerator jg = null;
   try {
     jf = getFactory();
     mapper = getMapper();
     StringWriter out = new StringWriter();
     jg = jf.createJsonGenerator(out);
     mapper.writeValue(jg, obj);
     return out.toString();
   } catch (IOException e) {
     e.printStackTrace();
   } finally {
     try {
       if (jg != null) jg.close();
     } catch (IOException e) {
       e.printStackTrace();
     }
   }
   return null;
 }
  /**
   * *
   *
   * <p>Returns a json representation of the Enumerator The Enumerator must implements the
   * IProperties interface
   *
   * @param en the Enumerator to serialize. It must implements the IProperties interface
   * @return the representation of the Enumerator
   */
  @SuppressWarnings("unchecked")
  public static String dumpConfigurationAsJson(String section) {
    Class en = CONFIGURATION_SECTIONS.get(section);
    try {
      JsonFactory jfactory = new JsonFactory();
      StringWriter sw = new StringWriter();
      String enumDescription = "";
      JsonGenerator gen = jfactory.createJsonGenerator(sw);

      Method getEnumDescription = en.getMethod("getEnumDescription");
      if (getEnumDescription != null
          && getEnumDescription.getReturnType() == String.class
          && Modifier.isStatic(getEnumDescription.getModifiers()))
        enumDescription = (String) getEnumDescription.invoke(null);
      gen.writeStartObject(); // {
      gen.writeStringField("section", section); // 	 "configuration":"EnumName"
      gen.writeStringField("description", enumDescription); // 	,"description": "EnumDescription"
      gen.writeFieldName("sub sections"); //  ,"sections":
      gen.writeStartObject(); // 		{
      String lastSection = "";
      EnumSet values = EnumSet.allOf(en);
      for (Object v : values) {
        String key = (String) (en.getMethod("getKey")).invoke(v);
        boolean isVisible = (Boolean) (en.getMethod("isVisible")).invoke(v);
        String valueAsString;
        if (isVisible) valueAsString = (String) (en.getMethod("getValueAsString")).invoke(v);
        else valueAsString = "--HIDDEN--";
        boolean isEditable = (Boolean) (en.getMethod("isEditable")).invoke(v);
        String valueDescription = (String) (en.getMethod("getValueDescription")).invoke(v);
        Class type = (Class) en.getMethod("getType").invoke(v);
        String subsection = key.substring(0, key.indexOf('.'));
        if (!lastSection.equals(subsection)) {
          if (gen.getOutputContext().inArray()) gen.writeEndArray();
          gen.writeFieldName(subsection); // 			"sectionName":
          gen.writeStartArray(); // 				[
          lastSection = subsection;
        }
        boolean isOverridden = (Boolean) (en.getMethod("isOverridden")).invoke(v);
        gen.writeStartObject(); // 					{
        gen.writeStringField(key, valueAsString); // 							"key": "value"
        gen.writeStringField("description", valueDescription); // 						,"description":"description"
        gen.writeStringField("type", type.getSimpleName()); // 						,"type":"type"
        gen.writeBooleanField("editable", isEditable); // 						,"editable":"true|false"
        gen.writeBooleanField("visible", isVisible); // 						,"visible":"true|false"
        gen.writeBooleanField("overridden", isOverridden); // 						,"overridden":"true|false"
        gen.writeEndObject(); // 					}
      }
      if (gen.getOutputContext().inArray()) gen.writeEndArray(); // 				]
      gen.writeEndObject(); // 		}
      gen.writeEndObject(); // }
      gen.close();
      return sw.toString();
    } catch (Exception e) {
      Logger.error(
          "Cannot generate a json for "
              + en.getSimpleName()
              + " Enum. Is it an Enum that implements the IProperties interface?",
          e);
    }
    return "{}";
  } // dumpConfigurationAsJson(en)
    private String getCollapserJson(final HystrixCollapserMetrics collapserMetrics)
        throws IOException {
      HystrixCollapserKey key = collapserMetrics.getCollapserKey();
      StringWriter jsonString = new StringWriter();
      JsonGenerator json = jsonFactory.createJsonGenerator(jsonString);
      json.writeStartObject();

      json.writeStringField("type", "HystrixCollapser");
      json.writeStringField("name", key.name());
      json.writeNumberField("currentTime", System.currentTimeMillis());

      safelyWriteNumberField(
          json,
          "rollingCountRequestsBatched",
          new Func0<Long>() {
            @Override
            public Long call() {
              return collapserMetrics.getRollingCount(HystrixEventType.Collapser.ADDED_TO_BATCH);
            }
          });
      safelyWriteNumberField(
          json,
          "rollingCountBatches",
          new Func0<Long>() {
            @Override
            public Long call() {
              return collapserMetrics.getRollingCount(HystrixEventType.Collapser.BATCH_EXECUTED);
            }
          });
      safelyWriteNumberField(
          json,
          "rollingCountResponsesFromCache",
          new Func0<Long>() {
            @Override
            public Long call() {
              return collapserMetrics.getRollingCount(
                  HystrixEventType.Collapser.RESPONSE_FROM_CACHE);
            }
          });

      // batch size percentiles
      json.writeNumberField("batchSize_mean", collapserMetrics.getBatchSizeMean());
      json.writeObjectFieldStart("batchSize");
      json.writeNumberField("25", collapserMetrics.getBatchSizePercentile(25));
      json.writeNumberField("50", collapserMetrics.getBatchSizePercentile(50));
      json.writeNumberField("75", collapserMetrics.getBatchSizePercentile(75));
      json.writeNumberField("90", collapserMetrics.getBatchSizePercentile(90));
      json.writeNumberField("95", collapserMetrics.getBatchSizePercentile(95));
      json.writeNumberField("99", collapserMetrics.getBatchSizePercentile(99));
      json.writeNumberField("99.5", collapserMetrics.getBatchSizePercentile(99.5));
      json.writeNumberField("100", collapserMetrics.getBatchSizePercentile(100));
      json.writeEndObject();

      // shard size percentiles (commented-out for now)
      // json.writeNumberField("shardSize_mean", collapserMetrics.getShardSizeMean());
      // json.writeObjectFieldStart("shardSize");
      // json.writeNumberField("25", collapserMetrics.getShardSizePercentile(25));
      // json.writeNumberField("50", collapserMetrics.getShardSizePercentile(50));
      // json.writeNumberField("75", collapserMetrics.getShardSizePercentile(75));
      // json.writeNumberField("90", collapserMetrics.getShardSizePercentile(90));
      // json.writeNumberField("95", collapserMetrics.getShardSizePercentile(95));
      // json.writeNumberField("99", collapserMetrics.getShardSizePercentile(99));
      // json.writeNumberField("99.5", collapserMetrics.getShardSizePercentile(99.5));
      // json.writeNumberField("100", collapserMetrics.getShardSizePercentile(100));
      // json.writeEndObject();

      // json.writeNumberField("propertyValue_metricsRollingStatisticalWindowInMilliseconds",
      // collapserMetrics.getProperties().metricsRollingStatisticalWindowInMilliseconds().get());
      json.writeBooleanField(
          "propertyValue_requestCacheEnabled",
          collapserMetrics.getProperties().requestCacheEnabled().get());
      json.writeNumberField(
          "propertyValue_maxRequestsInBatch",
          collapserMetrics.getProperties().maxRequestsInBatch().get());
      json.writeNumberField(
          "propertyValue_timerDelayInMilliseconds",
          collapserMetrics.getProperties().timerDelayInMilliseconds().get());

      json.writeNumberField(
          "reportingHosts", 1); // this will get summed across all instances in a cluster

      json.writeEndObject();
      json.close();

      return jsonString.getBuffer().toString();
    }
    private String getThreadPoolJson(final HystrixThreadPoolMetrics threadPoolMetrics)
        throws IOException {
      HystrixThreadPoolKey key = threadPoolMetrics.getThreadPoolKey();
      StringWriter jsonString = new StringWriter();
      JsonGenerator json = jsonFactory.createJsonGenerator(jsonString);
      json.writeStartObject();

      json.writeStringField("type", "HystrixThreadPool");
      json.writeStringField("name", key.name());
      json.writeNumberField("currentTime", System.currentTimeMillis());

      json.writeNumberField(
          "currentActiveCount", threadPoolMetrics.getCurrentActiveCount().intValue());
      json.writeNumberField(
          "currentCompletedTaskCount",
          threadPoolMetrics.getCurrentCompletedTaskCount().longValue());
      json.writeNumberField(
          "currentCorePoolSize", threadPoolMetrics.getCurrentCorePoolSize().intValue());
      json.writeNumberField(
          "currentLargestPoolSize", threadPoolMetrics.getCurrentLargestPoolSize().intValue());
      json.writeNumberField(
          "currentMaximumPoolSize", threadPoolMetrics.getCurrentMaximumPoolSize().intValue());
      json.writeNumberField("currentPoolSize", threadPoolMetrics.getCurrentPoolSize().intValue());
      json.writeNumberField("currentQueueSize", threadPoolMetrics.getCurrentQueueSize().intValue());
      json.writeNumberField(
          "currentTaskCount", threadPoolMetrics.getCurrentTaskCount().longValue());
      safelyWriteNumberField(
          json,
          "rollingCountThreadsExecuted",
          new Func0<Long>() {
            @Override
            public Long call() {
              return threadPoolMetrics.getRollingCount(HystrixEventType.ThreadPool.EXECUTED);
            }
          });
      json.writeNumberField(
          "rollingMaxActiveThreads", threadPoolMetrics.getRollingMaxActiveThreads());
      safelyWriteNumberField(
          json,
          "rollingCountCommandRejections",
          new Func0<Long>() {
            @Override
            public Long call() {
              return threadPoolMetrics.getRollingCount(HystrixEventType.ThreadPool.REJECTED);
            }
          });

      json.writeNumberField(
          "propertyValue_queueSizeRejectionThreshold",
          threadPoolMetrics.getProperties().queueSizeRejectionThreshold().get());
      json.writeNumberField(
          "propertyValue_metricsRollingStatisticalWindowInMilliseconds",
          threadPoolMetrics.getProperties().metricsRollingStatisticalWindowInMilliseconds().get());

      json.writeNumberField(
          "reportingHosts", 1); // this will get summed across all instances in a cluster

      json.writeEndObject();
      json.close();

      return jsonString.getBuffer().toString();
    }
 /**
  * Method that can be used to serialize any Java value as JSON output, using Writer provided.
  *
  * <p>Note: method does not close the underlying stream explicitly here; however, {@link
  * JsonFactory} this mapper uses may choose to close the stream depending on its settings (by
  * default, it will try to close it when {@link JsonGenerator} we construct is closed).
  */
 public void writeValue(Writer w, Object value)
     throws IOException, JsonGenerationException, JsonMappingException {
   _configAndWriteValue(_jsonFactory.createJsonGenerator(w), value);
 }
 /**
  * Method that can be used to serialize any Java value as JSON output, using output stream
  * provided (using encoding {@link JsonEncoding#UTF8}).
  *
  * <p>Note: method does not close the underlying stream explicitly here; however, {@link
  * JsonFactory} this mapper uses may choose to close the stream depending on its settings (by
  * default, it will try to close it when {@link JsonGenerator} we construct is closed).
  */
 public void writeValue(OutputStream out, Object value)
     throws IOException, JsonGenerationException, JsonMappingException {
   _configAndWriteValue(_jsonFactory.createJsonGenerator(out, JsonEncoding.UTF8), value);
 }
 /**
  * Method that can be used to serialize any Java value as JSON output, written to File provided.
  */
 public void writeValue(File resultFile, Object value)
     throws IOException, JsonGenerationException, JsonMappingException {
   _configAndWriteValue(_jsonFactory.createJsonGenerator(resultFile, JsonEncoding.UTF8), value);
 }