@@ -15,16 +15,26 @@ pluginManagement {
15
15
propertyName.replace(" ." , " _" ).uppercase()
16
16
)?.ifEmpty { null }
17
17
18
- fun getSpaceUsername (): String? {
19
- val username = " kotlinx.rpc.team.space.username"
20
- return settings.providers.gradleProperty(username).orNull
21
- ? : getEnv(username)
22
- ? : logAbsentProperty(username)
18
+ fun getLocalProperties (): java.util.Properties {
19
+ return java.util.Properties ().apply {
20
+ val propertiesDir = File (
21
+ rootDir.path
22
+ .removeSuffix(" /gradle-conventions" )
23
+ .removeSuffix(" /gradle-conventions-settings" )
24
+ .removeSuffix(" /compiler-plugin" )
25
+ .removeSuffix(" /gradle-plugin" )
26
+ )
27
+ val localFile = File (propertiesDir, " local.properties" )
28
+ if (localFile.exists()) {
29
+ localFile.inputStream().use { load(it) }
30
+ }
31
+ }
23
32
}
24
33
25
34
fun getSpacePassword (): String? {
26
35
val password = " kotlinx.rpc.team.space.password"
27
- return settings.providers.gradleProperty(password).orNull
36
+ return getLocalProperties()[password] as String?
37
+ ? : settings.providers.gradleProperty(password).orNull
28
38
? : getEnv(password)
29
39
? : logAbsentProperty(password)
30
40
}
@@ -39,13 +49,16 @@ pluginManagement {
39
49
name = repoName.split(" -" ).joinToString(" " ) { it.replaceFirstChar { c -> c.titlecase() } }
40
50
url = uri(" https://packages.jetbrains.team/maven/p/krpc/$repoName " )
41
51
42
- val spaceUsername = getSpaceUsername()
43
52
val spacePassword = getSpacePassword()
44
53
45
- if (spaceUsername != null && spacePassword != null ) {
46
- credentials {
47
- username = spaceUsername
48
- password = spacePassword
54
+ if (spacePassword != null ) {
55
+ credentials(HttpHeaderCredentials ::class .java) {
56
+ name = " Authorization"
57
+ value = " Bearer $spacePassword "
58
+ }
59
+
60
+ authentication {
61
+ create<HttpHeaderAuthentication >(" http_auth_header" )
49
62
}
50
63
} else {
51
64
logger.info(" Skipping adding credentials for Space repository '$repoName '" )
@@ -57,8 +70,16 @@ pluginManagement {
57
70
fun RepositoryHandler.buildDepsEap () = jbTeamPackages(repoName = " build-deps-eap" )
58
71
59
72
repositories {
60
- buildDeps()
61
- buildDepsEap()
73
+ val useProxyProperty = getLocalProperties()[" kotlinx.rpc.useProxyRepositories" ] as String?
74
+ val useProxy = useProxyProperty == null || useProxyProperty == " true"
75
+
76
+ if (useProxy) {
77
+ buildDeps()
78
+ buildDepsEap()
79
+ } else {
80
+ mavenCentral()
81
+ gradlePluginPortal()
82
+ }
62
83
}
63
84
}
64
85
@@ -73,16 +94,31 @@ gradle.rootProject {
73
94
propertyName.replace(" ." , " _" ).uppercase()
74
95
)?.ifEmpty { null }
75
96
76
- fun getSpaceUsername (): String? {
77
- val username = " kotlinx.rpc.team.space.username"
78
- return settings.providers.gradleProperty(username).orNull
79
- ? : getEnv(username)
80
- ? : logAbsentProperty(username)
97
+ fun getLocalProperties (): java.util.Properties {
98
+ return java.util.Properties ().apply {
99
+ val propertiesDir = File (
100
+ rootDir.path
101
+ .removeSuffix(" /gradle-conventions" )
102
+ .removeSuffix(" /gradle-conventions-settings" )
103
+ .removeSuffix(" /compiler-plugin" )
104
+ .removeSuffix(" /gradle-plugin" )
105
+ )
106
+ val localFile = File (propertiesDir, " local.properties" )
107
+ if (localFile.exists()) {
108
+ localFile.inputStream().use { load(it) }
109
+ }
110
+ }
111
+ }
112
+
113
+ fun java.util.Properties.isUsingProxyRepositories (): Boolean {
114
+ val useProxyProperty = this [" kotlinx.rpc.useProxyRepositories" ] as String?
115
+ return useProxyProperty == null || useProxyProperty == " true"
81
116
}
82
117
83
118
fun getSpacePassword (): String? {
84
119
val password = " kotlinx.rpc.team.space.password"
85
- return settings.providers.gradleProperty(password).orNull
120
+ return getLocalProperties()[password] as String?
121
+ ? : settings.providers.gradleProperty(password).orNull
86
122
? : getEnv(password)
87
123
? : logAbsentProperty(password)
88
124
}
@@ -95,16 +131,18 @@ gradle.rootProject {
95
131
fun RepositoryHandler.jbTeamPackages (repoName : String ) {
96
132
maven {
97
133
name = repoName.split(" -" ).joinToString(" " ) { it.replaceFirstChar { c -> c.titlecase() } }
98
-
99
134
url = uri(" https://packages.jetbrains.team/maven/p/krpc/$repoName " )
100
135
101
- val spaceUsername = getSpaceUsername()
102
136
val spacePassword = getSpacePassword()
103
137
104
- if (spaceUsername != null && spacePassword != null ) {
105
- credentials {
106
- username = spaceUsername
107
- password = spacePassword
138
+ if (spacePassword != null ) {
139
+ credentials(HttpHeaderCredentials ::class .java) {
140
+ name = " Authorization"
141
+ value = " Bearer $spacePassword "
142
+ }
143
+
144
+ authentication {
145
+ create<HttpHeaderAuthentication >(" http_auth_header" )
108
146
}
109
147
} else {
110
148
logger.info(" Skipping adding credentials for Space repository '$repoName '" )
@@ -116,15 +154,41 @@ gradle.rootProject {
116
154
fun RepositoryHandler.buildDepsEap () = jbTeamPackages(repoName = " build-deps-eap" )
117
155
118
156
allprojects {
157
+ val localProps = getLocalProperties()
158
+
159
+ this .extra[" spacePassword" ] = getSpacePassword()
160
+ this .extra[" localProperties" ] = localProps
161
+ this .extra[" useProxyRepositories" ] = localProps.isUsingProxyRepositories()
162
+
163
+ val useProxy = localProps.isUsingProxyRepositories()
164
+
119
165
buildscript {
120
166
repositories {
121
- buildDeps()
122
- buildDepsEap()
167
+ if (useProxy) {
168
+ buildDeps()
169
+ buildDepsEap()
170
+ } else {
171
+ mavenCentral()
172
+ gradlePluginPortal()
173
+ }
123
174
}
124
175
}
125
176
repositories {
126
- buildDeps()
127
- buildDepsEap()
177
+ if (useProxy) {
178
+ buildDeps()
179
+ buildDepsEap()
180
+ } else {
181
+ mavenCentral()
182
+ gradlePluginPortal()
183
+
184
+ maven(" https://www.jetbrains.com/intellij-repository/releases" )
185
+
186
+ maven(" https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies" )
187
+ maven(" https://maven.pkg.jetbrains.space/kotlin/p/kotlin/bootstrap" )
188
+ maven(" https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" )
189
+
190
+ maven(" https://maven.pkg.jetbrains.space/public/p/ktor/eap" )
191
+ }
128
192
}
129
193
}
130
194
}
0 commit comments