diff --git a/build.sbt b/build.sbt index 913a5a9..8cdd043 100644 --- a/build.sbt +++ b/build.sbt @@ -5,23 +5,18 @@ sbtPlugin := true scalaVersion := "2.12.4" releaseEarlyWith := SonatypePublisher -val aetherProviderVersion = "3.3.9" +val mavenVersion = "3.5.2" val mvnWagonVersion = "3.0.0" -val aetherVersion = "1.0.2.v20150114" +val aetherVersion = "1.1.0" libraryDependencies ++= Seq( - "org.apache.maven" % "maven-embedder" % aetherProviderVersion, - "org.apache.maven" % "maven-aether-provider" % aetherProviderVersion, - "org.eclipse.aether" % "aether-transport-wagon" % aetherVersion, - "org.apache.maven.wagon" % "wagon-http" % mvnWagonVersion, - "org.apache.maven.wagon" % "wagon-http-lightweight" % mvnWagonVersion, - "org.apache.maven.wagon" % "wagon-file" % mvnWagonVersion -) + "org.apache.maven" % "maven-embedder" % mavenVersion, + "org.apache.maven" % "maven-resolver-provider" % mavenVersion, -dependencyOverrides ++= Seq( - "org.apache.maven" % "maven-embedder" % aetherProviderVersion, - "org.apache.maven" % "maven-aether-provider" % aetherProviderVersion, - "org.eclipse.aether" % "aether-transport-wagon" % aetherVersion + "org.apache.maven.resolver" % "maven-resolver" % aetherVersion, + "org.apache.maven.resolver" % "maven-resolver-transport-wagon" % aetherVersion, + "org.apache.maven.resolver" % "maven-resolver-transport-http" % aetherVersion, + "org.apache.maven.resolver" % "maven-resolver-transport-file" % aetherVersion, ) update := update.dependsOn(evicted).value diff --git a/src/main/scala/ch/epfl/scala/sbt/pom/HackedWagonProvider.scala b/src/main/scala/ch/epfl/scala/sbt/pom/HackedWagonProvider.scala deleted file mode 100644 index cfd8d53..0000000 --- a/src/main/scala/ch/epfl/scala/sbt/pom/HackedWagonProvider.scala +++ /dev/null @@ -1,59 +0,0 @@ -package ch.epfl.scala.sbt.pom - -import java.lang.reflect.Field -import java.security.AccessController -import java.security.PrivilegedActionException -import java.security.PrivilegedExceptionAction -import org.apache.maven.wagon.Wagon -import org.apache.maven.wagon.providers.file.FileWagon -import org.apache.maven.wagon.providers.http.LightweightHttpWagonAuthenticator -import org.apache.maven.wagon.providers.http.LightweightHttpsWagon -import org.apache.maven.wagon.providers.http.LightweightHttpWagon -import org.eclipse.aether.transport.wagon.WagonProvider - - -/** We hack our own wagon provider, since plexus isn't working for us right now. */ -class HackedWagonProvider extends WagonProvider { - - override def lookup(roleHint: String): Wagon = roleHint match { - case "http" => setAuthenticator(new LightweightHttpWagon) - case "https" => setAuthenticator(new LightweightHttpsWagon) - case "file" => new FileWagon - case _ => sys.error("Wagon role hint not supported: " + roleHint); - } - - // WTF - should we do something? - override def release(wagon: Wagon): Unit = () - - // SHRINKRES-68 - // Wagon does not correctly fill Authenticator field if Plexus is not used - // we need to use reflection in order to get fix this behavior - // http://dev.eclipse.org/mhonarc/lists/aether-users/msg00113.html - private def setAuthenticator(wagon: LightweightHttpWagon ): LightweightHttpWagon = { - val authenticator = - try { - AccessController.doPrivileged(new PrivilegedExceptionAction[Field] { - def run(): Field = { - val field = classOf[LightweightHttpWagon].getDeclaredField("authenticator") - field.setAccessible(true) - field - } - }); - } catch { - case ex: PrivilegedActionException => - throw new RuntimeException("Could not manually set authenticator to accessible on " - + classOf[LightweightHttpWagon].getName, ex) - } - try authenticator.set(wagon, new LightweightHttpWagonAuthenticator) - catch { - case e: Exception => - throw new RuntimeException("Could not manually set authenticator on " - + classOf[LightweightHttpWagon].getName, e) - } - - // Borrowed from code readings online -> - // Needed to ensure that we do not cache BASIC Auth values - wagon.setPreemptiveAuthentication(true) - wagon - } -} \ No newline at end of file diff --git a/src/main/scala/ch/epfl/scala/sbt/pom/package.scala b/src/main/scala/ch/epfl/scala/sbt/pom/package.scala index 058ec7a..d90d55b 100644 --- a/src/main/scala/ch/epfl/scala/sbt/pom/package.scala +++ b/src/main/scala/ch/epfl/scala/sbt/pom/package.scala @@ -32,7 +32,6 @@ package object pom { classOf[SnapshotMetadataGeneratorFactory]) locator.addService(classOf[MetadataGeneratorFactory], classOf[VersionsMetadataGeneratorFactory]) - locator.setServices(classOf[WagonProvider], new HackedWagonProvider) locator.getService(classOf[RepositorySystem]) }