[ 
https://issues.apache.org/jira/browse/FLINK-7638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16174508#comment-16174508
 ] 

ASF GitHub Bot commented on FLINK-7638:
---------------------------------------

Github user tzulitai commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4688#discussion_r140193252
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/messages/webmonitor/JobDetails.java
 ---
    @@ -145,8 +180,89 @@ public String toString() {
                                ", endTime=" + endTime +
                                ", status=" + status +
                                ", lastUpdateTime=" + lastUpdateTime +
    -                           ", numVerticesPerExecutionState=" + 
Arrays.toString(numVerticesPerExecutionState) +
    +                           ", numVerticesPerExecutionState=" + 
Arrays.toString(tasksPerState) +
                                ", numTasks=" + numTasks +
                                '}';
        }
    +
    +   public static final class JobDetailsSerializer extends 
StdSerializer<JobDetails> {
    +           private static final long serialVersionUID = 
7915913423515194428L;
    +
    +           public JobDetailsSerializer() {
    +                   super(JobDetails.class);
    +           }
    +
    +           @Override
    +           public void serialize(
    +                           JobDetails jobDetails,
    +                           JsonGenerator jsonGenerator,
    +                           SerializerProvider serializerProvider) throws 
IOException {
    +                   jsonGenerator.writeStartObject();
    +
    +                   jsonGenerator.writeStringField(FIELD_NAME_JOB_ID, 
jobDetails.getJobId().toString());
    +                   jsonGenerator.writeStringField(FIELD_NAME_JOB_NAME, 
jobDetails.getJobName());
    +                   jsonGenerator.writeStringField(FIELD_NAME_STATUS, 
jobDetails.getStatus().name());
    +
    +                   jsonGenerator.writeNumberField(FIELD_NAME_START_TIME, 
jobDetails.getStartTime());
    +                   jsonGenerator.writeNumberField(FIELD_NAME_END_TIME, 
jobDetails.getEndTime());
    +                   jsonGenerator.writeNumberField(FIELD_NAME_DURATION, 
jobDetails.getDuration());
    +                   
jsonGenerator.writeNumberField(FIELD_NAME_LAST_MODIFICATION, 
jobDetails.getLastUpdateTime());
    +
    +                   jsonGenerator.writeObjectFieldStart("tasks");
    +                   
jsonGenerator.writeNumberField(FIELD_NAME_TOTAL_NUMBER_TASKS, 
jobDetails.getNumTasks());
    +
    +                   final int[] perState = jobDetails.getTasksPerState();
    +
    +                   for (ExecutionState executionState : 
ExecutionState.values()) {
    +                           
jsonGenerator.writeNumberField(executionState.name().toLowerCase(), 
perState[executionState.ordinal()]);
    +                   }
    --- End diff --
    
    I guess this is the bit which requires this nasty custom serialization / 
deserialization.
    
    I wonder if it is possible to have a proper POJO w/ Jackson annotation for 
this. For the `JobDetails` class we would only need an additional constructor 
(without `@JsonCreator` annotation) that accepts the "awkward" `int[] perState` 
and converts it to a `List<PerExecutionState>`, `PerExecutionState` being a 
newly introduced POJO to hold per-state.
    
    If that's possible things would be much cleaner here.


> Port CurrentJobsOverviewHandler to new REST endpoint
> ----------------------------------------------------
>
>                 Key: FLINK-7638
>                 URL: https://issues.apache.org/jira/browse/FLINK-7638
>             Project: Flink
>          Issue Type: Sub-task
>          Components: REST, Webfrontend
>    Affects Versions: 1.4.0
>            Reporter: Till Rohrmann
>            Assignee: Till Rohrmann
>            Priority: Minor
>              Labels: flip-6
>
> Port the existing {{CurrentJobsOverviewHandler}} to the new REST endpoint.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to