Skip to content

Commit 52d4dc0

Browse files
committed
drop Java 7 backward compatibility support, become Java 8 only
1 parent 868fb7c commit 52d4dc0

File tree

17 files changed

+70
-194
lines changed

17 files changed

+70
-194
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
dist: trusty
12
language: java
23
script: mvn clean package
34
jdk:
45
- oraclejdk8
5-
- oraclejdk7
6-
- openjdk7
6+
- openjdk8
77
os:
88
- linux

changelog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[SNAPSHOT]
2+
* drop Java 7 backward compatibility support, become Java 8 only
3+
14
[4.2.0]
25
* DELETE in JdkClient permits, but not requires payload (thanks to https://github.com/miguelD73)
36
* add new API - Frappe (https://github.com/frappe/frappe) (thanks to https://github.com/revant)

checkstyle.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676
<property name="limitedTokens" value="EXPR"/>
7777
<property name="minimumNumber" value="1"/>
7878
</module>
79-
<module name="Indentation"/>
8079
<module name="OuterTypeFilename"/>
8180
<module name="UpperEll"/>
8281
<module name="ModifierOrder"/>

pom.xml

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@
151151
<version>3.6.1</version>
152152
<configuration>
153153
<encoding>UTF-8</encoding>
154-
<source>1.7</source>
155-
<target>1.7</target>
154+
<source>1.8</source>
155+
<target>1.8</target>
156156
<showDeprecation>true</showDeprecation>
157157
</configuration>
158158
</plugin>
@@ -229,30 +229,6 @@
229229
</build>
230230

231231
<profiles>
232-
<profile>
233-
<id>jdk-1.7</id>
234-
<activation>
235-
<jdk>1.7</jdk>
236-
</activation>
237-
<build>
238-
<pluginManagement>
239-
<plugins>
240-
<plugin>
241-
<groupId>org.apache.maven.plugins</groupId>
242-
<artifactId>maven-checkstyle-plugin</artifactId>
243-
<version>2.17</version>
244-
<dependencies>
245-
<dependency>
246-
<groupId>com.puppycrawl.tools</groupId>
247-
<artifactId>checkstyle</artifactId>
248-
<version>6.19</version>
249-
</dependency>
250-
</dependencies>
251-
</plugin>
252-
</plugins>
253-
</pluginManagement>
254-
</build>
255-
</profile>
256232
<profile>
257233
<id>release-sign-artifacts</id>
258234
<activation>

scribejava-apis/src/main/java/com/github/scribejava/apis/service/MailruOAuthServiceImpl.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.github.scribejava.core.model.OAuthConfig;
1212
import com.github.scribejava.core.model.OAuthRequest;
1313
import com.github.scribejava.core.oauth.OAuth20Service;
14+
import java.util.stream.Collectors;
1415

1516
public class MailruOAuthServiceImpl extends OAuth20Service {
1617

@@ -35,13 +36,10 @@ public void signRequest(OAuth2AccessToken accessToken, OAuthRequest request) {
3536
final String[] parts = param.split("=");
3637
map.put(parts[0], (parts.length == 1) ? "" : parts[1]);
3738
}
38-
final StringBuilder urlNew = new StringBuilder();
39-
for (Map.Entry<String, String> entry : map.entrySet()) {
40-
urlNew.append(entry.getKey());
41-
urlNew.append('=');
42-
urlNew.append(entry.getValue());
43-
}
44-
final String sigSource = URLDecoder.decode(urlNew.toString(), CharEncoding.UTF_8) + clientSecret;
39+
final String urlNew = map.entrySet().stream()
40+
.map(entry -> entry.getKey() + '=' + entry.getValue())
41+
.collect(Collectors.joining());
42+
final String sigSource = URLDecoder.decode(urlNew, CharEncoding.UTF_8) + clientSecret;
4543
request.addQuerystringParameter("sig", md5Hex(sigSource));
4644
}
4745
} catch (UnsupportedEncodingException e) {

scribejava-apis/src/main/java/com/github/scribejava/apis/service/OdnoklassnikiServiceImpl.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.net.URLDecoder;
1515
import java.util.Collections;
1616
import java.util.List;
17+
import java.util.stream.Collectors;
1718

1819
import static org.apache.commons.codec.digest.DigestUtils.md5Hex;
1920

@@ -34,12 +35,12 @@ public void signRequest(OAuth2AccessToken accessToken, OAuthRequest request) {
3435
final List<Parameter> allParams = queryParams.getParams();
3536

3637
Collections.sort(allParams);
37-
final StringBuilder builder = new StringBuilder();
38-
for (Parameter param : allParams) {
39-
builder.append(param.getKey()).append('=').append(param.getValue());
40-
}
4138

42-
final String sigSource = URLDecoder.decode(builder.toString(), CharEncoding.UTF_8) + tokenDigest;
39+
final String stringParams = allParams.stream()
40+
.map(param -> param.getKey() + '=' + param.getValue())
41+
.collect(Collectors.joining());
42+
43+
final String sigSource = URLDecoder.decode(stringParams, CharEncoding.UTF_8) + tokenDigest;
4344
request.addQuerystringParameter("sig", md5Hex(sigSource).toLowerCase());
4445

4546
super.signRequest(accessToken, request);

scribejava-apis/src/test/java/com/github/scribejava/apis/examples/RenrenExample.java

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import java.nio.charset.Charset;
44
import java.security.MessageDigest;
55
import java.security.NoSuchAlgorithmException;
6-
import java.util.ArrayList;
7-
import java.util.Collections;
86
import java.util.HashMap;
9-
import java.util.List;
107
import java.util.Map;
118
import java.util.Scanner;
129
import com.github.scribejava.core.builder.ServiceBuilder;
@@ -19,6 +16,8 @@
1916
import com.github.scribejava.core.oauth.OAuth20Service;
2017
import java.io.IOException;
2118
import java.util.concurrent.ExecutionException;
19+
import java.util.stream.Collectors;
20+
import java.util.stream.Stream;
2221

2322
public final class RenrenExample {
2423

@@ -69,20 +68,19 @@ public static void main(String... args) throws IOException, InterruptedException
6968
parameters.put("format", "json");
7069
parameters.put("v", "1.0");
7170

72-
final List<String> sigString = new ArrayList<>(parameters.size() + 1);
73-
for (Map.Entry<String, String> entry : parameters.entrySet()) {
74-
request.addQuerystringParameter(entry.getKey(), entry.getValue());
75-
sigString.add(String.format("%s=%s", entry.getKey(), entry.getValue()));
76-
}
77-
sigString.add(String.format("%s=%s", OAuthConstants.ACCESS_TOKEN, accessToken.getAccessToken()));
78-
Collections.sort(sigString);
79-
final StringBuilder b = new StringBuilder();
80-
for (String param : sigString) {
81-
b.append(param);
82-
}
83-
b.append(apiSecret);
84-
System.out.println("Sig string: " + b.toString());
85-
request.addQuerystringParameter("sig", md5(b.toString()));
71+
parameters.forEach((key, value) -> request.addQuerystringParameter(key, value));
72+
73+
final String sig = Stream.concat(
74+
Stream.concat(
75+
parameters.entrySet().stream()
76+
.map(entry -> String.format("%s=%s", entry.getKey(), entry.getValue())),
77+
Stream.of(String.format("%s=%s", OAuthConstants.ACCESS_TOKEN, accessToken.getAccessToken())))
78+
.sorted(),
79+
Stream.of(apiSecret))
80+
.collect(Collectors.joining());
81+
82+
System.out.println("Sig string: " + sig);
83+
request.addQuerystringParameter("sig", md5(sig));
8684
service.signRequest(accessToken, request);
8785
final Response response = service.execute(request);
8886
System.out.println("Got it! Lets see what we found...");

scribejava-core/src/main/java/com/github/scribejava/core/extractors/HeaderExtractorImpl.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import com.github.scribejava.core.model.OAuthRequest;
77
import com.github.scribejava.core.utils.OAuthEncoder;
88
import com.github.scribejava.core.utils.Preconditions;
9+
import java.util.stream.Collectors;
910

1011
/**
1112
* Default implementation of {@link HeaderExtractor}. Conforms to OAuth 1.0a
1213
*/
1314
public class HeaderExtractorImpl implements HeaderExtractor {
1415

15-
public static final int ESTIMATED_PARAM_LENGTH = 20;
1616
private static final String PARAM_SEPARATOR = ", ";
1717
private static final String PREAMBLE = "OAuth ";
1818

@@ -23,21 +23,16 @@ public class HeaderExtractorImpl implements HeaderExtractor {
2323
public String extract(OAuthRequest request) {
2424
checkPreconditions(request);
2525
final Map<String, String> parameters = request.getOauthParameters();
26-
final StringBuilder header = new StringBuilder(parameters.size() * ESTIMATED_PARAM_LENGTH);
27-
header.append(PREAMBLE);
28-
for (Map.Entry<String, String> entry : parameters.entrySet()) {
29-
if (header.length() > PREAMBLE.length()) {
30-
header.append(PARAM_SEPARATOR);
31-
}
32-
header.append(String.format("%s=\"%s\"", entry.getKey(), OAuthEncoder.encode(entry.getValue())));
33-
}
3426

35-
if (request.getRealm() != null && !request.getRealm().isEmpty()) {
36-
header.append(PARAM_SEPARATOR);
37-
header.append(String.format("%s=\"%s\"", OAuthConstants.REALM, request.getRealm()));
27+
final String paramsString = parameters.entrySet().stream()
28+
.map(entry -> String.format("%s=\"%s\"", entry.getKey(), OAuthEncoder.encode(entry.getValue())))
29+
.collect(Collectors.joining(PARAM_SEPARATOR, PREAMBLE, ""));
30+
31+
if (request.getRealm() == null || request.getRealm().isEmpty()) {
32+
return paramsString;
3833
}
3934

40-
return header.toString();
35+
return paramsString + PARAM_SEPARATOR + String.format("%s=\"%s\"", OAuthConstants.REALM, request.getRealm());
4136
}
4237

4338
private void checkPreconditions(OAuthRequest request) {

scribejava-core/src/main/java/com/github/scribejava/core/httpclient/jdk/JDKHttpClient.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.net.URL;
1414
import java.net.UnknownHostException;
1515
import java.util.HashMap;
16-
import java.util.List;
1716
import java.util.Map;
1817
import java.util.concurrent.ExecutionException;
1918
import java.util.concurrent.Future;
@@ -131,21 +130,18 @@ abstract void setBody(HttpURLConnection connection, Object bodyContents, boolean
131130

132131
private static Map<String, String> parseHeaders(HttpURLConnection conn) {
133132
final Map<String, String> headers = new HashMap<>();
134-
for (Map.Entry<String, List<String>> entry : conn.getHeaderFields().entrySet()) {
135-
final String key = entry.getKey();
133+
conn.getHeaderFields().forEach((key, value) -> {
136134
if ("Content-Encoding".equalsIgnoreCase(key)) {
137-
headers.put("Content-Encoding", entry.getValue().get(0));
135+
headers.put("Content-Encoding", value.get(0));
138136
} else {
139-
headers.put(key, entry.getValue().get(0));
137+
headers.put(key, value.get(0));
140138
}
141-
}
139+
});
142140
return headers;
143141
}
144142

145143
private static void addHeaders(HttpURLConnection connection, Map<String, String> headers, String userAgent) {
146-
for (Map.Entry<String, String> entry : headers.entrySet()) {
147-
connection.setRequestProperty(entry.getKey(), entry.getValue());
148-
}
144+
headers.forEach((key, value) -> connection.setRequestProperty(key, value));
149145
if (userAgent != null) {
150146
connection.setRequestProperty(OAuthConstants.USER_AGENT_HEADER_NAME, userAgent);
151147
}

scribejava-core/src/main/java/com/github/scribejava/core/model/ParameterList.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Map;
77
import com.github.scribejava.core.utils.OAuthEncoder;
88
import com.github.scribejava.core.utils.Preconditions;
9+
import java.util.stream.Collectors;
910

1011
public class ParameterList {
1112

@@ -27,9 +28,9 @@ public ParameterList() {
2728
public ParameterList(Map<String, String> map) {
2829
this();
2930
if (map != null && !map.isEmpty()) {
30-
for (Map.Entry<String, String> entry : map.entrySet()) {
31-
params.add(new Parameter(entry.getKey(), entry.getValue()));
32-
}
31+
map.entrySet().stream()
32+
.map(entry -> new Parameter(entry.getKey(), entry.getValue()))
33+
.forEach(params::add);
3334
}
3435
}
3536

@@ -58,11 +59,9 @@ public String asFormUrlEncodedString() {
5859
return EMPTY_STRING;
5960
}
6061

61-
final StringBuilder builder = new StringBuilder();
62-
for (Parameter p : params) {
63-
builder.append(PARAM_SEPARATOR).append(p.asUrlEncodedPair());
64-
}
65-
return builder.substring(1);
62+
return params.stream()
63+
.map(Parameter::asUrlEncodedPair)
64+
.collect(Collectors.joining(PARAM_SEPARATOR));
6665
}
6766

6867
public void addAll(ParameterList other) {

0 commit comments

Comments
 (0)