diffplug / goomph

IDE as build artifact
Apache License 2.0
130 stars 30 forks source link

Dropins files misplaced (at least on on MacOS) #74

Closed aleksandarsusnjar closed 6 years ago

aleksandarsusnjar commented 6 years ago

Goomph 3.15.0 seems to place the branding files here:

<gradle build dir>/oomph-ide.app/Contents/Eclipse/dropins/com.diffplug.goomph.branding/...

... but the splash screen does not appear unless I copy the branding to the following location identified by the exception thrown by the ideSetupWorkspace task:

<gradle build dir>/oomph-ide.app/Contents/MacOS/dropins/com.diffplug.goomph.branding/...

(There is no 'dropins' folder in MacOS at all).

When splash image is custom branded the following appears when running the 'ideSetupWorkspace' task:

> Task :ideSetupP2
!SESSION 2018-07-30 16:07:07.310 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_172
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_CA
Framework arguments:  -application org.eclipse.equinox.p2.director -repository http://download.eclipse.org/eclipse/updates/4.7/,http://www.nodeclipse.org/updates/gradle-ide-pack/,http://download.eclipse.org/tm/terminal/marketplace/,http://download.eclipse.org/buildship/updates/e47/releases/2.x/,http://download.eclipse.org/tools/cdt/releases/9.5 -artifactRepository file:///Users/.../.goomph/shared-bundles -installIU org.eclipse.platform.ide,org.eclipse.jdt.feature.group,org.eclipse.ui.views.log,org.nodeclipse.enide.editors.gradle.feature.feature.group,org.eclipse.tm.terminal.feature.feature.group,org.eclipse.buildship.feature.group/2.2.1.v20180125-1441,org.eclipse.cdt.feature.group/9.5.2.201807181141 -profile OomphIde -destination file://.../oomph-ide.app -bundlepool /Users/.../.goomph/shared-bundles -p2.os macosx -p2.ws cocoa -p2.arch x86_64
Command-line arguments:  -application org.eclipse.equinox.p2.director -clean -consolelog -repository http://download.eclipse.org/eclipse/updates/4.7/,http://www.nodeclipse.org/updates/gradle-ide-pack/,http://download.eclipse.org/tm/terminal/marketplace/,http://download.eclipse.org/buildship/updates/e47/releases/2.x/,http://download.eclipse.org/tools/cdt/releases/9.5 -artifactRepository file:///Users/.../.goomph/shared-bundles -installIU org.eclipse.platform.ide,org.eclipse.jdt.feature.group,org.eclipse.ui.views.log,org.nodeclipse.enide.editors.gradle.feature.feature.group,org.eclipse.tm.terminal.feature.feature.group,org.eclipse.buildship.feature.group/2.2.1.v20180125-1441,org.eclipse.cdt.feature.group/9.5.2.201807181141 -profile OomphIde -destination file:///.../oomph-ide.app -bundlepool /Users/.../.goomph/shared-bundles -p2.os macosx -p2.ws cocoa -p2.arch x86_64

!ENTRY org.eclipse.core.net 1 0 2018-07-30 16:07:07.319
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
Installing org.eclipse.platform.ide 4.7.3.M20180330-0640.
Installing org.eclipse.jdt.feature.group 3.13.4.v20180330-0919.
Installing org.eclipse.ui.views.log 1.2.100.v20170515-1458.
Installing org.nodeclipse.enide.editors.gradle.feature.feature.group 1.0.2.201509250223.
Installing org.eclipse.tm.terminal.feature.feature.group 4.1.0.201603090932.
Installing org.eclipse.buildship.feature.group 2.2.1.v20180125-1441.
Installing org.eclipse.cdt.feature.group 9.5.2.201807181141.
Operation completed in 33165 ms.

> Task :ideSetupWorkspace
java.lang.RuntimeException: Unable to aquire PluginConverter service during generation for: /.../oomph-ide.app/Contents/MacOS/dropins/com.diffplug.goomph.branding
        at org.eclipse.equinox.internal.frameworkadmin.utils.Utils.convertPluginManifest(Utils.java:154)
        at org.eclipse.equinox.internal.frameworkadmin.utils.Utils.basicLoadManifest(Utils.java:82)
        at org.eclipse.equinox.internal.frameworkadmin.utils.Utils.getOSGiManifest(Utils.java:217)
        at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxBundlesState.installBundle(EquinoxBundlesState.java:556)
        at org.eclipse.equinox.internal.simpleconfigurator.manipulator.SimpleConfiguratorManipulatorImpl.updateBundles(SimpleConfiguratorManipulatorImpl.java:572)
        at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.load(EquinoxManipulatorImpl.java:348)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.loadDelegate(LazyManipulator.java:55)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.getConfigData(LazyManipulator.java:108)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.installBundle(InstallBundleAction.java:75)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction.execute(InstallBundleAction.java:32)
        at org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:39)
        at org.eclipse.equinox.internal.p2.engine.Phase.mainPerform(Phase.java:184)
        at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:96)
        at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:47)
        at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:77)
        at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:45)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.executePlan(ProfileSynchronizer.java:805)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.performAddRemove(ProfileSynchronizer.java:202)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.synchronize(ProfileSynchronizer.java:141)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.synchronize(Activator.java:469)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:177)
        at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:779)
        at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:772)
        at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:729)
        at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:933)
        at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
        at org.eclipse.osgi.container.Module.doStart(Module.java:581)
        at org.eclipse.osgi.container.Module.start(Module.java:449)
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634)
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614)
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585)
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528)
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Running internal setup actions...
    import projects... done.
    save workspace... done.
Internal setup complete.

> Task :ide
aleksandarsusnjar commented 6 years ago

Confirmed workaround for Mac OS X:

ideSetupP2.doLast {
    File expectedDropinsDir = file("${buildDir}/oomph-ide.app/Contents/Eclipse/dropins")
    if (expectedDropinsDir.exists()) {
        File neededDropinsDir = null

        if ('Mac OS X'.equals(System.getProperty('os.name'))) {
            neededDropinsDir = file("${buildDir}/oomph-ide.app/Contents/MacOS/dropins")
        }

        if ((neededDropinsDir != null) && !neededDropinsDir.exists()) {
            copy {
                from expectedDropinsDir
                into neededDropinsDir
            }
        }
    }
}
nedtwigg commented 6 years ago

This should be fixed in 3.16.0-SNAPSHOT.

nedtwigg commented 6 years ago

Published in 3.16.0.