[ 
https://issues.apache.org/jira/browse/GEODE-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16095193#comment-16095193
 ] 

ASF GitHub Bot commented on GEODE-3213:
---------------------------------------

Github user WireBaron commented on a diff in the pull request:

    https://github.com/apache/geode/pull/646#discussion_r128600182
  
    --- Diff: 
geode-protobuf/src/main/java/org/apache/geode/protocol/protobuf/ProtobufOpsProcessor.java
 ---
    @@ -15,32 +15,35 @@
     package org.apache.geode.protocol.protobuf;
     
     import org.apache.geode.cache.Cache;
    -import org.apache.geode.protocol.exception.InvalidProtocolMessageException;
    -import org.apache.geode.protocol.operations.OperationHandler;
    -import 
org.apache.geode.protocol.operations.registry.OperationsHandlerRegistry;
    -import 
org.apache.geode.protocol.operations.registry.exception.OperationHandlerNotRegisteredException;
    +import org.apache.geode.protocol.operations.OperationContext;
    +import org.apache.geode.protocol.operations.Result;
    +import 
org.apache.geode.protocol.operations.registry.OperationContextRegistry;
     import org.apache.geode.serialization.SerializationService;
     
     /**
      * This handles protobuf requests by determining the operation type of the 
request and dispatching
      * it to the appropriate handler.
      */
     public class ProtobufOpsProcessor {
    -  private final OperationsHandlerRegistry opsHandlerRegistry;
    +
    +  private final OperationContextRegistry operationContextRegistry;
       private final SerializationService serializationService;
     
    -  public ProtobufOpsProcessor(OperationsHandlerRegistry opsHandlerRegistry,
    -      SerializationService serializationService) {
    -    this.opsHandlerRegistry = opsHandlerRegistry;
    +  public ProtobufOpsProcessor(SerializationService serializationService,
    +      OperationContextRegistry operationsContextRegistry) {
         this.serializationService = serializationService;
    +    this.operationContextRegistry = operationsContextRegistry;
       }
     
    -  public ClientProtocol.Response process(ClientProtocol.Request request, 
Cache cache)
    -      throws OperationHandlerNotRegisteredException, 
InvalidProtocolMessageException {
    +  public ClientProtocol.Response process(ClientProtocol.Request request, 
Cache cache) {
         ClientProtocol.Request.RequestAPICase requestType = 
request.getRequestAPICase();
    -    OperationHandler opsHandler =
    -        
opsHandlerRegistry.getOperationHandlerForOperationId(requestType.getNumber());
    +    OperationContext operationContext = 
operationContextRegistry.getOperationContext(requestType);
    --- End diff --
    
    How are we dealing with missing registry entries now that we're no longer 
throwing OperationNotRegisteredException?


> Refactor Protobuf Serialization Implemenation
> ---------------------------------------------
>
>                 Key: GEODE-3213
>                 URL: https://issues.apache.org/jira/browse/GEODE-3213
>             Project: Geode
>          Issue Type: Improvement
>          Components: client/server, serialization
>            Reporter: Udo Kohlmeyer
>
> In the Protobuf serialization implementation, there are some refactorings we 
> want to make:
> * OperationHandlers take OperationRequest and OperationResponse message, not 
> the parent Request/Response Object
> * A generic flow needs to be implemented that all OperationHandlers follow. 
> No bespoke flows for any OperationHandlers... way too much maintenance
> * Use Functional semantics to configure the functionality to extract 
> OperationRequest from Request (per OperationHandler)
> * Use Functional semantics to configure the functionality to populate 
> OperationResponse in the relevant Response
> * Have generic Error Handling framework to populate "known" errors and error 
> codes



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to