Giter Site home page Giter Site logo

hazelcast-client-protocol's Introduction

Hazelcast Open Binary Client Protocol

Hazelcast Open Binary Client Protocol definitions and code generator for multiple programming languages.

Hazelcast Open Binary Client Protocol Definitions

The protocol is defined in protocol-definitions/*.yaml yaml files where each yaml file represents a service like Map, List, Set etc. Custom data types that are used in the protocol definitions are defined in protocol-definitions/custom/Custom.yaml.

Service definition

A service is defined by a separate YAML file, containing all its method definitions.

id: Service Id (0-255)
name: Service Name
methods:
  - id: METHOD-ID-1 (1-255)
    name: METHOD-NAME-1
    ...
  - id: METHOD-ID-2 (1-255)
    name: METHOD-NAME-2
    ...

A method(aka Remote method call) is defined by a request-response pair and an optional events section.

A basic method structure example:

  - id: METHOD-ID-1 (1-255)
    name: METHOD-NAME-1
    since: 2.0
    doc: |
       Documentation of the method call
    request:
      retryable: false
      partitionIdentifier: None
      params:
        - name: parameter1
          type: String
          nullable: false
          since: 2.0
          doc: |
             Documentation of the parameter 1
        - name: parameter1
          type: Data
          nullable: false
          since: 2.0
          doc: |
             Documentation of the parameter 2
    response:
      params:
        - name: response parameter 1
          type: Data
          nullable: true
          since: 2.0
          doc: |
             the response parameter 1

    #Optional events section
    events: 
      - name: Event-1
        params:
          - name: event-param-1
            type: Data
            nullable: true
            since: 2.0
            doc: |
              Documentation of the event parameter 1
          - name: value
            type: Data
            nullable: true
            since: 2.0
            doc: |
              Documentation of the event parameter 2

Please refer to schema for details of a service definition.

Code Generator

The new protocol generator generates the related language codecs into the configured folder. It does not depend on Hazelcast repo.

Setup

You need to have python3 configured on your PATH. After cloning the repository, install the python library dependencies:

pip3 install -r requirements.txt

Code Generation

You can generate codecs for a specific language by calling:

./generator.py [-r ROOT_DIRECTORY] [-l LANGUAGE] [-p PROTOCOL_DEFS_PATH] [-o OUTPUT_DIRECTORY] [-n NAMESPACE] [-b BINARY_OUTPUT_DIR] [-t TEST_OUTPUT_DIR] [--no-binary] [--no-id-check]

where

  • ROOT_DIRECTORY is the root folder for the generated codecs. If left empty, default value is set to ./output/[LANGUAGE].

  • LANGUAGE is one of

    • java : Java
    • cpp : C++
    • cs : C#
    • py : Python
    • ts : TypeScript
    • md : Markdown (Documentation)

java is the default value if no language is specified.

  • PROTOCOL_DEFS_PATH is the directory containing the yaml definitions of the protocol. If left empty, this value is defaulted to the ./protocol-definitions. If the protocol definitions on the custom directory use some custom types, a YAML file named Custom.yaml must be put inside the PROTOCOL_DEFS_PATH/custom directory. For the details of the custom type definition, see the Custom Types section.

  • OUTPUT_DIRECTORY is the output directory for the generated codecs relative to the ROOT_DIRECTORY. If left empty, this is inferred from the selected LANGUAGE. Default values are chosen according to the directories used by the Hazelcast clients.

  • NAMESPACE is the namespace for the generated codecs. If left empty, default value is inferred from the selected LANGUAGE.

  • BINARY_OUTPUT_DIR is the output directory relative to the ROOT_DIRECTORY that is used for the binary files for the binary compatibility tests. When left empty, default value is inferred from the selected LANGUAGE.

  • TEST_OUTPUT_DIR is the output directory relative to the ROOT_DIRECTORY that is used for the test files for the binary compatibility tests. Default value is inferred from the selected LANGUAGE.

  • --no-binary flag restrains the generator from creating binary and test files for the binary compatibility tests.

  • --no-id-check flag restrains the generator from checking sequentially of service and method ids of protocol definitions.

If you want to generate the Java codecs into your development repo, and let's assume your local Hazelcast git repo is at ~/git/hazelcast/ then you can run the following command:

./generator.py -r ~/git/hazelcast/

This command generates the codecs at the ROOT_DIRECTORY/OUTPUT_DIRECTORY which is ~/git/hazelcast/hazelcast/src/main/java/com/hazelcast/client/impl/protocol/codec/. See that the OUTPUT_DIRECTORY is inferred from the language, namely hazelcast/src/main/java/com/hazelcast/client/impl/protocol/codec/ for java.

If you want to specify an output directory relative to the root directory, you can run the following command:

./generator.py -r ~/git/hazelcast/ -o custom/out 

This command will generate the codecs at the ~/git/hazelcast/custom/out.

Schema Validation

The protocol definitions should validate against the schema. You can configure your IDE to use this schema to validate and provide auto code completion.

The generator also uses this schema during the code generation for validation purposes. It stops and reports any schema violation to the console.

Custom Types

If you are going to use a custom type,i.e., a complex type that is not defined in the currently supported types, as the type of your parameters in the protocol definitions, you need to define how to encode and decode this in the protocol level.

A custom type definition has the following structure:

customTypes:
    - name: CustomType1
      since: 2.0
      returnWithFactory: true # optional
      params:
        - name: paramName1
          type: boolean
          nullable: false
          since: 2.0
        - name: paramName2
          type: String
          nullable: true
          since: 2.0

With this definition, the code generator generates a custom codec for your type and calls its encode/decode methods when encoding/decoding the parameters with this custom type. There are a few points to consider as described below.

The codec for the custom type accesses the parameters defined in params using a predefined getter pattern in its encode method. These patterns are specific to each LANGUAGE.

For example, for the java, if the parameter is a boolean it is accessed as customType1.isParamName1(). For other types customType1.getParamName2() pattern is used. So, make sure that your custom type satisfies this getter contract.

For the decode method of the custom type codec, there are two ways to generate an instance of the custom type. Default way is constructing the object using a constructor with parameters defined in the params in the order of their definition. For example, by default the instance of CustomType1 is created with the new CustomType1(paramName1, paramName2) expression.

If the custom type does not have a public constructor that takes the defined parameters in the order of their definition, then you need to write a factory method to generate the object from these parameters. To use a factory method as a way to create the custom type, you should set the returnWithFactory option to true.

Then, depending on the selected LANGUAGE, a custom factory method is called to create the object.

For example, for java, CustomTypeFactory.createCustomType1(paramName1, paramName2) method is called. You need to add the CustomType1 createCustomType1(boolean paramName1, String paramName2) method to the CustomTypeFactory class on the Hazelcast side.

For the parameters of the custom type definition, an extra step is required for the enum types. Enums are represented as integers in the protocol level. So, you need to specify the type as int in the protocol definition and add an encodeInt method to the FixedSizeTypesCodec for the enum type that performs the conversion if the enums are not represented by integers in the language you try to generate codecs for. Also, you need to set returnWithFactory to true and add a factory method as described above if the conversion from enum type to int is required. In the factory method, you will receive an integer for the enum and be expected to convert it to your enum type and construct the object with it.

Custom type definitions are also validated against a schema. See the Schema Validation section for details of the validation.

Expanding the Client Protocol

Client protocol can be expanded by adding new

  • services
  • methods
  • parameters to existing method requests, responses or events
  • events to existing methods
  • custom types
  • parameters to existing custom types

While expanding the protocol, one needs to follow these simple guidelines:

  • since field of the protocol definitions of the newly added parameters, methods, events and custom types should be equal to the current protocol version.
  • New services should have the id of the 1 + the highest id of the existing services.
  • New methods should come after the existing methods on the protocol definitions and have the id of the 1 + the id of the method that comes before it.
  • New request, response or event parameters should come after the existing parameters on the protocol definitions and they should be in the increasing order of the protocol versions that is 2.1 parameters should follow 2.0.1 parameters which should follow 2.0 parameters.
  • New parameters to custom types should come after the existing parameters on the protocol definitions and they should be in the increasing order of protocol versions as described above.
  • Although not necessary, new events or custom types should come after the existing custom types or events on the protocol definitions.
  • Note that for parameters of fixed size types (see FixSizedTypes in currently supported types) nullable property is ignored. UUID is always nullable while other fixed size types (boolean, byte, int, long) cannot be made nullable.

An example quick guide for many of the steps involved with using custom types is here.

hazelcast-client-protocol's People

Contributors

ahmetmircik avatar asimarslan avatar devopshazelcast avatar devozerov avatar donnerbart avatar emre-aydin avatar emreyigit avatar frant-hartm avatar gbarnett-hz avatar ihsandemir avatar ivanthescientist avatar jackpgreen avatar jameshazelcast avatar jerrinot avatar k-jamroz avatar kwart avatar mdogan avatar mdumandag avatar metanet avatar mmedenjak avatar mustafaiman avatar orcunc avatar peterjot avatar puzpuzpuz avatar saittalhanisanci avatar srknzl avatar tkountis avatar vbekiaris avatar viliam-durina avatar zpqrtbnk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hazelcast-client-protocol's Issues

Namespace is not used in Java codec templates

Java codec templates use the -n (namespace) parameter on generator only when declaring the package name for codec classes. Custom codecs are re-generated in each run as well, but their package name is hard coded and the import statement in regular codecs are also hardcoded.

Go codecs known bugs

Known bugs:

  • Id should be changed to ID
  • map project codec has a missing readBool condition check.
  • client_getpartitions.go declaration of a variable is missing.

./generator.py -l md fails to generate the documentation

The documentation generator were broken at this commit. It seems to be missing mapping in the functions.

➜  hazelcast-client-protocol git:(master) ./generator.py -l md
Hazelcast Client Binary Protocol version 2.6
Traceback (most recent call last):
  File "/Users/ihsan/Desktop/work/src/hazelcast-client-protocol/./generator.py", line 164, in <module>
    env = create_environment(lang, args.namespace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ihsan/Desktop/work/src/hazelcast-client-protocol/util.py", line 700, in create_environment
    for fn_name, fn in language_specific_funcs[lang].items():
                       ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
KeyError: <SupportedLanguages.MD: 'md'>
➜

Rename response parameters

As the response parameters were shared in protocol 1.x, the response parameters does not have descriptive names but they have just generic names like reponse.

We need to update them with proper names.

Some types are lacking a description

Generate the markdown documentation with mvn -Dhazelcast.generator.md=true clean install and inspect the generated document under hazelcast/target/generated-sources/annotations/document. There are several Unknown Data Types, eg:

| Name| Type| Nullable| Description|Available since|
|-----|-----|---------|------------|-----|
|classDefinitions| Unknown Data Type java.util.List<java.util.Map.Entry<java.lang.String,byte[]>>| No|list of class definitions|1.5|

...

|partitionUuid| Unknown Data Type java.util.UUID| No||1.4|

...

|partitionUuids| Unknown Data Type java.util.List<java.util.UUID>| No||1.4|

Document custom types, holder pattern and binary compatibility test process

For hazelcast/hazelcast#25223 there were a number of scenarios encountered that had no documentation:

  • When using types specific to a target language you need to create holder types as an intermediate representation from the protocol types
  • Placement of custom types and their mappings in various places
  • Binary compatibility tests and how they relate to other projects, e.g. ReferenceObjects.java in Hazelcast OS project
  • Implied assumptions of generated tests on the domain types

VOID response type can be replaced with empty generated method.

Instead of

    public static XCodec.ResponseParameters decodeResponse(ClientMessage clientMessage) {
        ClientMessage.ForwardFrameIterator iterator = clientMessage.frameIterator();
        ResponseParameters response = new ResponseParameters();
        //empty initial frame
        iterator.next();
        return response;
    }

we can just leave this method empty or even not generate the method.

Maven clean fails on master branch

Calling mvn clean finishes with BUILD FAILURE on master branch.

I'm able to successfully build the project with mvn install or mvn clean install, but simple cleaning fails in the hazelcast-client-protocol module:

$ mvn -version
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T21:39:06+02:00)
Maven home: /home/kwart/tools/maven
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: cs_CZ, platform encoding: UTF-8
OS name: "linux", version: "4.10.0-38-generic", arch: "amd64", family: "unix"
$ mvn clean
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] Hazelcast Client Protocol
[INFO] hazelcast-code-generator
[INFO] hazelcast-client-protocol
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Building Hazelcast Client Protocol 1.5.0-9
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hazelcast-client-protocol-root ---
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Building hazelcast-code-generator 1.5.0-9
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hazelcast-code-generator ---
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Building hazelcast-client-protocol 1.5.0-9
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Hazelcast Client Protocol .......................... SUCCESS [  0.187 s]
[INFO] hazelcast-code-generator ........................... SUCCESS [  0.003 s]
[INFO] hazelcast-client-protocol .......................... FAILURE [  0.095 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.432 s
[INFO] Finished at: 2017-11-10T08:18:46+01:00
[INFO] Final Memory: 8M/150M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project hazelcast-client-protocol: Could not resolve dependencies for project com.hazelcast:hazelcast-client-protocol:jar:1.5.0-9: Failure to find com.hazelcast:hazelcast-code-generator:jar:1.5.0-9 in https://oss.sonatype.org/content/repositories/snapshots was cached in the local repository, resolution will not be reattempted until the update interval of snapshot-repository has elapsed or updates are forced -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hazelcast-client-protocol

No longer able to compile version 1.0.0

Hi,

when I try to compile version 1.0.0 of the client protocol (to use it with Hazelcast version 3.6), the build fails.

Here are my steps:
$ git clone https://github.com/hazelcast/hazelcast-client-protocol.git hazelcast-client-protocol
$ cd hazelcast-client-protocol/
$ git checkout release
$ mvn clean compile

and the error I get is:

[INFO] ------------------------------------------------------------------------
[INFO] Building hazelcast-client-protocol 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hazelcast-client-protocol ---
[INFO]
[INFO] --- exec-maven-plugin:1.3.2:exec (Clean Downloaded Hazelcast Zip) @ hazelcast-client-protocol ---
rm: cannot remove 'removeCodeGeneratorModule.zip*': No such file or directory
[INFO]
[INFO] --- exec-maven-plugin:1.3.2:exec (Download Hazelcast Zip) @ hazelcast-client-protocol ---
unzip: cannot find or open removeCodeGeneratorModule.zip, removeCodeGeneratorModule.zip.zip or removeCodeGeneratorModule.zip.ZIP.
cp: cannot stat './hazelcast-removeCodeGeneratorModule/hazelcast/src/main': No such file or directory

could the build be fixed such that version 1.0.0 can be built again?

Thanks and best,
Lukas

Build problem

hi
i get :

[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ hazelcast-client-protocol ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3019 source files to /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/target/classes
java.lang.annotation.AnnotationTypeMismatchException: Incorrectly typed data found for annotation element public abstract int com.hazelcast.annotation.EventResponse.value() (Found data of type EventMessageConst)
        at com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor$1AnnotationTypeMismatchExceptionProxy.generateException(AnnotationProxyMaker.java:269)
        at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:84)
        at com.sun.proxy.$Proxy36.value(Unknown Source)
        at com.hazelcast.client.protocol.generator.CodecCodeGenerator.register(CodecCodeGenerator.java:299)
        at com.hazelcast.client.protocol.generator.CodecCodeGenerator.process(CodecCodeGenerator.java:210)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
        at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
        at com.sun.tools.javac.main.Main.compile(Main.java:523)
        at com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:129)
        at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:138)
        at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:125)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:171)
        at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:886)
        at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[INFO] -------------------------------------------------------------
[WARNING] COMPILATION WARNING : 
[INFO] -------------------------------------------------------------
[WARNING] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/nio/UnsafeHelper.java:[23,16] sun.misc.Unsafe is internal proprietary API and may be removed in a future release
[WARNING] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/internal/memory/impl/UnsafeUtil.java:[22,16] sun.misc.Unsafe is internal proprietary API and may be removed in a future release
[WARNING] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/nio/UnsafeHelper.java:[23,16] sun.misc.Unsafe is internal proprietary API and may be removed in a future release
[WARNING] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/internal/memory/impl/UnsafeUtil.java:[22,16] sun.misc.Unsafe is internal proprietary API and may be removed in a future release
[INFO] 4 warnings 
[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceApplyMessageTask.java:[20,48] cannot find symbol
  symbol:   class AtomicReferenceApplyCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceApplyMessageTask.java:[34,71] package AtomicReferenceApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceApplyMessageTask.java:[47,40] package AtomicReferenceApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFetchEntriesMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapFetchEntriesCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFetchEntriesMessageTask.java:[33,101] package MapFetchEntriesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFetchEntriesMessageTask.java:[45,35] package MapFetchEntriesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapContainsValueMessageTask.java:[20,48] cannot find symbol
  symbol:   class ReplicatedMapContainsValueCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapContainsValueMessageTask.java:[33,77] package ReplicatedMapContainsValueCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapContainsValueMessageTask.java:[45,46] package ReplicatedMapContainsValueCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapSizeMessageTask.java:[20,48] cannot find symbol
  symbol:   class ReplicatedMapSizeCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapSizeMessageTask.java:[33,68] package ReplicatedMapSizeCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapSizeMessageTask.java:[45,37] package ReplicatedMapSizeCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapPutTransientMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapPutTransientCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapPutTransientMessageTask.java:[30,63] package MapPutTransientCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapPutTransientMessageTask.java:[46,35] package MapPutTransientCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFlushMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapFlushCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFlushMessageTask.java:[38,58] package MapFlushCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFlushMessageTask.java:[60,28] package MapFlushCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapValuesMessageTask.java:[20,48] cannot find symbol
  symbol:   class MultiMapValuesCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapValuesMessageTask.java:[44,69] package MultiMapValuesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapValuesMessageTask.java:[75,34] package MultiMapValuesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerWithPredicateMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapAddEntryListenerWithPredicateCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerWithPredicateMessageTask.java:[30,93] package MapAddEntryListenerWithPredicateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerWithPredicateMessageTask.java:[54,52] package MapAddEntryListenerWithPredicateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapReplaceIfSameMessageTask.java:[20,48] cannot find symbol
  symbol:   class TransactionalMapReplaceIfSameCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapReplaceIfSameMessageTask.java:[33,84] package TransactionalMapReplaceIfSameCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapReplaceIfSameMessageTask.java:[52,49] package TransactionalMapReplaceIfSameCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapSetMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapSetCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapSetMessageTask.java:[30,54] package MapSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapSetMessageTask.java:[46,26] package MapSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/set/SetIsEmptyMessageTask.java:[20,48] cannot find symbol
  symbol:   class SetIsEmptyCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/set/SetIsEmptyMessageTask.java:[36,61] package SetIsEmptyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/set/SetIsEmptyMessageTask.java:[48,30] package SetIsEmptyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapTryLockMessageTask.java:[20,48] cannot find symbol
  symbol:   class MultiMapTryLockCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapTryLockMessageTask.java:[40,66] package MultiMapTryLockCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapTryLockMessageTask.java:[54,35] package MultiMapTryLockCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/cardinality/CardinalityEstimatorAddMessageTask.java:[22,48] cannot find symbol
  symbol:   class CardinalityEstimatorAddCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/cardinality/CardinalityEstimatorAddMessageTask.java:[33,74] package CardinalityEstimatorAddCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/cardinality/CardinalityEstimatorAddMessageTask.java:[45,43] package CardinalityEstimatorAddCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapRemoveMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapRemoveCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapRemoveMessageTask.java:[34,63] package MapRemoveCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapRemoveMessageTask.java:[67,29] package MapRemoveCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongApplyMessageTask.java:[20,48] cannot find symbol
  symbol:   class AtomicLongApplyCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongApplyMessageTask.java:[34,66] package AtomicLongApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongApplyMessageTask.java:[48,35] package AtomicLongApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/list/ListRemoveListenerMessageTask.java:[20,48] cannot find symbol
  symbol:   class ListRemoveListenerCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/list/ListRemoveListenerMessageTask.java:[36,74] package ListRemoveListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/list/ListRemoveListenerMessageTask.java:[54,38] package ListRemoveListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerToKeyMessageTask.java:[21,48] cannot find symbol
  symbol:   class MapAddEntryListenerToKeyCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerToKeyMessageTask.java:[30,85] package MapAddEntryListenerToKeyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerToKeyMessageTask.java:[37,44] package MapAddEntryListenerToKeyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionSignalMessageTask.java:[20,48] cannot find symbol
  symbol:   class ConditionSignalCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionSignalMessageTask.java:[35,66] package ConditionSignalCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionSignalMessageTask.java:[49,35] package ConditionSignalCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapRemoveEntryListenerMessageTask.java:[20,48] cannot find symbol
  symbol:   class MultiMapRemoveEntryListenerCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapRemoveEntryListenerMessageTask.java:[35,83] package MultiMapRemoveEntryListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapRemoveEntryListenerMessageTask.java:[53,47] package MultiMapRemoveEntryListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionAwaitMessageTask.java:[20,48] cannot find symbol
  symbol:   class ConditionAwaitCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionAwaitMessageTask.java:[36,65] package ConditionAwaitCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionAwaitMessageTask.java:[51,34] package ConditionAwaitCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/lock/LockIsLockedMessageTask.java:[20,48] cannot find symbol
  symbol:   class LockIsLockedCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/lock/LockIsLockedMessageTask.java:[35,63] package LockIsLockedCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/lock/LockIsLockedMessageTask.java:[48,32] package LockIsLockedCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/src/main/java/com/hazelcast/client/impl/protocol/template/ConditionCodecTemplate.java:[22,42] cannot find symbol
  symbol:   class ResponseMessageConst
  location: package com.hazelcast.client.impl.protocol
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapEvictMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapEvictCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapEvictMessageTask.java:[33,62] package MapEvictCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapEvictMessageTask.java:[48,28] package MapEvictCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongGetAndSetMessageTask.java:[20,48] cannot find symbol
  symbol:   class AtomicLongGetAndSetCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongGetAndSetMessageTask.java:[33,70] package AtomicLongGetAndSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongGetAndSetMessageTask.java:[45,39] package AtomicLongGetAndSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapReplaceMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapReplaceCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapReplaceMessageTask.java:[28,58] package MapReplaceCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapReplaceMessageTask.java:[42,30] package MapReplaceCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapGetForUpdateMessageTask.java:[20,48] cannot find symbol
  symbol:   class TransactionalMapGetForUpdateCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapGetForUpdateMessageTask.java:[33,83] package TransactionalMapGetForUpdateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapGetForUpdateMessageTask.java:[53,48] package TransactionalMapGetForUpdateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalqueue/TransactionalQueuePollMessageTask.java:[20,48] cannot find symbol
  symbol:   class TransactionalQueuePollCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalqueue/TransactionalQueuePollMessageTask.java:[34,77] package TransactionalQueuePollCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalqueue/TransactionalQueuePollMessageTask.java:[54,42] package TransactionalQueuePollCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceSetAndGetMessageTask.java:[20,48] cannot find symbol
  symbol:   class AtomicReferenceSetAndGetCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceSetAndGetMessageTask.java:[34,75] package AtomicReferenceSetAndGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceSetAndGetMessageTask.java:[46,44] package AtomicReferenceSetAndGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapExecuteOnKeysMessageTask.java:[20,48] cannot find symbol
  symbol:   class MapExecuteOnKeysCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapExecuteOnKeysMessageTask.java:[44,72] package MapExecuteOnKeysCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapExecuteOnKeysMessageTask.java:[86,36] package MapExecuteOnKeysCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetAndAlterMessageTask.java:[20,48] cannot find symbol
  symbol:   class AtomicReferenceGetAndAlterCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetAndAlterMessageTask.java:[33,77] package AtomicReferenceGetAndAlterCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetAndAlterMessageTask.java:[45,46] package AtomicReferenceGetAndAlterCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapContainsEntryMessageTask.java:[20,48] cannot find symbol
  symbol:   class MultiMapContainsEntryCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapContainsEntryMessageTask.java:[37,72] package MultiMapContainsEntryCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapContainsEntryMessageTask.java:[56,41] package MultiMapContainsEntryCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/src/main/java/com/hazelcast/client/impl/protocol/template/TransactionalQueueCodecTemplate.java:[21,42] cannot find symbol
  symbol:   class ResponseMessageConst
  location: package com.hazelcast.client.impl.protocol
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetMessageTask.java:[20,48] cannot find symbol
  symbol:   class AtomicReferenceGetCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetMessageTask.java:[34,69] package AtomicReferenceGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetMessageTask.java:[46,38] package AtomicReferenceGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/CreateProxyMessageTask.java:[20,48] cannot find symbol
  symbol:   class ClientCreateProxyCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/CreateProxyMessageTask.java:[33,97] package ClientCreateProxyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/CreateProxyMessageTask.java:[51,37] package ClientCreateProxyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapContainsKeyMessageTask.java:[20,48] cannot find symbol
  symbol:   class TransactionalMapContainsKeyCodec
  location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapContainsKeyMessageTask.java:[33,82] package TransactionalMapContainsKeyCodec does not exist
[INFO] 100 errors 
[INFO] -------------------------------------------------------------
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Skipping Hazelcast Client Protocol
[INFO] This project has been banned from the build due to previous failures.
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Hazelcast Client Protocol .......................... SUCCESS [  0.600 s]
[INFO] hazelcast-code-generator ........................... SUCCESS [  2.461 s]
[INFO] hazelcast-client-protocol .......................... FAILURE [  7.851 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.109 s
[INFO] Finished at: 2016-11-04T14:27:34+01:00
[INFO] Final Memory: 30M/342M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project hazelcast-client-protocol: Compilation failure: Compilation failure:
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceApplyMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class AtomicReferenceApplyCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceApplyMessageTask.java:[34,71] package AtomicReferenceApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceApplyMessageTask.java:[47,40] package AtomicReferenceApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFetchEntriesMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapFetchEntriesCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFetchEntriesMessageTask.java:[33,101] package MapFetchEntriesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFetchEntriesMessageTask.java:[45,35] package MapFetchEntriesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapContainsValueMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class ReplicatedMapContainsValueCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapContainsValueMessageTask.java:[33,77] package ReplicatedMapContainsValueCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapContainsValueMessageTask.java:[45,46] package ReplicatedMapContainsValueCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapSizeMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class ReplicatedMapSizeCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapSizeMessageTask.java:[33,68] package ReplicatedMapSizeCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/replicatedmap/ReplicatedMapSizeMessageTask.java:[45,37] package ReplicatedMapSizeCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapPutTransientMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapPutTransientCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapPutTransientMessageTask.java:[30,63] package MapPutTransientCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapPutTransientMessageTask.java:[46,35] package MapPutTransientCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFlushMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapFlushCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFlushMessageTask.java:[38,58] package MapFlushCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapFlushMessageTask.java:[60,28] package MapFlushCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapValuesMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MultiMapValuesCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapValuesMessageTask.java:[44,69] package MultiMapValuesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapValuesMessageTask.java:[75,34] package MultiMapValuesCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerWithPredicateMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapAddEntryListenerWithPredicateCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerWithPredicateMessageTask.java:[30,93] package MapAddEntryListenerWithPredicateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerWithPredicateMessageTask.java:[54,52] package MapAddEntryListenerWithPredicateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapReplaceIfSameMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class TransactionalMapReplaceIfSameCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapReplaceIfSameMessageTask.java:[33,84] package TransactionalMapReplaceIfSameCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapReplaceIfSameMessageTask.java:[52,49] package TransactionalMapReplaceIfSameCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapSetMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapSetCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapSetMessageTask.java:[30,54] package MapSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapSetMessageTask.java:[46,26] package MapSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/set/SetIsEmptyMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class SetIsEmptyCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/set/SetIsEmptyMessageTask.java:[36,61] package SetIsEmptyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/set/SetIsEmptyMessageTask.java:[48,30] package SetIsEmptyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapTryLockMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MultiMapTryLockCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapTryLockMessageTask.java:[40,66] package MultiMapTryLockCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapTryLockMessageTask.java:[54,35] package MultiMapTryLockCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/cardinality/CardinalityEstimatorAddMessageTask.java:[22,48] cannot find symbol
[ERROR] symbol:   class CardinalityEstimatorAddCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/cardinality/CardinalityEstimatorAddMessageTask.java:[33,74] package CardinalityEstimatorAddCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/cardinality/CardinalityEstimatorAddMessageTask.java:[45,43] package CardinalityEstimatorAddCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapRemoveMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapRemoveCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapRemoveMessageTask.java:[34,63] package MapRemoveCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapRemoveMessageTask.java:[67,29] package MapRemoveCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongApplyMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class AtomicLongApplyCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongApplyMessageTask.java:[34,66] package AtomicLongApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongApplyMessageTask.java:[48,35] package AtomicLongApplyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/list/ListRemoveListenerMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class ListRemoveListenerCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/list/ListRemoveListenerMessageTask.java:[36,74] package ListRemoveListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/list/ListRemoveListenerMessageTask.java:[54,38] package ListRemoveListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerToKeyMessageTask.java:[21,48] cannot find symbol
[ERROR] symbol:   class MapAddEntryListenerToKeyCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerToKeyMessageTask.java:[30,85] package MapAddEntryListenerToKeyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapAddEntryListenerToKeyMessageTask.java:[37,44] package MapAddEntryListenerToKeyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionSignalMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class ConditionSignalCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionSignalMessageTask.java:[35,66] package ConditionSignalCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionSignalMessageTask.java:[49,35] package ConditionSignalCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapRemoveEntryListenerMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MultiMapRemoveEntryListenerCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapRemoveEntryListenerMessageTask.java:[35,83] package MultiMapRemoveEntryListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapRemoveEntryListenerMessageTask.java:[53,47] package MultiMapRemoveEntryListenerCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionAwaitMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class ConditionAwaitCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionAwaitMessageTask.java:[36,65] package ConditionAwaitCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/condition/ConditionAwaitMessageTask.java:[51,34] package ConditionAwaitCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/lock/LockIsLockedMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class LockIsLockedCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/lock/LockIsLockedMessageTask.java:[35,63] package LockIsLockedCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/lock/LockIsLockedMessageTask.java:[48,32] package LockIsLockedCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/src/main/java/com/hazelcast/client/impl/protocol/template/ConditionCodecTemplate.java:[22,42] cannot find symbol
[ERROR] symbol:   class ResponseMessageConst
[ERROR] location: package com.hazelcast.client.impl.protocol
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapEvictMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapEvictCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapEvictMessageTask.java:[33,62] package MapEvictCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapEvictMessageTask.java:[48,28] package MapEvictCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongGetAndSetMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class AtomicLongGetAndSetCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongGetAndSetMessageTask.java:[33,70] package AtomicLongGetAndSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomiclong/AtomicLongGetAndSetMessageTask.java:[45,39] package AtomicLongGetAndSetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapReplaceMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapReplaceCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapReplaceMessageTask.java:[28,58] package MapReplaceCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapReplaceMessageTask.java:[42,30] package MapReplaceCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapGetForUpdateMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class TransactionalMapGetForUpdateCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapGetForUpdateMessageTask.java:[33,83] package TransactionalMapGetForUpdateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapGetForUpdateMessageTask.java:[53,48] package TransactionalMapGetForUpdateCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalqueue/TransactionalQueuePollMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class TransactionalQueuePollCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalqueue/TransactionalQueuePollMessageTask.java:[34,77] package TransactionalQueuePollCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalqueue/TransactionalQueuePollMessageTask.java:[54,42] package TransactionalQueuePollCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceSetAndGetMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class AtomicReferenceSetAndGetCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceSetAndGetMessageTask.java:[34,75] package AtomicReferenceSetAndGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceSetAndGetMessageTask.java:[46,44] package AtomicReferenceSetAndGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapExecuteOnKeysMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MapExecuteOnKeysCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapExecuteOnKeysMessageTask.java:[44,72] package MapExecuteOnKeysCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/map/MapExecuteOnKeysMessageTask.java:[86,36] package MapExecuteOnKeysCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetAndAlterMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class AtomicReferenceGetAndAlterCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetAndAlterMessageTask.java:[33,77] package AtomicReferenceGetAndAlterCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetAndAlterMessageTask.java:[45,46] package AtomicReferenceGetAndAlterCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapContainsEntryMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class MultiMapContainsEntryCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapContainsEntryMessageTask.java:[37,72] package MultiMapContainsEntryCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/multimap/MultiMapContainsEntryMessageTask.java:[56,41] package MultiMapContainsEntryCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/src/main/java/com/hazelcast/client/impl/protocol/template/TransactionalQueueCodecTemplate.java:[21,42] cannot find symbol
[ERROR] symbol:   class ResponseMessageConst
[ERROR] location: package com.hazelcast.client.impl.protocol
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class AtomicReferenceGetCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetMessageTask.java:[34,69] package AtomicReferenceGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/atomicreference/AtomicReferenceGetMessageTask.java:[46,38] package AtomicReferenceGetCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/CreateProxyMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class ClientCreateProxyCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/CreateProxyMessageTask.java:[33,97] package ClientCreateProxyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/CreateProxyMessageTask.java:[51,37] package ClientCreateProxyCodec does not exist
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapContainsKeyMessageTask.java:[20,48] cannot find symbol
[ERROR] symbol:   class TransactionalMapContainsKeyCodec
[ERROR] location: package com.hazelcast.client.impl.protocol.codec
[ERROR] /home/gil/rpmbuild/BUILD/hazelcast-client-protocol-1.2.0/hazelcast/downloaded/java/com/hazelcast/client/impl/protocol/task/transactionalmap/TransactionalMapContainsKeyMessageTask.java:[33,82] package TransactionalMapContainsKeyCodec does not exist
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hazelcast-client-protocol

any ideas?
Used:
Apache Maven 3.3.9 (NON-CANONICAL_2016-04-07T23:15:34Z_mockbuild; 2016-04-08T01:15:34+02:00)
Maven home: /usr/share/maven
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b16.fc24.i386/jre
Default locale: it_IT, platform encoding: UTF-8
OS name: "linux", version: "4.8.4-200.fc24.i686", arch: "i386", family: "unix"

thanks in advance
regards

Fix Maven versioning schema

Currently the hazelcast-client-protocol artifact versioning uses schema:

  • 1.8.0-1 - first milestone
  • 1.8.0-2
  • ...
  • 1.8.0-N
  • 1.8.0 - GA

It causes problems in Maven central search and in POM dependencies defined as intervals because 1.8.0 < 1.8.0-integer for whatever integer value.

The comparison algorithm is described in https://github.com/apendragon/Java-Maven-Artifact-Version/wiki/Full-Maven-artifact-versions-comparison-algo-description

I suggest using naming with the beta or milestone included:

  • 1.8.0-beta1
  • 1.8.0-beta2
  • ...
  • 1.8.0-betaN
  • 1.8.0

See also hazelcast/DevOps#120.

Missing documentation for the custom type parameters

We don't have documentation for the parameters of custom types.

It would be good to have them since we are not able to provide a documentation
for them in the auto-generated document.

After that, we should also update the markdown template.

Support `Collection` types

List_ types are explicitly supported in util.py, where:

  • type_contains_serialized_data function returns whether the extracted type contains serialized data
  • item_type function returns a transformed version of the extracted type
  • is_var_sized_list function returns if it it's a list and not in FixSizedListTypes

Collection has no such support, and when a Collection_Something type is used, the following is logged:
Binary compatibility tests cannot be generated. Error: 'NoneType' object is not callable

handle language specific keywords in the protocol definitions

There are some occurrences of language specific keywords in the protocol definitions. These should be handled. For example using function as the request parameter name in the AtomicReference#apply results in compilation errors for the codec generated for the node.js client

client protocol does not compile

mvn clean compile fails with

java.lang.annotation.AnnotationTypeMismatchException: Incorrectly typed data found for annotation element public abstract int com.hazelcast.annotation.Response.value() (Found data of type <any>)
    at com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor$1AnnotationTypeMismatchExceptionProxy.generateException(AnnotationProxyMaker.java:269)
    at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:84)
    at com.sun.proxy.$Proxy29.value(Unknown Source)
    at com.hazelcast.client.protocol.generator.CodecCodeGenerator.register(CodecCodeGenerator.java:248)
    at com.hazelcast.client.protocol.generator.CodecCodeGenerator.process(CodecCodeGenerator.java:169)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
    at com.sun.tools.javac.main.Main.compile(Main.java:523)
    at com.sun.tools.javac.main.Main.compile(Main.java:381)
    at com.sun.tools.javac.main.Main.compile(Main.java:370)
    at com.sun.tools.javac.main.Main.compile(Main.java:361)
    at com.sun.tools.javac.Main.compile(Main.java:74)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess0(JavacCompiler.java:551)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:526)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:167)
    at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:678)
    at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

Introduced after #7 was merged.

Go generation not working

From README.md the language go is a supported (or at least enabled option):

./generator.py [-r ROOT_DIRECTORY] [-l LANGUAGE] [-p PROTOCOL_DEFS_PATH] [-o OUTPUT_DIRECTORY] [-n NAMESPACE] [-b BINARY_OUTPUT_DIR] [-t TEST_OUTPUT_DIR] [--no-binary] [--no-id-check]


where

* `ROOT_DIRECTORY` is the root folder for the generated codecs. If left empty, default value is set to `./output/[LANGUAGE]`.

* `LANGUAGE` is one of
    * `java` : Java
    * `cpp` : C++
    * `cs` : C#
    * `py` : Python
    * `ts` : TypeScript
    * `go` : Go

But when one does the following:

./generator.py -l go

We are told that go is invalid choice.

usage: generator.py [-h] [-r ROOT_DIRECTORY] [-l LANGUAGE] [-p PROTOCOL_DEFS_PATH] [-o OUTPUT_DIRECTORY] [-n NAMESPACE] [-b BINARY_OUTPUT_DIRECTORY]
                    [-t TEST_OUTPUT_DIRECTORY] [--no-binary] [--no-id-check]
generator.py: error: argument -l/--lang: invalid choice: 'go' (choose from 'java', 'cpp', 'cs', 'py', 'ts', 'md')

It seems that documentation is not up-to-date or generate.sh script is not working as expected. I believe it's probably the former.

Codec output directory is hardcoded

Java codec generator assumes the codecs will be generated under the IMDG project and assumes its directory structure. We now require them to be generated under MC repository to be able to evolve the codecs independently from IMDG releases.

For this to work, we can follow either of the following two ways:

  1. Make the following four lines to be configurable

SupportedLanguages.JAVA: 'hazelcast/src/main/java/com/hazelcast/client/impl/protocol/codec/',

SupportedLanguages.JAVA: 'hazelcast/src/main/java/com/hazelcast/client/impl/protocol/codec/custom/',

SupportedLanguages.JAVA: 'hazelcast/src/test/java/com/hazelcast/client/protocol/compatibility',

SupportedLanguages.JAVA: 'hazelcast/src/test/resources',

  1. Deduce the output directories automatically from the namespace argument (converting the package name to a directory structure, i.e. when com.hazelcast.webmonitor.client.impl.protocol.codec is passed, classes will be generated under <ROOT-DIR>/src/main/java/com/hazelcast/webmonitor/client/impl/protocol/codec/).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.