trace-server: Add JUL logging statements to data provider

This adds JUL statements to the data provider manager requests.

[added] JUL statements to trace-server's data provider manager

Change-Id: I1ceb5d8e9ffd777458e4109c0504c9ff32796f4f
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/150397
Tested-by: CI Bot
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
diff --git a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java
index fc3601c..75183dc 100644
--- a/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java
+++ b/trace-server/org.eclipse.tracecompass.incubator.trace.server.jersey.rest.core/src/org/eclipse/tracecompass/incubator/internal/trace/server/jersey/rest/core/services/DataProviderService.java
@@ -15,6 +15,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.GET;
@@ -29,6 +31,9 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.tracecompass.common.core.log.TraceCompassLog;
+import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils.FlowScopeLog;
+import org.eclipse.tracecompass.common.core.log.TraceCompassLogUtils.FlowScopeLogBuilder;
 import org.eclipse.tracecompass.incubator.internal.trace.server.jersey.rest.core.model.views.GenericView;
 import org.eclipse.tracecompass.incubator.internal.trace.server.jersey.rest.core.model.views.QueryParameters;
 import org.eclipse.tracecompass.internal.provisional.tmf.core.model.filters.VirtualTableQueryFilter;
@@ -73,6 +78,8 @@
     private static final String WRONG_PARAMETERS = "Wrong query parameters"; //$NON-NLS-1$
     private static final String NO_PROVIDER = "Analysis cannot run"; //$NON-NLS-1$
     private static final String NO_SUCH_TRACE = "No Such Trace"; //$NON-NLS-1$
+    private static final String MISSING_OUTPUTID = "Missing parameter outputId"; //$NON-NLS-1$
+    private static final @NonNull Logger LOGGER = TraceCompassLog.getLogger(DataProviderService.class);
 
     private final DataProviderManager manager = DataProviderManager.getInstance();
 
@@ -133,31 +140,37 @@
     @Produces(MediaType.APPLICATION_JSON)
     public Response getXY(@PathParam("uuid") UUID uuid,
             @PathParam("outputId") String outputId, QueryParameters queryParameters) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getXY") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITmfTreeXYDataProvider<@NonNull ITmfTreeDataModel> provider = manager.getDataProvider(trace,
-                outputId, ITmfTreeXYDataProvider.class);
+            ITmfTreeXYDataProvider<@NonNull ITmfTreeDataModel> provider = manager.getDataProvider(trace,
+                    outputId, ITmfTreeXYDataProvider.class);
 
-        if (provider == null && outputId != null) {
-            // try and find the XML provider for the ID.
-            provider = getXmlProvider(trace, outputId, EnumSet.of(OutputType.XY));
+            if (provider == null) {
+                // try and find the XML provider for the ID.
+                provider = getXmlProvider(trace, outputId, EnumSet.of(OutputType.XY));
+            }
+
+            if (provider == null) {
+                // The analysis cannot be run on this trace
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
+
+            SelectionTimeQueryFilter selectionTimeQueryFilter = FetchParametersUtils.createSelectionTimeQuery(queryParameters.getParameters());
+            if (selectionTimeQueryFilter == null) {
+                return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
+            }
+
+            TmfModelResponse<@NonNull ITmfXyModel> response = provider.fetchXY(queryParameters.getParameters(), null);
+            return Response.ok(response).build();
         }
-
-        if (provider == null) {
-            // The analysis cannot be run on this trace
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
-        }
-
-        SelectionTimeQueryFilter selectionTimeQueryFilter = FetchParametersUtils.createSelectionTimeQuery(queryParameters.getParameters());
-        if (selectionTimeQueryFilter == null) {
-            return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
-        }
-
-        TmfModelResponse<@NonNull ITmfXyModel> response = provider.fetchXY(queryParameters.getParameters(), null);
-        return Response.ok(response).build();
     }
 
     /**
@@ -228,25 +241,31 @@
     public Response getStates(@PathParam("uuid") UUID uuid,
             @PathParam("outputId") String outputId,
             QueryParameters queryParameters) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getStates") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> provider = getTimeGraphProvider(trace, outputId);
+            ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> provider = getTimeGraphProvider(trace, outputId);
 
-        if (provider == null) {
-            // The analysis cannot be run on this trace
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            if (provider == null) {
+                // The analysis cannot be run on this trace
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
+
+            SelectionTimeQueryFilter selectionTimeQueryFilter = FetchParametersUtils.createSelectionTimeQuery(queryParameters.getParameters());
+            if (selectionTimeQueryFilter == null) {
+                return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
+            }
+
+            TmfModelResponse<TimeGraphModel> response = provider.fetchRowModel(queryParameters.getParameters(), null);
+            return Response.ok(response).build();
         }
-
-        SelectionTimeQueryFilter selectionTimeQueryFilter = FetchParametersUtils.createSelectionTimeQuery(queryParameters.getParameters());
-        if (selectionTimeQueryFilter == null) {
-            return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
-        }
-
-        TmfModelResponse<TimeGraphModel> response = provider.fetchRowModel(queryParameters.getParameters(), null);
-        return Response.ok(response).build();
     }
 
     /**
@@ -268,25 +287,31 @@
     public Response getArrows(@PathParam("uuid") UUID uuid,
             @PathParam("outputId") String outputId,
             QueryParameters queryParameters) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getArrows") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> provider = getTimeGraphProvider(trace, outputId);
+            ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> provider = getTimeGraphProvider(trace, outputId);
 
-        if (provider == null) {
-            // The analysis cannot be run on this trace
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            if (provider == null) {
+                // The analysis cannot be run on this trace
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
+
+            TimeQueryFilter timeQueryFilter = FetchParametersUtils.createTimeQuery(queryParameters.getParameters());
+            if (timeQueryFilter == null) {
+                return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
+            }
+
+            TmfModelResponse<@NonNull List<@NonNull ITimeGraphArrow>> response = provider.fetchArrows(queryParameters.getParameters(), null);
+            return Response.ok(response).build();
         }
-
-        TimeQueryFilter timeQueryFilter = FetchParametersUtils.createTimeQuery(queryParameters.getParameters());
-        if (timeQueryFilter == null) {
-            return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
-        }
-
-        TmfModelResponse<@NonNull List<@NonNull ITimeGraphArrow>> response = provider.fetchArrows(queryParameters.getParameters(), null);
-        return Response.ok(response).build();
     }
 
     /**
@@ -312,19 +337,26 @@
             @QueryParam("time") long time,
             @QueryParam("entryId") long entryId,
             @QueryParam("targetId") long targetId) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getTimeGraphTooltip") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> provider = getTimeGraphProvider(trace, outputId);
+            ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> provider = getTimeGraphProvider(trace, outputId);
 
-        if (provider == null) {
-            // The analysis cannot be run on this trace
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            if (provider == null) {
+                // The analysis cannot be run on this trace
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
+
+            TmfModelResponse<@NonNull Map<@NonNull String, @NonNull String>> response = provider.fetchTooltip(FetchParametersUtils.selectionTimeQueryToMap(new SelectionTimeQueryFilter(time, time, 1, Arrays.asList(entryId, targetId))), null);
+            return Response.ok(response).build();
         }
-        TmfModelResponse<@NonNull Map<@NonNull String, @NonNull String>> response = provider.fetchTooltip(FetchParametersUtils.selectionTimeQueryToMap(new SelectionTimeQueryFilter(time, time, 1, Arrays.asList(entryId, targetId))), null);
-        return Response.ok(response).build();
     }
 
     private ITimeGraphDataProvider<@NonNull ITimeGraphEntryModel> getTimeGraphProvider(@NonNull ITmfTrace trace, String outputId) {
@@ -379,22 +411,29 @@
     public Response getLines(@PathParam("uuid") UUID uuid,
             @PathParam("outputId") String outputId,
             QueryParameters queryParameters) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getLines") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITmfVirtualTableDataProvider<? extends IVirtualTableLine, ? extends ITmfTreeDataModel> provider = manager.getDataProvider(trace, outputId, ITmfVirtualTableDataProvider.class);
-        if (provider == null) {
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
-        }
+            ITmfVirtualTableDataProvider<? extends IVirtualTableLine, ? extends ITmfTreeDataModel> provider = manager.getDataProvider(trace, outputId, ITmfVirtualTableDataProvider.class);
+            if (provider == null) {
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
 
-        VirtualTableQueryFilter tableQueryFilter = FetchParametersUtils.createVirtualTableQueryFilter(queryParameters.getParameters());
-        if (tableQueryFilter == null) {
-            return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
+            VirtualTableQueryFilter tableQueryFilter = FetchParametersUtils.createVirtualTableQueryFilter(queryParameters.getParameters());
+            if (tableQueryFilter == null) {
+                return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
+            }
+
+            TmfModelResponse<?> response = provider.fetchLines(queryParameters.getParameters(), null);
+            return Response.ok(response).build();
         }
-        TmfModelResponse<?> response = provider.fetchLines(queryParameters.getParameters(), null);
-        return Response.ok(response).build();
     }
 
     /**
@@ -426,31 +465,37 @@
     }
 
     private Response getTree(UUID uuid, String outputId, QueryParameters queryParameters) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getTree") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITmfTreeDataProvider<? extends @NonNull ITmfTreeDataModel> provider = manager.getDataProvider(trace,
-                outputId, ITmfTreeDataProvider.class);
+            ITmfTreeDataProvider<? extends @NonNull ITmfTreeDataModel> provider = manager.getDataProvider(trace,
+                    outputId, ITmfTreeDataProvider.class);
 
-        if (provider == null && outputId != null) {
-            // try and find the XML provider for the ID.
-            provider = getXmlProvider(trace, outputId, EnumSet.allOf(OutputType.class));
+            if (provider == null) {
+                // try and find the XML provider for the ID.
+                provider = getXmlProvider(trace, outputId, EnumSet.allOf(OutputType.class));
+            }
+
+            if (provider == null) {
+                // The analysis cannot be run on this trace
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
+
+            TimeQueryFilter timeQueryFilter = FetchParametersUtils.createTimeQuery(queryParameters.getParameters());
+            if (timeQueryFilter == null) {
+                return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
+            }
+
+            TmfModelResponse<?> treeResponse = provider.fetchTree(queryParameters.getParameters(), null);
+            return Response.ok(treeResponse).build();
         }
-
-        if (provider == null) {
-            // The analysis cannot be run on this trace
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
-        }
-
-        TimeQueryFilter timeQueryFilter = FetchParametersUtils.createTimeQuery(queryParameters.getParameters());
-        if (timeQueryFilter == null) {
-            return Response.status(Status.UNAUTHORIZED).entity(WRONG_PARAMETERS).build();
-        }
-
-        TmfModelResponse<?> treeResponse = provider.fetchTree(queryParameters.getParameters(), null);
-        return Response.ok(treeResponse).build();
     }
 
     /**
@@ -472,26 +517,32 @@
     public Response getStyles(@PathParam("uuid") UUID uuid,
             @PathParam("outputId") String outputId,
             QueryParameters queryParameters) {
-        ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
-        if (trace == null) {
-            return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+        if (outputId == null) {
+            return Response.status(Status.PRECONDITION_FAILED).entity(MISSING_OUTPUTID).build();
         }
+        try (FlowScopeLog scope = new FlowScopeLogBuilder(LOGGER, Level.FINE, "DataProviderService#getStyles") //$NON-NLS-1$
+                .setCategory(outputId).build()) {
+            ITmfTrace trace = TraceManagerService.getTraceByUUID(uuid);
+            if (trace == null) {
+                return Response.status(Status.NOT_FOUND).entity(NO_SUCH_TRACE).build();
+            }
 
-        ITmfTreeDataProvider<? extends @NonNull ITmfTreeDataModel> provider = manager.getDataProvider(trace,
-                outputId, ITmfTreeDataProvider.class);
+            ITmfTreeDataProvider<? extends @NonNull ITmfTreeDataModel> provider = manager.getDataProvider(trace,
+                    outputId, ITmfTreeDataProvider.class);
 
-        if (provider == null) {
-            // The analysis cannot be run on this trace
-            return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            if (provider == null) {
+                // The analysis cannot be run on this trace
+                return Response.status(Status.METHOD_NOT_ALLOWED).entity(NO_PROVIDER).build();
+            }
+
+            if (provider instanceof IOutputStyleProvider) {
+                TmfModelResponse<@NonNull OutputStyleModel> styleModelResponse = ((IOutputStyleProvider) provider).fetchStyle(queryParameters.getParameters(), null);
+                return Response.ok(styleModelResponse).build();
+            }
+
+            // Return an empty model if the provider is not an
+            // IOutputStyleProvider and let the client decide the style
+            return Response.ok(new TmfModelResponse<>(new OutputStyleModel(Collections.emptyMap()), ITmfResponse.Status.COMPLETED, CommonStatusMessage.COMPLETED)).build();
         }
-
-        if (provider instanceof IOutputStyleProvider) {
-            TmfModelResponse<@NonNull OutputStyleModel> styleModelResponse = ((IOutputStyleProvider) provider).fetchStyle(queryParameters.getParameters(), null);
-            return Response.ok(styleModelResponse).build();
-        }
-
-        // Return an empty model if the provider is not an IOutputStyleProvider
-        // and let the client decide the style
-        return Response.ok(new TmfModelResponse<>(new OutputStyleModel(Collections.emptyMap()), ITmfResponse.Status.COMPLETED, CommonStatusMessage.COMPLETED)).build();
     }
 }