Coder Social home page Coder Social logo

protostuff / protostuff Goto Github PK

View Code? Open in Web Editor NEW
2.0K 94.0 302.0 5.32 MB

Java serialization library, proto compiler, code generator

Home Page: https://protostuff.github.io

License: Apache License 2.0

Java 98.97% Shell 0.03% GAP 1.00%
protostuff java protobuf serialization json graph

protostuff's Introduction

Protostuff

A java serialization library with built-in support for forward-backward compatibility (schema evolution) and validation.

  • efficient, both in speed and memory
  • flexible, supporting pluggable formats

Usecase

  • messaging layer in RPC
  • storage format in the datastore or cache

For more information, go to https://protostuff.github.io/docs/

Maven

  1. For the core formats (protostuff, protobuf, graph)
<dependency>
  <groupId>io.protostuff</groupId>
  <artifactId>protostuff-core</artifactId>
  <version>1.7.4</version>
</dependency>
  1. For schemas generated at runtime
<dependency>
  <groupId>io.protostuff</groupId>
  <artifactId>protostuff-runtime</artifactId>
  <version>1.7.4</version>
</dependency>

Usage

public final class Foo
{
    String name;
    int id;
    
    public Foo(String name, int id)
    {
        this.name = name;
        this.id = id;
    }
}

static void roundTrip()
{
    Foo foo = new Foo("foo", 1);

    // this is lazily created and cached by RuntimeSchema
    // so its safe to call RuntimeSchema.getSchema(Foo.class) over and over
    // The getSchema method is also thread-safe
    Schema<Foo> schema = RuntimeSchema.getSchema(Foo.class);

    // Re-use (manage) this buffer to avoid allocating on every serialization
    LinkedBuffer buffer = LinkedBuffer.allocate(512);

    // ser
    final byte[] protostuff;
    try
    {
        protostuff = ProtostuffIOUtil.toByteArray(foo, schema, buffer);
    }
    finally
    {
        buffer.clear();
    }

    // deser
    Foo fooParsed = schema.newMessage();
    ProtostuffIOUtil.mergeFrom(protostuff, fooParsed, schema);
}

Important (for version 1.8.x)

If you are to purely use this to replace java serialization (no compatibility with protobuf), set the following system properties:

-Dprotostuff.runtime.always_use_sun_reflection_factory=true
-Dprotostuff.runtime.preserve_null_elements=true
-Dprotostuff.runtime.morph_collection_interfaces=true
-Dprotostuff.runtime.morph_map_interfaces=true
-Dprotostuff.runtime.morph_non_final_pojos=true

You can also customize it programmatically:

static final DefaultIdStrategy STRATEGY = new DefaultIdStrategy(IdStrategy.DEFAULT_FLAGS 
        | IdStrategy.PRESERVE_NULL_ELEMENTS
        | IdStrategy.MORPH_COLLECTION_INTERFACES
        | IdStrategy.MORPH_MAP_INTERFACES
        | IdStrategy.MORPH_NON_FINAL_POJOS);

Use it:

Schema<Foo> schema = RuntimeSchema.getSchema(Foo.class, STRATEGY);

Questions/Concerns/Suggestions

Requirements

Java 1.6 or higher

Build Requirements

Maven 3.2.3 or higher

Developing with eclipse

mvn install && mvn eclipse:eclipse
# Open eclipse, import existing project, navigate to the protostuff module you're after, then hit 'Finish'.

protostuff's People

Contributors

alexshvid avatar danglotb avatar dependabot[bot] avatar dyu avatar kshchepanovskyi avatar mbarbon avatar mirlord avatar mzeo avatar neoremind avatar nwertzberger avatar olegych avatar ondrazizka avatar posix4e avatar rxh1999 avatar ryanobjc avatar teofilismartisius avatar tsheasha avatar wuhongzhi avatar

Stargazers

 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

protostuff's Issues

Standalone compiler jar

It is not possible to generate standalone jar:

C:\Users\Konstantin\IdeaProjects\protostuff>mvn -Pjwd package
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project io.protostuff:protostuff-compiler:1.1.1-SNAPSHOT (C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-compiler\pom.xml) has 1 error
[ERROR]     'build.plugins.plugin[org.apache.maven.plugins:maven-antrun-plugin].dependencies.dependency.systemPath' for com.tonicsystems.jarjar:jarjar:jar must specify an absolute path but is ../lib/jarjar-1.1.jar
 @ io.protostuff:protostuff-compiler:[unknown-version], C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-compiler\pom.xml, line 106, column 29
[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/ProjectBuildingException

equals and hashcode?

Hello,

Searching the internet says this has already come up, but I'm trying to generate equals and hashcode using the maven plugin to generate from a .proto file. I tried the following plugin configuration to no avail:

<groupId>io.protostuff</groupId>
<artifactId>protostuff-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
    <protoModules>
        <protoModule>
            <source>src/main/proto/ClusterActionStateSchema.proto</source>
            <outputDir>target/generated-sources/proto</outputDir>
            <output>java_bean</output>
            <encoding>UTF-8</encoding>
            <options>
                <property> <name>generate_helper_methods</name> </property>
                <property> <name>generate_equals_hashcode</name> </property>
                <property> <name>generate_field_map</name> </property>
                <property> <name>builder_pattern</name> </property>
            </options>
        </protoModule>
    </protoModules>
</configuration>
<executions>
    <execution>
        <id>generate-sources</id>
        <phase>generate-sources</phase>
        <goals>
            <goal>compile</goal>
        </goals>
    </execution>
</executions>

Is this supported?

Cannot handle emoji's in strings for Java 1.8

The following test fails when using Java 8

public void testEmoji() throws Exception
{
    String emojis = "\uD83C\uDFE0\uD83C\uDF4E\uD83D\uDCA9";
    LinkedBuffer lb = new LinkedBuffer(512);
    WriteSession session = new WriteSession(lb);
    StringSerializer.writeUTF8(emojis, session, lb);

    byte[] buff = session.toByteArray();
    String result = STRING.deser(buff);
    assertEquals(emojis, result);
}

I expect the issue related to https://bugs.openjdk.java.net/browse/JDK-7096080

One potential solution is to replace STRING.deser() from:

return new String(nonNullValue, "UTF-8)

to this (taken from http://stackoverflow.com/questions/25404373/java-8-utf-8-encoding-issue-java-bug):

ByteBuffer bb = ByteBuffer.allocate(nonNullValue.length + 2);
bb.putShort((short) nonNullValue.length).put(nonNullValue);

ByteArrayInputStream bis = new ByteArrayInputStream(bb.array());
DataInputStream dis = new DataInputStream(bis);

return dis.readUTF();

It passes the StringSerializerTests, but fails the StreamedStringSerializerTest.

Another interesting thing to note is that this does not have any issues:

String emojis = "\uD83C\uDFE0\uD83C\uDF4E\uD83D\uDCA9";
String fromBytes = new String(emojis.getBytes("UTF-8"), "UTF-8);

Protobuf has taken this approach, and therefore does not seem to have any issues.

Fix for default values in `java_bean_model`

java_bean_model compiler generates broken java code for messages with default values.

When schema is separated from message, constants for default values are not accessible from schema class:

 public void writeTo(Output output, JavaBeanModelSimpleMessage message, int fieldIx) throws IOException {
        switch (fieldIx) {
            // ...
            case FIELD_B:
                if (message.getB() != null && message.getB() != DEFAULT_B)
            // ...   
        }
    }

There is no static import for DAFAULT_B, so java compiler gives error.

Can not build project [mvn clean install]

When trying to build project using mvn clean install, I'm getting a lot of javadoc errors:

[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-api\src\main\java\io\protostuff\Schema.java:61: warning: no @return
[ERROR] public T newMessage();
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-api\src\main\java\io\protostuff\Pipe.java:52: error: self-closing element not allowed
[ERROR] * <p/>
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-api\src\main\java\io\protostuff\Pipe.java:21: error: self-closing element not allowed
[ERROR] * <p/>
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-api\src\main\java\io\protostuff\Pipe.java:23: error: self-closing element not allowed
[ERROR] * <p/>
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-api\src\main\java\io\protostuff\Schema.java:21: error: self-closing element not allowed
[ERROR] * <p/>
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-api\src\main\java\io\protostuff\WireFormat.java:51: error: self-closing element not allowed
[ERROR] * <p/>
[ERROR] ^
[ERROR]
[ERROR] Command line was:"c:\Program Files\Java\jdk1.8.0_25\jre\..\bin\javadoc.exe" @options @packages
[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.

Javadocs are corrupted in several files by constructions like <p/> and >, < - that are basically not allowed by javadoc tool.

Pull request is in progress...

Add @Generated annotation to generated classes

protocolbuffers/protobuf#42

javax.annotation.Generated exists since Java 6 (relevant javadoc) so it should be safe to generate source code that contains it. The presence of this annotation has no impact on the runtime characteristics of the annotated classes.

When this annotation is present it greatly helps in configuration of different tools related to code analysis, tests and tests coverage.

http://docs.oracle.com/javase/7/docs/api/javax/annotation/Generated.html

NegativeArraySizeException on @Tag(Integer.MAX_VALUE)

Does not work big tag number.

@Tag(Integer.MAX_VALUE)
public boolean unknown = false;

Caused by: java.lang.NegativeArraySizeException
at com.dyuproject.protostuff.runtime.MappedSchema.(MappedSchema.java:84)
at com.dyuproject.protostuff.runtime.RuntimeSchema.(RuntimeSchema.java:331)
at com.dyuproject.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:249)
at com.dyuproject.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:156)
at com.dyuproject.protostuff.runtime.IdStrategy.newSchema(IdStrategy.java:129)
at com.dyuproject.protostuff.runtime.DefaultIdStrategy$Lazy.getSchema(DefaultIdStrategy.java:630)
... 26 more

Custom options

I found that current parser implementation ignore gives error for custom options like these:

message MyMessage {
  option (foo.my_option) = { 
    x: 1 
    y: 2
    r: {
        r: 1
    }
  };
}

message MyMessage1 {
  option (foo.my_option).x = 1;
  option (foo.my_option).y = 2;
  option (foo.my_option).r.r = 1;
}
// foo.proto
syntax = "proto3";
import "google/protobuf/descriptor.proto";
package foo;

message Pair {
  int32 x = 1;
  int32 y = 2;
  R r = 3;
}

message R {
  int32 r = 1;
}

extend google.protobuf.MessageOptions {
  Pair my_option = 51234;
}

I am not sure that we should support such complicated scenarios in 1.x branch. Few days ago I started work on proto3 parser based on ANTLR4, so most probably it will be supported in 2.x release.

enums_by_name does not seem to be working using maven plugin

What steps will reproduce the problem?
1.) Using the given pom file and proto file generate code and then attempt deserialize it into json. The json string still has numeric values for enums.

What is the expected output? What do you see instead?
numeric values in place of the enum string values

pom
proto

What version of the product are you using? On what operating system?
1.0.8 on osx

Support for messages without fields (empty messages)

ProtoToJavaBeanCompiler ignores messages without any fields for some reason. The comment looks like it's related to RPC services somehow, but it's possible to have an empty message in a proto schema without services (for future extensibility) and protoc compiles such schemas just fine.

Gradle Plugin

Would be nice to have plugin for gradle (analog of protostuff-maven-plugin).

ByteBuffer option

We added the option to use ByteBuffers instead of byte [] with a special syntax in the protobuf file. It would probably be better to do it a different way.

Latest release to maven repo?

Not really and issue but the latest version in the repo is 1.0.9 and there is a github release of 1.3.3. Are there plans to push the latest github releases to Maven Repo ?

Change credit for the first commit

Ryan Rawson wrote much of the code in the first commit. He also was the impetus behind it. His name wasn't in the authorship *my mistake. We should remedy this somehow.

transparent fields support

I have Java classes that have some logic and transparent fields that I do not want to serialize. Can you add support for transparent fields in classes? May be with some @transparent annotation?

java.lang.RuntimeException: When using annotation-based mapping, all fields must be annotated with @tag
at com.dyuproject.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:209)
at com.dyuproject.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:156)
at com.dyuproject.protostuff.runtime.IdStrategy.newSchema(IdStrategy.java:129)
at com.dyuproject.protostuff.runtime.DefaultIdStrategy$Lazy.getSchema(DefaultIdStrategy.java:630)
at com.dyuproject.protostuff.runtime.RuntimeSchema.getSchema(RuntimeSchema.java:119)
at com.dyuproject.protostuff.runtime.RuntimeSchema.getSchema(RuntimeSchema.java:111)
at some.company.protostuff.ProtustuffTest.test(ProtustuffTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Curious about protostuff joining the csf

I have recently started a new software foundation, the CSF. I'd love to discuss in more detail this project being a part of it. The major goals of CSF are:

  • Minimal governence to keep projects active and healthy
  • Regular ratings on quality
  • Assured public governemence of projects

We are a bit different than the ASF mainly in that:

  • We don't believe in such flat structures. Some projects do very will with a dictator
  • We don't believe that quality can't be measured. We have some ideas here and are looking for more
  • We want to be hands off with process but provide tools to improve project management

What do we think?

Value of @Generated annotation is not valid string [code generator]

Affected releases: 1.3.0

When output for maven plugin is set as a full path (required for maven multi-module builds) and build is done on Windows, generated code is not correct.

<output>
                java_bean,
                ${project.basedir}/src/main/stg/service.java.stg
</output>

Generated code:

@Generated("java_bean,
                C:\Users\Konstantin\IdeaProjects\examples\code-generation\plugin-proto-compiler\src\main\java/src/main/stg/service.java.stg")
public final class BasicSearchRequest implements Externalizable, Message<BasicSearchRequest>, Schema<BasicSearchRequest>
{

Characters \ are not escaped, compiler generates errors:

[ERROR] /C:/Users/Konstantin/IdeaProjects/examples/code-generation/plugin-proto-compiler/target/generated-sources/io/protostuff/example/search/BasicSearchReques
t.java:[20,74] illegal character: '\'

Next Maven Release [1.2.0]

Is there an expected date on the next maven release? Is there anything I can do to help to make it faster? ๐Ÿ˜„

serializing protobuffer messages using mergefrom fails when enums_by_name enabled

If you take a normal protobuffer message and serialize it to bytes:

Search query = Search.newBuilder().setQueryFilter(queryFilter).build();
byte[] protoBytes = query.toByteArray();

and then try to use mergefrom :

      Search.Builder build = Search.newBuilder();
      ProtobufIOUtil.mergeFrom(proto, build, SchemaQuery.Search.MERGE);

It will fail to parse enum values with an error:

java.lang.IllegalArgumentException: No enum constant com.logrhythm.justonemorething.query.Query.FilterItemTypes.๏ฟฝ

if you remove the enums_by_name option everything works as expected except when I serialize them into json they have the enum int values which I don't want. I think I can work around this by using the runtime version but this seems like a pretty big compatibility bug.

This means with this option enabled it is no longer compatible with standard protobuffer messages and everything has to use protostuff. This kind of defeats the purpose of using protobuffers.

Fix javadocs

Since java 8 went mainstream today, I thought I might fix all of our java docs, so we could build without passing the skip docs command.

Maven plugin properties

Add possibility to pass system properties to compiler from maven plugin configuration.
Configuration might look like this:

<plugin>
        <groupId>io.protostuff</groupId>
        <artifactId>protostuff-maven-plugin</artifactId>
        <version>${protostuff.version}</version>
        <configuration>
          <properties>
            <property>
              <name>ppc.check_filename_placeholder</name>
              <value>true</value>
            </property>
          </properties>
          <protoModules>
...

Message<T> and Schema<T> needs a little tweaking

Right now Message<T> has getSchema that returns a Schema<T>, and Schema<T> has a newMessage that returns a T. But T isn't type-bound to anything, it could literally be any java type. Although while it could be anything, it has to be a subclass of Message.

This normally fine in concrete code, but it becomes a bit hacky in general code:

Class<?> protostuffClass = Class.forName(protostuffJavaMessageType);
// ok now I guess we'll do this:
Schema<Message<?>> protostuffSchemaInstance = (Schema<Message<?>>) protostuffClass.newInstance();
Message<?> resultingMessage = protostuffSchemaInstance.newMessage();

If I don't cast protostuffSchemaInstance to a Schema<Message<?>> then it's methods act kinda wacky, they take and return '?' which requires a lot of casting, but also you can't cast TO a '?'.

Maybe, Schema should be type bounded, and so should Message? I tried it once, but the cascade of changes was just too much.

Protostuff-maven-plugin: protoModule without output definition gives NPE

I noticed that you get a NullPointerException if defining in pom.xml a protoModule without an .
It would be nicer if it gave a more informative message...
The stack trace:

Caused by: java.lang.NullPointerException
        at java.util.regex.Matcher.getTextLength(Matcher.java:1283)
        at java.util.regex.Matcher.reset(Matcher.java:309)
        at java.util.regex.Matcher.<init>(Matcher.java:229)
        at java.util.regex.Pattern.matcher(Pattern.java:1093)
        at java.util.regex.Pattern.split(Pattern.java:1206)
        at java.util.regex.Pattern.split(Pattern.java:1273)
        at io.protostuff.mojo.ProtoCompilerMojo.updateRelativeOutputLocation(ProtoCompilerMojo.java:224)
        at io.protostuff.mojo.ProtoCompilerMojo.execute(ProtoCompilerMojo.java:158)
 ... 21 more

Getter of optional enum should return null if not set

In all template files the getter for enum values returns field.defaultValueAsString if the enum is optional and not set. The following snippet is code-copied from java_bean.stg:

public <field:field_singular_type(field=it, options=options)> get<field.name; format="PC">()
{
    <if(field.enumField)>
    <if(field.required)>
    return <var(val=field.name, fmt="CC", options=options)>;
    <else>
    return <var(val=field.name, fmt="CC", options=options)> == null ? <field.defaultValueAsString> : <var(val=field.name, fmt="CC", options=options)>;
    <endif>
    <else>
    return <var(val=field.name, fmt="CC", options=options)>;
    <endif>
}

This makes it hard on receiver side to decide whether an enum is actually set or not. I would expect the getter to return the exact value found in binary data, i.e. null in case it was not available. This would make the behavior compatible with google's protobuf lib.

Are there any good reasons to not return null?

Parse comments for MessageField & EnumField

Hi David,

I have a problem right now using your parser. Hope you can help me identify the cause and solve it.

Problem Background:
In my message proto file, there are several fields. Almost all the fields, including primitive type field, message field and enum field, have comments (doc). Since Iโ€™m generating the documentation for the proto file, I want all comments of fields to show up.

Problem:
Only comments of primitive type field (int, string, datetime) show up right now, comments of both message field and enum field donโ€™t show up, even though there are comments for the message and enum field in the proto file.

I'm thinking that maybe all comments of MessageField and EnumField are not parsed through by the parser, and that's the reason it keeps giving me null values.

Regards,
Liang

Upgrade maven configuration

Current configuration produces tons of warnings on build, it should be fixed.

[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-api:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-core:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-collectionschema:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-runtime:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-runtime-md:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing. @ io.protostuff:protostuff-runtime-md:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-runtime-md/pom.xml, line 48, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-runtime-registry:jar:1.1.1-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: io.protostuff:protostuff-collectionschema:jar -> duplicate declaration of version ${project.version} @ io.protostuff:protostuff-runtime-registry:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-runtime-registry/pom.xml, line 72, column 17
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: io.protostuff:protostuff-runtime:jar -> duplicate declaration of version ${project.version} @ io.protostuff:protostuff-runtime-registry:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-runtime-registry/pom.xml, line 77, column 17
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-runtime-view:jar:1.1.1-SNAPSHOT
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: io.protostuff:protostuff-collectionschema:jar -> duplicate declaration of version ${project.version} @ io.protostuff:protostuff-runtime-view:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-runtime-view/pom.xml, line 72, column 17
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: io.protostuff:protostuff-runtime:jar -> duplicate declaration of version ${project.version} @ io.protostuff:protostuff-runtime-view:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-runtime-view/pom.xml, line 77, column 17
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-json:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-xml:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-yaml:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-kvp:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-parser:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff-parser:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-parser/pom.xml, line 17, column 17
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-compiler:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff-compiler:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-compiler/pom.xml, line 17, column 17
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] The expression ${pom.url} is deprecated. Please use ${project.url} instead.
[WARNING] The expression ${pom.url} is deprecated. Please use ${project.url} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-maven-plugin:maven-plugin:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff-maven-plugin:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-maven-plugin/pom.xml, line 25, column 17
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff-uberjar:jar:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.felix:maven-bundle-plugin is missing. @ io.protostuff:protostuff-uberjar:[unknown-version], /home/travis/build/protostuff/protostuff/protostuff-uberjar/pom.xml, line 34, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ io.protostuff:protostuff:1.1.1-SNAPSHOT, /home/travis/build/protostuff/protostuff/pom.xml, line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for io.protostuff:protostuff:pom:1.1.1-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 42, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-eclipse-plugin is missing. @ line 64, column 15
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ line 51, column 15
[WARNING] The expression ${pom.version} is deprecated. Please use ${project.version} instead.
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] ------------------------------------------------------------------------

Exception in RuntimeSchema.createFrom(...)

We found very weird exception on one of our servers, after server restart it disappear. That server is using protostuff-1.0.8. Need to analyze why it could happen, if possible. I do not exclude theory that something was deployed in wrong way.

Caused by: java.lang.NullPointerException [oapi-service-thread-3]
E 0317-1547:18,453  at com.dyuproject.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:236) [oapi-service-thread-3]
E 0317-1547:18,453  at com.dyuproject.protostuff.runtime.RuntimeSchema.createFrom(RuntimeSchema.java:147) [oapi-service-thread-3]
E 0317-1547:18,453  at com.playtech.openapi.core.frontend.messages.resolver.SchemaCache.createSchema(SchemaCache.java:45) [oapi-service-thread-3]
E 0317-1547:18,453  at com.playtech.openapi.core.frontend.messages.resolver.SchemaCache.getSchema(SchemaCache.java:37) [oapi-service-thread-3]
E 0317-1547:18,453  at com.playtech.openapi.core.frontend.messages.serialization.SerializationHolder.getSchema(SerializationHolder.java:29) [oapi-service-thread-3]
E 0317-1547:18,453  ... 6 more [oapi-service-thread-3]

`mvn site` does not work

# mvn -v:

Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T23:58:10+03:00)
Maven home: c:\maven
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: c:\Program Files\Java\jdk1.8.0_25\jre
Default locale: en_GB, platform encoding: Cp1251
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"

# mvn site:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] protostuff
[INFO] protostuff :: api
[INFO] protostuff :: core
[INFO] protostuff :: collectionschema
[INFO] protostuff :: runtime
[INFO] protostuff :: runtime-md
[INFO] protostuff :: runtime-registry
[INFO] protostuff :: runtime-view
[INFO] protostuff :: json
[INFO] protostuff :: xml
[INFO] protostuff :: yaml
[INFO] protostuff :: kvp
[INFO] protostuff :: parser
[INFO] protostuff :: compiler
[INFO] protostuff :: maven-plugin
[INFO] protostuff :: uberjar
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building protostuff 1.1.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-site-plugin:3.3:site (default-site) @ protostuff ---
[WARNING] Report plugin org.apache.maven.plugins:maven-project-info-reports-plugin has an empty version.
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:2.7
[INFO] Relativizing decoration links with respect to project URL: http://code.google.com/p/protostuff/
[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.

...


[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-core\src\main\java\io\protostuff\GraphIOUtil.java:38: warning: no @param for data
[ERROR] public static <T> void mergeFrom(byte[] data, T message, Schema<T> schema)
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:32: error: unknown tag: goal
[ERROR] * @goal compile
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:33: error: unknown tag: configurator
[ERROR] * @configurator include-project-dependencies
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:34: error: unknown tag: requiresDependencyResolution
[ERROR] * @requiresDependencyResolution compile+runtime
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:112: error: unknown tag: parameter
[ERROR] * @parameter expression="${project.basedir}"
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:113: error: unknown tag: required
[ERROR] * @required
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:80: error: unknown tag: parameter
[ERROR] * @parameter
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:99: error: unknown tag: parameter
[ERROR] * @parameter
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:42: error: unknown tag: parameter
[ERROR] * @parameter default-value="${project}"
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:43: error: unknown tag: readonly
[ERROR] * @readonly
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:44: error: unknown tag: required
[ERROR] * @required
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:107: error: unknown tag: parameter
[ERROR] * @parameter
[ERROR] ^
[ERROR] C:\Users\Konstantin\IdeaProjects\protostuff\protostuff-maven-plugin\src\main\java\io\protostuff\mojo\ProtoCompilerMojo.java:89: error: unknown tag: parameter
[ERROR] * @parameter
[ERROR] ^
[ERROR] 
[ERROR] Command line was: "c:\Program Files\Java\jdk1.8.0_25\jre\..\bin\javadoc.exe" @options @packages
[ERROR] 
[ERROR] Refer to the generated Javadoc files in 'c:\Users\Konstantin\IdeaProjects\protostuff\javadoc' dir.
[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/MojoExecutionException

Remove/replace protostuff-runtime-md

In the protostuff-runtime-md we have only two classes: RuntimeEnv and RuntimeFieldFactory - they are almost identical to classes with same name & package in protostuff-runtime.

With http://objenesis.org/index.html we can solve problem of object instantiation on different platforms in more universal way than with protostuff-runtime-md.

Compiler needs a way to pass options in

Right now the compiler is 'stand alone' - it doesnt have any way too get access to compiler options. For example:

public static Proto parseProto(File file)

There is no extra options to change the behavior of the compiler or compiler post-processing steps.

Turns out in the process of solving #10, it would have made life a lot easier if we had something to help here. Specifically, we wish to choose a different concrete type - ByteBuffer - instead of the default one, but based on a compiler flag, not based on individual (non-compatible) field options.

[maven][windows] proto_path warning

When proto_path is set to full path on windows it produces warning message:

config:

<property>
    <name>proto_path</name>
    <value>${project.basedir}/src/main/proto</value>
</property>

logs:

[INFO] Set property: proto_path = 'C:\Users\konstantinsh\IdeaProjects\protocol\protocol-client/src/main/proto'
warn: C not found.

On linux this warning does not appear.

IntelliJ IDEA & protostuff-me

I can't build project in my favourite IDE. There is an issue with protostuff-me - IntelliJ Idea does not support different language versions for single module - 1.3 for main and 1.7 for tests.

Are there any solutions for this issue?

P.S. I understand that this question is only about convenience and I always can run mvn clean install from command prompt.

Serialization and De-serialization of Throwable across JDK 1.6 and JDK 1.7

Hi,

We have two system one Running with JDK 1.6 and another with JDK 1.7. To communicate between the two node we are using ProtoStuff Serialization to convert binary & transfer to other node where its again the binary is de-serialized.

JDK 1.7 added new field 'suppressedExceptions', so now if we serialize the Throwable in JDK 1.7 in one node and transfer to another node its not able de-serialize & vice versa.

As two nodes uses different technology its not possible to migrate from JDK 1.6 to JDK 1.7 & JDK 1.7 to JDK 1.6.

Is there any solution to solve this problem, Thanks in advance for the reply.

With Regards,
Pavan

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.