@@ -19,10 +19,13 @@ import org.apache.http.client.entity.UrlEncodedFormEntity
1919import org.apache.http.client.methods.HttpGet
2020import org.apache.http.client.methods.HttpPost
2121import org.apache.http.client.methods.HttpRequestBase
22+ import org.apache.http.conn.ssl.NoopHostnameVerifier
23+ import org.apache.http.conn.ssl.SSLConnectionSocketFactory
2224import org.apache.http.entity.mime.MultipartEntityBuilder
2325import org.apache.http.impl.client.BasicCredentialsProvider
2426import org.apache.http.impl.client.HttpClientBuilder
2527import org.apache.http.message.BasicNameValuePair
28+ import org.apache.http.ssl.SSLContextBuilder
2629import org.gradle.api.Project
2730import org.jsoup.Jsoup
2831import org.jsoup.parser.Parser
@@ -112,7 +115,7 @@ class InstanceSync(val project: Project, val instance: Instance) {
112115 }
113116
114117 fun createHttpClient (): HttpClient {
115- return HttpClientBuilder .create()
118+ val httpClientBuilder = HttpClientBuilder .create()
116119 .addInterceptorFirst(PreemptiveAuthInterceptor ())
117120 .setDefaultRequestConfig(RequestConfig .custom()
118121 .setConnectTimeout(config.deployConnectionTimeout)
@@ -122,7 +125,18 @@ class InstanceSync(val project: Project, val instance: Instance) {
122125 .setDefaultCredentialsProvider(BasicCredentialsProvider ().apply {
123126 setCredentials(AuthScope .ANY , UsernamePasswordCredentials (instance.user, instance.password))
124127 })
128+ if (config.deployConnectionUntrustedSsl) {
129+ httpClientBuilder.setSSLSocketFactory(createSslConnectionSocketFactory())
130+ }
131+
132+ return httpClientBuilder.build()
133+ }
134+
135+ private fun createSslConnectionSocketFactory (): SSLConnectionSocketFactory {
136+ val sslContext = SSLContextBuilder ()
137+ .loadTrustMaterial(null , { _, _ -> true })
125138 .build()
139+ return SSLConnectionSocketFactory (sslContext, NoopHostnameVerifier .INSTANCE )
126140 }
127141
128142 private fun createEntityUrlencoded (params : Map <String , Any >): HttpEntity {
@@ -316,26 +330,18 @@ class InstanceSync(val project: Project, val instance: Instance) {
316330 }
317331 }
318332
319- fun satisfyPackage (file : File , action : () -> Unit ): Boolean {
320- val pkg = determineRemotePackage(file, config.satisfyRefreshing)
333+ fun isSnapshot (file : File ): Boolean {
334+ return Patterns .wildcard(file, config.deploySnapshots)
335+ }
321336
322- return if (pkg == null ) {
323- action()
324- true
337+ fun deployPackage ( file : File = determineLocalPackage(), distributed : Boolean ) {
338+ if (distributed) {
339+ distributePackage(file)
325340 } else {
326- if (! pkg.installed || isSnapshot(file)) {
327- action()
328- true
329- } else {
330- false
331- }
341+ deployPackage(file)
332342 }
333343 }
334344
335- fun isSnapshot (file : File ): Boolean {
336- return Patterns .wildcard(file, config.deploySnapshots)
337- }
338-
339345 fun deployPackage (file : File = determineLocalPackage()): InstallResponse {
340346 return installPackage(uploadPackage(file).path)
341347 }
@@ -450,13 +456,13 @@ class InstanceSync(val project: Project, val instance: Instance) {
450456 }
451457 }
452458
453- fun reload () {
459+ fun reload (delay : Long = config.reloadDelay ) {
454460 try {
455461 logger.info(" Triggering instance(s) shutdown" )
456462 postUrlencoded(vmStatUrl, mapOf (" shutdown_type" to " Restart" ))
457463
458464 logger.info(" Awaiting instance(s) shutdown" )
459- Behaviors .waitFor(config.reloadDelay )
465+ Behaviors .waitFor(delay )
460466 } catch (e: DeployException ) {
461467 throw InstanceException (" Cannot reload instance $instance " , e)
462468 }
0 commit comments