Community
Participate
Working Groups
In Bluemix Tools, we're seeing a case where the Eclipse P2 installer is installing the Oxygen version of the cft.server.client, into an Eclipse CFT install that is otherwise entirely Neon.3. While the P2 installer really shouldn't be doing this, it looks like the cft.server.client does not specify a minimum plug-in version for the cft.server.core dependency in cft.server.client's MANIFEST.MF. This means that the Eclipse P2 installer considers the above configuration valid. The simple fix is to set a minimum version on cft.server.core in cft.server.client's MANIFEST.MF: Require-Bundle: org.eclipse.core.runtime, org.eclipse.cft.server.core;bundle-version="1.2.3", <==== dependency now includes bundle=version of cft.server.core for Oxygen.1 (1.1.1) This set a lower bound on plug-in version, but (despite the syntax) does not restrict the upper bound, so should not cause an issue for future releases. This is the error that is thrown, in this case on publish: java.lang.AbstractMethodError: org.eclipse.cft.server.client.v2.internal.V2CFClientProvider.supports(Ljava/lang/String;Lorg/eclipse/cft/server/core/internal/client/CFInfo;)Z at org.eclipse.cft.server.core.internal.client.CFClientProviderRegistry.getClientProvider(CFClientProviderRegistry.java:98) at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.getHybridClient(CloudFoundryServerBehaviour.java:2202) at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.startAppLogStreaming(CloudFoundryServerBehaviour.java:2254) at org.eclipse.cft.server.ui.internal.console.ApplicationLogConsoleStream.initialiseStream(ApplicationLogConsoleStream.java:99) at org.eclipse.cft.server.ui.internal.console.CloudFoundryConsole.getStream(CloudFoundryConsole.java:107) at org.eclipse.cft.server.ui.internal.console.CloudFoundryConsole.startTailing(CloudFoundryConsole.java:76) at org.eclipse.cft.server.ui.internal.console.ApplicationLogConsoleManager.doStartConsole(ApplicationLogConsoleManager.java:126) at org.eclipse.cft.server.ui.internal.console.ApplicationLogConsoleManager.startConsole(ApplicationLogConsoleManager.java:92) at org.eclipse.cft.server.ui.internal.CloudFoundryUiCallback.startApplicationConsole(CloudFoundryUiCallback.java:91) at org.eclipse.cft.server.core.internal.client.RestartOperation.startAndTrackApplication(RestartOperation.java:104) at org.eclipse.cft.server.core.internal.client.RestartOperation.performDeployment(RestartOperation.java:85) at org.eclipse.cft.server.core.internal.client.StartOperation.performDeployment(StartOperation.java:211) at org.eclipse.cft.server.core.internal.client.PushApplicationOperation.performDeployment(PushApplicationOperation.java:243) at org.eclipse.cft.server.core.internal.client.ApplicationOperation.doApplicationOperation(ApplicationOperation.java:124) at org.eclipse.cft.server.core.internal.client.AbstractPublishApplicationOperation.run(AbstractPublishApplicationOperation.java:90) at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.publishModule(CloudFoundryServerBehaviour.java:1516) at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publishModule(ServerBehaviourDelegate.java:1091) at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publishModules(ServerBehaviourDelegate.java:1183) at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.publishModules(CloudFoundryServerBehaviour.java:1441) at com.ibm.cftools.branding.internal.CloudFoundryBluemixServerBehaviour.publishModules(CloudFoundryBluemixServerBehaviour.java:349) at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:987) at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774) at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3172) at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Here is the P2 install that Eclipse ultimately produces, in the failing case: eclipse\plugins\org.eclipse.cft.server.branding.core_1.0.2.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.branding.ui_1.0.2.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.client_1.0.1.v201706141943.jar eclipse\plugins\org.eclipse.cft.server.core_1.2.1.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.rse_1.0.1.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.standalone.core_1.0.4.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.standalone.ui_1.0.4.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.ui_1.0.108.v201703012110.jar eclipse\plugins\org.eclipse.cft.server.verify.ui_1.0.1.v201703012110.jar
GitHub Pull Request 71 created by [jgwest] https://github.com/eclipse/cft/pull/71
Fixed.