public void write(JSONSerializer serializer, Object object) throws IOException {
    SerializeWriter out = serializer.getWrier();
    DataVO vo = (DataVO) object;
    if (vo == null) {
      out.append("null");
      return;
    }
    try {
      String[] fields = vo.getFieldNames();
      if (fields.length == 0) {
        out.append("{}");
        return;
      }

      out.append('{');

      boolean commaFlag = false;
      for (int i = 0; i < fields.length; ++i) {

        Object propertyValue = vo.getValue(fields[i]);

        if (propertyValue == null && (!serializer.isEnabled(SerializerFeature.WriteMapNullValue))) {
          continue;
        }

        List<PropertyFilter> propertyFilters = serializer.getPropertyFiltersDirect();
        if (propertyFilters != null) {
          boolean apply = true;
          for (PropertyFilter propertyFilter : propertyFilters) {
            if (!propertyFilter.apply(object, fields[i], propertyValue)) {
              apply = false;
              break;
            }
          }

          if (!apply) {
            continue;
          }
        }

        if (commaFlag) {
          out.append(',');
        }

        commaFlag = true;
        if (propertyValue == null) {
          out.write(fields[i] + " : null ");
          continue;
        }
        ObjectSerializer objserializer = serializer.getObjectWriter(propertyValue.getClass());
        out.write("\"".concat(fields[i]).concat("\":"));
        objserializer.write(serializer, propertyValue);
      }

      out.append('}');
    } catch (Exception e) {
      throw new JSONException("write javaBean error", e);
    }
  }
  public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    if (object == null) {
      serializer.writeNull();
      return;
    }

    serializer.write(object.toString());
  }
 public void write(
     JSONSerializer paramJSONSerializer, Object paramObject1, Object paramObject2, Type paramType)
     throws IOException {
   if (paramObject1 == null) {
     paramJSONSerializer.getWriter().writeNull();
     return;
   }
   paramObject1 = (Date) paramObject1;
   paramJSONSerializer.write(new SimpleDateFormat(this.pattern).format(paramObject1));
 }
 public void writeValue(JSONSerializer paramJSONSerializer, Object paramObject) throws Exception {
   paramJSONSerializer = paramJSONSerializer.getWriter();
   if (paramObject == null) {
     if (paramJSONSerializer.isEnabled(SerializerFeature.WriteNullNumberAsZero)) {
       paramJSONSerializer.write('0');
       return;
     }
     paramJSONSerializer.writeNull();
     return;
   }
   paramJSONSerializer.append(paramObject.toString());
 }
Beispiel #5
0
 public void write(
     JSONSerializer paramJSONSerializer, Object paramObject1, Object paramObject2, Type paramType)
     throws IOException {
   paramObject2 = paramJSONSerializer.getWriter();
   if (paramObject1 == null) {
     paramJSONSerializer.getWriter().writeNull();
     return;
   }
   if (paramJSONSerializer.isEnabled(SerializerFeature.WriteEnumUsingToString)) {
     paramJSONSerializer.write(((Enum) paramObject1).name());
     return;
   }
   paramObject2.writeInt(((Enum) paramObject1).ordinal());
 }
Beispiel #6
0
  @Test
  public void testRoundtrip() {
    Outer expected = new Outer();
    expected.string = "String";
    expected.strValues = new String[] {"one", "two", "three"};
    expected.nValues = new int[] {1, 2, 3};

    JSONSerializer out = new JSONSerializer();

    Outer actual = out.fromJson(out.toJson(expected));

    assertEquals(expected.string, actual.string);
    assertArrayEquals(expected.strValues, actual.strValues);
    assertArrayEquals(expected.nValues, actual.nValues);
  }
  public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();
    if (object == null) {
      serializer.getWriter().writeNull();
      return;
    }

    if (serializer.isEnabled(SerializerFeature.WriteEnumUsingToString)) {
      Enum<?> e = (Enum<?>) object;
      serializer.write(e.name());
    } else {
      Enum<?> e = (Enum<?>) object;
      out.writeInt(e.ordinal());
    }
  }
 public void saveNamespace(String name, Map<String, List> desc) throws Exception {
   StoreDesc sdesc = StoreDesc.getGlobalData();
   m_gitService.putContent(
       sdesc.getRepository(),
       format(NAMESPACE_PATH, name),
       NAMESPACE_TYPE,
       m_js.deepSerialize(desc));
 }
 /**
  * Attempts to parse the string as JSON. returns true on success
  *
  * @param possiblyJson A string that may be JSON
  * @return true or false. True if string is valid JSON.
  */
 private boolean isTaskJson(String possiblyJson) {
   try {
     JSONSerializer.toJSON(possiblyJson);
     return true;
   } catch (JSONException ex) {
     return false;
   }
 }
  public void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    AtomicLong val = (AtomicLong) object;
    out.writeLong(val.get());
  }
Beispiel #11
0
  @Override
  public void writeValue(JSONSerializer serializer, Object propertyValue) throws Exception {
    if (format != null) {
      serializer.writeWithFormat(propertyValue, format);
      return;
    }

    if (fieldSerializer == null) {

      if (propertyValue == null) {
        runtimeFieldClass = this.fieldInfo.getFieldClass();
      } else {
        runtimeFieldClass = propertyValue.getClass();
      }

      fieldSerializer = serializer.getObjectWriter(runtimeFieldClass);
    }

    if (propertyValue == null) {
      if (writeNumberAsZero && Number.class.isAssignableFrom(runtimeFieldClass)) {
        serializer.getWriter().write('0');
        return;
      } else if (writeNullStringAsEmpty && String.class == runtimeFieldClass) {
        serializer.getWriter().write("\"\"");
        return;
      } else if (writeNullBooleanAsFalse && Boolean.class == runtimeFieldClass) {
        serializer.getWriter().write("false");
        return;
      } else if (writeNullListAsEmpty && Collection.class.isAssignableFrom(runtimeFieldClass)) {
        serializer.getWriter().write("[]");
        return;
      }

      fieldSerializer.write(serializer, null, fieldInfo.getName(), null);
      return;
    }

    if (writeEnumUsingToString == true && runtimeFieldClass.isEnum()) {
      serializer.getWriter().writeString(((Enum<?>) propertyValue).name());
      return;
    }

    Class<?> valueClass = propertyValue.getClass();
    if (valueClass == runtimeFieldClass) {
      fieldSerializer.write(
          serializer, propertyValue, fieldInfo.getName(), fieldInfo.getFieldType());
      return;
    }

    ObjectSerializer valueSerializer = serializer.getObjectWriter(valueClass);
    valueSerializer.write(serializer, propertyValue, fieldInfo.getName(), fieldInfo.getFieldType());
  }
Beispiel #12
0
  public void write(JSONSerializer serializer, String value) {
    SerializeWriter out = serializer.getWriter();

    if (value == null) {
      if (out.isEnabled(SerializerFeature.WriteNullStringAsEmpty)) {
        out.writeString("");
      } else {
        out.writeNull();
      }
      return;
    }

    out.writeString(value);
  }
  public void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
      throws IOException {
    if (object == null) {
      serializer.out.writeNull();
      return;
    }

    Date date = (Date) object;
    SimpleDateFormat format = new SimpleDateFormat(pattern);

    String text = format.format(date);
    serializer.write(text);
  }
Beispiel #14
0
 public void write(
     JSONSerializer paramJSONSerializer, Object paramObject1, Object paramObject2, Type paramType)
     throws IOException {
   paramJSONSerializer = paramJSONSerializer.getWriter();
   paramObject1 = (Point) paramObject1;
   if (paramObject1 == null) {
     paramJSONSerializer.writeNull();
     return;
   }
   char c = '{';
   if (paramJSONSerializer.isEnabled(SerializerFeature.WriteClassName)) {
     paramJSONSerializer.write('{');
     paramJSONSerializer.writeFieldName(JSON.DEFAULT_TYPE_KEY);
     paramJSONSerializer.writeString(Point.class.getName());
     c = ',';
   }
   paramJSONSerializer.writeFieldValue(c, "x", paramObject1.getX());
   paramJSONSerializer.writeFieldValue(',', "y", paramObject1.getY());
   paramJSONSerializer.write('}');
 }
  public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullNumberAsZero)) {
        out.write('0');
      } else {
        out.writeNull();
      }
      return;
    }

    BigInteger val = (BigInteger) object;
    out.write(val.toString());
  }
  public final void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
        out.write("[]");
      } else {
        out.writeNull();
      }
      return;
    }

    float[] array = (float[]) object;
    int size = array.length;

    int end = size - 1;

    if (end == -1) {
      out.append("[]");
      return;
    }

    out.append('[');
    for (int i = 0; i < end; ++i) {
      float item = array[i];

      if (Float.isNaN(item)) {
        out.writeNull();
      } else {
        out.append(Float.toString(item));
      }

      out.append(',');
    }

    float item = array[end];

    if (Float.isNaN(item)) {
      out.writeNull();
    } else {
      out.append(Float.toString(item));
    }

    out.append(']');
  }
Beispiel #17
0
  public final void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
        out.write("[]");
      } else {
        out.writeNull();
      }
      return;
    }

    byte[] array = (byte[]) object;
    out.writeByteArray(array);
  }
Beispiel #18
0
  public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    Character value = (Character) object;
    if (value == null) {
      out.writeString("");
      return;
    }

    char c = value.charValue();
    if (c == 0) {
      out.writeString("\u0000");
    } else {
      out.writeString(value.toString());
    }
  }
Beispiel #19
0
  public final void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
        out.write("[]");
      } else {
        out.writeNull();
      }
      return;
    }

    Object[] array = (Object[]) object;
    int size = array.length;

    int end = size - 1;

    if (end == -1) {
      out.append("[]");
      return;
    }

    out.append('[');
    for (int i = 0; i < end; ++i) {
      Object item = array[i];

      if (item == null) {
        out.append("null,");
      } else {
        compObjectSerializer.write(serializer, item, null, null);
        out.append(',');
      }
    }

    Object item = array[end];

    if (item == null) {
      out.append("null]");
    } else {
      compObjectSerializer.write(serializer, item, null, null);
      out.append(']');
    }
  }
  public void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
        out.write("[]");
      } else {
        out.writeNull();
      }
      return;
    }

    Type elementType = null;
    if (serializer.isEnabled(SerializerFeature.WriteClassName)) {
      if (fieldType instanceof ParameterizedType) {
        ParameterizedType param = (ParameterizedType) fieldType;
        elementType = param.getActualTypeArguments()[0];
      }
    }

    Enumeration<?> e = (Enumeration<?>) object;

    SerialContext context = serializer.getContext();
    serializer.setContext(context, object, fieldName, 0);

    try {
      int i = 0;
      out.append('[');
      while (e.hasMoreElements()) {
        Object item = e.nextElement();
        if (i++ != 0) {
          out.append(',');
        }

        if (item == null) {
          out.writeNull();
          continue;
        }

        Class<?> clazz = item.getClass();

        ObjectSerializer itemSerializer = serializer.getObjectWriter(clazz);
        itemSerializer.write(serializer, item, i - 1, elementType, 0);
      }
      out.append(']');
    } finally {
      serializer.setContext(context);
    }
  }
Beispiel #21
0
  public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();
    Point font = (Point) object;
    if (font == null) {
      out.writeNull();
      return;
    }

    char sep = '{';
    if (out.isEnabled(SerializerFeature.WriteClassName)) {
      out.write('{');
      out.writeFieldName(JSON.DEFAULT_TYPE_KEY);
      out.writeString(Point.class.getName());
      sep = ',';
    }

    out.writeFieldValue(sep, "x", font.getX());
    out.writeFieldValue(',', "y", font.getY());
    out.write('}');
  }
Beispiel #22
0
  public void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    Boolean value = (Boolean) object;
    if (value == null) {
      if (out.isEnabled(SerializerFeature.WriteNullBooleanAsFalse)) {
        out.write("false");
      } else {
        out.writeNull();
      }
      return;
    }

    if (value.booleanValue()) {
      out.write("true");
    } else {
      out.write("false");
    }
  }
Beispiel #23
0
  public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullNumberAsZero)) {
        out.write('0');
      } else {
        out.writeNull();
      }
      return;
    }

    BigDecimal val = (BigDecimal) object;
    out.write(val.toString());

    if (out.isEnabled(SerializerFeature.WriteClassName)
        && fieldType != BigDecimal.class
        && val.scale() == 0) {
      out.write('.');
    }
  }
Beispiel #24
0
  public final void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
        out.write("[]");
      } else {
        out.writeNull();
      }
      return;
    }

    short[] array = (short[]) object;
    out.write('[');
    for (int i = 0; i < array.length; ++i) {
      if (i != 0) {
        out.write(',');
      }
      out.writeInt(array[i]);
    }
    out.write(']');
  }
  @Override
  public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) {
    // This method deserves a refactor and cleanup.
    boolean success = true;
    Log log = new Log(listener);
    if (Result.FAILURE.equals(build.getResult())) {
      log.info("Not deploying due to job being in FAILED state.");
      return success;
    }

    logStartHeader(log);
    // todo: getting from descriptor is ugly. refactor?
    getDescriptorImpl().setGlobalConfiguration();
    OctopusApi api = getDescriptorImpl().api;

    VariableResolver resolver = build.getBuildVariableResolver();
    EnvVars envVars;
    try {
      envVars = build.getEnvironment(listener);
    } catch (Exception ex) {
      log.fatal(
          String.format(
              "Failed to retrieve environment variables for this build - '%s'", ex.getMessage()));
      return false;
    }
    EnvironmentVariableValueInjector envInjector =
        new EnvironmentVariableValueInjector(resolver, envVars);
    // NOTE: hiding the member variables of the same name with their env-injected equivalents
    String project = envInjector.injectEnvironmentVariableValues(this.project);
    String releaseVersion = envInjector.injectEnvironmentVariableValues(this.releaseVersion);
    String environment = envInjector.injectEnvironmentVariableValues(this.environment);
    String variables = envInjector.injectEnvironmentVariableValues(this.variables);

    com.octopusdeploy.api.Project p = null;
    try {
      p = api.getProjectByName(project);
    } catch (Exception ex) {
      log.fatal(
          String.format(
              "Retrieving project name '%s' failed with message '%s'", project, ex.getMessage()));
      success = false;
    }
    com.octopusdeploy.api.Environment env = null;
    try {
      env = api.getEnvironmentByName(environment);
    } catch (Exception ex) {
      log.fatal(
          String.format(
              "Retrieving environment name '%s' failed with message '%s'",
              environment, ex.getMessage()));
      success = false;
    }
    if (p == null) {
      log.fatal("Project was not found.");
      success = false;
    }
    if (env == null) {
      log.fatal("Environment was not found.");
      success = false;
    }
    if (!success) // Early exit
    {
      return success;
    }
    Set<com.octopusdeploy.api.Release> releases = null;
    try {
      releases = api.getReleasesForProject(p.getId());
    } catch (Exception ex) {
      log.fatal(
          String.format(
              "Retrieving releases for project '%s' failed with message '%s'",
              project, ex.getMessage()));
      success = false;
    }
    if (releases == null) {
      log.fatal("Releases was not found.");
      return false;
    }
    Release releaseToDeploy = null;
    for (Release r : releases) {
      if (releaseVersion.equals(r.getVersion())) {
        releaseToDeploy = r;
        break;
      }
    }
    if (releaseToDeploy == null) // early exit
    {
      log.fatal(
          String.format(
              "Unable to find release version %s for project %s", releaseVersion, project));
      return false;
    }
    Properties properties = new Properties();
    try {
      properties.load(new StringReader(variables));
    } catch (Exception ex) {
      log.fatal(
          String.format(
              "Unable to load entry variables failed with message '%s'", ex.getMessage()));
      success = false;
    }

    // TODO: Can we tell if we need to call? For now I will always try and get variable and use if I
    // find them
    Set<com.octopusdeploy.api.Variable> variablesForDeploy = null;

    try {
      String releaseId = releaseToDeploy.getId();
      String environmentId = env.getId();
      variablesForDeploy =
          api.getVariablesByReleaseAndEnvironment(releaseId, environmentId, properties);
    } catch (Exception ex) {
      log.fatal(
          String.format(
              "Retrieving variables for release '%s' to environment '%s' failed with message '%s'",
              releaseToDeploy.getId(), env.getName(), ex.getMessage()));
      success = false;
    }
    try {
      String results =
          api.executeDeployment(releaseToDeploy.getId(), env.getId(), variablesForDeploy);
      if (isTaskJson(results)) {
        JSON resultJson = JSONSerializer.toJSON(results);
        String urlSuffix = ((JSONObject) resultJson).getJSONObject("Links").getString("Web");
        String url = getDescriptorImpl().octopusHost;
        if (url.endsWith("/")) {
          url = url.substring(0, url.length() - 2);
        }
        log.info("Deployment executed: \n\t" + url + urlSuffix);
        build.addAction(
            new BuildInfoSummary(
                BuildInfoSummary.OctopusDeployEventType.Deployment, url + urlSuffix));
        if (waitForDeployment) {

          log.info("Waiting for deployment to complete.");
          String resultState = waitForDeploymentCompletion(resultJson, api, log);
          if (resultState == null) {
            log.info("Marking build failed due to failure in waiting for deployment to complete.");
            success = false;
          }

          if ("Failed".equals(resultState)) {
            log.info("Marking build failed due to deployment task status.");
            success = false;
          }
        }
      }
    } catch (IOException ex) {
      log.fatal("Failed to deploy: " + ex.getMessage());
      success = false;
    }

    return success;
  }
  public final void write(
      JSONSerializer serializer, Object object, Object fieldName, Type fieldType)
      throws IOException {
    SerializeWriter out = serializer.getWriter();

    Object[] array = (Object[]) object;

    if (object == null) {
      if (out.isEnabled(SerializerFeature.WriteNullListAsEmpty)) {
        out.write("[]");
      } else {
        out.writeNull();
      }
      return;
    }

    int size = array.length;

    int end = size - 1;

    if (end == -1) {
      out.append("[]");
      return;
    }

    SerialContext context = serializer.getContext();
    serializer.setContext(context, object, fieldName, 0);

    try {
      Class<?> preClazz = null;
      ObjectSerializer preWriter = null;
      out.append('[');

      if (out.isEnabled(SerializerFeature.PrettyFormat)) {
        serializer.incrementIndent();
        serializer.println();
        for (int i = 0; i < size; ++i) {
          if (i != 0) {
            out.write(',');
            serializer.println();
          }
          serializer.write(array[i]);
        }
        serializer.decrementIdent();
        serializer.println();
        out.write(']');
        return;
      }

      for (int i = 0; i < end; ++i) {
        Object item = array[i];

        if (item == null) {
          out.append("null,");
        } else {
          if (serializer.containsReference(item)) {
            serializer.writeReference(item);
          } else {
            Class<?> clazz = item.getClass();

            if (clazz == preClazz) {
              preWriter.write(serializer, item, null, null);
            } else {
              preClazz = clazz;
              preWriter = serializer.getObjectWriter(clazz);

              preWriter.write(serializer, item, null, null);
            }
          }
          out.append(',');
        }
      }

      Object item = array[end];

      if (item == null) {
        out.append("null]");
      } else {
        if (serializer.containsReference(item)) {
          serializer.writeReference(item);
        } else {
          serializer.writeWithFieldName(item, end);
        }
        out.append(']');
      }
    } finally {
      serializer.setContext(context);
    }
  }
Beispiel #27
0
  public void writeValue(JSONSerializer serializer, Object propertyValue) throws Exception {
    if (runtimeInfo == null) {

      Class<?> runtimeFieldClass;
      if (propertyValue == null) {
        runtimeFieldClass = this.fieldInfo.fieldClass;
      } else {
        runtimeFieldClass = propertyValue.getClass();
      }

      ObjectSerializer fieldSerializer;
      JSONField fieldAnnotation = fieldInfo.getAnnotation();
      if (fieldAnnotation != null && fieldAnnotation.serializeUsing() != Void.class) {
        fieldSerializer = (ObjectSerializer) fieldAnnotation.serializeUsing().newInstance();
      } else {
        fieldSerializer = serializer.getObjectWriter(runtimeFieldClass);
      }

      runtimeInfo = new RuntimeSerializerInfo(fieldSerializer, runtimeFieldClass);
    }

    final RuntimeSerializerInfo runtimeInfo = this.runtimeInfo;

    final int fieldFeatures = fieldInfo.serialzeFeatures;

    if (propertyValue == null) {
      Class<?> runtimeFieldClass = runtimeInfo.runtimeFieldClass;
      SerializeWriter out = serializer.out;
      if (Number.class.isAssignableFrom(runtimeFieldClass)) {
        out.writeNull(features, SerializerFeature.WriteNullNumberAsZero.mask);
        return;
      } else if (String.class == runtimeFieldClass) {
        out.writeNull(features, SerializerFeature.WriteNullStringAsEmpty.mask);
        return;
      } else if (Boolean.class == runtimeFieldClass) {
        out.writeNull(features, SerializerFeature.WriteNullBooleanAsFalse.mask);
        return;
      } else if (Collection.class.isAssignableFrom(runtimeFieldClass)) {
        out.writeNull(features, SerializerFeature.WriteNullListAsEmpty.mask);
        return;
      }

      ObjectSerializer fieldSerializer = runtimeInfo.fieldSerializer;

      if ((out.isEnabled(SerializerFeature.WRITE_MAP_NULL_FEATURES))
          && fieldSerializer instanceof JavaBeanSerializer) {
        out.writeNull();
        return;
      }

      fieldSerializer.write(serializer, null, fieldInfo.name, fieldInfo.fieldType, fieldFeatures);
      return;
    }

    if (fieldInfo.isEnum) {
      if (writeEnumUsingName) {
        serializer.out.writeString(((Enum<?>) propertyValue).name());
        return;
      }

      if (writeEnumUsingToString) {
        serializer.out.writeString(((Enum<?>) propertyValue).toString());
        return;
      }
    }

    Class<?> valueClass = propertyValue.getClass();
    ObjectSerializer valueSerializer;
    if (valueClass == runtimeInfo.runtimeFieldClass) {
      valueSerializer = runtimeInfo.fieldSerializer;
    } else {
      valueSerializer = serializer.getObjectWriter(valueClass);
    }

    if (format != null) {
      if (valueSerializer instanceof ContextObjectSerializer) {
        ((ContextObjectSerializer) valueSerializer)
            .write(serializer, propertyValue, this.fieldContext);
      } else {
        serializer.writeWithFormat(propertyValue, format);
      }
    } else {
      valueSerializer.write(
          serializer, propertyValue, fieldInfo.name, fieldInfo.fieldType, fieldFeatures);
    }
  }
 public void saveBranding(Map<String, String> desc) throws Exception {
   StoreDesc sdesc = StoreDesc.getGlobalData();
   m_gitService.putContent(
       sdesc.getRepository(), BRANDING_PATH, "sw.setting", m_js.deepSerialize(desc));
 }
  /**
   * Process HTTP request.
   *
   * @param act Action.
   * @param req Http request.
   * @param res Http response.
   */
  private void processRequest(String act, HttpServletRequest req, HttpServletResponse res) {
    res.setContentType("application/json");
    res.setCharacterEncoding("UTF-8");

    GridRestCommand cmd = command(req);

    if (cmd == null) {
      res.setStatus(HttpServletResponse.SC_BAD_REQUEST);

      return;
    }

    if (!authChecker.apply(req.getHeader("X-Signature"))) {
      res.setStatus(HttpServletResponse.SC_UNAUTHORIZED);

      return;
    }

    GridRestResponse cmdRes;

    Map<String, Object> params = parameters(req);

    try {
      GridRestRequest cmdReq = createRequest(cmd, params, req);

      if (log.isDebugEnabled()) log.debug("Initialized command request: " + cmdReq);

      cmdRes = hnd.handle(cmdReq);

      if (cmdRes == null)
        throw new IllegalStateException("Received null result from handler: " + hnd);

      byte[] sesTok = cmdRes.sessionTokenBytes();

      if (sesTok != null) cmdRes.setSessionToken(U.byteArray2HexString(sesTok));

      res.setStatus(HttpServletResponse.SC_OK);
    } catch (Exception e) {
      res.setStatus(HttpServletResponse.SC_OK);

      U.error(log, "Failed to process HTTP request [action=" + act + ", req=" + req + ']', e);

      cmdRes = new GridRestResponse(STATUS_FAILED, e.getMessage());
    } catch (Throwable e) {
      U.error(log, "Failed to process HTTP request [action=" + act + ", req=" + req + ']', e);

      throw e;
    }

    JsonConfig cfg = new GridJettyJsonConfig();

    // Workaround for not needed transformation of string into JSON object.
    if (cmdRes.getResponse() instanceof String)
      cfg.registerJsonValueProcessor(cmdRes.getClass(), "response", SKIP_STR_VAL_PROC);

    if (cmdRes.getResponse() instanceof GridClientTaskResultBean
        && ((GridClientTaskResultBean) cmdRes.getResponse()).getResult() instanceof String)
      cfg.registerJsonValueProcessor(cmdRes.getResponse().getClass(), "result", SKIP_STR_VAL_PROC);

    JSON json;

    try {
      json = JSONSerializer.toJSON(cmdRes, cfg);
    } catch (JSONException e) {
      U.error(log, "Failed to convert response to JSON: " + cmdRes, e);

      json = JSONSerializer.toJSON(new GridRestResponse(STATUS_FAILED, e.getMessage()), cfg);
    }

    try {
      if (log.isDebugEnabled())
        log.debug("Parsed command response into JSON object: " + json.toString(2));

      res.getWriter().write(json.toString());

      if (log.isDebugEnabled())
        log.debug(
            "Processed HTTP request [action=" + act + ", jsonRes=" + cmdRes + ", req=" + req + ']');
    } catch (IOException e) {
      U.error(log, "Failed to send HTTP response: " + json.toString(2), e);
    }
  }
 public GitMetaDataImpl(GitService gs) {
   m_gitService = gs;
   m_js.prettyPrint(true);
 }