Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
39f11fa
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 22, 2026
3f15eb9
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 22, 2026
ab1ff1a
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 22, 2026
45720ab
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 23, 2026
3770237
Merge branch 'master' into IGNITE-27641
nizhikov Jan 23, 2026
bc0e9f0
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 23, 2026
6959ecc
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 23, 2026
308ddd6
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 23, 2026
baa6d7b
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 23, 2026
d58705f
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 24, 2026
2f51d3d
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 24, 2026
bea02ab
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 24, 2026
1913eca
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 25, 2026
9d9e5b8
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 26, 2026
c78d3ec
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 26, 2026
bcb334f
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 26, 2026
5bc0e15
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 27, 2026
d1f1483
Update modules/codegen2/src/main/java/org/apache/ignite/internal/idto…
nizhikov Jan 29, 2026
f7241bb
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
afe5e27
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
91733e8
Update modules/codegen2/src/main/java/org/apache/ignite/internal/idto…
nizhikov Jan 29, 2026
fe77728
Update modules/codegen2/src/main/java/org/apache/ignite/internal/idto…
nizhikov Jan 29, 2026
6e618ab
Update modules/codegen2/src/main/java/org/apache/ignite/internal/idto…
nizhikov Jan 29, 2026
2fe69b8
Update modules/codegen2/src/main/java/org/apache/ignite/internal/idto…
nizhikov Jan 29, 2026
6595d93
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
b8b9c94
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
731dbbd
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
5f6a08c
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
c9f7965
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
9001e07
Update modules/core/src/main/java/org/apache/ignite/internal/dto/Igni…
nizhikov Jan 29, 2026
7657453
IGNITE-27641 Generate serdes code for IgniteDataTransferObject
nizhikov Jan 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,15 @@
* Generates serializer class for given {@code Message} class. The generated serializer follows the naming convention:
* {@code org.apache.ignite.internal.codegen.[MessageClassName]Serializer}.
*/
class MessageSerializerGenerator {
public class MessageSerializerGenerator {
/** */
private static final String EMPTY = "";

/** */
private static final String TAB = " ";
public static final String TAB = " ";

/** */
private static final String NL = System.lineSeparator();
public static final String NL = System.lineSeparator();

/** */
private static final String PKG_NAME = "org.apache.ignite.internal.codegen";
Expand All @@ -81,7 +81,7 @@ class MessageSerializerGenerator {
" */";

/** */
private static final String METHOD_JAVADOC = "/** */";
public static final String METHOD_JAVADOC = "/** */";

/** */
private static final String RETURN_FALSE_STMT = "return false;";
Expand Down Expand Up @@ -119,10 +119,11 @@ void generate(TypeElement type, List<VariableElement> fields) throws Exception {
imports.add(type.getQualifiedName().toString());

String serClsName = type.getSimpleName() + "Serializer";
String serFqnClsName = PKG_NAME + "." + serClsName;
String serCode = generateSerializerCode(serClsName);

try {
JavaFileObject file = env.getFiler().createSourceFile(PKG_NAME + "." + serClsName);
JavaFileObject file = env.getFiler().createSourceFile(serFqnClsName);

try (Writer writer = file.openWriter()) {
writer.append(serCode);
Expand All @@ -136,7 +137,7 @@ void generate(TypeElement type, List<VariableElement> fields) throws Exception {
// all Run commands to Maven. However, this significantly slows down test startup time.
// This hack checks whether the content of a generating file is identical to already existed file, and skips
// handling this class if it is.
if (!identicalFileIsAlreadyGenerated(serCode, serClsName)) {
if (!identicalFileIsAlreadyGenerated(env, serCode, serFqnClsName)) {
env.getMessager().printMessage(
Diagnostic.Kind.ERROR,
"MessageSerializer " + serClsName + " is already generated. Try 'mvn clean install' to fix the issue.");
Expand Down Expand Up @@ -403,7 +404,7 @@ else if (assignableFrom(erasedType(type), type(Collection.class.getName()))) {
"MessageCollectionItemType." + messageCollectionItemType(typeArgs.get(0)));
}

else if (enumType(type)) {
else if (enumType(env, type)) {
Element element = env.getTypeUtils().asElement(type);
imports.add(element.toString());

Expand Down Expand Up @@ -609,8 +610,7 @@ else if (assignableFrom(erasedType(type), type(Collection.class.getName()))) {
returnFalseIfReadFailed(name, collectionReader,
"MessageCollectionItemType." + messageCollectionItemType(typeArgs.get(0)));
}

else if (enumType(type)) {
else if (enumType(env, type)) {
String fieldPrefix = typeNameToFieldName(env.getTypeUtils().asElement(type).getSimpleName().toString());

boolean hasCustMapperAnn = field.getAnnotation(CustomMapper.class) != null;
Expand Down Expand Up @@ -856,7 +856,7 @@ private boolean assignableFrom(TypeMirror type, TypeMirror superType) {
}

/** */
private boolean enumType(TypeMirror type) {
public static boolean enumType(ProcessingEnvironment env, TypeMirror type) {
Element element = env.getTypeUtils().asElement(type);

return element != null && element.getKind() == ElementKind.ENUM;
Expand All @@ -882,9 +882,9 @@ private String capitalizeOnlyFirst(String input) {
}

/** @return {@code true} if trying to generate file with the same content. */
private boolean identicalFileIsAlreadyGenerated(String srcCode, String clsName) {
public static boolean identicalFileIsAlreadyGenerated(ProcessingEnvironment env, String srcCode, String fqnClsName) {
try {
String fileName = PKG_NAME.replace('.', '/') + '/' + clsName + ".java";
String fileName = fqnClsName.replace('.', '/') + ".java";
FileObject prevFile = env.getFiler().getResource(StandardLocation.SOURCE_OUTPUT, "", fileName);

String prevFileContent;
Expand All @@ -904,7 +904,7 @@ private boolean identicalFileIsAlreadyGenerated(String srcCode, String clsName)
}

/** */
private String content(Reader reader) throws IOException {
private static String content(Reader reader) throws IOException {
BufferedReader br = new BufferedReader(reader);
StringBuilder sb = new StringBuilder();
String line;
Expand Down
Loading
Loading