Skip to content

Commit b44c628

Browse files
authored
Separate MessagePackHubProtocol into its own package (#25253)
* Separate MessagePackHubProtocol into its own package * Remove gitignore * Maybe undo this later * More factoring * Get gradle test working * Get gradle test working * Get rid of version.java * Separate build.gradle files for all * Create separate javaproj's for everything * Fix warnings * Resolve conflicts * Fixup gitignore * Feedback, fix error * Fix error * Change package name * Fix folder structure * Skip helix tests, fix .gitignore * Make TransferFormat private
1 parent 7527117 commit b44c628

File tree

87 files changed

+373
-208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+373
-208
lines changed

src/SignalR/clients/java/signalr/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
.gradletasknamecache
33
.gradle/
44
build/
5-
/test-results
5+
test/test-results
66
.settings/
77
out/
88
*.class

src/SignalR/clients/java/signalr/build.gradle

Lines changed: 11 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,26 @@ plugins {
1515
id 'maven'
1616
}
1717

18-
apply plugin: "java-library"
19-
apply plugin: "com.diffplug.gradle.spotless"
20-
apply plugin: 'org.junit.platform.gradle.plugin'
18+
allprojects {
19+
apply plugin: "java-library"
20+
apply plugin: "com.diffplug.gradle.spotless"
2121

22-
group 'com.microsoft.signalr'
22+
// If we're run from outside MSBuild, just assign a bogus dev version.
23+
version project.findProperty('packageVersion') ?: "99.99.99-dev"
2324

24-
// If we're run from outside MSBuild, just assign a bogus dev version.
25-
version project.findProperty('packageVersion') ?: "99.99.99-dev"
25+
sourceCompatibility = 1.8
2626

27-
sourceCompatibility = 1.8
28-
29-
repositories {
30-
mavenCentral()
31-
}
32-
33-
dependencies {
34-
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
35-
testCompile 'org.junit.jupiter:junit-jupiter-params:5.3.1'
36-
testRuntime 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
37-
testCompile 'org.slf4j:slf4j-jdk14:1.7.25'
38-
implementation 'com.google.code.gson:gson:2.8.5'
39-
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
40-
api 'io.reactivex.rxjava2:rxjava:2.2.3'
41-
implementation 'org.slf4j:slf4j-api:1.7.25'
42-
compile 'org.msgpack:msgpack-core:0.8.20'
43-
compile 'org.msgpack:jackson-dataformat-msgpack:0.8.20'
27+
repositories {
28+
mavenCentral()
29+
}
4430
}
4531

4632
spotless {
4733
java {
4834
licenseHeader '// Copyright (c) .NET Foundation. All rights reserved.\n' +
4935
'// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\n\n' // License header
5036

51-
importOrder 'java', 'javax', 'org', 'com', 'com.diffplug', '' // A sequence of package names
37+
importOrder 'java', 'javax', 'org', 'com', 'com.diffplug', '' // A sequence of package names
5238

5339
replace 'Not enough space after if', 'if(', 'if ('
5440
replace 'Not enough space after else', 'else{', 'else {'
@@ -66,73 +52,4 @@ spotless {
6652
indentWithSpaces(4)
6753
removeUnusedImports() // removes any unused imports
6854
}
69-
}
70-
71-
junitPlatform {
72-
reportsDir file('test-results')
73-
}
74-
75-
task sourceJar(type: Jar) {
76-
classifier "sources"
77-
from sourceSets.main.allJava
78-
}
79-
80-
task javadocJar(type: Jar, dependsOn: javadoc) {
81-
classifier "javadoc"
82-
from javadoc.destinationDir
83-
}
84-
85-
task generatePOM {
86-
pom {
87-
project {
88-
inceptionYear '2018'
89-
description 'ASP.NET Core SignalR Client for Java applications'
90-
url 'https://github.com/dotnet/aspnetcore'
91-
name groupId + ':' + artifactId
92-
licenses {
93-
license {
94-
name 'The Apache Software License, Version 2.0'
95-
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
96-
distribution 'repo'
97-
}
98-
}
99-
scm {
100-
connection 'scm:git:git://github.com/dotnet/aspnetcore.git'
101-
developerConnection 'scm:git:git://github.com/dotnet/aspnetcore.git'
102-
url 'http://github.com/dotnet/aspnetcore/tree/master'
103-
}
104-
developers {
105-
developer {
106-
id 'microsoft'
107-
name 'Microsoft'
108-
}
109-
}
110-
}
111-
}.writeTo("${buildDir}/libs/signalr-${project.version}.pom")
112-
}
113-
114-
task createPackage(dependsOn: [jar,sourceJar,javadocJar,generatePOM])
115-
116-
task generateVersionClass {
117-
inputs.property "version", project.version
118-
outputs.dir "$buildDir/generated"
119-
doFirst {
120-
def versionFile = file("$buildDir/../src/main/java/com/microsoft/signalr/Version.java")
121-
versionFile.parentFile.mkdirs()
122-
versionFile.text =
123-
"""
124-
// Copyright (c) .NET Foundation. All rights reserved.
125-
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
126-
127-
package com.microsoft.signalr;
128-
129-
class Version {
130-
public static String getDetailedVersion() {
131-
return "$project.version";
132-
}
133-
}
134-
"""
135-
}
136-
}
137-
138-
compileJava.dependsOn generateVersionClass
55+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
group 'com.microsoft.signalr'
2+
3+
dependencies {
4+
implementation 'com.google.code.gson:gson:2.8.5'
5+
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
6+
api 'io.reactivex.rxjava2:rxjava:2.2.3'
7+
implementation 'org.slf4j:slf4j-api:1.7.25'
8+
}
9+
10+
archivesBaseName = 'signalr'
11+
12+
task sourceJar(type: Jar) {
13+
classifier "sources"
14+
from sourceSets.main.allJava
15+
}
16+
17+
task javadocJar(type: Jar, dependsOn: javadoc) {
18+
classifier "javadoc"
19+
from javadoc.destinationDir
20+
}
21+
22+
task generatePOM {
23+
pom {
24+
project {
25+
inceptionYear '2018'
26+
description 'ASP.NET Core SignalR Client for Java applications'
27+
url 'https://github.com/dotnet/aspnetcore'
28+
name groupId + ':' + artifactId
29+
licenses {
30+
license {
31+
name 'The Apache Software License, Version 2.0'
32+
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
33+
distribution 'repo'
34+
}
35+
}
36+
scm {
37+
connection 'scm:git:git://github.com/dotnet/aspnetcore.git'
38+
developerConnection 'scm:git:git://github.com/dotnet/aspnetcore.git'
39+
url 'http://github.com/dotnet/aspnetcore/tree/master'
40+
}
41+
developers {
42+
developer {
43+
id 'microsoft'
44+
name 'Microsoft'
45+
}
46+
}
47+
}
48+
}.writeTo("${buildDir}/libs/signalr-${project.version}.pom")
49+
}
50+
51+
task createPackage(dependsOn: [jar,sourceJar,javadocJar,generatePOM])
52+
53+
task generateVersionClass {
54+
inputs.property "version", project.version
55+
outputs.dir "$buildDir/generated"
56+
doFirst {
57+
def versionFile = file("$buildDir/../src/main/java/com/microsoft/signalr/Version.java")
58+
versionFile.parentFile.mkdirs()
59+
versionFile.text =
60+
"""
61+
// Copyright (c) .NET Foundation. All rights reserved.
62+
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
63+
64+
package com.microsoft.signalr;
65+
66+
class Version {
67+
public static String getDetailedVersion() {
68+
return "$project.version";
69+
}
70+
}
71+
"""
72+
}
73+
}
74+
75+
compileJava.dependsOn generateVersionClass
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<Project>
2+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
3+
4+
<PropertyGroup>
5+
<!-- This package ID is only ever used along with eng/PatchConfig.props to determine when to patch the Java client. -->
6+
<PackageId>java:signalr</PackageId>
7+
<!-- In servicing builds, this will be set to value if the Java client is not configured to be released in the currently building patch. -->
8+
<IsPackable>true</IsPackable>
9+
<IsTestProject>false</IsTestProject>
10+
<!-- Disable gradle daemon on CI since the CI seems to try to wait for the daemon to shut down, which it doesn't do :) -->
11+
<GradleOptions Condition="'$(ContinuousIntegrationBuild)' == 'true'">$(GradleOptions) -Dorg.gradle.daemon=false</GradleOptions>
12+
<PublishDir>$(OutputPath)</PublishDir>
13+
</PropertyGroup>
14+
15+
<ItemGroup>
16+
<Jars Include="
17+
signalr-$(PackageVersion).jar;
18+
signalr-$(PackageVersion)-javadoc.jar;
19+
signalr-$(PackageVersion)-sources.jar;" />
20+
<PomFile Include="signalr-$(PackageVersion).pom" />
21+
<JavaBuildFiles Include="@(Jars);@(PomFile)"/>
22+
</ItemGroup>
23+
24+
<Target Name="Restore" />
25+
26+
<PropertyGroup>
27+
<PackDependsOn Condition=" '$(NoBuild)' != 'true' ">
28+
$(PackDependsOn);
29+
Build
30+
</PackDependsOn>
31+
</PropertyGroup>
32+
33+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
34+
35+
<PropertyGroup>
36+
<GradleOptions>$(GradleOptions) -PpackageVersion="$(PackageVersion)"</GradleOptions>
37+
</PropertyGroup>
38+
39+
<!-- Define Target overrides after importing Directory.Build.targets so these don't get overridden -->
40+
<Target Name="Pack" DependsOnTargets="$(PackDependsOn)" Condition="'$(IsPackable)' == 'true'">
41+
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Pack" />
42+
<Message Text="> gradlew $(GradleOptions) createPackage" Importance="high" />
43+
<Exec Command="../gradlew $(GradleOptions) createPackage" />
44+
<Message Importance="high" Text="java:signalr -> $(PackageOutputPath)%(JavaBuildFiles.Identity)" />
45+
<Copy SourceFiles="$(MSBuildThisFileDirectory)build\libs\%(JavaBuildFiles.Identity)" DestinationFolder="$(PackageOutputPath)" />
46+
</Target>
47+
48+
<Target Name="Build">
49+
<Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Build" />
50+
<Exec Command="../gradlew $(GradleOptions) compileJava" />
51+
</Target>
52+
53+
<Target Name="Test" />
54+
55+
<Target Name="Publish" />
56+
57+
</Project>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Version.java

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/CancelInvocationMessage.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/CancelInvocationMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import java.util.Map;
77

8-
final class CancelInvocationMessage extends HubMessage {
8+
public final class CancelInvocationMessage extends HubMessage {
99
private final int type = HubMessageType.CANCEL_INVOCATION.value;
1010
private Map<String, String> headers;
1111
private final String invocationId;

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/CloseMessage.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/CloseMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package com.microsoft.signalr;
55

6-
final class CloseMessage extends HubMessage {
6+
public final class CloseMessage extends HubMessage {
77
private final String error;
88
private final boolean allowReconnect;
99

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/CompletionMessage.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/CompletionMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import java.util.Map;
77

8-
final class CompletionMessage extends HubMessage {
8+
public final class CompletionMessage extends HubMessage {
99
private final int type = HubMessageType.COMPLETION.value;
1010
private Map<String, String> headers;
1111
private final String invocationId;

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/HttpHubConnectionBuilder.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HttpHubConnectionBuilder.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,13 @@ HttpHubConnectionBuilder withHttpClient(HttpClient httpClient) {
5757
}
5858

5959
/**
60-
* Sets MessagePack as the {@link HubProtocol} to be used by the {@link HubConnection}.
60+
* Sets the {@link HubProtocol} to be used by the {@link HubConnection}.
6161
*
62+
* @param protocol The {@link HubProtocol} to be used by the {@link HubConnection}.
6263
* @return This instance of the HttpHubConnectionBuilder.
6364
*/
64-
public HttpHubConnectionBuilder withMessagePackHubProtocol() {
65-
this.protocol = new MessagePackHubProtocol();
65+
public HttpHubConnectionBuilder withHubProtocol(HubProtocol protocol) {
66+
this.protocol = protocol;
6667
return this;
6768
}
6869

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/HubMessage.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
/**
77
* A base class for hub messages.
88
*/
9-
abstract class HubMessage {
9+
public abstract class HubMessage {
1010
public abstract HubMessageType getMessageType();
1111
}

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/HubMessageType.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubMessageType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package com.microsoft.signalr;
55

6-
enum HubMessageType {
6+
public enum HubMessageType {
77
INVOCATION(1),
88
STREAM_ITEM(2),
99
COMPLETION(3),

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/HubProtocol.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubProtocol.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
/**
1010
* A protocol abstraction for communicating with SignalR hubs.
1111
*/
12-
interface HubProtocol {
12+
public interface HubProtocol {
1313
String getName();
1414
int getVersion();
15-
TransferFormat getTransferFormat();
1615

1716
/**
1817
* Creates a new list of {@link HubMessage}s.
1918
* @param message A ByteBuffer representation of one or more {@link HubMessage}s.
19+
* @param binder The {@link InvocationBinder} to use for this Protocol instance.
2020
* @return A list of {@link HubMessage}s.
2121
*/
2222
List<HubMessage> parseMessages(ByteBuffer message, InvocationBinder binder);

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/InvocationBinder.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/InvocationBinder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
/**
1010
* An abstraction for passing around information about method signatures.
1111
*/
12-
interface InvocationBinder {
12+
public interface InvocationBinder {
1313
Type getReturnType(String invocationId);
1414
List<Type> getParameterTypes(String methodName);
1515
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
package com.microsoft.signalr;
55

6-
class InvocationBindingFailureMessage extends HubMessage {
6+
public class InvocationBindingFailureMessage extends HubMessage {
77
private final String invocationId;
88
private final String target;
99
private final Exception exception;

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/InvocationMessage.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/InvocationMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.Collection;
77
import java.util.Map;
88

9-
class InvocationMessage extends HubMessage {
9+
public class InvocationMessage extends HubMessage {
1010
int type = HubMessageType.INVOCATION.value;
1111
private Map<String, String> headers;
1212
private final String invocationId;

src/SignalR/clients/java/signalr/src/main/java/com/microsoft/signalr/JsonHubProtocol.java renamed to src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/JsonHubProtocol.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ public int getVersion() {
3434
return 1;
3535
}
3636

37-
@Override
38-
public TransferFormat getTransferFormat() {
39-
return TransferFormat.TEXT;
40-
}
41-
4237
@Override
4338
public List<HubMessage> parseMessages(ByteBuffer payload, InvocationBinder binder) {
4439
String payloadStr;

0 commit comments

Comments
 (0)