From 83337950fd2468fb863331dc9fd485cb1bbbd820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Link?= Date: Fri, 13 Oct 2023 11:39:51 +0200 Subject: [PATCH 1/5] Added RecordBeansFactory. --- lis-commons-beans-records/pom.xml | 22 +++++++++++++++++++ .../beans/record/RecordBeansFactory.java | 17 ++++++++++++++ .../com.link_intersystems.beans.BeansFactory | 1 + .../beans/record/RecordBeansFactoryTest.java | 15 +++++++++++++ pom.xml | 6 +++++ 5 files changed, 61 insertions(+) create mode 100644 lis-commons-beans-records/pom.xml create mode 100644 lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBeansFactory.java create mode 100644 lis-commons-beans-records/src/main/resources/META-INF/services/com.link_intersystems.beans.BeansFactory create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeansFactoryTest.java diff --git a/lis-commons-beans-records/pom.xml b/lis-commons-beans-records/pom.xml new file mode 100644 index 00000000..78c6889e --- /dev/null +++ b/lis-commons-beans-records/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + com.link-intersystems.commons + lis-commons + 1.9.7-SNAPSHOT + + + com.link_intersystems.libs + lis-commons-beans-records + + + + com.link-intersystems.commons + lis-commons-beans + + + + \ No newline at end of file diff --git a/lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBeansFactory.java b/lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBeansFactory.java new file mode 100644 index 00000000..c35c7cec --- /dev/null +++ b/lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBeansFactory.java @@ -0,0 +1,17 @@ +package com.link_intersystems.beans.record; + +import com.link_intersystems.beans.BeanClass; +import com.link_intersystems.beans.BeanClassException; +import com.link_intersystems.beans.BeansFactory; + +public class RecordBeansFactory extends BeansFactory { + @Override + public String getTypeName() { + return "record"; + } + + @Override + public BeanClass createBeanClass(Class beanClass, Class stopClass) throws BeanClassException { + return null; + } +} diff --git a/lis-commons-beans-records/src/main/resources/META-INF/services/com.link_intersystems.beans.BeansFactory b/lis-commons-beans-records/src/main/resources/META-INF/services/com.link_intersystems.beans.BeansFactory new file mode 100644 index 00000000..9763cfdd --- /dev/null +++ b/lis-commons-beans-records/src/main/resources/META-INF/services/com.link_intersystems.beans.BeansFactory @@ -0,0 +1 @@ +com.link_intersystems.beans.record.RecordBeansFactory \ No newline at end of file diff --git a/lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeansFactoryTest.java b/lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeansFactoryTest.java new file mode 100644 index 00000000..a4a60ba5 --- /dev/null +++ b/lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeansFactoryTest.java @@ -0,0 +1,15 @@ +package com.link_intersystems.beans.record; + +import com.link_intersystems.beans.BeansFactory; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class RecordBeansFactoryTest { + + @Test + void recordBeansFactoryDiscovery() { + BeansFactory beansFactory = BeansFactory.getInstance("record"); + assertNotNull(beansFactory); + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index ddd5e0f6..01bfbac2 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,7 @@ lis-commons-swing lis-commons-io lis-commons-security + lis-commons-beans-records @@ -138,6 +139,11 @@ lis-commons-beans 1.9.7-SNAPSHOT + + com.link-intersystems.commons + lis-commons-beans-java + 1.9.7-SNAPSHOT + com.link-intersystems.commons lis-commons-beans From 374c74041bf5fe12761dbe89af665bba1af06acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Link?= Date: Fri, 13 Oct 2023 13:08:06 +0200 Subject: [PATCH 2/5] Bean support for Java records. --- .run/All Tests.run.xml | 2 +- README.md | 60 +++++++++++++++++ lis-commons-beans-records/pom.xml | 5 ++ .../beans/java/record/Introspector.java | 11 ++++ .../beans/java/record/RecordBeanInfo.java | 43 ++++++++++++ .../beans/record/RecordBean.java | 12 ++++ .../beans/record/RecordBeanClass.java | 25 +++++++ .../record/RecordBeanInstanceFactory.java | 64 ++++++++++++++++++ .../beans/record/RecordBeansFactory.java | 12 +++- .../beans/java/record/IntrospectorTest.java | 27 ++++++++ .../beans/record/PersonBean.java | 23 +++++++ .../beans/record/PersonRecord.java | 8 +++ .../beans/record/RecordBeanClassTest.java | 43 ++++++++++++ .../record/RecordBeanInstanceFactoryTest.java | 66 +++++++++++++++++++ .../beans/record/RecordBeanTest.java | 19 ++++++ .../beans/record/RecordBeansFactoryTest.java | 20 +++++- .../beans/record/RecordExamplesTest.java | 38 +++++++++++ .../beans/record/RecordPropertyDescTest.java | 61 +++++++++++++++++ .../beans/ArgumentResolveException.java | 23 +++++++ .../beans/ArgumentResolver.java | 12 +++- .../beans/BeanInstantiationException.java | 4 ++ .../beans/java/JavaBean.java | 8 ++- .../beans/java/JavaBeanClass.java | 18 +++-- .../beans/java/JavaBeanClassTest.java | 8 ++- 24 files changed, 598 insertions(+), 14 deletions(-) create mode 100644 lis-commons-beans-records/src/main/java/com/link_intersystems/beans/java/record/Introspector.java create mode 100644 lis-commons-beans-records/src/main/java/com/link_intersystems/beans/java/record/RecordBeanInfo.java create mode 100644 lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBean.java create mode 100644 lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBeanClass.java create mode 100644 lis-commons-beans-records/src/main/java/com/link_intersystems/beans/record/RecordBeanInstanceFactory.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/java/record/IntrospectorTest.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/PersonBean.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/PersonRecord.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeanClassTest.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeanInstanceFactoryTest.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordBeanTest.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordExamplesTest.java create mode 100644 lis-commons-beans-records/src/test/java/com/link_intersystems/beans/record/RecordPropertyDescTest.java create mode 100644 lis-commons-beans/src/main/java/com/link_intersystems/beans/ArgumentResolveException.java diff --git a/.run/All Tests.run.xml b/.run/All Tests.run.xml index 8b59ba67..292c91f5 100644 --- a/.run/All Tests.run.xml +++ b/.run/All Tests.run.xml @@ -1,7 +1,7 @@ com.link-intersystems.commons - lis-commons-beans-java + lis-commons-beans-records 1.9.7-SNAPSHOT