From d0b3c0ae3e4d02c95ac4dabeac69d2b63515dd0e Mon Sep 17 00:00:00 2001 From: Luc Bourlier Date: Wed, 20 Mar 2013 13:38:56 +0100 Subject: [PATCH] Stops mergebases from failing if a base is missing Adds a 'isValid' flag in P2Repository. Do not create a build anymore if next/base is missing. Do not mirror base anymore if missing. --- .../scalaide/buildtools/MergeBasesBuild.scala | 2 +- .../MergeBasesBuildsMavenProjects.scala | 19 +++++++++++-------- .../scalaide/buildtools/P2Repository.scala | 4 ++++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/scala/org/scalaide/buildtools/MergeBasesBuild.scala b/src/main/scala/org/scalaide/buildtools/MergeBasesBuild.scala index 32913bb..b3116a0 100644 --- a/src/main/scala/org/scalaide/buildtools/MergeBasesBuild.scala +++ b/src/main/scala/org/scalaide/buildtools/MergeBasesBuild.scala @@ -15,7 +15,7 @@ object MergeBasesBuild { val baseScalaIDEVersions = getScalaIDEVersions(baseRepo) val nextBaseScalaIDEVersions = getScalaIDEVersions(nextBaseRepo) - MergeBasesBuild(ecosystemConf.id, baseRepo, nextBaseRepo, !nextBaseScalaIDEVersions.forall(baseScalaIDEVersions.contains(_))) + MergeBasesBuild(ecosystemConf.id, baseRepo, nextBaseRepo, nextBaseRepo.isValid && !nextBaseScalaIDEVersions.forall(baseScalaIDEVersions.contains(_))) } private def getScalaIDEVersions(repo: P2Repository) = repo.findIU(ScalaIDEFeatureIdOsgi).map(_.version) diff --git a/src/main/scala/org/scalaide/buildtools/MergeBasesBuildsMavenProjects.scala b/src/main/scala/org/scalaide/buildtools/MergeBasesBuildsMavenProjects.scala index f4d91ee..e902417 100644 --- a/src/main/scala/org/scalaide/buildtools/MergeBasesBuildsMavenProjects.scala +++ b/src/main/scala/org/scalaide/buildtools/MergeBasesBuildsMavenProjects.scala @@ -70,14 +70,11 @@ object MergeBasesBuildsMavenProjects { - - { build.baseRepo.location } - p2 - - - { build.nextBaseRepo.location } - p2 - + { + if (build.baseRepo.isValid) + repoReference(build.baseRepo) + } + { repoReference(build.nextBaseRepo) } ${{project.build.directory}}/base @@ -87,4 +84,10 @@ object MergeBasesBuildsMavenProjects { } + private def repoReference(repo: P2Repository) = + + { repo.location } + p2 + + } \ No newline at end of file diff --git a/src/main/scala/org/scalaide/buildtools/P2Repository.scala b/src/main/scala/org/scalaide/buildtools/P2Repository.scala index d509864..1760255 100644 --- a/src/main/scala/org/scalaide/buildtools/P2Repository.scala +++ b/src/main/scala/org/scalaide/buildtools/P2Repository.scala @@ -81,6 +81,7 @@ object InstallableUnit { trait P2Repository { def uis: Map[String, TreeSet[InstallableUnit]] def findIU(unitId: String): TreeSet[InstallableUnit] + def isValid: Boolean def location: String } @@ -89,6 +90,8 @@ case class ValidP2Repository (uis: Map[String, TreeSet[InstallableUnit]], locati override def findIU(unitId: String): TreeSet[InstallableUnit] = uis get (unitId) getOrElse (TreeSet.empty[InstallableUnit]) + override def isValid = true + override def toString = "P2Repository(%s)".format(location) override def equals(o: Any): Boolean = { @@ -105,6 +108,7 @@ case class ValidP2Repository (uis: Map[String, TreeSet[InstallableUnit]], locati case class ErrorP2Repository (errorMessage: String, location: String) extends P2Repository { override def findIU(unitId: String): TreeSet[InstallableUnit] = TreeSet() override def uis: Map[String, TreeSet[InstallableUnit]] = Map() + override def isValid = false } object P2Repository {