diff --git a/build/repo.targets b/build/repo.targets index 424fa09955..54b7931cfa 100644 --- a/build/repo.targets +++ b/build/repo.targets @@ -126,15 +126,9 @@ - - - - - - - - - + + + diff --git a/clients/java/signalr/build.gradle b/clients/java/signalr/build.gradle index da1abbd823..00b71ef1c5 100644 --- a/clients/java/signalr/build.gradle +++ b/clients/java/signalr/build.gradle @@ -3,7 +3,7 @@ plugins { id 'maven' } -group 'com.microsoft.aspnetcore' +group 'com.microsoft.aspnet' version '0.1.0-preview1' sourceCompatibility = 1.8 @@ -31,11 +31,10 @@ task javadocJar(type: Jar, dependsOn: javadoc) { task generatePOM { pom { project { - groupId 'com.microsoft.aspnetcore' - artifactId 'signalr' - version '0.1.0-preview1' - inceptionYear '2018' + description 'ASP.NET Core SignalR Client for Java applications' + url 'https://github.com/aspnet/SignalR' + name groupId + ':' + artifactId licenses { license { name 'The Apache Software License, Version 2.0' @@ -43,9 +42,20 @@ task generatePOM { distribution 'repo' } } + scm { + connection 'scm:git:git://github.com/aspnet/SignalR.git' + developerConnection 'scm:git:git://github.com/aspnet/SignalR.git' + url 'http://github.com/aspnet/SignalR/tree/master' + } + developers { + developer { + id 'microsoft' + name 'Microsoft' + } + } } - }.writeTo("signalr-client-0.1.0-preview1.pom") + }.writeTo("signalr-0.1.0-preview1.pom") - ant.move file: "signalr-client-0.1.0-preview1.pom", + ant.move file: "signalr-0.1.0-preview1.pom", todir: "${buildDir}/libs" } diff --git a/clients/java/signalr/settings.gradle b/clients/java/signalr/settings.gradle index 90473932b7..f3f257cc4d 100644 --- a/clients/java/signalr/settings.gradle +++ b/clients/java/signalr/settings.gradle @@ -1,3 +1,3 @@ -rootProject.name = 'signalr-client' +rootProject.name = 'signalr' include 'main' diff --git a/clients/java/signalr/src/main/java/Action.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action.java similarity index 84% rename from clients/java/signalr/src/main/java/Action.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action.java index 8d41276eb6..09c45da9a6 100644 --- a/clients/java/signalr/src/main/java/Action.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action { void invoke(); } diff --git a/clients/java/signalr/src/main/java/Action1.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action1.java similarity index 85% rename from clients/java/signalr/src/main/java/Action1.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action1.java index ae4c4d7cbb..6cd1fd7230 100644 --- a/clients/java/signalr/src/main/java/Action1.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action1.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action1 { void invoke(T1 param1); } diff --git a/clients/java/signalr/src/main/java/Action2.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action2.java similarity index 86% rename from clients/java/signalr/src/main/java/Action2.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action2.java index 41ab3b123f..6f4d74080c 100644 --- a/clients/java/signalr/src/main/java/Action2.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action2.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action2 { void invoke(T1 param1, T2 param2); } diff --git a/clients/java/signalr/src/main/java/Action3.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action3.java similarity index 86% rename from clients/java/signalr/src/main/java/Action3.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action3.java index b79e6449df..3743dae08c 100644 --- a/clients/java/signalr/src/main/java/Action3.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action3.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action3 { void invoke(T1 param1, T2 param2, T3 param3); } diff --git a/clients/java/signalr/src/main/java/Action4.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action4.java similarity index 87% rename from clients/java/signalr/src/main/java/Action4.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action4.java index 34665d8fd6..918e9c7568 100644 --- a/clients/java/signalr/src/main/java/Action4.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action4.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action4 { void invoke(T1 param1, T2 param2, T3 param3, T4 param4); } diff --git a/clients/java/signalr/src/main/java/Action5.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action5.java similarity index 88% rename from clients/java/signalr/src/main/java/Action5.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action5.java index 446aa52132..8f73f053de 100644 --- a/clients/java/signalr/src/main/java/Action5.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action5.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action5 { void invoke(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5); } diff --git a/clients/java/signalr/src/main/java/Action6.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action6.java similarity index 88% rename from clients/java/signalr/src/main/java/Action6.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action6.java index 2aca2c1d64..54185b4040 100644 --- a/clients/java/signalr/src/main/java/Action6.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action6.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action6 { void invoke(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, T6 param6); } diff --git a/clients/java/signalr/src/main/java/Action7.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action7.java similarity index 89% rename from clients/java/signalr/src/main/java/Action7.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action7.java index a835b2c686..8484ca3a0e 100644 --- a/clients/java/signalr/src/main/java/Action7.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action7.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action7 { void invoke(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, T6 param6, T7 param7); } diff --git a/clients/java/signalr/src/main/java/Action8.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action8.java similarity index 89% rename from clients/java/signalr/src/main/java/Action8.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action8.java index 769d66b343..700f4933d8 100644 --- a/clients/java/signalr/src/main/java/Action8.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Action8.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Action8 { void invoke(T1 param1, T2 param2, T3 param3, T4 param4, T5 param5, T6 param6, T7 param7, T8 param8); } diff --git a/clients/java/signalr/src/main/java/ActionBase.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/ActionBase.java similarity index 85% rename from clients/java/signalr/src/main/java/ActionBase.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/ActionBase.java index 09b1bc7cfb..bb95ca6515 100644 --- a/clients/java/signalr/src/main/java/ActionBase.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/ActionBase.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface ActionBase { void invoke(Object ... params); } diff --git a/clients/java/signalr/src/main/java/CallbackMap.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/CallbackMap.java similarity index 96% rename from clients/java/signalr/src/main/java/CallbackMap.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/CallbackMap.java index ec4bf817d0..3e8d8c923c 100644 --- a/clients/java/signalr/src/main/java/CallbackMap.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/CallbackMap.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; diff --git a/clients/java/signalr/src/main/java/Chat.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Chat.java similarity index 92% rename from clients/java/signalr/src/main/java/Chat.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Chat.java index ca7c4dc074..bf1c33efc5 100644 --- a/clients/java/signalr/src/main/java/Chat.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Chat.java @@ -1,6 +1,10 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + +import com.microsoft.aspnet.signalr.HubConnection; + import java.util.Scanner; public class Chat { diff --git a/clients/java/signalr/src/main/java/ConsoleLogger.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/ConsoleLogger.java similarity index 97% rename from clients/java/signalr/src/main/java/ConsoleLogger.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/ConsoleLogger.java index f74f0080c9..a79ff1ad52 100644 --- a/clients/java/signalr/src/main/java/ConsoleLogger.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/ConsoleLogger.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public class ConsoleLogger implements Logger { private LogLevel logLevel; public ConsoleLogger(LogLevel logLevel) { diff --git a/clients/java/signalr/src/main/java/HandshakeProtocol.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeProtocol.java similarity index 94% rename from clients/java/signalr/src/main/java/HandshakeProtocol.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeProtocol.java index 322625ce9e..35282fae8f 100644 --- a/clients/java/signalr/src/main/java/HandshakeProtocol.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeProtocol.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + import com.google.gson.Gson; public class HandshakeProtocol { diff --git a/clients/java/signalr/src/main/java/HandshakeRequestMessage.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeRequestMessage.java similarity index 90% rename from clients/java/signalr/src/main/java/HandshakeRequestMessage.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeRequestMessage.java index 370de4e513..7786bc229a 100644 --- a/clients/java/signalr/src/main/java/HandshakeRequestMessage.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeRequestMessage.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public class HandshakeRequestMessage { String protocol; int version; diff --git a/clients/java/signalr/src/main/java/HandshakeResponseMessage.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeResponseMessage.java similarity index 90% rename from clients/java/signalr/src/main/java/HandshakeResponseMessage.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeResponseMessage.java index 8b40a79283..cb2eb6c3a7 100644 --- a/clients/java/signalr/src/main/java/HandshakeResponseMessage.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HandshakeResponseMessage.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public class HandshakeResponseMessage { public String error; diff --git a/clients/java/signalr/src/main/java/HubConnection.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubConnection.java similarity index 99% rename from clients/java/signalr/src/main/java/HubConnection.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubConnection.java index e3eb1bec97..05984de5f3 100644 --- a/clients/java/signalr/src/main/java/HubConnection.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubConnection.java @@ -1,9 +1,10 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + import com.google.gson.Gson; import com.google.gson.JsonArray; - import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; diff --git a/clients/java/signalr/src/main/java/HubConnectionState.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubConnectionState.java similarity index 85% rename from clients/java/signalr/src/main/java/HubConnectionState.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubConnectionState.java index 6c45a93e61..2bf62ffa5a 100644 --- a/clients/java/signalr/src/main/java/HubConnectionState.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubConnectionState.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public enum HubConnectionState { CONNECTED, DISCONNECTED, diff --git a/clients/java/signalr/src/main/java/HubMessage.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubMessage.java similarity index 72% rename from clients/java/signalr/src/main/java/HubMessage.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubMessage.java index ca4b9a788f..9e8f887996 100644 --- a/clients/java/signalr/src/main/java/HubMessage.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubMessage.java @@ -1,9 +1,11 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + /** * A base class for hub messages. */ public abstract class HubMessage { - abstract HubMessageType getMessageType(); + public abstract HubMessageType getMessageType(); } diff --git a/clients/java/signalr/src/main/java/HubMessageType.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubMessageType.java similarity index 91% rename from clients/java/signalr/src/main/java/HubMessageType.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubMessageType.java index d18e3b9f6b..a02075858a 100644 --- a/clients/java/signalr/src/main/java/HubMessageType.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubMessageType.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public enum HubMessageType { INVOCATION(1), STREAM_ITEM(2), diff --git a/clients/java/signalr/src/main/java/HubProtocol.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubProtocol.java similarity index 95% rename from clients/java/signalr/src/main/java/HubProtocol.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubProtocol.java index 2869d9ac4a..0ee6eeb9cb 100644 --- a/clients/java/signalr/src/main/java/HubProtocol.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/HubProtocol.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + /** * A protocol abstraction for communicating with SignalR hubs. */ diff --git a/clients/java/signalr/src/main/java/InvocationMessage.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/InvocationMessage.java similarity index 92% rename from clients/java/signalr/src/main/java/InvocationMessage.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/InvocationMessage.java index 635067ff2e..4a0ed52ea8 100644 --- a/clients/java/signalr/src/main/java/InvocationMessage.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/InvocationMessage.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public class InvocationMessage extends HubMessage { int type = HubMessageType.INVOCATION.value; String invocationId; @@ -37,7 +39,7 @@ public class InvocationMessage extends HubMessage { } @Override - HubMessageType getMessageType() { + public HubMessageType getMessageType() { return HubMessageType.INVOCATION; } } diff --git a/clients/java/signalr/src/main/java/JsonHubProtocol.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/JsonHubProtocol.java similarity index 98% rename from clients/java/signalr/src/main/java/JsonHubProtocol.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/JsonHubProtocol.java index f80c57912b..4bee9e089c 100644 --- a/clients/java/signalr/src/main/java/JsonHubProtocol.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/JsonHubProtocol.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; diff --git a/clients/java/signalr/src/main/java/LogLevel.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/LogLevel.java similarity index 90% rename from clients/java/signalr/src/main/java/LogLevel.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/LogLevel.java index 72a5dac734..9541e6d891 100644 --- a/clients/java/signalr/src/main/java/LogLevel.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/LogLevel.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public enum LogLevel { Trace(0), Debug(1), diff --git a/clients/java/signalr/src/main/java/Logger.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Logger.java similarity index 89% rename from clients/java/signalr/src/main/java/Logger.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Logger.java index 8e2fee7d4b..db918f51b9 100644 --- a/clients/java/signalr/src/main/java/Logger.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Logger.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Logger { void log(LogLevel logLevel, String message); void log(LogLevel logLevel, String formattedMessage, Object ... args); diff --git a/clients/java/signalr/src/main/java/NullLogger.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/NullLogger.java similarity index 90% rename from clients/java/signalr/src/main/java/NullLogger.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/NullLogger.java index 38eb818fad..b308931ce4 100644 --- a/clients/java/signalr/src/main/java/NullLogger.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/NullLogger.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public class NullLogger implements Logger { @Override public void log(LogLevel logLevel, String message) { } diff --git a/clients/java/signalr/src/main/java/OnReceiveCallBack.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/OnReceiveCallBack.java similarity index 87% rename from clients/java/signalr/src/main/java/OnReceiveCallBack.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/OnReceiveCallBack.java index 6d971d1955..168c858c26 100644 --- a/clients/java/signalr/src/main/java/OnReceiveCallBack.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/OnReceiveCallBack.java @@ -1,7 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -import com.google.gson.JsonObject; +package com.microsoft.aspnet.signalr; public interface OnReceiveCallBack { void invoke(String message) throws Exception; diff --git a/clients/java/signalr/src/main/java/PingMessage.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/PingMessage.java similarity index 79% rename from clients/java/signalr/src/main/java/PingMessage.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/PingMessage.java index 6bf9be7753..de4d861894 100644 --- a/clients/java/signalr/src/main/java/PingMessage.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/PingMessage.java @@ -1,12 +1,14 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public class PingMessage extends HubMessage { int type = HubMessageType.PING.value; @Override - HubMessageType getMessageType() { + public HubMessageType getMessageType() { return HubMessageType.PING; } } diff --git a/clients/java/signalr/src/main/java/Subscription.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Subscription.java similarity index 94% rename from clients/java/signalr/src/main/java/Subscription.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Subscription.java index f036d71e6d..f4a3e7d035 100644 --- a/clients/java/signalr/src/main/java/Subscription.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Subscription.java @@ -1,12 +1,15 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + import java.util.List; public class Subscription { private CallbackMap handlers; private ActionBase action; private String target; + public Subscription(CallbackMap handlers, ActionBase action, String target) { this.handlers = handlers; this.action = action; diff --git a/clients/java/signalr/src/main/java/TransferFormat.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/TransferFormat.java similarity index 84% rename from clients/java/signalr/src/main/java/TransferFormat.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/TransferFormat.java index 8813920de6..32b8956bfb 100644 --- a/clients/java/signalr/src/main/java/TransferFormat.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/TransferFormat.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public enum TransferFormat { Text, Binary diff --git a/clients/java/signalr/src/main/java/Transport.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Transport.java similarity index 91% rename from clients/java/signalr/src/main/java/Transport.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Transport.java index 240675dfe5..d8356ae949 100644 --- a/clients/java/signalr/src/main/java/Transport.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/Transport.java @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +package com.microsoft.aspnet.signalr; + public interface Transport { void start() throws InterruptedException; void send(String message) throws Exception; diff --git a/clients/java/signalr/src/main/java/WebSocketTransport.java b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/WebSocketTransport.java similarity index 98% rename from clients/java/signalr/src/main/java/WebSocketTransport.java rename to clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/WebSocketTransport.java index 0089794d02..40ce5beb7e 100644 --- a/clients/java/signalr/src/main/java/WebSocketTransport.java +++ b/clients/java/signalr/src/main/java/com/microsoft/aspnet/signalr/WebSocketTransport.java @@ -1,11 +1,12 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -import org.java_websocket.client.WebSocketClient; -import org.java_websocket.handshake.ServerHandshake; +package com.microsoft.aspnet.signalr; import java.net.URI; import java.net.URISyntaxException; +import org.java_websocket.client.WebSocketClient; +import org.java_websocket.handshake.ServerHandshake; public class WebSocketTransport implements Transport { private WebSocketClient webSocketClient; diff --git a/clients/java/signalr/src/test/java/HandshakeProtocolTest.java b/clients/java/signalr/src/test/java/HandshakeProtocolTest.java index ae8f960242..f41ded8d90 100644 --- a/clients/java/signalr/src/test/java/HandshakeProtocolTest.java +++ b/clients/java/signalr/src/test/java/HandshakeProtocolTest.java @@ -1,6 +1,9 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +import com.microsoft.aspnet.signalr.HandshakeProtocol; +import com.microsoft.aspnet.signalr.HandshakeRequestMessage; +import com.microsoft.aspnet.signalr.HandshakeResponseMessage; import org.junit.Test; import static org.junit.Assert.*; diff --git a/clients/java/signalr/src/test/java/HubConnectionTest.java b/clients/java/signalr/src/test/java/HubConnectionTest.java index 55f30cae70..617871d443 100644 --- a/clients/java/signalr/src/test/java/HubConnectionTest.java +++ b/clients/java/signalr/src/test/java/HubConnectionTest.java @@ -1,10 +1,10 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -import org.junit.Test; - +import com.microsoft.aspnet.signalr.*; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicReference; +import org.junit.Test; import static org.junit.Assert.*; diff --git a/clients/java/signalr/src/test/java/JsonHubProtocolTest.java b/clients/java/signalr/src/test/java/JsonHubProtocolTest.java index 4d6e2fd6d1..31c349e8e5 100644 --- a/clients/java/signalr/src/test/java/JsonHubProtocolTest.java +++ b/clients/java/signalr/src/test/java/JsonHubProtocolTest.java @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. import com.google.gson.JsonArray; +import com.microsoft.aspnet.signalr.*; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -57,10 +58,10 @@ public class JsonHubProtocolTest { //We can safely cast here because we know that it's an invocation message. InvocationMessage invocationMessage = (InvocationMessage) messages[0]; - assertEquals("test", invocationMessage.target); - assertEquals(null, invocationMessage.invocationId); + assertEquals("test", invocationMessage.getTarget()); + assertEquals(null, invocationMessage.getInvocationId()); - JsonArray messageResult = (JsonArray) invocationMessage.arguments[0]; + JsonArray messageResult = (JsonArray) invocationMessage.getArguments()[0]; assertEquals(42, messageResult.getAsInt()); } @@ -95,9 +96,9 @@ public class JsonHubProtocolTest { //Now that we know we have an invocation message we can cast the hubMessage. InvocationMessage invocationMessage = (InvocationMessage) messages[0]; - assertEquals("one", invocationMessage.target); - assertEquals(null, invocationMessage.invocationId); - JsonArray messageResult = (JsonArray) invocationMessage.arguments[0]; + assertEquals("one", invocationMessage.getTarget()); + assertEquals(null, invocationMessage.getInvocationId()); + JsonArray messageResult = (JsonArray) invocationMessage.getArguments()[0]; assertEquals(42, messageResult.getAsInt()); // Check the second message @@ -106,9 +107,9 @@ public class JsonHubProtocolTest { //Now that we know we have an invocation message we can cast the hubMessage. InvocationMessage invocationMessage2 = (InvocationMessage) messages[1]; - assertEquals("two", invocationMessage2.target); - assertEquals(null, invocationMessage2.invocationId); - JsonArray secondMessageResult = (JsonArray) invocationMessage2.arguments[0]; + assertEquals("two", invocationMessage2.getTarget()); + assertEquals(null, invocationMessage2.getInvocationId()); + JsonArray secondMessageResult = (JsonArray) invocationMessage2.getArguments()[0]; assertEquals(43, secondMessageResult.getAsInt()); } @@ -121,9 +122,9 @@ public class JsonHubProtocolTest { assertEquals(HubMessageType.INVOCATION, messages[0].getMessageType()); InvocationMessage message = (InvocationMessage)messages[0]; - assertEquals("test", message.target); - assertEquals(null, message.invocationId); - JsonArray messageResult = ((JsonArray) message.arguments[0]); + assertEquals("test", message.getTarget()); + assertEquals(null, message.getInvocationId()); + JsonArray messageResult = ((JsonArray) message.getArguments()[0]); assertEquals(42, messageResult.get(0).getAsInt()); assertEquals(24, messageResult.get(1).getAsInt()); } diff --git a/clients/java/signalr/src/test/java/WebSocketTransportTest.java b/clients/java/signalr/src/test/java/WebSocketTransportTest.java index bb550d94dd..ba251c9a9f 100644 --- a/clients/java/signalr/src/test/java/WebSocketTransportTest.java +++ b/clients/java/signalr/src/test/java/WebSocketTransportTest.java @@ -1,13 +1,14 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; - +import com.microsoft.aspnet.signalr.NullLogger; +import com.microsoft.aspnet.signalr.WebSocketTransport; import java.net.URISyntaxException; import java.util.Arrays; import java.util.Collection; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; import static org.junit.Assert.*; diff --git a/clients/ts/signalr/src/HubConnectionBuilder.ts b/clients/ts/signalr/src/HubConnectionBuilder.ts index 10ba5f6e2e..773ab3aa00 100644 --- a/clients/ts/signalr/src/HubConnectionBuilder.ts +++ b/clients/ts/signalr/src/HubConnectionBuilder.ts @@ -35,6 +35,12 @@ export class HubConnectionBuilder { * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining. */ public configureLogging(logger: ILogger): HubConnectionBuilder; + /** Configures custom logging for the {@link @aspnet/signalr.HubConnection}. + * + * @param {LogLevel | ILogger} logging An object implementing the {@link @aspnet/signalr.ILogger} interface or {@link @aspnet/signalr.LogLevel}. + * @returns The {@link @aspnet/signalr.HubConnectionBuilder} instance, for chaining. + */ + public configureLogging(logging: LogLevel | ILogger): HubConnectionBuilder; public configureLogging(logging: LogLevel | ILogger): HubConnectionBuilder { Arg.isRequired(logging, "logging"); diff --git a/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnection.cs b/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnection.cs index e8dee74a21..70bde08eb2 100644 --- a/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnection.cs +++ b/src/Microsoft.AspNetCore.SignalR.Client.Core/HubConnection.cs @@ -428,6 +428,7 @@ namespace Microsoft.AspNetCore.SignalR.Client { CheckDisposed(); CheckConnectionActive(nameof(StreamAsChannelCoreAsync)); + cancellationToken.ThrowIfCancellationRequested(); // I just want an excuse to use 'irq' as a variable name... var irq = InvocationRequest.Stream(cancellationToken, returnType, _connectionState.GetNextId(), _loggerFactory, this, out channel); diff --git a/src/Microsoft.AspNetCore.SignalR.Core/Internal/DefaultHubDispatcher.cs b/src/Microsoft.AspNetCore.SignalR.Core/Internal/DefaultHubDispatcher.cs index 5a927ffc71..de775e8f8a 100644 --- a/src/Microsoft.AspNetCore.SignalR.Core/Internal/DefaultHubDispatcher.cs +++ b/src/Microsoft.AspNetCore.SignalR.Core/Internal/DefaultHubDispatcher.cs @@ -160,6 +160,7 @@ namespace Microsoft.AspNetCore.SignalR.Internal { Log.ReceivedStreamItem(_logger, message); return connection.StreamTracker.ProcessItem(message); + } private Task ProcessInvocation(HubConnectionContext connection, @@ -496,9 +497,8 @@ namespace Microsoft.AspNetCore.SignalR.Internal { if (!_methods.TryGetValue(methodName, out var descriptor)) { - return Type.EmptyTypes; + throw new HubException("Method does not exist."); } - return descriptor.ParameterTypes; } } diff --git a/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack/Protocol/MessagePackHubProtocol.cs b/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack/Protocol/MessagePackHubProtocol.cs index ffeb7bfe75..f74cb7d1ff 100644 --- a/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack/Protocol/MessagePackHubProtocol.cs +++ b/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack/Protocol/MessagePackHubProtocol.cs @@ -163,10 +163,10 @@ namespace Microsoft.AspNetCore.SignalR.Protocol } var target = ReadString(input, ref offset, "target"); - var parameterTypes = binder.GetParameterTypes(target); try { + var parameterTypes = binder.GetParameterTypes(target); var arguments = BindArguments(input, ref offset, parameterTypes, resolver); return ApplyHeaders(headers, new InvocationMessage(invocationId, target, arguments)); } @@ -182,10 +182,9 @@ namespace Microsoft.AspNetCore.SignalR.Protocol var invocationId = ReadInvocationId(input, ref offset); var target = ReadString(input, ref offset, "target"); - var parameterTypes = binder.GetParameterTypes(target); - try { + var parameterTypes = binder.GetParameterTypes(target); var arguments = BindArguments(input, ref offset, parameterTypes, resolver); return ApplyHeaders(headers, new StreamInvocationMessage(invocationId, target, arguments)); } diff --git a/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs b/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs index 6ba1bbeb5e..0fe68b0589 100644 --- a/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs @@ -398,15 +398,8 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests [MemberData(nameof(HubProtocolsAndTransportsAndHubPaths))] public async Task StreamDoesNotStartIfTokenAlreadyCanceled(string protocolName, HttpTransportType transportType, string path) { - bool ExpectedErrors(WriteContext writeContext) - { - return (writeContext.LoggerName == nameof(Http.Connections.Client.Internal.ServerSentEventsTransport) || - writeContext.LoggerName == nameof(Http.Connections.Client.Internal.LongPollingTransport)) && - writeContext.EventId.Name == "ErrorSending"; - } - var protocol = HubProtocols[protocolName]; - using (StartVerifiableLog(out var loggerFactory, LogLevel.Trace, $"{nameof(StreamDoesNotStartIfTokenAlreadyCanceled)}_{protocol.Name}_{transportType}_{path.TrimStart('/')}", expectedErrorsFilter: ExpectedErrors)) + using (StartVerifiableLog(out var loggerFactory, LogLevel.Trace, $"{nameof(StreamDoesNotStartIfTokenAlreadyCanceled)}_{protocol.Name}_{transportType}_{path.TrimStart('/')}")) { var connection = CreateHubConnection(path, transportType, protocol, loggerFactory); try @@ -416,10 +409,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests var cts = new CancellationTokenSource(); cts.Cancel(); - var channel = await connection.StreamAsChannelAsync("Stream", 5, cts.Token).OrTimeout(); - - await Assert.ThrowsAnyAsync(() => - channel.WaitToReadAsync().AsTask().OrTimeout()); + await Assert.ThrowsAnyAsync(() =>connection.StreamAsChannelAsync("Stream", 5, cts.Token).OrTimeout()); } catch (Exception ex) { @@ -474,7 +464,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests bool ExpectedErrors(WriteContext writeContext) { return writeContext.LoggerName == DefaultHubDispatcherLoggerName && - writeContext.EventId.Name == "UnknownHubMethod"; + writeContext.EventId.Name == "FailedInvokingHubMethod"; } var hubProtocol = HubProtocols[hubProtocolName]; @@ -486,7 +476,40 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests await connection.StartAsync().OrTimeout(); var ex = await Assert.ThrowsAsync(() => connection.InvokeAsync("!@#$%")).OrTimeout(); - Assert.Equal("Unknown hub method '!@#$%'", ex.Message); + Assert.Equal("Failed to invoke '!@#$%' due to an error on the server. HubException: Method does not exist.", ex.Message); + } + catch (Exception ex) + { + loggerFactory.CreateLogger().LogError(ex, "{ExceptionType} from test", ex.GetType().FullName); + throw; + } + finally + { + await connection.DisposeAsync().OrTimeout(); + } + } + } + + [Theory] + [MemberData(nameof(HubProtocolsAndTransportsAndHubPaths))] + public async Task ServerThrowsHubExceptionIfHubMethodCannotBeResolvedAndArgumentsPassedIn(string hubProtocolName, HttpTransportType transportType, string hubPath) + { + bool ExpectedErrors(WriteContext writeContext) + { + return writeContext.LoggerName == DefaultHubDispatcherLoggerName && + writeContext.EventId.Name == "FailedInvokingHubMethod"; + } + + var hubProtocol = HubProtocols[hubProtocolName]; + using (StartVerifiableLog(out var loggerFactory, $"{nameof(ServerThrowsHubExceptionIfHubMethodCannotBeResolvedAndArgumentsPassedIn)}_{hubProtocol.Name}_{transportType}_{hubPath.TrimStart('/')}", expectedErrorsFilter: ExpectedErrors)) + { + var connection = CreateHubConnection(hubPath, transportType, hubProtocol, loggerFactory); + try + { + await connection.StartAsync().OrTimeout(); + + var ex = await Assert.ThrowsAsync(() => connection.InvokeAsync("!@#$%", 10, "test")).OrTimeout(); + Assert.Equal("Failed to invoke '!@#$%' due to an error on the server. HubException: Method does not exist.", ex.Message); } catch (Exception ex) { @@ -573,7 +596,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests bool ExpectedErrors(WriteContext writeContext) { return writeContext.LoggerName == DefaultHubDispatcherLoggerName && - writeContext.EventId.Name == "UnknownHubMethod"; + writeContext.EventId.Name == "FailedInvokingHubMethod"; } var hubProtocol = HubProtocols[hubProtocolName]; @@ -586,7 +609,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests var channel = await connection.StreamAsChannelAsync("!@#$%"); var ex = await Assert.ThrowsAsync(() => channel.ReadAllAsync().OrTimeout()); - Assert.Equal("Unknown hub method '!@#$%'", ex.Message); + Assert.Equal("Failed to invoke '!@#$%' due to an error on the server. HubException: Method does not exist.", ex.Message); } catch (Exception ex) { diff --git a/test/Microsoft.AspNetCore.SignalR.Tests/HubConnectionHandlerTests.cs b/test/Microsoft.AspNetCore.SignalR.Tests/HubConnectionHandlerTests.cs index 5f01aad337..dffc255428 100644 --- a/test/Microsoft.AspNetCore.SignalR.Tests/HubConnectionHandlerTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Tests/HubConnectionHandlerTests.cs @@ -800,7 +800,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests var result = await client.InvokeAsync(nameof(MethodHub.OnDisconnectedAsync)).OrTimeout(); - Assert.Equal("Unknown hub method 'OnDisconnectedAsync'", result.Error); + Assert.Equal("Failed to invoke 'OnDisconnectedAsync' due to an error on the server. HubException: Method does not exist.", result.Error); // kill the connection client.Dispose(); @@ -838,7 +838,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests var result = await client.InvokeAsync(nameof(MethodHub.StaticMethod)).OrTimeout(); - Assert.Equal("Unknown hub method 'StaticMethod'", result.Error); + Assert.Equal("Failed to invoke 'StaticMethod' due to an error on the server. HubException: Method does not exist.", result.Error); // kill the connection client.Dispose(); @@ -859,16 +859,16 @@ namespace Microsoft.AspNetCore.SignalR.Tests var connectionHandlerTask = await client.ConnectAsync(connectionHandler); var result = await client.InvokeAsync(nameof(MethodHub.ToString)).OrTimeout(); - Assert.Equal("Unknown hub method 'ToString'", result.Error); + Assert.Equal("Failed to invoke 'ToString' due to an error on the server. HubException: Method does not exist.", result.Error); result = await client.InvokeAsync(nameof(MethodHub.GetHashCode)).OrTimeout(); - Assert.Equal("Unknown hub method 'GetHashCode'", result.Error); + Assert.Equal("Failed to invoke 'GetHashCode' due to an error on the server. HubException: Method does not exist.", result.Error); result = await client.InvokeAsync(nameof(MethodHub.Equals)).OrTimeout(); - Assert.Equal("Unknown hub method 'Equals'", result.Error); + Assert.Equal("Failed to invoke 'Equals' due to an error on the server. HubException: Method does not exist.", result.Error); result = await client.InvokeAsync(nameof(MethodHub.ReferenceEquals)).OrTimeout(); - Assert.Equal("Unknown hub method 'ReferenceEquals'", result.Error); + Assert.Equal("Failed to invoke 'ReferenceEquals' due to an error on the server. HubException: Method does not exist.", result.Error); // kill the connection client.Dispose(); @@ -890,7 +890,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests var result = await client.InvokeAsync(nameof(MethodHub.Dispose)).OrTimeout(); - Assert.Equal("Unknown hub method 'Dispose'", result.Error); + Assert.Equal("Failed to invoke 'Dispose' due to an error on the server. HubException: Method does not exist.", result.Error); // kill the connection client.Dispose();