You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ignite.apache.org by GitBox <gi...@apache.org> on 2021/10/21 15:24:25 UTC

[GitHub] [ignite] xtern opened a new pull request #9510: IGNITE-15794 Implicit call attributes for java service.

xtern opened a new pull request #9510:
URL: https://github.com/apache/ignite/pull/9510


   Thank you for submitting the pull request to the Apache Ignite.
   
   In order to streamline the review of the contribution 
   we ask you to ensure the following steps have been taken:
   
   ### The Contribution Checklist
   - [ ] There is a single JIRA ticket related to the pull request. 
   - [ ] The web-link to the pull request is attached to the JIRA ticket.
   - [ ] The JIRA ticket has the _Patch Available_ state.
   - [ ] The pull request body describes changes that have been made. 
   The description explains _WHAT_ and _WHY_ was made instead of _HOW_.
   - [ ] The pull request title is treated as the final commit message. 
   The following pattern must be used: `IGNITE-XXXX Change summary` where `XXXX` - number of JIRA issue.
   - [ ] A reviewer has been mentioned through the JIRA comments 
   (see [the Maintainers list](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-ReviewProcessandMaintainers)) 
   - [ ] The pull request has been checked by the Teamcity Bot and 
   the `green visa` attached to the JIRA ticket (see [TC.Bot: Check PR](https://mtcga.gridgain.com/prs.html))
   
   ### Notes
   - [How to Contribute](https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute)
   - [Coding abbreviation rules](https://cwiki.apache.org/confluence/display/IGNITE/Abbreviation+Rules)
   - [Coding Guidelines](https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines)
   - [Apache Ignite Teamcity Bot](https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+Teamcity+Bot)
   
   If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com _#ignite_ channel.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] xtern commented on a change in pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
xtern commented on a change in pull request #9510:
URL: https://github.com/apache/ignite/pull/9510#discussion_r747582033



##########
File path: modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
##########
@@ -374,8 +376,34 @@ public IgniteServicesImpl(GridKernalContext ctx, ClusterGroupAdapter prj, boolea
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T serviceProxy(final String name, final Class<? super T> svcItf, final boolean sticky,
-        final long timeout) throws IgniteException {
+    @Override public <T> T serviceProxy(
+        final String name,
+        final Class<? super T> svcItf,
+        final boolean sticky,
+        final long timeout
+    ) throws IgniteException {
+        return (T) serviceProxy(name, svcItf, sticky, (Supplier<ServiceCallContext>)null, timeout);

Review comment:
       Done, thanks

##########
File path: modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
##########
@@ -374,8 +376,34 @@ public IgniteServicesImpl(GridKernalContext ctx, ClusterGroupAdapter prj, boolea
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T serviceProxy(final String name, final Class<? super T> svcItf, final boolean sticky,
-        final long timeout) throws IgniteException {
+    @Override public <T> T serviceProxy(
+        final String name,
+        final Class<? super T> svcItf,
+        final boolean sticky,
+        final long timeout
+    ) throws IgniteException {
+        return (T) serviceProxy(name, svcItf, sticky, (Supplier<ServiceCallContext>)null, timeout);
+    }
+
+    /** {@inheritDoc} */
+    @Override public <T> T serviceProxy(
+        final String name,
+        final Class<? super T> svcItf,
+        final boolean sticky,
+        @Nullable ServiceCallContext callCtx,
+        final long timeout
+    ) throws IgniteException {
+        return (T) serviceProxy(name, svcItf, sticky, callCtx != null ? callCtx::copy : null, timeout);

Review comment:
       Done, thanks




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] ivandasch commented on a change in pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
ivandasch commented on a change in pull request #9510:
URL: https://github.com/apache/ignite/pull/9510#discussion_r747271107



##########
File path: modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceCallContextImpl.java
##########
@@ -0,0 +1,100 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.service;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.ignite.internal.util.typedef.internal.A;
+import org.apache.ignite.services.ServiceCallContext;
+
+/**
+ * Service call context implementation.
+ */
+public class ServiceCallContextImpl implements ServiceCallContext {
+    /** Service call context attributes. */
+    private final Map<String, byte[]> attrs;
+
+    /**
+     * Default contructor.
+     */
+    public ServiceCallContextImpl() {
+        attrs = new HashMap<>();
+    }
+
+    /**
+     * Constructs an immutable context from the map.
+     *
+     * @param attrs Service call context attributes.
+     */
+    public ServiceCallContextImpl(Map<String, byte[]> attrs) {
+        this.attrs = Collections.unmodifiableMap(attrs);
+    }
+
+    /**
+     * Constructs an immutable context.
+     *
+     * @param callCtx Service call context.
+     */
+    public ServiceCallContextImpl(ServiceCallContext callCtx) {

Review comment:
       I suppose that it is a really bad idea.
   
   Suppose that someone pass another implementation of ServiceCallContext?
   
   Is it ok to fail in runtime in this case?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] ivandasch commented on a change in pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
ivandasch commented on a change in pull request #9510:
URL: https://github.com/apache/ignite/pull/9510#discussion_r747556931



##########
File path: modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
##########
@@ -374,8 +376,34 @@ public IgniteServicesImpl(GridKernalContext ctx, ClusterGroupAdapter prj, boolea
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T serviceProxy(final String name, final Class<? super T> svcItf, final boolean sticky,
-        final long timeout) throws IgniteException {
+    @Override public <T> T serviceProxy(
+        final String name,
+        final Class<? super T> svcItf,
+        final boolean sticky,
+        final long timeout
+    ) throws IgniteException {
+        return (T) serviceProxy(name, svcItf, sticky, (Supplier<ServiceCallContext>)null, timeout);
+    }
+
+    /** {@inheritDoc} */
+    @Override public <T> T serviceProxy(
+        final String name,
+        final Class<? super T> svcItf,
+        final boolean sticky,
+        @Nullable ServiceCallContext callCtx,
+        final long timeout
+    ) throws IgniteException {
+        return (T) serviceProxy(name, svcItf, sticky, callCtx != null ? callCtx::copy : null, timeout);

Review comment:
       And the same




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] ivandasch closed pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
ivandasch closed pull request #9510:
URL: https://github.com/apache/ignite/pull/9510


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] xtern commented on a change in pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
xtern commented on a change in pull request #9510:
URL: https://github.com/apache/ignite/pull/9510#discussion_r747582215



##########
File path: modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProxy.java
##########
@@ -113,14 +116,16 @@
      * @param svc Service type class.
      * @param sticky Whether multi-node request should be done.
      * @param timeout Service availability wait timeout. Cannot be negative.
+     * @param callCtxProvider Caller context provider.
      * @param ctx Context.
      */
     public GridServiceProxy(ClusterGroup prj,
         String name,
         Class<? super T> svc,
         boolean sticky,
         long timeout,
-        GridKernalContext ctx)
+        GridKernalContext ctx,
+        @Nullable Supplier<ServiceCallContext> callCtxProvider)

Review comment:
       Done, thanks




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] ivandasch commented on a change in pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
ivandasch commented on a change in pull request #9510:
URL: https://github.com/apache/ignite/pull/9510#discussion_r747557891



##########
File path: modules/core/src/main/java/org/apache/ignite/internal/processors/service/GridServiceProxy.java
##########
@@ -113,14 +116,16 @@
      * @param svc Service type class.
      * @param sticky Whether multi-node request should be done.
      * @param timeout Service availability wait timeout. Cannot be negative.
+     * @param callCtxProvider Caller context provider.
      * @param ctx Context.
      */
     public GridServiceProxy(ClusterGroup prj,
         String name,
         Class<? super T> svc,
         boolean sticky,
         long timeout,
-        GridKernalContext ctx)
+        GridKernalContext ctx,
+        @Nullable Supplier<ServiceCallContext> callCtxProvider)

Review comment:
       Please move bracket to new line




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [ignite] ivandasch commented on a change in pull request #9510: IGNITE-15794 Implicit call attributes for java service.

Posted by GitBox <gi...@apache.org>.
ivandasch commented on a change in pull request #9510:
URL: https://github.com/apache/ignite/pull/9510#discussion_r747556795



##########
File path: modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
##########
@@ -374,8 +376,34 @@ public IgniteServicesImpl(GridKernalContext ctx, ClusterGroupAdapter prj, boolea
     }
 
     /** {@inheritDoc} */
-    @Override public <T> T serviceProxy(final String name, final Class<? super T> svcItf, final boolean sticky,
-        final long timeout) throws IgniteException {
+    @Override public <T> T serviceProxy(
+        final String name,
+        final Class<? super T> svcItf,
+        final boolean sticky,
+        final long timeout
+    ) throws IgniteException {
+        return (T) serviceProxy(name, svcItf, sticky, (Supplier<ServiceCallContext>)null, timeout);

Review comment:
       Remove please extra space after cast




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@ignite.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org