Class GoomphCacheLocations


  • public class GoomphCacheLocations
    extends Object
    There are a few things which goomph needs to cache on the developer's machine. They are described exhaustively by this class. - p2bootstrap() - pdeBootstrap() - pdeBootstrapUrl() - bundlePool() - workspaces() All these values can be overridden either by setting the value of the `public static override_whatever` variable. If your gradle build is split across multiple files using `apply from:`, then these static variables will get wiped out. You can fix this by setting a project property as such: `project.ext.goomph_override_whatever=something`
    • Field Detail

      • override_eclipseReleaseMetadata

        public static File override_eclipseReleaseMetadata
      • override_workspaces

        public static File override_workspaces
      • override_p2bootstrapUrl

        public static String override_p2bootstrapUrl
      • override_p2bootstrap

        public static File override_p2bootstrap
      • override_pdeBootstrapUrl

        public static String override_pdeBootstrapUrl
      • override_pdeBootstrap

        public static File override_pdeBootstrap
      • override_bundlePool

        public static File override_bundlePool
    • Constructor Detail

      • GoomphCacheLocations

        public GoomphCacheLocations()
    • Method Detail

      • initFromProject

        public static void initFromProject​(Project project)
        Initializes overrides based on project properties named "goomph_override_whatever"
      • eclipseReleaseMetadata

        public static File eclipseReleaseMetadata()
        MavenCentralMapping needs to look at p2 metadata to know what the version numbers are for the specific bundles of a given eclipse release are. Rather than downloading this metadata over and over, we only download it once, and cache the results here.
      • workspaces

        public static File workspaces()
        When Goomph creates an IDE for you, it must also create an eclipse workspace. Unfortunately, that workspace cannot be a subdirectory of the project directory (an eclipse limitation). This is a problem for single-project builds. As a workaround, we put all eclipse workspaces in a central location, which is tied to their project directory. Whenever a new workspace is created, we do a quick check to make there aren't any stale workspaces. If the workspace has gone stale, we delete it.
      • p2bootstrapUrl

        public static Optional<String> p2bootstrapUrl()
        Location where the p2-bootstrap application should be downloaded from. Goomph's p2 tasks rely on the eclipse [p2 director application](https://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_director.html&cp=2_0_20_2). It is distributed within the Eclipse SDK. But rather than requiring the entire SDK, we have packaged just the jars required for p2 director into a ~7MB download available on bintray as [goomph-p2-bootstrap](https://bintray.com/diffplug/opensource/goomph-p2-bootstrap/view). This only gets downloaded if you use P2Model. Defaults to `https://dl.bintray.com/diffplug/opensource/com/diffplug/gradle/goomph-p2-bootstrap/`. If you override, it still needs to follow the correct versioning scheme. e.g. if you want to relocate to `https://intranet/goomph-p2-boostrap`, then the artifact will need to be available at `https://intranet/goomph-p2-boostrap/4.5.2/goomph-p2-bootstrap.zip` As new versions of p2bootstrap come out, you will have to update your internal URL cache, but these releases are infrequent.
      • p2bootstrap

        public static File p2bootstrap()
        Location where the p2-bootstrap application is cached: `~/.goomph/p2-bootstrap`. Goomph's p2 tasks rely on the eclipse [p2 director application](https://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_director.html&cp=2_0_20_2). It is distributed within the Eclipse SDK. But rather than requiring the entire SDK, we have packaged just the jars required for p2 director into a ~7MB download available on bintray as [goomph-p2-bootstrap](https://bintray.com/diffplug/opensource/goomph-p2-bootstrap/view). This only gets downloaded if you use P2Model.
      • pdeBootstrapUrl

        public static Optional<String> pdeBootstrapUrl()
        Location where the pde-bootstrap application should be downloaded from. Goomph's pde tasks rely on the eclipse [p2 director application](https://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fp2_director.html&cp=2_0_20_2). It is distributed within the Eclipse SDK. The Package is downloaded and installed during configuration from official eclipse repository. Defaults to official update site of the selected Eclipse Release. If you override, it still needs to follow the correct versioning scheme. e.g. if you want to relocate to `https://intranet/goomph-pde-boostrap`, then the artifact will need to be available at `https://intranet/goomph-pde-boostrap/4.5.2/goomph-pde-bootstrap.zip` As new versions of pdeBootstrap come out, you will have to update your internal URL cache, but these releases are infrequent.
      • pdeBootstrap

        public static File pdeBootstrap()
        Location where eclipse instances with PDE build are cached: `~/.goomph/pde-bootstrap`.
      • bundlePool

        public static File bundlePool()
        Bundle pool used for caching jars and assembling disjoint eclipse installs: `~/.p2/pool` If you are using [Oomph](https://projects.eclipse.org/projects/tools.oomph) to create lots of eclipse installations, then this will go a lot faster if you cache all of their jars in a central location. Oomph does this by default in the given location.