Compare commits

...

14 Commits

Author SHA1 Message Date
Jordan Zimmerman
c0b78ec1db [maven-release-plugin] prepare release record-builder-1.15.jdk14 2021-01-13 21:59:19 -05:00
Jordan Zimmerman
d26c87c666 Java 14 version 2021-01-13 21:11:11 -05:00
Jordan Zimmerman
f8e56a40f3 Merge pull request #19 from Randgalt/use-with-to-get-builder
Have the consumer version of with() use the other with()
2020-12-21 08:10:32 -05:00
Jordan Zimmerman
5a07cf23f7 Have the consumer version of with() use the other with() to get the builder. This will ensure better testing and is more logical 2020-12-21 08:08:44 -05:00
Jordan Zimmerman
78ba53f96d Merge pull request #18 from Randgalt/patch-1
Use provided/compileOnly instead of implementation
2020-12-21 07:36:38 -05:00
Jordan Zimmerman
0153f65121 you're right - we only need provided/compileOnly. I've made the updates to Maven as well. 2020-12-21 07:12:28 -05:00
Marc Philipp
c1e771bbbe Use compileOnly instead of implementation
Since most users only need the annotations.
2020-12-21 11:43:56 +01:00
Jordan Zimmerman
c9ba514773 [maven-release-plugin] prepare for next development iteration 2020-12-11 19:27:42 -05:00
Jordan Zimmerman
491ed4f6e0 [maven-release-plugin] prepare release record-builder-1.14.ea 2020-12-11 19:27:34 -05:00
Jordan Zimmerman
16751508cc Update README.md 2020-12-11 13:54:05 -05:00
Jordan Zimmerman
ee7f81c7b8 Switch to Github Actions 2020-12-11 13:52:58 -05:00
Jordan Zimmerman
015287608b Update maven.yml 2020-12-11 13:51:51 -05:00
Jordan Zimmerman
467bcc9041 Create maven.yml 2020-12-11 13:50:22 -05:00
Jordan Zimmerman
666bc334ad Merge pull request #16 from mbarbero/master
Stop relying on toString() to detect package name.
2020-12-11 13:39:30 -05:00
8 changed files with 40 additions and 20 deletions

24
.github/workflows/maven.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 15
- name: Build with Maven
run: mvn -B package --file pom.xml

View File

@@ -1,3 +0,0 @@
language: java
jdk:
- openjdk15

View File

@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.org/Randgalt/record-builder.svg?branch=master)](https://travis-ci.org/Randgalt/record-builder)
[![Build Status](https://github.com/Randgalt/record-builder/workflows/Java%20CI%20with%20Maven/badge.svg)](https://github.com/Randgalt/record-builder/actions)
[![Maven Central](https://img.shields.io/maven-central/v/io.soabase.record-builder/record-builder.svg)](https://search.maven.org/search?q=g:io.soabase.record-builder%20a:record-builder)
# RecordBuilder - Early Access
@@ -203,8 +203,7 @@ public class NameAndAgeBuilder {
* Return a new record built from the builder passed to the given consumer
*/
default NameAndAge with(Consumer<NameAndAgeBuilder> consumer) {
NameAndAge r = _downcast(this);
NameAndAgeBuilder builder = NameAndAgeBuilder.builder(r);
NameAndAgeBuilder builder = with();
consumer.accept(builder);
return builder.build();
}
@@ -294,6 +293,7 @@ annotation. Use `packagePattern` to change this (see Javadoc for details).
<groupId>io.soabase.record-builder</groupId>
<artifactId>record-builder-core</artifactId>
<version>set-version-here</version>
<scope>provided</scope>
</dependency>
```
@@ -340,7 +340,7 @@ Add the following to your build.gradle file:
```
dependencies {
annotationProcessor 'io.soabase.record-builder:record-builder-processor:$version-goes-here'
implementation 'io.soabase.record-builder:record-builder-core:$version-goes-here'
compileOnly 'io.soabase.record-builder:record-builder-core:$version-goes-here'
}
tasks.withType(JavaCompile) {

View File

@@ -5,7 +5,7 @@
<groupId>io.soabase.record-builder</groupId>
<artifactId>record-builder</artifactId>
<packaging>pom</packaging>
<version>1.14.ea-SNAPSHOT</version>
<version>1.15.jdk14</version>
<modules>
<module>record-builder-core</module>
@@ -18,7 +18,7 @@
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<jdk-version>15</jdk-version>
<jdk-version>14</jdk-version>
<maven-compiler-plugin-version>3.8.1</maven-compiler-plugin-version>
<maven-source-plugin-version>3.2.0</maven-source-plugin-version>
@@ -71,7 +71,7 @@
<url>https://github.com/randgalt/record-builder</url>
<connection>scm:git:https://github.com/randgalt/record-builder.git</connection>
<developerConnection>scm:git:git@github.com:randgalt/record-builder.git</developerConnection>
<tag>HEAD</tag>
<tag>record-builder-1.15.jdk14</tag>
</scm>
<issueManagement>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>io.soabase.record-builder</groupId>
<artifactId>record-builder</artifactId>
<version>1.14.ea-SNAPSHOT</version>
<version>1.15.jdk14</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>io.soabase.record-builder</groupId>
<artifactId>record-builder</artifactId>
<version>1.14.ea-SNAPSHOT</version>
<version>1.15.jdk14</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -134,15 +134,13 @@ class InternalRecordBuilderProcessor
Adds a method that returns a pre-filled copy builder similar to:
default MyRecord with(Consumer<MyRecordBuilder> consumer) {
MyRecord r = (MyRecord)(Object)this;
MyRecordBuilder builder MyRecordBuilder.builder(r);
MyRecordBuilder builder = with();
consumer.accept(builder);
return builder.build();
}
*/
var codeBlockBuilder = CodeBlock.builder()
.add("$T $L = $L(this);\n", recordClassType.typeName(), uniqueVarName, metaData.downCastMethodName())
.add("$T builder = $L.$L($L);\n", builderClassType.typeName(), builderClassType.name(), metaData.copyMethodName(), uniqueVarName)
.add("$T builder = with();\n", builderClassType.typeName())
.add("consumer.accept(builder);\n")
.add("return builder.build();\n");
var consumerType = ParameterizedTypeName.get(ClassName.get(Consumer.class), builderClassType.typeName());
@@ -164,7 +162,7 @@ class InternalRecordBuilderProcessor
Adds a method that returns a pre-filled copy builder similar to:
default MyRecordBuilder with() {
MyRecord r = (MyRecord)(Object)this;
MyRecord r = _downcast(this);
return MyRecordBuilder.builder(r);
}
*/
@@ -201,7 +199,7 @@ class InternalRecordBuilderProcessor
Adds a with method for the component similar to:
default MyRecord withName(String name) {
MyRecord r = (MyRecord)(Object)this;
MyRecord r = _downcast(this);
return new MyRecord(name, r.age());
}
*/
@@ -529,7 +527,7 @@ class InternalRecordBuilderProcessor
.add("}\n")
.add("catch (ClassCastException dummy) {\n")
.indent()
.add("throw new RuntimeException($S);\n", builderClassType.name() + "." + metaData.withClassName() + " can only be implemented for " + recordClassType.name())
.add("throw new RuntimeException($S);\n", builderClassType.name() + "." + metaData.withClassName() + " can only be implemented by " + recordClassType.name())
.unindent()
.add("}");
var methodSpec = MethodSpec.methodBuilder(metaData.downCastMethodName())

View File

@@ -3,7 +3,7 @@
<parent>
<groupId>io.soabase.record-builder</groupId>
<artifactId>record-builder</artifactId>
<version>1.14.ea-SNAPSHOT</version>
<version>1.15.jdk14</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -13,6 +13,7 @@
<dependency>
<groupId>io.soabase.record-builder</groupId>
<artifactId>record-builder-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>