You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2018/08/03 20:46:08 UTC
[19/36] storm git commit: STORM-1311: UI Migration from clj to java
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/templates/owner-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/owner-page-template.html b/storm-core/src/ui/public/templates/owner-page-template.html
deleted file mode 100644
index f1320b6..0000000
--- a/storm-core/src/ui/public/templates/owner-page-template.html
+++ /dev/null
@@ -1,239 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<script id="owner-summary-template" type="text/html">
- <table id="owner-summary-table" class="table compact">
- <thead>
- <tr>
- <th>
- Owner
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="above" title="Total number of topologies owned by owner.">
- Total Topologies
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="above" title="Total number of tasks used by owner.">
- Total Tasks
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="above" title="Total number of executors used by owner.">
- Total Executors
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="above" title="Total number of workers used by owner.">
- Total Workers
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{owner}}</td>
- <td>{{totalTopologies}}</td>
- <td>{{totalTasks}}</td>
- <td>{{totalExecutors}}</td>
- <td>{{totalWorkers}}</td>
- </tr>
- </tbody>
- </table>
-</script>
-
-<script id="owner-resource-usage-template" type="text/html">
- <table id="owner-resource-usage-table" class="table compact">
- <thead>
- <tr>
- <th>
- </th>
- <th>
- On-Heap Mem (MB)
- </th>
- <th>
- Off-Heap Mem (MB)
- </th>
- <th>
- Total Mem (MB)
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Total CPU Resource. Every 100 means 1 core.">
- Total CPU (%)
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Requested</td>
- <td>{{totalReqOnHeapMem}}</td>
- <td>{{totalReqOffHeapMem}}</td>
- <td>{{totalReqMem}}</td>
- <td>{{totalReqCpu}}</td>
- </tr>
- <tr>
- <td>Assigned</td>
- <td>{{totalAssignedOnHeapMem}}</td>
- <td>{{totalAssignedOffHeapMem}}</td>
- <td>{{totalMemoryUsage}}</td>
- <td>{{totalCpuUsage}}</td>
- </tr>
- </tbody>
- </table>
-</script>
-
-<script id="owner-resource-guarantee-template" type="text/html">
- <table id="owner-resource-guarantee-table" class="table compact">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The amount of CPU resource (every 100 means 1 core) guaranteed to owner.">
- CPU Guarantee (%)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The amount of CPU resource (every 100 means 1 core) used by owner.">
- CPU Usage (%)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The amount of guaranteed CPU resource (every 100 means 1 core) remaining.">
- CPU Guarantee Remaining (%)
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{cpuGuarantee}}</td>
- <td>{{totalCpuUsage}}</td>
- <td id="cpu-guarantee-util">{{cpuGuaranteeRemaining}}</td>
- </tr>
- </tbody>
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The amount of memory resource (in MB) guaranteed to owner.">
- Memory Guarantee (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The amount of memory resource (in MB) used by owner.">
- Memory Usage (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The amount of guaranteed memory resources (in MB) remaining.">
- Memory Guarantee Remaining (MB)
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{memoryGuarantee}}</td>
- <td>{{totalMemoryUsage}}</td>
- <td id="mem-guarantee-util">{{memoryGuaranteeRemaining}}</td>
- </tr>
- </tbody>
- </table>
-</script>
-
-<script id="owner-topology-summary-template" type="text/html">
- <table id="owner-topology-summary-table" class="table table-striped compact">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The name given to the topology by when it was submitted. Click the name to view the Topology's information.">
- Name
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The owner that submitted the Topology, if authentication is enabled.">
- Owner
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The status can be one of ACTIVE, INACTIVE, KILLED, or REBALANCING.">
- Status
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The time since the Topology was submitted.">
- Uptime
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The number of Workers (processes).">
- Num workers
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Executors are threads in a Worker process.">
- Num executors
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
- Num tasks
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total Memory by Scheduler.">
- Assigned Mem (MB)
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total CPU by Scheduler. Every 100 means 1 core.">
- Assigned CPU (%)
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="left" title="This shows information from the scheduler about the latest attempt to schedule the Topology on the cluster.">
- Scheduler Info
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="The version of this topology">
- Topology Version
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- {{#topologies}}
- <tr>
- <td><a href="/topology.html?id={{encodedId}}">{{name}}</a></td>
- <td><a href="/owner.html?id={{owner}}">{{owner}}</a></td>
- <td>{{status}}</td>
- <td>{{uptime}}</td>
- <td>{{workersTotal}}</td>
- <td>{{executorsTotal}}</td>
- <td>{{tasksTotal}}</td>
- <td>{{assignedTotalMem}}</td>
- {{#schedulerDisplayResource}}
- <td>{{assignedCpu}}</td>
- {{/schedulerDisplayResource}}
- <td>{{schedulerInfo}}</td>
- <td>{{topologyVersion}}</td>
- </tr>
- {{/topologies}}
- </tbody>
- </table>
-</script>
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/templates/search-result-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/search-result-page-template.html b/storm-core/src/ui/public/templates/search-result-page-template.html
deleted file mode 100644
index 4376408..0000000
--- a/storm-core/src/ui/public/templates/search-result-page-template.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<script id="search-result-files-template" type="text/html">
-<table id="search-result-table" class="table table-striped compact">
- <thead><tr><th>host:port</th><th>Match</th></tr></thead>
- <tbody>
- {{#hostPortList}}
- <tr id="{{elemId}}">
- <td>{{host}}:{{port}}</td>
- <td>LOADING ...</td>
- </tr>
- {{/hostPortList}}
- </tbody>
-</table>
-</script>
-<script id="search-result-identified-template" type="text/html">
- {{#matches}}
- <tr>
- <td><a href="{{logviewerScheme}}://{{host}}:{{logviewerPort}}/logviewer_search.html?file={{file}}&search={{searchString}}">{{host}}:{{port}}</a></td>
- <td><pre>{{beforeString}}<b><a href="{{logviewerURL}}">{{matchString}}</a></b>{{afterString}}</pre></td>
- </tr>
- {{/matches}}
-</script>
-<script id="deepsearch-result-identified-template" type="text/html">
- {{#matches}}
- {{#matches}}
- <tr>
- <td><a href="{{logviewerScheme}}://{{host}}:{{logviewerPort}}/logviewer_search.html?file={{fileName}}&search={{searchString}}">{{host}}:{{port}}</a></td>
- <td><pre>{{beforeString}}<b><a href="{{logviewerURL}}">{{matchString}}</a></b>{{afterString}}</pre></td>
- </tr>
- {{/matches}}
- {{/matches}}
-</script>
-<script id="search-form-template" type="text/html">
- <div class="search-box">
- <form action="search_result.html" id="search-box">
- Search {{id}}:
- <input type="text" name="search" value="{{search}}">
- <input type="hidden" name="id" value="{{id}}">
- <input type="hidden" name="count" value="{{count}}">
- <input type="submit" value="Search">
- Search Archived Logs: <input type="checkbox" name="searchArchived" value="checked" {{searchArchived}}>
- </form>
- </div>
-</script>
-
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/templates/supervisor-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/supervisor-page-template.html b/storm-core/src/ui/public/templates/supervisor-page-template.html
deleted file mode 100644
index 6fa79c6..0000000
--- a/storm-core/src/ui/public/templates/supervisor-page-template.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<script id="supervisor-summary-template" type="text/html">
- <table class="table table-striped compact" id="supervisor-summary-table">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)">
- Host
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="A unique identifier given to a Supervisor when it joins the cluster.">
- Supervisor Id
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The length of time a Supervisor has been registered to the cluster.">
- Uptime
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Slots are Workers (processes).">
- Slots
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Slots are Workers (processes).">
- Used slots
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Memory capacity of a supervisor.">
- Total Mem (MB)
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Memory that has been allocated.">
- Used Mem (MB)
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="left" title="The amount of Memory available in megabytes.">
- Avail Mem (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="CPU capacity of a supervisor. Every 100 means one core.">
- Total CPU (%)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="CPU that has been allocated. Every 100 means one core">
- Used CPU (%)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="The amount of CPU that is available. Every 100 means one core.">
- Avail CPU (%)
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Version">
- Version
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- {{#supervisors}}
- <tr>
- <td><a href="/supervisor.html?host={{host}}">{{host}} (<a href="{{logLink}}" title="View log">log</a>)</a></td>
- <td><a href="/supervisor.html?id={{id}}">{{id}}</td>
- <td>{{uptime}}</td>
- <td>{{slotsTotal}}</td>
- <td>{{slotsUsed}}</td>
- {{#schedulerDisplayResource}}
- <td>{{totalMem}}</td>
- {{/schedulerDisplayResource}}
- <td>{{usedMem}}</td>
- {{#schedulerDisplayResource}}
- <td>{{availMem}}</td>
- <td>{{totalCpu}}</td>
- <td>{{usedCpu}}</td>
- <td>{{availCpu}}</td>
- {{/schedulerDisplayResource}}
- <td>{{version}}</td>
- </tr>
- {{/supervisors}}
- </tbody>
- </table>
-</script>
-<script id="worker-stats-template" type="text/html">
- <table class="table table-striped compact" id="worker-stats-table">
- <thead>
- <tr>
- <th class="header headerSortDown">
- <span data-toggle="tooltip" data-placement="top" title="The name given to the topology by when it was submitted. Click the name to view the Topology's information.">
- Topology Name
- </span>
- </th>
- <th class="header">
- <span data-original-title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)" data-toggle="tooltip" data-placement="top">
- Host
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The port number used by the Worker. Click on the port number to open the logviewer page for this Worker.">
- Port
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The length of time a Worker has been alive.">
- Uptime
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The number of executors.">
- Num executors
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total Memory by Scheduler.">
- Assigned Mem (MB)
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total CPU by Scheduler. Every 100 means 1 core.">
- Assigned CPU (%)
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The components running in this worker and the number of tasks per component.">
- Components
- </span>
- </th>
- </tr></thead>
- <tbody>
- </tbody>
- </table>
-</script>
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/templates/topology-page-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/topology-page-template.html b/storm-core/src/ui/public/templates/topology-page-template.html
deleted file mode 100644
index 49cb314..0000000
--- a/storm-core/src/ui/public/templates/topology-page-template.html
+++ /dev/null
@@ -1,700 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<script id="topology-summary-template" type="text/html">
- <table id="topology-summary-table" class="table compact">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="right" title="The name given to the topology by when it was submitted.">
- Name
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="right" title="The unique ID given to a Topology each time it is launched.">
- Id
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The user that submitted the Topology, if authentication is enabled.">
- Owner
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The status can be one of ACTIVE, INACTIVE, KILLED, or REBALANCING.">
- Status
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The time since the Topology was submitted.">
- Uptime
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The number of Workers (processes).">
- Num workers
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Executors are threads in a Worker process.">
- Num executors
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
- Num tasks
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Number of nimbus hosts on which this topology's code is replicated. ">
- Replication count
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total Memory by Scheduler.">
- Assigned Mem (MB)
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total CPU by Scheduler. Every 100 means 1 core.">
- Assigned CPU (%)
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th>
- <span data-toggle="tooltip" data-placement="left" title="This shows information from the scheduler about the latest attempt to schedule the Topology on the cluster.">
- Scheduler Info
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="The version of this topology">
- Topology Version
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="The version of the storm client that this topology request (was launched with)">
- Storm Version
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{name}}</td>
- <td>{{id}}</td>
- <td><a href="/owner.html?id={{owner}}">{{owner}}</a></td>
- <td>{{status}}</td>
- <td>{{uptime}}</td>
- <td>{{workersTotal}}</td>
- <td>{{executorsTotal}}</td>
- <td>{{tasksTotal}}</td>
- <td>{{replicationCount}}</td>
- <td>{{assignedTotalMem}}</td>
- {{#schedulerDisplayResource}}
- <td>{{assignedCpu}}</td>
- {{/schedulerDisplayResource}}
- <td>{{schedulerInfo}}</td>
- <td>{{topologyVersion}}</td>
- <td>{{stormVersion}}</td>
- </tr>
- </tbody>
- </table>
-</script>
-<script id="topology-resources-template" type="text/html">
- <table id="topology-resources-table" class="table compact">
- <thead>
- <tr>
- <th>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="On-Heap memory that is not shared between executors">
- Not Shared On-Heap Mem (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="On-Heap memory that is shared between executors">
- Shared On-Heap Mem (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Off-Heap memory that is not shared between executors">
- Not Shared Off-Heap Mem (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Off-Heap memory that is shared between executors, either within a worker or between workers on a node">
- Shared Off-Heap Mem (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Total memory MB. For requested only one copy of each shared region is included so assigned may be more than requested.">
- Total Mem (MB)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Total CPU Resource. Every 100 means 1 core.">
- Total CPU (%)
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Requested</td>
- <td>{{requestedRegularOnHeapMem}}</td>
- <td>{{requestedSharedOnHeapMem}}</td>
- <td>{{requestedRegularOffHeapMem}}</td>
- <td>{{requestedSharedOffHeapMem}}</td>
- <td>{{requestedTotalMem}}</td>
- <td>{{requestedCpu}}</td>
- </tr>
- <tr>
- <td>Assigned</td>
- <td>{{assignedRegularOnHeapMem}}</td>
- <td>{{assignedSharedOnHeapMem}}</td>
- <td>{{assignedRegularOffHeapMem}}</td>
- <td>{{assignedSharedOffHeapMem}}</td>
- <td>{{assignedTotalMem}}</td>
- <td>{{assignedCpu}}</td>
- </tr>
- </tbody>
- </table>
-</script>
-<script id="topology-stats-template" type="text/html">
- <h2>Topology stats</h2>
- <table class="table table-striped compact" id="topology-stats-table">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="right" title="The past period of time for which the statistics apply. Click on a value to set the window for this page.">
- Window
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples emitted.">
- Emitted
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples emitted that sent to one or more bolts.">
- Transferred
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The average time a Tuple "tree" takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">
- Complete latency (ms)
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuple "trees" successfully processed. A value of 0 is expected if no acking is done.">
- Acked
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="The number of Tuple "trees" that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done.">
- Failed
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- {{#topologyStats}}
- <tr>
- <td><a href="/topology.html?id={{encodedId}}&window={{window}}">{{windowPretty}}</td>
- <td>{{emitted}}</td>
- <td>{{transferred}}</td>
- <td>{{completeLatency}}</td>
- <td>{{acked}}</td>
- <td>{{failed}}</td>
- </tr>
- {{/topologyStats}}
- </tbody>
- </table>
-</script>
-
-<script id="topology-kafka-spouts-lag-template" type="text/html">
- <h2>Kafka Spouts Lag</h2>
- <table class="table table-striped compact" id="topology-kafka-spouts-lag-table">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="right" title="Kafka spout id">
- Id
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Topic">
- Topic
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Partition">
- Partition
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Latest Offset">
- Latest Offset
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Offset of last spout message successfully acked">
- Spout Committed Offset
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="Lag">
- Lag
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- {{#kafkaSpoutsLagResults}}
- <tr>
- <td>{{id}}</td>
- <td>{{topic}}</td>
- <td>{{partition}}</td>
- <td>{{logHeadOffset}}</td>
- <td>{{consumerCommittedOffset}}</td>
- <td>{{lag}}</td>
- </tr>
- {{/kafkaSpoutsLagResults}}
- </tbody>
- </table>
-</script>
-
-<script id="topology-spouts-lag-error-template" type="text/html">
- <h2>Topology spouts lag error</h2>
- <table class="table table-striped compact" id="topology-spouts-lag-error-table">
- <thead>
- <tr>
- <th>
- <span data-toggle="tooltip" data-placement="right" title="Spout id">
- Id
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="top" title="Type of spout">
- Type
- </span>
- </th>
- <th>
- <span data-toggle="tooltip" data-placement="left" title="Message to denote the reason for failure to get the lag">
- Message
- </span>
- </th>
- </tr>
- </thead>
- <tbody>
- {{#spoutsLagErrorResults}}
- <tr>
- <td>{{spoutId}}</td>
- <td>{{spoutType}}</td>
- <td>{{errorInfo}}</td>
- </tr>
- {{/spoutsLagErrorResults}}
- </tbody>
- </table>
-</script>
-
-<script id="topology-visualization-container-template" type="text/html">
-<iframe src="/visualize.html?id={{id}}&sys={{sys}}" width="100%" height="500px"></iframe>
-</script>
-
-<script id="topology-visualization-template" type="text/html">
- <h2>Topology Visualization</h2>
- <input type="button" id="show-hide-visualization" value="Show Visualization" class="btn btn-default"/>
- <input type="button" id="open-visualization" value="Open Visualization" class="btn btn-default"/>
- <p>
- <div id="visualization-container" style="display:none;">
- </div>
- </p>
-</script>
-
-<script id="topology-configuration-template" type="text/html">
- <h2>Topology Configuration</h2>
- <table class="table table-striped compact" id="topology-configuration-table"><thead><tr><th>Key</th><th>Value</th></tr></thead>
- <tbody>
- {{#config}}
- <tr>
- <td>{{key}}</td>
- <td>{{value}}</td>
- </tr>
- {{/config}}
- </tbody>
- </table>
-</script>
-<script id="spout-stats-template" type="text/html">
- <h2>Spouts ({{windowHint}})</h2>
- <table class="table table-striped compact" id="spout-stats-table">
- <thead>
- <tr>
- <th class="header headerSortDown">
- <span data-original-title="The ID assigned to a the Component by the Topology. Click on the name to view the Component's page." data-toggle="tooltip" data-placement="right">
- Id
- </span>
- </th>
- <th class="header table-num">
- <span data-original-title="Executors are threads in a Worker process." data-toggle="tooltip" data-placement="right">
- Executors
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
- Tasks
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The amount of on-heap memory in megabytes requested to run a single executor of this component.">
- Req On-heap Mem (MB)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The amount of off-heap memory in megabytes requested to run a single executor of this component.">
- Req Off-heap Mem (MB)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The amount of CPU resources requested to run a single executor of this component. Every 100 means 1 core.">
- Req CPU
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples emitted.">
- Emitted
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples emitted that sent to one or more bolts.">
- Transferred
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The average time a Tuple "tree" takes to be completely processed by the Topology. A value of 0 is expected if no acking is done.">
- Complete latency (ms)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuple "trees" successfully processed. A value of 0 is expected if no acking is done.">
- Acked
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuple "trees" that were explicitly failed or timed out before acking was completed. A value of 0 is expected if no acking is done.">
- Failed
- </span>
- </th>
- <th class="header">Error Host</th>
- <th class="header">Error Port</th>
- <th class="header">Last error</th>
- <th class="header">Error Time</th>
- </tr>
- </thead>
- <tbody>
- {{#spouts}}
- <tr>
- <td><a href="/component.html?id={{encodedSpoutId}}&topology_id={{encodedId}}">{{spoutId}}</a></td>
- <td>{{executors}}</td>
- <td>{{tasks}}</td>
- {{#schedulerDisplayResource}}
- <td>{{requestedMemOnHeap}}</td>
- <td>{{requestedMemOffHeap}}</td>
- <td>{{requestedCpu}}</td>
- {{/schedulerDisplayResource}}
- <td>{{emitted}}</td>
- <td>{{transferred}}</td>
- <td>{{completeLatency}}</td>
- <td>{{acked}}</td>
- <td>{{failed}}</td>
- <td>{{errorHost}}</td>
- <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
- <td>
- <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
- </td>
- <td>
- {{#errorTime}}
- <span id="{{errorTime}}" class="errorTime" data-toggle="tooltip" title="{{errorLapsedSecs}}">{{errorTime}}</span>
- {{/errorTime}}
- </td>
- {{/spouts}}
- </tbody>
- </table>
-</script>
-<script id="bolt-stats-template" type="text/html">
- <h2>Bolts ({{windowHint}})</h2>
- <table class="table table-striped compact" id="bolt-stats-table"><thead>
- <tr>
- <th class="header headerSortDown">
- <span data-toggle="tooltip" data-placement="right" title="The ID assigned to a the Component by the Topology. Click on the name to view the Component's page.">
- Id
- </span>
- </th>
- <th class="header table-num">
- <span data-original-title="Executors are threads in a Worker process." data-toggle="tooltip" data-placement="right">
- Executors
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="A Task is an instance of a Bolt or Spout. The number of Tasks is almost always equal to the number of Executors.">
- Tasks
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The amount of on-heap memory in megabytes requested to run a single executor of this component.">
- Req On-heap Mem (MB)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The amount of off-heap memory in megabytes requested to run a single executor of this component.">
- Req Off-heap Mem (MB)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The amount of CPU resources requested to run a single executor of this component. Every 100 means 1 core.">
- Req CPU
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples emitted.">
- Emitted
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples emitted that sent to one or more bolts.">
- Transferred
- </span>
- </th>
- <th class="header table-num">
- <span data-original-title="If this is around 1.0, the corresponding Bolt is running as fast as it can, so you may want to increase the Bolt's parallelism. This is (number executed * average execute latency) / measurement time." data-toggle="tooltip" data-placement="top">
- Capacity (last 10m)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The average time a Tuple spends in the execute method. The execute method may complete without sending an Ack for the tuple.">
- Execute latency (ms)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of incoming Tuples processed.">
- Executed
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The average time it takes to Ack a Tuple after it is first received. Bolts that join, aggregate or batch may not Ack a tuple until a number of other Tuples have been received.">
- Process latency (ms)
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="top" title="The number of Tuples acknowledged by this Bolt.">
- Acked
- </span>
- </th>
- <th class="header table-num">
- <span data-toggle="tooltip" data-placement="left" title="The number of tuples Failed by this Bolt.">
- Failed
- </span>
- </th>
- <th class="header">Error Host</th>
- <th class="header">Error Port</th>
- <th class="header">Last error</th>
- <th class="header">Error Time</th>
- </tr></thead>
- <tbody>
- {{#bolts}}
- <tr>
- <td><a href="/component.html?id={{encodedBoltId}}&topology_id={{encodedId}}">{{boltId}}</a></td>
- <td>{{executors}}</td>
- <td>{{tasks}}</td>
- {{#schedulerDisplayResource}}
- <td>{{requestedMemOnHeap}}</td>
- <td>{{requestedMemOffHeap}}</td>
- <td>{{requestedCpu}}</td>
- {{/schedulerDisplayResource}}
- <td>{{emitted}}</td>
- <td>{{transferred}}</td>
- <td>{{capacity}}</td>
- <td>{{executeLatency}}</td>
- <td>{{executed}}</td>
- <td>{{processLatency}}</td>
- <td>{{acked}}</td>
- <td>{{failed}}</td>
- <td>{{errorHost}}</td>
- <td><a href="{{errorWorkerLogLink}}">{{errorPort}}</a></td>
- <td>
- <span id="{{errorLapsedSecs}}" class="errorSpan">{{lastError}}</span>
- </td>
- <td>
- {{#errorTime}}
- <span id="{{errorTime}}" class="errorTime" data-toggle="tooltip" title="{{errorLapsedSecs}}">{{errorTime}}</span>
- {{/errorTime}}
- </td>
- {{/bolts}}
- </tbody>
-</script>
-<script id="worker-stats-template" type="text/html">
- <h2>Worker Resources</h2>
- <table class="table table-striped compact" id="worker-stats-table">
- <thead>
- <tr>
- <th class="header headerSortDown">
- <span data-original-title="The hostname reported by the remote host. (Note that this hostname is not the result of a reverse lookup at the Nimbus node.)" data-toggle="tooltip" data-placement="top">
- Host
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="A unique identifier given to a Supervisor when it joins the cluster.">
- Supervisor Id
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The port number used by the Worker. Click on the port number to open the logviewer page for this Worker.">
- Port
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The length of time a Worker has been alive.">
- Uptime
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The number of executors">
- Num executors
- </span>
- </th>
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total Memory by Scheduler.">
- Assigned Mem (MB)
- </span>
- </th>
- {{#schedulerDisplayResource}}
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="Assigned Total CPU by Scheduler. Every 100 means 1 core.">
- Assigned CPU (%)
- </span>
- </th>
- {{/schedulerDisplayResource}}
- <th class="header">
- <span data-toggle="tooltip" data-placement="top" title="The components running in this worker and the number of tasks per component.">
- Components
- </span>
- </th>
- </tr></thead>
- <tbody>
- </tbody>
-</script>
-<script id="topology-actions-template" type="text/html">
- <h2>Topology actions</h2>
- <p id="topology-actions">
- <input {{activateStatus}} onclick="confirmAction('{{encodedId}}', '{{name}}', 'activate', false)" type="button" value="Activate" class="btn btn-default">
- <input {{deactivateStatus}} onclick="confirmAction('{{encodedId}}', '{{name}}', 'deactivate', false)" type="button" value="Deactivate" class="btn btn-default">
- <input {{rebalanceStatus}} onclick="confirmAction('{{encodedId}}', '{{name}}', 'rebalance', true, {{msgTimeout}}, 'wait time in seconds')" type="button" value="Rebalance" class="btn btn-default">
- <input {{killStatus}} onclick="confirmAction('{{encodedId}}', '{{name}}', 'kill', true, 30, 'wait time in seconds')" type="button" value="Kill" class="btn btn-default">
- {{#loggersDisabled}}
- <span style="display:inline-block;" data-toggle="tooltip" title="" data-original-title="To debug, set topology.eventlogger.executors to a value > 0">
- {{/loggersDisabled}}
- <input {{startDebugStatus}} onclick="confirmAction('{{encodedId}}', '{{name}}', 'debug/enable', true, {{currentSamplingPct}}, 'sampling percentage', 'debug')" type="button" value="Debug" class="btn btn-default" >
- {{#loggersDisabled}}
- </span>
- {{/loggersDisabled}}
- <input {{stopDebugStatus}} onclick="confirmAction('{{encodedId}}', '{{name}}', 'debug/disable', false, 0, 'sampling percentage', 'stop debugging')" type="button" value="Stop Debug" class="btn btn-default">
- <input type="button" {{logLevel}} value="Change Log Level" onclick="toggleChangeLogLevel()" class="btn btn-default">
- </p>
- <!--
- Contents of topology-change-log-level-template will be added to the div below
- once user clicks on "Change Log Level"
- -->
- <div id="change-log-level" style="display:none"></div>
-</script>
-
-<script id="search-form-template" type="text/html">
- <form action="search_result.html" id="search-box">
- Search {{id}}:
- <input type="text" name="search">
- <input type="hidden" name="id" value="{{id}}">
- <input type="hidden" name="count" value="1">
- <input type="submit" value="Search">
- Search Archived Logs: <input type="checkbox" name="searchArchived" value="checked">
- </form>
-</script>
-
-<script id="log-level-and-timeout" type="text/html" class="partials">
- <tr id="logger-{{loggerId}}" class="{{cls}}">
- {{#loggerName}}
- <td>{{loggerName}}</td>
- <input type="hidden" id="loggerName-{{loggerId}}" value="{{loggerName}}"/>
- <input type="hidden" id="loggerRemove-{{loggerId}}" value="false"/>
- {{/loggerName}}
-
- {{#isNew}}
- <td>
- <input type="text" id="loggerName-{{loggerId}}" placeholder="com.your.organization.LoggerName"/>
- </td>
- {{/isNew}}
-
- <td>
- <select id="loggerLevel-{{loggerId}}">
- {{#levels}}
- <option value="{{name}}" {{levelSelected}}>{{name}}</option>
- {{/levels}}
- </select>
- </td>
- <td>
- <input type="text" class="timeout_input" id="loggerTimeout-{{loggerId}}" placeholder="30" value="{{timeout}}"/>
- </td>
- <td>
- {{absoluteTimeout}}
- </td>
- <td>
- {{#isNew}}
- <input type="button" value="Add" name="clear" onClick='sendLoggerLevel({{loggerId}})' class="btn btn-secondary"/>
- {{/isNew}}
- {{#loggerName}}
- <input type="button" value="Apply" name="clear" onClick='sendLoggerLevel({{loggerId}})' class="btn btn-secondary"/>
- {{#canClear}}
- <input type="button" value="Clear" name="clear" onClick='clearLoggerLevel({{loggerId}})' class="btn btn-secondary"/>
- {{/canClear}}
- {{/loggerName}}
- </td>
- </tr>
-</script>
-
-<script id="topology-change-log-level-template" type="text/html">
- <div id="change-log-level">
- <h3>Change Log Level</h3>
- Modify the logger levels for topology. Note that applying a setting restarts the timer in the workers. To configure the root logger, use the name ROOT.
- <table class="table table-striped compact">
- <thead>
- <tr>
- <th class="header">Logger</th>
- <th class="header">Level</th>
- <th class="header">Timeout (sec)</th>
- <th class="header">Expires at</th>
- <th class="header">Actions</th>
- </tr>
- </thead>
- {{#loggers}}
- {{ > log-level-and-timeout }}
- {{/loggers}}
- </table>
- </div>
-</script>
-
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/templates/user-template.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/templates/user-template.html b/storm-core/src/ui/public/templates/user-template.html
deleted file mode 100644
index 853f0c9..0000000
--- a/storm-core/src/ui/public/templates/user-template.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<script id="user-template" type="text/html">
- <div class="ui-user">
- {{#central-log-url}}
- <span data-toggle="tooltip" data-placement="bottom" data-original-title="Link to Central Logging">
- <a href="{{central-log-url}}" target="_blank"><image src="/images/statistic.png" class="image_pre_format"/></a>
- </span>
- {{/central-log-url}}
- {{#bugtracker-url}}
- <span data-toggle="tooltip" data-placement="bottom" data-original-title="Submit BUG for Help and tracking the issue.">
- <a href="{{bugtracker-url}}" target="_blank"><image src="/images/bug.png" class="image_pre_format"/></a>
- </span>
- {{/bugtracker-url}}
- <span data-toggle="tooltip" data-placement="bottom" data-original-title="Search through all logs for any topology.">
- <a href="/deep_search_result.html" target="_blank"><image src="/images/search.png" class="image_pre_format"/></a>
- </span>
- {{#user}}
- <span data-toggle="tooltip" data-placement="bottom" data-original-title="This should be you.">
- User: {{user}}
- </span>
- {{/user}}
- </div>
-</script>
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/topology.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/topology.html b/storm-core/src/ui/public/topology.html
deleted file mode 100644
index 0250242..0000000
--- a/storm-core/src/ui/public/topology.html
+++ /dev/null
@@ -1,463 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<html><head>
-<meta charset="UTF-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<title>Storm UI</title>
-<link href="/css/bootstrap-3.3.1.min.css" rel="stylesheet" type="text/css">
-<link href="/css/jquery.dataTables.1.10.4.min.css" rel="stylesheet" type="text/css">
-<link href="/css/dataTables.bootstrap.css" rel="stylesheet" type="text/css">
-<link href="/css/jsonFormatter.min.css" rel="stylesheet" type="text/css">
-<link href="/css/style.css?_ts=${packageTimestamp}" rel="stylesheet" type="text/css">
-<script src="/js/jquery-1.11.1.min.js" type="text/javascript"></script>
-<script src="/js/jquery.dataTables.1.10.4.min.js" type="text/javascript"></script>
-<script src="/js/jquery.cookies.2.2.0.min.js" type="text/javascript"></script>
-<script src="/js/jquery.mustache.js" type="text/javascript"></script>
-<script src="/js/url.min.js" type="text/javascript"></script>
-<script src="/js/bootstrap-3.3.1.min.js" type="text/javascript"></script>
-<script src="/js/jquery.blockUI.min.js" type="text/javascript"></script>
-<script src="/js/jsonFormatter.min.js" type="text/javascript"></script>
-<script src="/js/script.js?_ts=${packageTimestamp}" type="text/javascript"></script>
-<script src="/js/dataTables.bootstrap.min.js" type="text/javascript"></script>
-</head>
-<body>
-<div class="container-fluid">
- <div class="row">
- <div class="col-md-11">
- <h1><a href="/">Storm UI</a></h1>
- </div>
- <div id="ui-user" class="col-md-1"></div>
- </div>
- <div class="row">
- <div class="col-md-12" id="search-form">
- </div>
- </div>
- <div class="row">
- <div class="col-md-12">
- <h2>Topology summary</h2>
- <div id="topology-summary"></div>
- </div>
- </div>
- <div class="row">
- <div class="col-md-12">
- <h2 id="topology-resources-header">Topology resources</h2>
- <div id="topology-resources"></div>
- </div>
- </div>
- <div class="row">
- <div id="topology-actions" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="topology-stats" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="topology-spouts-lag" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="spout-stats" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="bolt-stats" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="worker-stats" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="topology-visualization" class="col-md-12"></div>
- </div>
- <div class="row">
- <div id="topology-configuration" class="col-md-12"></div>
- </div>
- <div class="row">
- <div class="col-md-12">
- <p id="toggle-switch" style="display: block;" class="js-only"></p>
- </div>
- </div>
- <div class="row">
- <div id="json-response-error" class="col-md-12"></div>
- </div>
- <div>
- <p id="page-rendered-at-timestamp"></p>
- </div>
-</div>
-</body>
-<script>
-
-var toggleChangeLogLevel;
-
-function closeChangeLogLevel (){
- var container = $("#change-log-level");
- container.hide();
-}
-
-function clearLoggerLevel(id){
- $("#loggerRemove-" + id).val("true");
- sendLoggerLevel(id);
- $("#logger-" + id).remove();
-}
-
-function sendLoggerLevel(id){
- var topologyId = $.url("?id");
- var shouldRemove = $("#loggerRemove-" + id).val() === "true";
- var level = $("#loggerLevel-" + id).val();
- var timeout = parseInt($("#loggerTimeout-" + id).val());
- timeout = isNaN(timeout) ? 0 : timeout;
- var loggerName = $("#loggerName-" + id).val();
- if (level === 'Pick Level'){
- alert ('Please pick a valid log level');
- return;
- }
- var levelBelowInfo = level === 'DEBUG';
-
- if (!shouldRemove && levelBelowInfo && timeout <= 0){
- timeout = parseInt (
- prompt ("You must provide a timeout > 0 for DEBUG log level. What timeout would you like (secs)?", 30));
- if (!timeout){
- return;
- }
- }
- var data = {};
- var loggerSetting;
-
- if (id === 0) {
- data["namedLoggerLevels"] = {};
- data["namedLoggerLevels"]["ROOT"] = {};
- loggerSetting = data["namedLoggerLevels"]["ROOT"];
- } else {
- data["namedLoggerLevels"] = {};
- data["namedLoggerLevels"][loggerName] = {};
- loggerSetting = data["namedLoggerLevels"][loggerName];
- }
-
- loggerSetting.target_level = shouldRemove ? null : level;
- loggerSetting.reset_level = "INFO";
- loggerSetting.timeout = timeout;
-
- sendRequest (topologyId, "logconfig", null, data, toggleChangeLogLevel);
-};
-
-function renderLogLevelForm (template, responseData){
- var topologyId = $.url("?id");
- var container = $("#change-log-level");
-
- var levels = [
- {name: "Pick Level"},
- {name: "ALL"},
- {name: "TRACE"},
- {name: "DEBUG"},
- {name: "INFO" },
- {name: "WARN" },
- {name: "ERROR"},
- {name: "FATAL"},
- {name: "OFF"}
- ];
- var partialTemplates = $(template).filter('.partials');
- var partials = {};
-
- $.each(partialTemplates, function (ix, partial){
- var obj = $(partial);
- partials [obj.attr('id')] = obj.html();
- });
-
- var logLevelTemplate = $(template).filter("#topology-change-log-level-template").html();
-
- var calcAbsoluteTimeout = function (timeout_epoch) {
- var absoluteTimeout = "";
- if (timeout_epoch) {
- var d = new Date(0);
- d.setUTCSeconds(timeout_epoch / 1000);
- absoluteTimeout = d.toLocaleDateString() + " " + d.toLocaleTimeString();
- }
- return absoluteTimeout;
- };
- var renderImpl = function (data){
- var loggers = [];
- var loggerCount = 1;
- var obj = data.namedLoggerLevels;
- if (!obj) {
- obj = {};
- data.namedLoggerLevels = obj;
- }
-
- var sortedLoggers = Object.keys(obj).sort(function (l1, l2){
- if (l1 === "ROOT") return -1;
- if (l2 === "ROOT") return 1;
- return l1 > l2;
- });
-
- sortedLoggers.forEach (function (l){
- var obj = data.namedLoggerLevels[l];
- obj.loggerId = loggerCount++;
- obj.loggerName = l;
- obj.named = l != "ROOT";
- obj.cls = "namedLoggers";
- obj.levelSelected = function (obj){
- return function (){
- return this.name === obj.target_level ? "selected" : "";
- }
- }(obj);
- obj.absoluteTimeout = calcAbsoluteTimeout (obj.timeout_epoch);
- obj.canClear = true;
- loggers.push(obj);
- });
-
- loggers.push({
- loggerId: loggerCount,
- isNew: true,
- cls: 'newLogger'
- });
-
- var tmplData = {
- loggers: loggers,
- levels: levels
- };
-
- container.html(Mustache.render(logLevelTemplate, tmplData, partials));
- container.show('fast');
- };
- if (!responseData) {
- var topologyId = $.url("?id");
- $.get('/api/v1/topology/' + topologyId + '/logconfig', renderImpl);
- } else {
- renderImpl (responseData);
- }
-}
-$(document).ajaxStop($.unblockUI);
-$(document).ajaxStart(function(){
- if ($("#topology-visualization").children().size() == 0) {
- $.blockUI({ message: '<img src="images/spinner.gif" /> <h3>Loading topology summary...</h3>'});
- }
-});
-$(document).ready(function() {
- var topologyId = $.url("?id");
- var tableStateKey = ":".concat(topologyId);
- var window = $.url("?window");
- var sys = $.cookies.get("sys") || "false";
- var url = "/api/v1/topology/"+topologyId+"?sys="+sys;
- if(window) url += "&window="+window;
- $.getJSON("/api/v1/cluster/configuration",function(response,status,jqXHR) {
- $.extend( $.fn.dataTable.defaults, {
- stateSave: true,
- stateSaveCallback: function (oSettings, oData) {
- sessionStorage.setItem( oSettings.sTableId.concat(tableStateKey), JSON.stringify(oData) );
- },
- stateLoadCallback: function (oSettings) {
- return JSON.parse( sessionStorage.getItem(oSettings.sTableId.concat(tableStateKey)) );
- },
- lengthMenu: [[20,40,60,100,-1], [20, 40, 60, 100, "All"]],
- pageLength: response["ui.pagination"]
- });
- });
-
- renderToggleSys($("#toggle-switch"));
- $.ajaxSetup({
- "error":function(jqXHR,textStatus,response) {
- var errorJson = jQuery.parseJSON(jqXHR.responseText);
- getStatic("/templates/json-error-template.html", function(template) {
- $("#json-response-error").append(Mustache.render($(template).filter("#json-error-template").html(),errorJson));
- });
- }
- });
-
- $.getJSON(url,function(response,status,jqXHR) {
- var uiUser = $("#ui-user");
- getStatic("/templates/user-template.html", function(template) {
- uiUser.append(Mustache.render($(template).filter("#user-template").html(),response));
- $('#ui-user [data-toggle="tooltip"]').tooltip();
- });
-
- var topologySummary = $("#topology-summary");
- var topologyResources = $("#topology-resources");
- var topologyStats = $("#topology-stats");
- var topologySpoutsLag = $("#topology-spouts-lag");
- var spoutStats = $("#spout-stats");
- var boltStats = $("#bolt-stats");
- var workerStats = $("#worker-stats");
- var config = $("#topology-configuration");
- var topologyActions = $("#topology-actions");
- var topologyVisualization = $("#topology-visualization")
- var searchForm = $("#search-form")
- var formattedConfig = formatConfigData(response["configuration"]);
- var buttonJsonData = topologyActionJson(response["id"],response["encodedId"],response["name"],response["status"]
- ,response["msgTimeout"],response["configuration"]["topology.eventlogger.executors"],response["debug"],response["samplingPct"]);
- $.ajax ({url: "/templates/topology-page-template.html", success: function(template) {
- toggleChangeLogLevel = function (data) {
- renderLogLevelForm (template, data);
- }
- searchForm.append(Mustache.render($(template).filter("#search-form-template").html(),{id: topologyId}));
- topologySummary.append(Mustache.render($(template).filter("#topology-summary-template").html(),response));
- topologyResources.append(Mustache.render($(template).filter("#topology-resources-template").html(),response));
- var displayResource = response["schedulerDisplayResource"];
- if (!displayResource){
- $('#topology-resources-header').hide();
- $('#topology-resources').hide();
- }
- topologyActions.append(Mustache.render($(template).filter("#topology-actions-template").html(),buttonJsonData));
- topologyStats.append(Mustache.render($(template).filter("#topology-stats-template").html(),response));
- //window, emitted, transferred, complete latency, acked, failed
- $("#topology-stats-table").DataTable({
- paging: false,
- info: false,
- searching: false,
- columnDefs: [
- {type: "num", targets: [1, 2, 3, 4, 5]},
- {type: "time-str", targets: [0]}
- ]
- });
-
- spoutStats.append(Mustache.render($(template).filter("#spout-stats-template").html(),response));
- dtAutoPage("#spout-stats-table", {
- columnDefs: [
- {type: "num", targets: 'table-num'}
- ]
- });
-
- boltStats.append(Mustache.render($(template).filter("#bolt-stats-template").html(),response));
- dtAutoPage("#bolt-stats-table", {
- columnDefs: [
- {type: "num", targets: 'table-num'}
- ]
- });
-
- jsError(function() {
- workerStats.append(Mustache.render($(template).filter("#worker-stats-template").html(),response));
- makeTopologyWorkerStatsTable (response, '#worker-stats-table', '#worker-stats');
- });
-
- jsError(function() {
- topologyVisualization.append(Mustache.render($(template).filter("#topology-visualization-template").html(), response));
- var sys = $.cookies.get("sys") || "false";
- $("#show-hide-visualization").click(function () { show_visualization(sys) });
- $("#open-visualization").click(function() { open_visualization(sys); });
-
- config.append(Mustache.render($(template).filter("#topology-configuration-template").html(),formattedConfig));
- $('#topology-configuration td').jsonFormatter()
- //key, value
- dtAutoPage("#topology-configuration-table", {});
-
- var errorCells = document.getElementsByClassName("errorSpan");
- for (i =0; i < errorCells.length; i++)
- {
- var timeLapsedInSecs = errorCells[i].id;
- if (parseInt(timeLapsedInSecs) < 1800) {
- errorCells[i].style.color = "#9d261d";
- errorCells[i].style.borderBottomColor = "#9d261d";
- }
- errorCells[i].style.whiteSpace = "pre";
- }
-
- var errorTime = document.getElementsByClassName("errorTime");
- for (i=0; i < errorTime.length; i++)
- {
- if((errorTime[i].id))
- {
- var a = new Date(parseInt(errorTime[i].id) * 1000);
- var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
- var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat'];
- var year = a.getFullYear();
- var month = months[a.getMonth()];
- var date = a.getDate();
- var hour = a.getHours();
- var min = a.getMinutes();
- var sec = a.getSeconds();
- var day = days[a.getDay()];
- if (hour < 10) {hour = "0"+hour;}
- if (min < 10) {min = "0"+min;}
- if (sec < 10) {sec = "0"+sec;}
- var time = day + ', '+date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec;
-
- errorTime[i].innerHTML = time;
- var sec_num = parseInt(errorTime[i].title, 10);
- var hours = Math.floor(sec_num / 3600);
- var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
- var seconds = sec_num - (hours * 3600) - (minutes * 60);
- if (hours < 10) {hours = "0"+hours;}
- if (minutes < 10) {minutes = "0"+minutes;}
- if (seconds < 10) {seconds = "0"+seconds;}
- var time = hours+':'+minutes+':'+seconds;
- errorTime[i].title = "Elapsed Time Since Error: " + time;
- }
- }
- $('#topology-summary [data-toggle="tooltip"]').tooltip();
- $('#topology-stats [data-toggle="tooltip"]').tooltip();
- $('#spout-stats [data-toggle="tooltip"]').tooltip();
- $('#bolt-stats [data-toggle="tooltip"]').tooltip();
- $('#topology-configuration [data-toggle="tooltip"]').tooltip();
- $('#topology-actions [data-toggle="tooltip"]').tooltip();
- $('#topology-visualization [data-toggle="tooltip"]').tooltip();
-
- var lagUrl = "/api/v1/topology/"+topologyId+"/lag";
- $.getJSON(lagUrl,function(lagResponse,status,jqXHR) {
- if (lagResponse !== null && lagResponse !== undefined) {
- var kafkaSpoutsLagTemplate = $(template).filter("#topology-kafka-spouts-lag-template").html();
- var spoutsErrorTemplate = $(template).filter("#topology-spouts-lag-error-template").html();
-
- var data = {};
- data.kafkaSpoutsLagResults = [];
- data.spoutsLagErrorResults = [];
- for (var spoutId in lagResponse) {
- var spout = lagResponse[spoutId];
- var spoutType = spout.spoutType;
- if (spoutType !== "KAFKA") {
- continue;
- }
- var spoutLagResult = spout.spoutLagResult;
- var errorInfo = spout.errorInfo;
- if (spoutLagResult !== undefined) {
- for (var topicName in spoutLagResult) {
- var topicLagResult = spoutLagResult[topicName];
- for (var partitionId in topicLagResult) {
- var partitionLagResult = topicLagResult[partitionId];
- data.kafkaSpoutsLagResults.push({
- id: spoutId,
- topic: topicName,
- partition: partitionId,
- logHeadOffset: partitionLagResult.logHeadOffset,
- consumerCommittedOffset: partitionLagResult.consumerCommittedOffset,
- lag: partitionLagResult.lag
- });
- }
- }
- } else if (errorInfo !== undefined) {
- data.spoutsLagErrorResults.push({
- spoutId: spoutId,
- spoutType: spout.spoutType,
- errorInfo: errorInfo
- });
- }
- }
-
- if (data.kafkaSpoutsLagResults.length > 0) {
- topologySpoutsLag.append(Mustache.render(kafkaSpoutsLagTemplate, data));
- }
- if (data.spoutsLagErrorResults.length > 0) {
- topologySpoutsLag.append(Mustache.render(spoutsErrorTemplate, data));
- }
- }
- });
- });
- }});
- });
- });
-
-getPageRenderedTimestamp("page-rendered-at-timestamp");
-
-</script>
-</html>
-
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-core/src/ui/public/visualize.html
----------------------------------------------------------------------
diff --git a/storm-core/src/ui/public/visualize.html b/storm-core/src/ui/public/visualize.html
deleted file mode 100644
index ec16544..0000000
--- a/storm-core/src/ui/public/visualize.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<html>
-<head>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Topology Visualization</title>
- <link href="/css/bootstrap-3.3.1.min.css" rel="stylesheet" type="text/css">
- <link href="/css/vis.min.css" rel="stylesheet" type="text/css" />
- <link href="/css/style.css?_ts=${packageTimestamp}" rel="stylesheet" type="text/css">
- <script src="/js/jquery-1.11.1.min.js" type="text/javascript"></script>
- <script src="/js/jquery.mustache.js" type="text/javascript"></script>
- <script src="/js/url.min.js" type="text/javascript"></script>
- <script src="/js/vis.min.js" type="text/javascript"></script>
- <script src="/js/visualization.js" type="text/javascript"></script>
-</head>
-<body>
-<div id="visualization">
- <!-- Slide out for stream selection -->
- <div id="streams_slideout">
- <div id="streams_slideout_inner">
- <img src="/images/streams.png" alt="Streams" style="float: right;"/>
- <ul id="available-streams">
- </ul>
- </div>
- </div>
-
- <!-- Slide out for bolt stats -->
- <div id="bolt_slideout">
- <div id="bolt_slideout_inner">
- <img src="/images/component.png" alt="Component Info" class="header" style="float: left;"/>
- <ul id="bolt-details"></ul>
- </div>
- </div>
-
- <div id="mynetwork"></div>
-
- <!-- template for stream selector checkbox -->
- <script id="stream_selector_template" type="text/template">
- <li>
- <label>
- <input type="checkbox" id="stream-{{streamNameSanitized}}" class="stream_checkbox" onclick="checkStream(this);" {{checked}}>{{streamName}}
- </label>
- </li>
- </script>
-
- <!-- template for bolt info -->
- <script id="bolt_info_template" type="text/template">
- <!-- top level component details -->
- <li>Id: <a href="{{:link}}" target="_blank">{{:id}}</a> ◳</li>
- <li>Type: {{:type}}</li>
- <li>Latency: {{:latency}} ms</li>
- <li>Capacity: {{:capacity}}</li>
- <li>Transferred: {{:transferred}}</li>
-
- <!-- Inputs to Component -->
- <li>
- <details>
- <summary>{{:inputs_length}} Inputs</summary>
- <ul id="bolt-inputs">
- <!-- Start loop over inputs -->
- {{#:inputs}}
- <li>
- <details>
- <summary>
- {{#:show_link}}
- <a href="#" onclick="network.selectNodes(['{{:component}}']); handleNodeClickEvent('{{:component}}'); return false;">{{:component}}</a>
- {{/:show_link}}
- {{^:show_link}}
- {{:component}}
- {{/:show_link}}
- </summary>
- <ul>
- <li>Stream: {{:stream}}</li>
- <li>Grouping: {{:grouping}}</li>
- </ul>
- </details>
- </li>
- {{/:inputs}}
- </ul>
- </details>
- </li>
-
- <!-- Instance Details -->
- <li>
- <details>
- <summary>
- {{:stats_length}} Instance(s)
- </summary>
- <ul id="bolt-instances">
- <!-- Start loop over instances -->
- {{#:stats}}
- <li>
- <details>
- <summary>
- {{:host}}:{{:port}}
- </summary>
- <ul>
- <li>Uptime: {{:uptime_str}}</li>
- </ul>
- </details>
- </li>
- {{/:stats}}
- </ul>
- </details>
- </li>
- </script>
-</div>
-</body>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-dist/binary/final-package/src/main/assembly/binary.xml
----------------------------------------------------------------------
diff --git a/storm-dist/binary/final-package/src/main/assembly/binary.xml b/storm-dist/binary/final-package/src/main/assembly/binary.xml
index 6e0d968..f0cbd6c 100644
--- a/storm-dist/binary/final-package/src/main/assembly/binary.xml
+++ b/storm-dist/binary/final-package/src/main/assembly/binary.xml
@@ -68,7 +68,7 @@
maven assembly plugin should inject a value.
-->
<fileSet>
- <directory>${project.basedir}/../../../storm-core/src/ui/public</directory>
+ <directory>${project.basedir}/../../../storm-webapp/target/classes/WEB-INF/</directory>
<outputDirectory>public</outputDirectory>
<includes>
<include>*.html</include>
@@ -81,7 +81,7 @@
Include rest of public/ directory, without any filtering
-->
<fileSet>
- <directory>${project.basedir}/../../../storm-core/src/ui/public</directory>
+ <directory>${project.basedir}/../../../storm-webapp/target/classes/WEB-INF/</directory>
<outputDirectory>public</outputDirectory>
<includes>
<include>*/**</include>
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-dist/binary/storm-webapp-bin/src/main/assembly/storm-webapp.xml
----------------------------------------------------------------------
diff --git a/storm-dist/binary/storm-webapp-bin/src/main/assembly/storm-webapp.xml b/storm-dist/binary/storm-webapp-bin/src/main/assembly/storm-webapp.xml
index da8fe77..fd60421 100644
--- a/storm-dist/binary/storm-webapp-bin/src/main/assembly/storm-webapp.xml
+++ b/storm-dist/binary/storm-webapp-bin/src/main/assembly/storm-webapp.xml
@@ -27,6 +27,10 @@
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib-webapp</outputDirectory>
<unpack>false</unpack>
+ <excludes>
+ <exclude>org.glassfish.jersey.ext:jersey-metainf-services</exclude>
+ <exclude>org.glassfish.jersey.ext:jersey-bean-validation</exclude>
+ </excludes>
</dependencySet>
</dependencySets>
</assembly>
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/storm-webapp/pom.xml b/storm-webapp/pom.xml
index 407cd92..649354e 100644
--- a/storm-webapp/pom.xml
+++ b/storm-webapp/pom.xml
@@ -18,6 +18,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
+
<artifactId>storm</artifactId>
<groupId>org.apache.storm</groupId>
<version>2.0.0-SNAPSHOT</version>
@@ -29,6 +30,11 @@
<name>Storm Webapp</name>
<description>Webapp Servers for Apache Storm</description>
+ <properties>
+ <jersey.version>2.27</jersey.version>
+ <grizzly.version>2.4.3</grizzly.version>
+ <jersey-grizzly2.version>1.19.4</jersey-grizzly2.version>
+ </properties>
<dependencies>
<!-- storm-webapp is based on storm-core -->
<dependency>
@@ -95,6 +101,14 @@
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.ext</groupId>
+ <artifactId>jersey-metainf-services</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.ext</groupId>
+ <artifactId>jersey-bean-validation</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -117,6 +131,36 @@
<artifactId>dropwizard-testing</artifactId>
<version>${dropwizard.version}</version>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-servlet</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.ext</groupId>
+ <artifactId>jersey-metainf-services</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.ext</groupId>
+ <artifactId>jersey-bean-validation</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+ <artifactId>jersey-test-framework-provider-inmemory</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.test-framework.providers</groupId>
+ <artifactId>ersey-test-framework-provider-inmemory</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<!-- Java 9+ compatibility, ensure Java EE classes are on classpath when using jersey (through Dropwizard) -->
<dependency>
@@ -127,8 +171,122 @@
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
+
+ <!-- UI -->
+ <dependency>
+ <groupId>org.glassfish.jersey</groupId>
+ <artifactId>jersey-bom</artifactId>
+ <version>${jersey.version}</version>
+ <type>pom</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-grizzly2-http</artifactId>
+ <version>${jersey.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-servlet</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.inject</groupId>
+ <artifactId>jersey-hk2</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-grizzly2-servlet</artifactId>
+ <version>${jersey.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-servlet</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-grizzly2</artifactId>
+ <version>${jersey-grizzly2.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-servlet</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-grizzly2-servlet</artifactId>
+ <version>${jersey-grizzly2.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-servlet</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.grizzly</groupId>
+ <artifactId>grizzly-framework</artifactId>
+ <version>${grizzly.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.grizzly</groupId>
+ <artifactId>grizzly-http-server</artifactId>
+ <version>${grizzly.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.grizzly</groupId>
+ <artifactId>grizzly-http</artifactId>
+ <version>${grizzly.version}</version>
+ </dependency>
</dependencies>
<build>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/main/java/org/apache/storm/daemon/ui</directory>
+ <includes>
+ <include>WEB-INF/**/*.*</include>
+ </includes>
+ </resource>
+ </resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -151,7 +309,7 @@
<artifactId>maven-checkstyle-plugin</artifactId>
<!--Note - the version would be inherited-->
<configuration>
- <maxAllowedViolations>7</maxAllowedViolations>
+ <maxAllowedViolations>16</maxAllowedViolations>
</configuration>
</plugin>
<plugin>
@@ -199,6 +357,18 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.6.0</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>