mirror of https://github.com/sbt/sbt.git
Merge pull request #312 from eed3si9n/wip/http
Deprecate HTTP resolvers
This commit is contained in:
commit
f58fa46c8c
|
|
@ -1,4 +1,4 @@
|
|||
version = 2.0.0-RC6
|
||||
version = 2.0.0
|
||||
maxColumn = 100
|
||||
project.git = true
|
||||
project.excludeFilters = [ /sbt-test/, /input_sources/, /contraband-scala/ ]
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ before_install:
|
|||
- source "$HOME/.sdkman/bin/sdkman-init.sh"
|
||||
|
||||
install:
|
||||
- sdk install java $(sdk list java | grep -o "$ADOPTOPENJDK\.[0-9\.]*hs-adpt" | tail -1)
|
||||
- sdk install java $(sdk list java | grep -o "$ADOPTOPENJDK\.[0-9\.]*hs-adpt" | head -1)
|
||||
- bin/fixpreloaded.sh
|
||||
- unset JAVA_HOME
|
||||
- java -Xmx32m -version
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ package sbt.librarymanagement
|
|||
final class URLRepository private (
|
||||
name: String,
|
||||
patterns: sbt.librarymanagement.Patterns) extends sbt.librarymanagement.PatternsBasedRepository(name, patterns) with Serializable {
|
||||
|
||||
Resolver.validatePatterns(patterns)
|
||||
|
||||
|
||||
override def equals(o: Any): Boolean = o match {
|
||||
|
|
|
|||
|
|
@ -641,7 +641,10 @@
|
|||
"name": "URLRepository",
|
||||
"namespace": "sbt.librarymanagement",
|
||||
"target": "Scala",
|
||||
"type": "record"
|
||||
"type": "record",
|
||||
"extra": [
|
||||
"Resolver.validatePatterns(patterns)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SshBasedRepository",
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ object DependencyBuilders {
|
|||
final class RepositoryName private[sbt] (name: String) {
|
||||
def at(location: String) = {
|
||||
nonEmpty(location, "Repository location")
|
||||
Resolver.validateUrlString(location)
|
||||
MavenRepository(name, location)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,10 @@ private[librarymanagement] abstract class ModuleIDExtra {
|
|||
* This value is only consulted if the module is not found in a repository.
|
||||
* It is not included in published metadata.
|
||||
*/
|
||||
def from(url: String) = artifacts(Artifact(name, new URL(url)))
|
||||
def from(url: String) = {
|
||||
Resolver.validateUrlString(url)
|
||||
artifacts(Artifact(name, new URL(url)))
|
||||
}
|
||||
|
||||
/** Adds a dependency on the artifact for this module with classifier `c`. */
|
||||
def classifier(c: String) = artifacts(Artifact(name, c))
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import java.io.{ IOException, File }
|
|||
import java.net.URL
|
||||
import scala.xml.XML
|
||||
import org.xml.sax.SAXParseException
|
||||
import sbt.util.{ Level, LogExchange }
|
||||
|
||||
final class RawRepository(val resolver: AnyRef, name: String) extends Resolver(name) {
|
||||
override def toString = "Raw(" + resolver.toString + ")"
|
||||
|
|
@ -403,4 +404,28 @@ private[librarymanagement] abstract class ResolverFunctions {
|
|||
val pList = Vector(localBasePattern)
|
||||
Patterns().withIvyPatterns(pList).withArtifactPatterns(pList).withIsMavenCompatible(false)
|
||||
}
|
||||
|
||||
lazy val log = {
|
||||
val log0 = LogExchange.logger("sbt.librarymanagement.ResolverExtra")
|
||||
LogExchange.bindLoggerAppenders(
|
||||
"sbt.librarymanagement.ResolverExtra",
|
||||
List(LogExchange.buildAsyncStdout -> Level.Info)
|
||||
)
|
||||
log0
|
||||
}
|
||||
private[sbt] def warnHttp(value: String): Unit = {
|
||||
log.warn(s"insecure HTTP request is deprecated '$value'; switch to HTTPS")
|
||||
}
|
||||
private[sbt] def validatePatterns(patterns: Patterns): Unit = {
|
||||
val ivy = patterns.ivyPatterns.headOption map (_.startsWith("http:"))
|
||||
val art = patterns.artifactPatterns.headOption map (_.startsWith("http:"))
|
||||
(ivy orElse art) foreach { _ =>
|
||||
warnHttp(patterns.toString)
|
||||
}
|
||||
}
|
||||
private[sbt] def validateUrlString(url: String): Unit = {
|
||||
if (url.startsWith("http:")) {
|
||||
warnHttp(url)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
package sbttest
|
||||
|
||||
import java.net.URL
|
||||
import org.scalatest._
|
||||
import sbt.librarymanagement._
|
||||
import sbt.librarymanagement.syntax._
|
||||
|
||||
class ResolverSpec extends FunSuite with DiagrammedAssertions {
|
||||
test("Resolver.url") {
|
||||
Resolver.url("Test Repo", new URL("http://example.com/"))(Resolver.ivyStylePatterns)
|
||||
}
|
||||
|
||||
test("at") {
|
||||
"something" at "http://example.com"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue