{"action":"created","issue":{"url":"https://api.github.com/repos/apache/cloudstack/issues/1546","repository_url":"https://api.github.com/repos/apache/cloudstack","labels_url":"https://api.github.com/repos/apache/cloudstack/issues/1546/labels{/name}","comments_url":"https://api.github.com/repos/apache/cloudstack/issues/1546/comments","events_url":"https://api.github.com/repos/apache/cloudstack/issues/1546/events","html_url":"https://github.com/apache/cloudstack/pull/1546","id":154685646,"number":1546,"title":"[WIP][4.10+/long-term] Moving towards Java8 and Spring4","user":{"login":"rhtyd","id":95203,"avatar_url":"https://avatars.githubusercontent.com/u/95203?v=3","gravatar_id":"","url":"https://api.github.com/users/rhtyd","html_url":"https://github.com/rhtyd","followers_url":"https://api.github.com/users/rhtyd/followers","following_url":"https://api.github.com/users/rhtyd/following{/other_user}","gists_url":"https://api.github.com/users/rhtyd/gists{/gist_id}","starred_url":"https://api.github.com/users/rhtyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rhtyd/subscriptions","organizations_url":"https://api.github.com/users/rhtyd/orgs","repos_url":"https://api.github.com/users/rhtyd/repos","events_url":"https://api.github.com/users/rhtyd/events{/privacy}","received_events_url":"https://api.github.com/users/rhtyd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2016-05-13T10:54:00Z","updated_at":"2016-05-13T13:46:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/cloudstack/pulls/1546","html_url":"https://github.com/apache/cloudstack/pull/1546","diff_url":"https://github.com/apache/cloudstack/pull/1546.diff","patch_url":"https://github.com/apache/cloudstack/pull/1546.patch"},"body":"This is a `long term` fix aiming to do following:\r\n- Use Java8 for both building and running CloudStack\r\n- Use Spring-framework 4.2.x\r\n- Use latest Jetty\r\n\r\nOutstanding issues:\r\n- F5 fails to compile, it has been disabled. F5 authors/maintainers need to have a look.\r\n- com/cloud/vm/DeploymentPlanningManagerImplTest.java failed, I could not fix it so disabled it for now.\r\n\r\nTesting:\r\n- Built and ran mgmt sever, deployed an env simulator\r\n- Ran some smoke tests, TravisCI updated to run tests with JDK8.\r\n\r\nTODOs:\r\n- Fix any issues that may come due to Spring-framework migration (we only use spring-context, spring-aop, spring-beans in most places)\r\n- SystemVM agent testing\r\n- Upgrade Java8 in systemvmtemplate\r\n- Packaging related fixes\r\n- JAVA_OPTS/JVM fixes to support JRE8\r\n- Migrate towards embedded jetty"},"comment":{"url":"https://api.github.com/repos/apache/cloudstack/issues/comments/219047291","html_url":"https://github.com/apache/cloudstack/pull/1546#issuecomment-219047291","issue_url":"https://api.github.com/repos/apache/cloudstack/issues/1546","id":219047291,"user":{"login":"jburwell","id":285646,"avatar_url":"https://avatars.githubusercontent.com/u/285646?v=3","gravatar_id":"","url":"https://api.github.com/users/jburwell","html_url":"https://github.com/jburwell","followers_url":"https://api.github.com/users/jburwell/followers","following_url":"https://api.github.com/users/jburwell/following{/other_user}","gists_url":"https://api.github.com/users/jburwell/gists{/gist_id}","starred_url":"https://api.github.com/users/jburwell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jburwell/subscriptions","organizations_url":"https://api.github.com/users/jburwell/orgs","repos_url":"https://api.github.com/users/jburwell/repos","events_url":"https://api.github.com/users/jburwell/events{/privacy}","received_events_url":"https://api.github.com/users/jburwell/received_events","type":"User","site_admin":false},"created_at":"2016-05-13T13:46:22Z","updated_at":"2016-05-13T13:46:22Z","body":"@rhtyd I think it would be a good idea to this PR up a bit.  I see three distinct pieces:\r\n\r\n1. **Spring 4 Upgrade**:  Spring 4 supports both Java7 and Java8.  Therefore, this upgrade can be done without involving Java8.\r\n2. **Jetty Embedding**:  Again, Jetty 9 supports both Java7 and Java8.  Therefore, this work can be done without involving Java8.\r\n3. **Java8**: Ideally, this piece should be fairly small -- disabling the F5 plugin, changing the POMs, and a sundry of minor code changes to achieve compilation.\r\n\r\nThe harder part is that all of these changes will require a full end-to-end test of the system.\r\n\r\nFinally, for Java8, I suggest that we follow the convention of many of Java-based projects and remove the package dependencies on the JDK.  Some users choose to use OpenJDK and others choose Oracle's JDK.  Therefore, the current dependency makes an invalid assumption about the JDK users want to use -- making it more difficult to use the implementation of their choice.\r\n\r\n@wido as @rhtyd points out, Java8 is available via PPAs.  IMHO, Ubuntu's decision to keep their distribution out-of-date is not a sufficient reason to continue requiring the use of an unsupported Java runtime.  Given the number of significant security issues that have been discovered in the JRE over the past few years, the longer we wait to upgrade to Java8, the greater the risk that a significant security issue arises that forces CloudStack users to either turn off their instances or run and hope no one hacks them."}}