{"action":"created","comment":{"url":"https://api.github.com/repos/codice/alliance/pulls/comments/67353510","id":67353510,"diff_hunk":"@@ -0,0 +1,209 @@\n+/**\n+ * Copyright (c) Codice Foundation\n+ * <p>\n+ * This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser\n+ * General Public License as published by the Free Software Foundation, either version 3 of the\n+ * License, or any later version.\n+ * <p>\n+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\n+ * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ * Lesser General Public License for more details. A copy of the GNU Lesser General Public License\n+ * is distributed along with this program and can be found at\n+ * <http://www.gnu.org/licenses/lgpl.html>.\n+ */\n+package org.codice.alliance.video.ui.service;\n+\n+import java.lang.management.ManagementFactory;\n+import java.util.ArrayList;\n+import java.util.HashMap;\n+import java.util.List;\n+import java.util.Map;\n+import java.util.stream.Collectors;\n+\n+import javax.management.InstanceAlreadyExistsException;\n+import javax.management.InstanceNotFoundException;\n+import javax.management.MBeanRegistrationException;\n+import javax.management.MBeanServer;\n+import javax.management.MalformedObjectNameException;\n+import javax.management.NotCompliantMBeanException;\n+import javax.management.ObjectName;\n+\n+import org.apache.commons.collections.MapUtils;\n+import org.codice.alliance.video.stream.mpegts.StreamMonitor;\n+import org.codice.alliance.video.stream.mpegts.UdpStreamMonitor;\n+import org.osgi.framework.BundleContext;\n+import org.osgi.framework.InvalidSyntaxException;\n+import org.osgi.framework.ServiceReference;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+\n+import ddf.catalog.data.Metacard;\n+\n+public class StreamMonitorHelper implements StreamMonitorHelperMBean {\n+\n+    public static final String SERVICE_PID = \"service.Pid\";\n+\n+    private static final Logger LOGGER = LoggerFactory.getLogger(StreamMonitorHelper.class);\n+\n+    private static final String MONITORING = \"monitoring\";\n+\n+    private static final String START_TIME = \"startTime\";\n+\n+    private ObjectName objectName;\n+\n+    private MBeanServer mBeanServer;\n+\n+    private BundleContext context;\n+\n+    public StreamMonitorHelper() {","path":"catalog/video/video-admin-plugin/src/main/java/org/codice/alliance/video/ui/service/StreamMonitorHelper.java","position":null,"original_position":58,"commit_id":"c0bd690c7e0926a277c85a0dae991665454fc392","original_commit_id":"a5229968995bde3117fc07d4e67e025f127e9328","user":{"login":"bdeining","id":6551038,"avatar_url":"https://avatars.githubusercontent.com/u/6551038?v=3","gravatar_id":"","url":"https://api.github.com/users/bdeining","html_url":"https://github.com/bdeining","followers_url":"https://api.github.com/users/bdeining/followers","following_url":"https://api.github.com/users/bdeining/following{/other_user}","gists_url":"https://api.github.com/users/bdeining/gists{/gist_id}","starred_url":"https://api.github.com/users/bdeining/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdeining/subscriptions","organizations_url":"https://api.github.com/users/bdeining/orgs","repos_url":"https://api.github.com/users/bdeining/repos","events_url":"https://api.github.com/users/bdeining/events{/privacy}","received_events_url":"https://api.github.com/users/bdeining/received_events","type":"User","site_admin":false},"body":"Removed","created_at":"2016-06-16T14:23:36Z","updated_at":"2016-06-16T14:23:36Z","html_url":"https://github.com/codice/alliance/pull/55#discussion_r67353510","pull_request_url":"https://api.github.com/repos/codice/alliance/pulls/55","_links":{"self":{"href":"https://api.github.com/repos/codice/alliance/pulls/comments/67353510"},"html":{"href":"https://github.com/codice/alliance/pull/55#discussion_r67353510"},"pull_request":{"href":"https://api.github.com/repos/codice/alliance/pulls/55"}}},"pull_request":{"url":"https://api.github.com/repos/codice/alliance/pulls/55","id":71458780,"html_url":"https://github.com/codice/alliance/pull/55","diff_url":"https://github.com/codice/alliance/pull/55.diff","patch_url":"https://github.com/codice/alliance/pull/55.patch","issue_url":"https://api.github.com/repos/codice/alliance/issues/55","number":55,"state":"open","locked":false,"title":"CAL-42 Added admin plugin for FMV video streaming","user":{"login":"bdeining","id":6551038,"avatar_url":"https://avatars.githubusercontent.com/u/6551038?v=3","gravatar_id":"","url":"https://api.github.com/users/bdeining","html_url":"https://github.com/bdeining","followers_url":"https://api.github.com/users/bdeining/followers","following_url":"https://api.github.com/users/bdeining/following{/other_user}","gists_url":"https://api.github.com/users/bdeining/gists{/gist_id}","starred_url":"https://api.github.com/users/bdeining/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdeining/subscriptions","organizations_url":"https://api.github.com/users/bdeining/orgs","repos_url":"https://api.github.com/users/bdeining/repos","events_url":"https://api.github.com/users/bdeining/events{/privacy}","received_events_url":"https://api.github.com/users/bdeining/received_events","type":"User","site_admin":false},"body":"#### What does this PR do?\r\nThis PR adds an Admin Module Plugin for the FMV video streaming backend.\r\nRenamed some packages to match DDF conventions\r\nAdded some functionality to video-mpegts-stream to support UI\r\nRan Pom-Fix\r\n#### Who is reviewing it?\r\n@glenhein \r\n@jrnorth \r\n@kcwire \r\n@jlcsmith \r\n#### How should this be tested?\r\nRun Alliance, Install with Alliance-Experimental, add/remove/edit an FMV stream through the admin module plugin under the video-app.\r\n#### Any background context you want to provide?\r\n#### What are the relevant tickets?\r\nhttps://codice.atlassian.net/browse/CAL-42\r\n#### Screenshots (if appropriate)\r\nhttps://codice.atlassian.net/browse/CAL-42\r\n#### Checklist:\r\n- [ ] Documentation Updated\r\n- [X] Update / Add Unit Tests\r\n- [ ] Update / Add Integration Tests\r\n","created_at":"2016-05-25T20:36:41Z","updated_at":"2016-06-16T14:23:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a6501ac5504cabbc1e9e636c8a7f8e53b9bef629","assignee":{"login":"jlcsmith","id":4503545,"avatar_url":"https://avatars.githubusercontent.com/u/4503545?v=3","gravatar_id":"","url":"https://api.github.com/users/jlcsmith","html_url":"https://github.com/jlcsmith","followers_url":"https://api.github.com/users/jlcsmith/followers","following_url":"https://api.github.com/users/jlcsmith/following{/other_user}","gists_url":"https://api.github.com/users/jlcsmith/gists{/gist_id}","starred_url":"https://api.github.com/users/jlcsmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlcsmith/subscriptions","organizations_url":"https://api.github.com/users/jlcsmith/orgs","repos_url":"https://api.github.com/users/jlcsmith/repos","events_url":"https://api.github.com/users/jlcsmith/events{/privacy}","received_events_url":"https://api.github.com/users/jlcsmith/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/codice/alliance/pulls/55/commits","review_comments_url":"https://api.github.com/repos/codice/alliance/pulls/55/comments","review_comment_url":"https://api.github.com/repos/codice/alliance/pulls/comments{/number}","comments_url":"https://api.github.com/repos/codice/alliance/issues/55/comments","statuses_url":"https://api.github.com/repos/codice/alliance/statuses/c0bd690c7e0926a277c85a0dae991665454fc392","head":{"label":"bdeining:CAL-42","ref":"CAL-42","sha":"c0bd690c7e0926a277c85a0dae991665454fc392","user":{"login":"bdeining","id":6551038,"avatar_url":"https://avatars.githubusercontent.com/u/6551038?v=3","gravatar_id":"","url":"https://api.github.com/users/bdeining","html_url":"https://github.com/bdeining","followers_url":"https://api.github.com/users/bdeining/followers","following_url":"https://api.github.com/users/bdeining/following{/other_user}","gists_url":"https://api.github.com/users/bdeining/gists{/gist_id}","starred_url":"https://api.github.com/users/bdeining/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdeining/subscriptions","organizations_url":"https://api.github.com/users/bdeining/orgs","repos_url":"https://api.github.com/users/bdeining/repos","events_url":"https://api.github.com/users/bdeining/events{/privacy}","received_events_url":"https://api.github.com/users/bdeining/received_events","type":"User","site_admin":false},"repo":{"id":52810110,"name":"alliance","full_name":"bdeining/alliance","owner":{"login":"bdeining","id":6551038,"avatar_url":"https://avatars.githubusercontent.com/u/6551038?v=3","gravatar_id":"","url":"https://api.github.com/users/bdeining","html_url":"https://github.com/bdeining","followers_url":"https://api.github.com/users/bdeining/followers","following_url":"https://api.github.com/users/bdeining/following{/other_user}","gists_url":"https://api.github.com/users/bdeining/gists{/gist_id}","starred_url":"https://api.github.com/users/bdeining/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bdeining/subscriptions","organizations_url":"https://api.github.com/users/bdeining/orgs","repos_url":"https://api.github.com/users/bdeining/repos","events_url":"https://api.github.com/users/bdeining/events{/privacy}","received_events_url":"https://api.github.com/users/bdeining/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bdeining/alliance","description":"","fork":true,"url":"https://api.github.com/repos/bdeining/alliance","forks_url":"https://api.github.com/repos/bdeining/alliance/forks","keys_url":"https://api.github.com/repos/bdeining/alliance/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bdeining/alliance/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bdeining/alliance/teams","hooks_url":"https://api.github.com/repos/bdeining/alliance/hooks","issue_events_url":"https://api.github.com/repos/bdeining/alliance/issues/events{/number}","events_url":"https://api.github.com/repos/bdeining/alliance/events","assignees_url":"https://api.github.com/repos/bdeining/alliance/assignees{/user}","branches_url":"https://api.github.com/repos/bdeining/alliance/branches{/branch}","tags_url":"https://api.github.com/repos/bdeining/alliance/tags","blobs_url":"https://api.github.com/repos/bdeining/alliance/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bdeining/alliance/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bdeining/alliance/git/refs{/sha}","trees_url":"https://api.github.com/repos/bdeining/alliance/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bdeining/alliance/statuses/{sha}","languages_url":"https://api.github.com/repos/bdeining/alliance/languages","stargazers_url":"https://api.github.com/repos/bdeining/alliance/stargazers","contributors_url":"https://api.github.com/repos/bdeining/alliance/contributors","subscribers_url":"https://api.github.com/repos/bdeining/alliance/subscribers","subscription_url":"https://api.github.com/repos/bdeining/alliance/subscription","commits_url":"https://api.github.com/repos/bdeining/alliance/commits{/sha}","git_commits_url":"https://api.github.com/repos/bdeining/alliance/git/commits{/sha}","comments_url":"https://api.github.com/repos/bdeining/alliance/comments{/number}","issue_comment_url":"https://api.github.com/repos/bdeining/alliance/issues/comments{/number}","contents_url":"https://api.github.com/repos/bdeining/alliance/contents/{+path}","compare_url":"https://api.github.com/repos/bdeining/alliance/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bdeining/alliance/merges","archive_url":"https://api.github.com/repos/bdeining/alliance/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bdeining/alliance/downloads","issues_url":"https://api.github.com/repos/bdeining/alliance/issues{/number}","pulls_url":"https://api.github.com/repos/bdeining/alliance/pulls{/number}","milestones_url":"https://api.github.com/repos/bdeining/alliance/milestones{/number}","notifications_url":"https://api.github.com/repos/bdeining/alliance/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bdeining/alliance/labels{/name}","releases_url":"https://api.github.com/repos/bdeining/alliance/releases{/id}","deployments_url":"https://api.github.com/repos/bdeining/alliance/deployments","created_at":"2016-02-29T17:34:35Z","updated_at":"2016-03-03T16:09:43Z","pushed_at":"2016-06-16T14:22:00Z","git_url":"git://github.com/bdeining/alliance.git","ssh_url":"git@github.com:bdeining/alliance.git","clone_url":"https://github.com/bdeining/alliance.git","svn_url":"https://github.com/bdeining/alliance","homepage":null,"size":18341,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"codice:master","ref":"master","sha":"01f08347fd97660a79aa40b73742c5064b73e2f2","user":{"login":"codice","id":2386734,"avatar_url":"https://avatars.githubusercontent.com/u/2386734?v=3","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"repo":{"id":52804523,"name":"alliance","full_name":"codice/alliance","owner":{"login":"codice","id":2386734,"avatar_url":"https://avatars.githubusercontent.com/u/2386734?v=3","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/codice/alliance","description":"","fork":false,"url":"https://api.github.com/repos/codice/alliance","forks_url":"https://api.github.com/repos/codice/alliance/forks","keys_url":"https://api.github.com/repos/codice/alliance/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codice/alliance/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codice/alliance/teams","hooks_url":"https://api.github.com/repos/codice/alliance/hooks","issue_events_url":"https://api.github.com/repos/codice/alliance/issues/events{/number}","events_url":"https://api.github.com/repos/codice/alliance/events","assignees_url":"https://api.github.com/repos/codice/alliance/assignees{/user}","branches_url":"https://api.github.com/repos/codice/alliance/branches{/branch}","tags_url":"https://api.github.com/repos/codice/alliance/tags","blobs_url":"https://api.github.com/repos/codice/alliance/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codice/alliance/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codice/alliance/git/refs{/sha}","trees_url":"https://api.github.com/repos/codice/alliance/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codice/alliance/statuses/{sha}","languages_url":"https://api.github.com/repos/codice/alliance/languages","stargazers_url":"https://api.github.com/repos/codice/alliance/stargazers","contributors_url":"https://api.github.com/repos/codice/alliance/contributors","subscribers_url":"https://api.github.com/repos/codice/alliance/subscribers","subscription_url":"https://api.github.com/repos/codice/alliance/subscription","commits_url":"https://api.github.com/repos/codice/alliance/commits{/sha}","git_commits_url":"https://api.github.com/repos/codice/alliance/git/commits{/sha}","comments_url":"https://api.github.com/repos/codice/alliance/comments{/number}","issue_comment_url":"https://api.github.com/repos/codice/alliance/issues/comments{/number}","contents_url":"https://api.github.com/repos/codice/alliance/contents/{+path}","compare_url":"https://api.github.com/repos/codice/alliance/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codice/alliance/merges","archive_url":"https://api.github.com/repos/codice/alliance/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codice/alliance/downloads","issues_url":"https://api.github.com/repos/codice/alliance/issues{/number}","pulls_url":"https://api.github.com/repos/codice/alliance/pulls{/number}","milestones_url":"https://api.github.com/repos/codice/alliance/milestones{/number}","notifications_url":"https://api.github.com/repos/codice/alliance/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codice/alliance/labels{/name}","releases_url":"https://api.github.com/repos/codice/alliance/releases{/id}","deployments_url":"https://api.github.com/repos/codice/alliance/deployments","created_at":"2016-02-29T16:10:33Z","updated_at":"2016-06-14T21:40:26Z","pushed_at":"2016-06-16T14:22:01Z","git_url":"git://github.com/codice/alliance.git","ssh_url":"git@github.com:codice/alliance.git","clone_url":"https://github.com/codice/alliance.git","svn_url":"https://github.com/codice/alliance","homepage":null,"size":18560,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":8,"forks":18,"open_issues":8,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/codice/alliance/pulls/55"},"html":{"href":"https://github.com/codice/alliance/pull/55"},"issue":{"href":"https://api.github.com/repos/codice/alliance/issues/55"},"comments":{"href":"https://api.github.com/repos/codice/alliance/issues/55/comments"},"review_comments":{"href":"https://api.github.com/repos/codice/alliance/pulls/55/comments"},"review_comment":{"href":"https://api.github.com/repos/codice/alliance/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/codice/alliance/pulls/55/commits"},"statuses":{"href":"https://api.github.com/repos/codice/alliance/statuses/c0bd690c7e0926a277c85a0dae991665454fc392"}}}}
{"actor":{"display_login":"bdeining"}}