{"action":"created","issue":{"url":"https://api.github.com/repos/codice/ddf/issues/2149","repository_url":"https://api.github.com/repos/codice/ddf","labels_url":"https://api.github.com/repos/codice/ddf/issues/2149/labels{/name}","comments_url":"https://api.github.com/repos/codice/ddf/issues/2149/comments","events_url":"https://api.github.com/repos/codice/ddf/issues/2149/events","html_url":"https://github.com/codice/ddf/pull/2149","id":244562336,"number":2149,"title":"DDF-3167 Changes the timing for the IdP server & client initialization of metadata.","user":{"login":"coyotesqrl","id":1469860,"avatar_url":"https://avatars2.githubusercontent.com/u/1469860?v=4","gravatar_id":"","url":"https://api.github.com/users/coyotesqrl","html_url":"https://github.com/coyotesqrl","followers_url":"https://api.github.com/users/coyotesqrl/followers","following_url":"https://api.github.com/users/coyotesqrl/following{/other_user}","gists_url":"https://api.github.com/users/coyotesqrl/gists{/gist_id}","starred_url":"https://api.github.com/users/coyotesqrl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coyotesqrl/subscriptions","organizations_url":"https://api.github.com/users/coyotesqrl/orgs","repos_url":"https://api.github.com/users/coyotesqrl/repos","events_url":"https://api.github.com/users/coyotesqrl/events{/privacy}","received_events_url":"https://api.github.com/users/coyotesqrl/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"pklinef","id":700518,"avatar_url":"https://avatars1.githubusercontent.com/u/700518?v=4","gravatar_id":"","url":"https://api.github.com/users/pklinef","html_url":"https://github.com/pklinef","followers_url":"https://api.github.com/users/pklinef/followers","following_url":"https://api.github.com/users/pklinef/following{/other_user}","gists_url":"https://api.github.com/users/pklinef/gists{/gist_id}","starred_url":"https://api.github.com/users/pklinef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pklinef/subscriptions","organizations_url":"https://api.github.com/users/pklinef/orgs","repos_url":"https://api.github.com/users/pklinef/repos","events_url":"https://api.github.com/users/pklinef/events{/privacy}","received_events_url":"https://api.github.com/users/pklinef/received_events","type":"User","site_admin":false},"assignees":[{"login":"pklinef","id":700518,"avatar_url":"https://avatars1.githubusercontent.com/u/700518?v=4","gravatar_id":"","url":"https://api.github.com/users/pklinef","html_url":"https://github.com/pklinef","followers_url":"https://api.github.com/users/pklinef/followers","following_url":"https://api.github.com/users/pklinef/following{/other_user}","gists_url":"https://api.github.com/users/pklinef/gists{/gist_id}","starred_url":"https://api.github.com/users/pklinef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pklinef/subscriptions","organizations_url":"https://api.github.com/users/pklinef/orgs","repos_url":"https://api.github.com/users/pklinef/repos","events_url":"https://api.github.com/users/pklinef/events{/privacy}","received_events_url":"https://api.github.com/users/pklinef/received_events","type":"User","site_admin":false},{"login":"stustison","id":4391679,"avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false}],"milestone":null,"comments":16,"created_at":"2017-07-21T04:38:22Z","updated_at":"2017-07-27T23:33:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/2149","html_url":"https://github.com/codice/ddf/pull/2149","diff_url":"https://github.com/codice/ddf/pull/2149.diff","patch_url":"https://github.com/codice/ddf/pull/2149.patch"},"body":"#### What does this PR do?\r\nPreviously, these operations occurred on injection of the metadata locators. That led to an intermittent timing issue, as the two bundles cross-query HTTP endpoints. Now, they execute the queries and parse the data once, on initial access. This allows both services to be fully initialized before any queries are executed.\r\n\r\nThis change also includes some minor cleanup to the `MetadataConfigurationParser` class. That cleanup had been associated with an earlier approach to resolving the timing issue and is not necessary; however, it does make for smaller, more concise methods.\r\n\r\n#### Who is reviewing it? \r\n@rzwiefel @tbatie @oconnormi \r\n\r\n(please choose AT LEAST two reviewers that need to approve the PR before it can get merged)\r\n\r\n#### Choose 2 committers to review/merge the PR. \r\n(please choose ONLY two committers from below, delete the rest)\r\n@pklinef\r\n@stustison\r\n\r\n#### How should this be tested? (List steps with links to updated documentation)\r\nAs this resolves an intermittent problem, any definitive test is going to be difficult to manage. Some environments have proven to be more likely to demonstrate the issue than others based on speed/performance of equipment. The best way to test this is to repeatedly unzip, startup, and then attempt to login to the admin console. On my laptop, it would fail within fewer than six iterations. On other machines, it might take more successful login attempts to increase testing confidence.\r\n\r\n#### Any background context you want to provide?\r\nN/A\r\n\r\n#### What are the relevant tickets?\r\n[DDF-3167](https://codice.atlassian.net/browse/DDF-3167)\r\n\r\n#### Screenshots (if appropriate)\r\nN/A\r\n\r\n#### Checklist:\r\n- [ ] Documentation Updated\r\n- [ ] Update / Add Unit Tests\r\n- [ ] Update / Add Integration Tests\r\n#### Review Comment Legend:\r\n- ✏️ (Pencil) This comment is a nitpick or style suggestion, no action required for approval. This comment should provide a suggestion either as an in line code snippet or a gist. \r\n- ❓ (Question Mark) This comment is to gain a clearer understanding of design or code choices, clarification is required but action may not be necessary for approval.\r\n- ❗ (Exclamation Mark) This comment is critical and requires clarification or action before approval.\r\n"},"comment":{"url":"https://api.github.com/repos/codice/ddf/issues/comments/318515264","html_url":"https://github.com/codice/ddf/pull/2149#issuecomment-318515264","issue_url":"https://api.github.com/repos/codice/ddf/issues/2149","id":318515264,"user":{"login":"coyotesqrl","id":1469860,"avatar_url":"https://avatars2.githubusercontent.com/u/1469860?v=4","gravatar_id":"","url":"https://api.github.com/users/coyotesqrl","html_url":"https://github.com/coyotesqrl","followers_url":"https://api.github.com/users/coyotesqrl/followers","following_url":"https://api.github.com/users/coyotesqrl/following{/other_user}","gists_url":"https://api.github.com/users/coyotesqrl/gists{/gist_id}","starred_url":"https://api.github.com/users/coyotesqrl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coyotesqrl/subscriptions","organizations_url":"https://api.github.com/users/coyotesqrl/orgs","repos_url":"https://api.github.com/users/coyotesqrl/repos","events_url":"https://api.github.com/users/coyotesqrl/events{/privacy}","received_events_url":"https://api.github.com/users/coyotesqrl/received_events","type":"User","site_admin":false},"created_at":"2017-07-27T23:33:39Z","updated_at":"2017-07-27T23:33:39Z","body":"This still keeps the lazy load on access for the client and server metadata but uses the safe `Futures.addCallback` method to run in the delegate executor's thread pool."}}
{"actor":{"display_login":"coyotesqrl"}}