From 3528b03d0172f66571d8e21e9cc7acf73551db06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 09:50:59 +0800 Subject: [PATCH 01/32] add module `spring-framework-fake-for-java8` --- pom.xml | 1 + spring-framework-fake-for-java8/pom.xml | 63 ++++++++++++ .../aot/generate/GenerationContext.java | 35 +++++++ .../aot/hint/ExecutableMode.java | 29 ++++++ .../aot/hint/MemberCategory.java | 49 ++++++++++ .../springframework/aot/hint/ProxyHints.java | 41 ++++++++ .../aot/hint/ReflectionHints.java | 85 +++++++++++++++++ .../aot/hint/ResourceHints.java | 72 ++++++++++++++ .../aot/hint/RuntimeHints.java | 45 +++++++++ .../aot/hint/RuntimeHintsRegistrar.java | 30 ++++++ .../aot/hint/SerializationHints.java | 47 +++++++++ .../aot/hint/TypeReference.java | 52 ++++++++++ .../aot/BeanRegistrationAotContribution.java | 39 ++++++++ .../aot/BeanRegistrationAotProcessor.java | 36 +++++++ .../factory/aot/BeanRegistrationCode.java | 31 ++++++ .../beans/factory/support/RegisteredBean.java | 95 +++++++++++++++++++ 16 files changed, 750 insertions(+) create mode 100644 spring-framework-fake-for-java8/pom.xml create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java create mode 100644 spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java diff --git a/pom.xml b/pom.xml index 90e31432011..498b3fcd493 100644 --- a/pom.xml +++ b/pom.xml @@ -53,6 +53,7 @@ rm rm-datasource spring + spring-framework-fake-for-java8 tcc test tm diff --git a/spring-framework-fake-for-java8/pom.xml b/spring-framework-fake-for-java8/pom.xml new file mode 100644 index 00000000000..993c0fd2b25 --- /dev/null +++ b/spring-framework-fake-for-java8/pom.xml @@ -0,0 +1,63 @@ + + + + + io.seata + seata-parent + ${revision} + + 4.0.0 + + seata-spring-framework-fake-for-java8 + + ${project.artifactId} ${project.version} + spring-framework-fake-for-java8 for Seata built with Maven + + + + org.springframework + spring-beans + + + + jakarta.servlet + jakarta.servlet-api + provided + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + true + + + + org.apache.maven.plugins + maven-pmd-plugin + + true + + + + + diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java new file mode 100644 index 00000000000..eb97d861a72 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java @@ -0,0 +1,35 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.generate; + +import org.springframework.aot.hint.RuntimeHints; + +/** + * GenerationContext's fake + * + * @author wang.liang + */ +public interface GenerationContext { + +// GeneratedClasses getGeneratedClasses(); +// +// GeneratedFiles getGeneratedFiles(); + + RuntimeHints getRuntimeHints(); + + GenerationContext withName(String name); + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java new file mode 100644 index 00000000000..5ef52463e8f --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java @@ -0,0 +1,29 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +/** + * ExecutableMode's fake + * + * @author wang.liang + */ +public enum ExecutableMode { + + INTROSPECT, + + INVOKE; + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java new file mode 100644 index 00000000000..da204fbd589 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java @@ -0,0 +1,49 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +/** + * MemberCategory's fake + * + * @author wang.liang + */ +public enum MemberCategory { + + PUBLIC_FIELDS, + + DECLARED_FIELDS, + + INTROSPECT_PUBLIC_CONSTRUCTORS, + + INTROSPECT_DECLARED_CONSTRUCTORS, + + INVOKE_PUBLIC_CONSTRUCTORS, + + INVOKE_DECLARED_CONSTRUCTORS, + + INTROSPECT_PUBLIC_METHODS, + + INTROSPECT_DECLARED_METHODS, + + INVOKE_PUBLIC_METHODS, + + INVOKE_DECLARED_METHODS, + + PUBLIC_CLASSES, + + DECLARED_CLASSES; + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java new file mode 100644 index 00000000000..235f68f9200 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java @@ -0,0 +1,41 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +/** + * ProxyHints's fake + * + * @author wang.liang + */ +public class ProxyHints { + +// public Stream jdkProxyHints() { +// return null; +// } +// +// public ProxyHints registerJdkProxy(Consumer jdkProxyHint) { +// return this; +// } + + public ProxyHints registerJdkProxy(TypeReference... proxiedInterfaces) { + return this; + } + + public ProxyHints registerJdkProxy(Class... proxiedInterfaces) { + return this; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java new file mode 100644 index 00000000000..4fb53fefcc3 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java @@ -0,0 +1,85 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +import org.springframework.lang.Nullable; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * ReflectionHints's fake + * + * @author wang.liang + */ +public class ReflectionHints { + +// public Stream typeHints() { +// return this.types.values().stream().map(Builder::build); +// } +// +// @Nullable +// public TypeHint getTypeHint(TypeReference type) { +// return null; +// } +// +// @Nullable +// public TypeHint getTypeHint(Class type) { +// return null; +// } +// +// public ReflectionHints registerType(TypeReference type, Consumer typeHint) { +// return this; +// } + + public ReflectionHints registerType(TypeReference type, MemberCategory... memberCategories) { + return this; + } + +// public ReflectionHints registerType(Class type, Consumer typeHint) { +// return this; +// } + + public ReflectionHints registerType(Class type, MemberCategory... memberCategories) { + return null; + } + +// public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, String typeName, Consumer typeHint) { +// return this; +// } + + public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, String typeName, MemberCategory... memberCategories) { + return null; + } + +// public ReflectionHints registerTypes(Iterable types, Consumer typeHint) { +// return this; +// } + + public ReflectionHints registerField(Field field) { + return null; + } + + public ReflectionHints registerConstructor(Constructor constructor, ExecutableMode mode) { + return null; + } + + public ReflectionHints registerMethod(Method method, ExecutableMode mode) { + return null; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java new file mode 100644 index 00000000000..8ac66667611 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java @@ -0,0 +1,72 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +import org.springframework.core.io.Resource; + +/** + * ResourceHints's fake + * + * @author wang.liang + */ +public class ResourceHints { + +// public Stream resourcePatternHints() { +// return null; +// } +// +// public Stream resourceBundleHints() { +// return null; +// } +// +// public ResourceHints registerPatternIfPresent(@Nullable ClassLoader classLoader, String location, +// Consumer resourceHint) { +// return this; +// } +// +// public ResourceHints registerPattern(@Nullable Consumer resourceHint) { +// ResourcePatternHints.Builder builder = new ResourcePatternHints.Builder(); +// if (resourceHint != null) { +// resourceHint.accept(builder); +// } +// this.resourcePatternHints.add(builder.build()); +// return this; +// } + + public ResourceHints registerPattern(String include) { + return this; + } + + public void registerResource(Resource resource) { + } + +// public ResourceHints registerType(TypeReference type) { +// return this; +// } + + public ResourceHints registerType(Class type) { + return this; + } + +// public ResourceHints registerResourceBundle(String baseName, @Nullable Consumer resourceHint) { +// return this; +// } + + public ResourceHints registerResourceBundle(String baseName) { + return this; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java new file mode 100644 index 00000000000..195d2721f75 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java @@ -0,0 +1,45 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +/** + * RuntimeHints's fake + * + * @author wang.liang + */ +public class RuntimeHints { + + public ReflectionHints reflection() { + return null; + } + + public ResourceHints resources() { + return null; + } + + public SerializationHints serialization() { + return null; + } + + public ProxyHints proxies() { + return null; + } + + public ReflectionHints jni() { + return null; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java new file mode 100644 index 00000000000..54e2bc7e036 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java @@ -0,0 +1,30 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +import org.springframework.lang.Nullable; + +/** + * RuntimeHintsRegistrar's fake + * + * @author wang.liang + */ +@FunctionalInterface +public interface RuntimeHintsRegistrar { + + void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader); + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java new file mode 100644 index 00000000000..5d38a4dda62 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java @@ -0,0 +1,47 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +import java.io.Serializable; + +/** + * SerializationHints's fake + * + * @author wang.liang + */ +public class SerializationHints { + +// public Stream javaSerializationHints() { +// return null; +// } +// +// public SerializationHints registerType(TypeReference type, @Nullable Consumer serializationHint) { +// return this; +// } + + public SerializationHints registerType(TypeReference type) { + return this; + } + +// public SerializationHints registerType(Class type, @Nullable Consumer serializationHint) { +// return this; +// } + + public SerializationHints registerType(Class type) { + return this; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java new file mode 100644 index 00000000000..767303a8465 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java @@ -0,0 +1,52 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.aot.hint; + +import org.springframework.lang.Nullable; + +import java.util.List; + +/** + * TypeReference's fake + * + * @author wang.liang + */ +public interface TypeReference { + + String getName(); + + String getCanonicalName(); + + String getPackageName(); + + String getSimpleName(); + + @Nullable + TypeReference getEnclosingType(); + + static TypeReference of(Class type) { + return null; + } + + static TypeReference of(String className) { + return null; + } + + static List listOf(Class... types) { + return null; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java new file mode 100644 index 00000000000..9279acbaff0 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java @@ -0,0 +1,39 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.beans.factory.aot; + +import org.springframework.aot.generate.GenerationContext; + +/** + * BeanRegistrationAotContribution's fake + * + * @author wang.liang + */ +@FunctionalInterface +public interface BeanRegistrationAotContribution { + +// default BeanRegistrationCodeFragments customizeBeanRegistrationCodeFragments( +// GenerationContext generationContext, BeanRegistrationCodeFragments codeFragments) { +// return codeFragments; +// } + + void applyTo(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode); + +// static BeanRegistrationAotContribution withCustomCodeFragments(UnaryOperator defaultCodeFragments) { +// return null; +// } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java new file mode 100644 index 00000000000..91b3645a0ae --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java @@ -0,0 +1,36 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.beans.factory.aot; + +import org.springframework.beans.factory.support.RegisteredBean; +import org.springframework.lang.Nullable; + +/** + * BeanRegistrationAotProcessor's fake + * + * @author wang.liang + */ +@FunctionalInterface +public interface BeanRegistrationAotProcessor { + + @Nullable + BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean); + + default boolean isBeanExcludedFromAotProcessing() { + return true; + } + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java new file mode 100644 index 00000000000..530607cd9a1 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java @@ -0,0 +1,31 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.beans.factory.aot; + +/** + * BeanRegistrationCode's fake + * + * @author wang.liang + */ +public interface BeanRegistrationCode { + +// ClassName getClassName(); +// +// GeneratedMethods getMethods(); +// +// void addInstancePostProcessor(MethodReference methodReference); + +} diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java new file mode 100644 index 00000000000..b2282348b18 --- /dev/null +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java @@ -0,0 +1,95 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.beans.factory.support; + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.config.BeanDefinitionHolder; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.core.ResolvableType; +import org.springframework.lang.Nullable; + +import java.lang.reflect.Executable; +import java.util.function.Supplier; + +/** + * RegisteredBean's fake + * + * @author wang.liang + */ +public final class RegisteredBean { + + private RegisteredBean(ConfigurableListableBeanFactory beanFactory, Supplier beanName, + boolean generatedBeanName, Supplier mergedBeanDefinition, + @Nullable RegisteredBean parent) { + } + + + public static RegisteredBean of(ConfigurableListableBeanFactory beanFactory, String beanName) { + return null; + } + + public static RegisteredBean ofInnerBean(RegisteredBean parent, BeanDefinitionHolder innerBean) { + return null; + } + + public static RegisteredBean ofInnerBean(RegisteredBean parent, BeanDefinition innerBeanDefinition) { + return null; + } + + public static RegisteredBean ofInnerBean(RegisteredBean parent, + @Nullable String innerBeanName, BeanDefinition innerBeanDefinition) { + return null; + } + + + public String getBeanName() { + return null; + } + + public boolean isGeneratedBeanName() { + return true; + } + + public ConfigurableListableBeanFactory getBeanFactory() { + return null; + } + + public Class getBeanClass() { + return null; + } + + public ResolvableType getBeanType() { + return null; + } + + public RootBeanDefinition getMergedBeanDefinition() { + return null; + } + + public boolean isInnerBean() { + return true; + } + + @Nullable + public RegisteredBean getParent() { + return null; + } + + public Executable resolveConstructorOrFactoryMethod() { + return null; + } + +} From 8041cef01d209093efca5a0b502f27d8911d28ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 09:53:22 +0800 Subject: [PATCH 02/32] Version to `1.7.0-native-SNAPSHOT`, upgrade `shade-plugin` to `3.2.4` --- build/pom.xml | 4 ++-- core/src/main/java/io/seata/core/protocol/Version.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/pom.xml b/build/pom.xml index 6a94233df26..bcb752d977c 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-SNAPSHOT + 1.7.0-native-SNAPSHOT 1.8 @@ -103,7 +103,7 @@ 2.2.1 3.2.0 3.2.2 - 2.4.3 + 3.2.4 3.0.2 3.0.0 3.2.0 diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java index 56e96f47c9e..2f371f8432a 100644 --- a/core/src/main/java/io/seata/core/protocol/Version.java +++ b/core/src/main/java/io/seata/core/protocol/Version.java @@ -36,7 +36,7 @@ public class Version { /** * The constant CURRENT. */ - private static final String CURRENT = "1.7.0-SNAPSHOT"; + private static final String CURRENT = "1.7.0-native-SNAPSHOT"; private static final String VERSION_0_7_1 = "0.7.1"; private static final String VERSION_1_5_0 = "1.5.0"; private static final int MAX_VERSION_DOT = 3; From f3e38d047abecc39b9ffe779296858433049bacd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 09:54:05 +0800 Subject: [PATCH 03/32] add some functions for native-image --- all/pom.xml | 33 ++- .../java/io/seata/common/aot/NativeUtils.java | 63 +++++ .../common/loader/EnhancedServiceLoader.java | 5 +- .../io/seata/common/util/ReflectionUtil.java | 19 ++ pom.xml | 1 + spring-aot/pom.xml | 58 ++++ spring-aot/seata-spring-aot-client/pom.xml | 51 ++++ spring-aot/seata-spring-aot-core/pom.xml | 39 +++ .../java/io/seata/spring/aot/AotUtils.java | 247 ++++++++++++++++++ .../io/seata/spring/aot/ResourceUtil.java | 40 +++ 10 files changed, 544 insertions(+), 12 deletions(-) create mode 100644 common/src/main/java/io/seata/common/aot/NativeUtils.java create mode 100644 spring-aot/pom.xml create mode 100644 spring-aot/seata-spring-aot-client/pom.xml create mode 100644 spring-aot/seata-spring-aot-core/pom.xml create mode 100644 spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/AotUtils.java create mode 100644 spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/ResourceUtil.java diff --git a/all/pom.xml b/all/pom.xml index e0215683f9e..0bf311f1700 100644 --- a/all/pom.xml +++ b/all/pom.xml @@ -212,6 +212,16 @@ + + io.seata + seata-spring-aot-core + ${project.version} + + + io.seata + seata-spring-aot-client + ${project.version} + io.seata seata-tcc @@ -421,10 +431,6 @@ edas-sdk provided - - net.bytebuddy - byte-buddy - aopalliance aopalliance @@ -623,6 +629,13 @@ org.apache.maven.plugins maven-shade-plugin + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + package @@ -641,17 +654,17 @@ - + - + META-INF/spring.handlers - + META-INF/spring.schemas + + META-INF/spring/aot.factories + diff --git a/common/src/main/java/io/seata/common/aot/NativeUtils.java b/common/src/main/java/io/seata/common/aot/NativeUtils.java new file mode 100644 index 00000000000..e708d9a78a5 --- /dev/null +++ b/common/src/main/java/io/seata/common/aot/NativeUtils.java @@ -0,0 +1,63 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.seata.common.aot; + +/** + * The native utils + * + * @author wang.liang + */ +public class NativeUtils { + + /** + * The native-image code + * + * @see ImageInfo.java + */ + private static final String NATIVE_IMAGE_CODE = System.getProperty("org.graalvm.nativeimage.imagecode"); + + + public static final String SPRING_AOT_PROCESSING = "spring.aot.processing"; + + + /** + * Whether Spring-AOT processing + * + * @return the boolean + */ + public static boolean isSpringAotProcessing() { + return "true".equalsIgnoreCase(System.getProperty(SPRING_AOT_PROCESSING)); + } + + /** + * Gets the native-image code. + * + * @return the native-image code + */ + public static String getNativeImageCode() { + return NATIVE_IMAGE_CODE; + } + + /** + * Whether run in native-image + * + * @return the boolean + * @see org.springframework.core.NativeDetector#inNativeImage() + */ + public static boolean inNativeImage() { + return NATIVE_IMAGE_CODE != null; + } +} diff --git a/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java b/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java index dc56d50f76c..92c52d743d0 100644 --- a/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java +++ b/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java @@ -44,6 +44,9 @@ */ public class EnhancedServiceLoader { + public static final String SERVICES_DIRECTORY = "META-INF/services/"; + public static final String SEATA_DIRECTORY = "META-INF/seata/"; + /** * Class->InnerEnhancedServiceLoader map */ @@ -245,8 +248,6 @@ private static ClassLoader findClassLoader() { private static class InnerEnhancedServiceLoader { private static final Logger LOGGER = LoggerFactory.getLogger(InnerEnhancedServiceLoader.class); - private static final String SERVICES_DIRECTORY = "META-INF/services/"; - private static final String SEATA_DIRECTORY = "META-INF/seata/"; private final Class type; private final Holder>> definitionsHolder = new Holder<>(); diff --git a/common/src/main/java/io/seata/common/util/ReflectionUtil.java b/common/src/main/java/io/seata/common/util/ReflectionUtil.java index abc77411db2..1028e7b0e56 100644 --- a/common/src/main/java/io/seata/common/util/ReflectionUtil.java +++ b/common/src/main/java/io/seata/common/util/ReflectionUtil.java @@ -130,6 +130,25 @@ public static Class getWrappedClass(Class clazz) { return clazz; } + public static boolean isJavaClass(Class clazz) { + return clazz != null && clazz.getClassLoader() == null; + } + + /** + * Whether the class exists + * + * @param className the class name + * @return the boolean + */ + public static boolean existsClass(String className) { + try { + getClassByName(className); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } + //endregion diff --git a/pom.xml b/pom.xml index 498b3fcd493..9fea762bc52 100644 --- a/pom.xml +++ b/pom.xml @@ -53,6 +53,7 @@ rm rm-datasource spring + spring-aot spring-framework-fake-for-java8 tcc test diff --git a/spring-aot/pom.xml b/spring-aot/pom.xml new file mode 100644 index 00000000000..b0fb14ed7cf --- /dev/null +++ b/spring-aot/pom.xml @@ -0,0 +1,58 @@ + + + + + io.seata + seata-parent + ${revision} + + 4.0.0 + + seata-spring-aot + pom + + ${project.artifactId} ${project.version} + spring-aot top parent for Seata built with Maven + + + seata-spring-aot-core + seata-spring-aot-client + + + + + org.springframework + spring-context + + + + ${project.groupId} + seata-spring-framework-fake-for-java8 + ${project.version} + provided + + + + + diff --git a/spring-aot/seata-spring-aot-client/pom.xml b/spring-aot/seata-spring-aot-client/pom.xml new file mode 100644 index 00000000000..52de9fd9751 --- /dev/null +++ b/spring-aot/seata-spring-aot-client/pom.xml @@ -0,0 +1,51 @@ + + + + + io.seata + seata-spring-aot + ${revision} + + 4.0.0 + + seata-spring-aot-client + + ${project.artifactId} ${project.version} + spring-aot-client for Seata built with Maven + + + + ${project.groupId} + seata-spring-aot-core + ${project.version} + + + ${project.groupId} + seata-spring + ${project.version} + + + + com.alibaba + druid + provided + true + + + diff --git a/spring-aot/seata-spring-aot-core/pom.xml b/spring-aot/seata-spring-aot-core/pom.xml new file mode 100644 index 00000000000..ad270c9d829 --- /dev/null +++ b/spring-aot/seata-spring-aot-core/pom.xml @@ -0,0 +1,39 @@ + + + + + io.seata + seata-spring-aot + ${revision} + + 4.0.0 + + seata-spring-aot-core + + ${project.artifactId} ${project.version} + spring-aot-core for Seata built with Maven + + + + ${project.groupId} + seata-core + ${project.version} + + + diff --git a/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/AotUtils.java b/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/AotUtils.java new file mode 100644 index 00000000000..1d25d7df30c --- /dev/null +++ b/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/AotUtils.java @@ -0,0 +1,247 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.seata.spring.aot; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Predicate; + +import io.seata.common.aot.NativeUtils; +import io.seata.common.util.ReflectionUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.aot.hint.MemberCategory; +import org.springframework.aot.hint.ReflectionHints; +import org.springframework.core.SpringProperties; +import org.springframework.core.io.Resource; +import org.springframework.lang.NonNull; +import org.springframework.lang.Nullable; + +import static io.seata.common.loader.EnhancedServiceLoader.SERVICES_DIRECTORY; +import static org.springframework.aot.hint.MemberCategory.INVOKE_DECLARED_CONSTRUCTORS; +import static org.springframework.aot.hint.MemberCategory.INVOKE_DECLARED_METHODS; + +/** + * The AOT utils + * + * @author wang.liang + */ +public class AotUtils extends NativeUtils { + + private static final Logger LOGGER = LoggerFactory.getLogger(AotUtils.class); + + public static final String SPRING_AOT_ENABLED = "spring.aot.enabled"; + + + /** + * Usually used for serialization + */ + public static final MemberCategory[] ALL_MEMBER_CATEGORIES = MemberCategory.values(); + + /** + * Only used for load class + */ + public static final MemberCategory[] EMPTY_MEMBER_CATEGORIES = new MemberCategory[0]; + + public static final MemberCategory[] MEMBER_CATEGORIES_FOR_INSTANTIATE = new MemberCategory[]{INVOKE_DECLARED_CONSTRUCTORS}; + + public static final MemberCategory[] MEMBER_CATEGORIES_FOR_INSTANTIATE_AND_INVOKE = new MemberCategory[]{INVOKE_DECLARED_CONSTRUCTORS, INVOKE_DECLARED_METHODS}; + + + /** + * Whether AOT enabled + * + * @return the boolean + */ + public static boolean isSpringAotEnabled() { + return SpringProperties.getFlag(SPRING_AOT_ENABLED); + } + + + //region # Register type to ReflectionHints + + public static void registerType(ReflectionHints reflectionHints, Class clazz, MemberCategory... memberCategories) { + reflectionHints.registerType(clazz, memberCategories); + if (LOGGER.isDebugEnabled()) { + LOGGER.info("Register reflection type '{}' with member categories {}", clazz.getName(), memberCategories); + } + } + + public static void registerType(ReflectionHints reflectionHints, String className, MemberCategory... memberCategories) { + try { + Class clazz = ReflectionUtil.getClassByName(className); + registerType(reflectionHints, clazz, memberCategories); + } catch (ClassNotFoundException e) { + LOGGER.warn("Register reflection type failed: class not found '{}'.", className); + } catch (NoClassDefFoundError e) { + if (LOGGER.isDebugEnabled()) { + LOGGER.warn("Register reflection type '{}' error:", className, e); + } else { + LOGGER.warn("Register reflection type '{}' error: {}: {}", className, e.getClass().getName(), e.getMessage()); + } + } + } + + public static void registerTypes(ReflectionHints reflectionHints, MemberCategory[] memberCategories, String... classNames) { + for (String className : classNames) { + try { + registerType(reflectionHints, ReflectionUtil.getClassByName(className), memberCategories); + } catch (ClassNotFoundException e) { + LOGGER.warn("Register reflection type failed: class not found '{}'.", className); + } catch (NoClassDefFoundError e) { + if (LOGGER.isDebugEnabled()) { + LOGGER.warn("Register reflection type '{}' error:", className, e); + } else { + LOGGER.warn("Register reflection type '{}' error: {}: {}", className, e.getClass().getName(), e.getMessage()); + } + } + } + } + + public static void registerTypes(ReflectionHints reflectionHints, MemberCategory[] memberCategories, Class... classes) { + for (Class clazz : classes) { + registerType(reflectionHints, clazz, memberCategories); + } + } + + /** + * Register the types for serialize, without knowing the type of the serializer + * + * @param reflectionHints the reflection hints + * @param classes the classes + */ + public static void registerTypesForSerialize(ReflectionHints reflectionHints, Class... classes) { + registerTypes(reflectionHints, ALL_MEMBER_CATEGORIES, classes); + } + + public static void registerTypesForSerialize(ReflectionHints reflectionHints, String... classNames) { + registerTypes(reflectionHints, ALL_MEMBER_CATEGORIES, classNames); + } + + + //region ## Register 'classpath*:META-INF/services/*' to ReflectionHints + + public static void registerServices(ReflectionHints reflectionHints, String location, @Nullable Predicate predicate, MemberCategory... memberCategories) { + Resource[] resources = ResourceUtil.getResources(location); + for (Resource resource : resources) { + if (predicate != null && !predicate.test(resource)) { + continue; + } + + try (InputStreamReader isr = new InputStreamReader(resource.getInputStream()); BufferedReader br = new BufferedReader(isr)) { + br.lines().forEach(className -> { + AotUtils.registerTypes(reflectionHints, memberCategories, className); + }); + } catch (IOException e) { + LOGGER.error("Register services '{}' fail:", resource.getFilename(), e); + } + } + } + + public static void registerServices(ReflectionHints reflectionHints, String location, MemberCategory... memberCategories) { + registerServices(reflectionHints, location, null, memberCategories); + } + + public static void registerServices(ReflectionHints reflectionHints, @Nullable Predicate predicate, MemberCategory... memberCategories) { + registerServices(reflectionHints, "classpath*:" + SERVICES_DIRECTORY + "*", predicate, memberCategories); + } + + public static void registerServices(ReflectionHints reflectionHints, MemberCategory... memberCategories) { + registerServices(reflectionHints, "classpath*:" + SERVICES_DIRECTORY + "*", null, memberCategories); + } + + //endregion ## + + + //region ## Register all of class to ReflectionHints + + /** + * Recursively register the class and its supper classes, interfaces, fields, and the parameters of methods to the reflection hints. + * + * @param clazz the class + * @param registerSelf whether register self + * @param reflectionHints the reflection hints + * @param memberCategories the member categories + */ + public static void registerAllOfClass(boolean registerSelf, ReflectionHints reflectionHints, Class clazz, MemberCategory... memberCategories) { + registerAllOfClassInternal(new HashSet<>(), registerSelf, reflectionHints, clazz, memberCategories); + } + + private static void registerAllOfClassInternal(@NonNull Set> cache, boolean registerSelf, ReflectionHints reflectionHints, Class clazz, MemberCategory... memberCategories) { + if (clazz == null) { + return; + } + + if (clazz.isPrimitive() || clazz.isEnum() || clazz.isAnnotation()) { + return; + } + + if (clazz.isArray()) { + registerAllOfClassInternal(cache, true, reflectionHints, clazz.getComponentType(), memberCategories); + return; + } + + if (ReflectionUtil.isJavaClass(clazz)) { + return; + } + + // Cached to prevent endless loops + if (cache.contains(clazz)) { + return; + } + cache.add(clazz); + + // register self + if (registerSelf) { + registerType(reflectionHints, clazz, memberCategories); + } + + // register the interfaces + Set> interfaceClasses = ReflectionUtil.getInterfaces(clazz); + for (Class interfaceClass : interfaceClasses) { + if (!interfaceClass.equals(clazz)) { + registerAllOfClassInternal(cache, true, reflectionHints, interfaceClass, memberCategories); + } + } + + // register the supper class + registerAllOfClassInternal(cache, true, reflectionHints, clazz.getSuperclass(), memberCategories); + + // register the fields + Field[] fields = ReflectionUtil.getAllFields(clazz); + for (Field field : fields) { + registerAllOfClassInternal(cache, true, reflectionHints, field.getType(), memberCategories); + } + + // register the parameters of methods + Method[] methods = clazz.getMethods(); + for (Method method : methods) { + Class[] parameterTypes = method.getParameterTypes(); + for (Class parameterType : parameterTypes) { + registerAllOfClassInternal(cache, true, reflectionHints, parameterType, memberCategories); + } + } + } + + //endregion ## + + //endregion # +} diff --git a/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/ResourceUtil.java b/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/ResourceUtil.java new file mode 100644 index 00000000000..6d21deb3c7f --- /dev/null +++ b/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/ResourceUtil.java @@ -0,0 +1,40 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.seata.spring.aot; + +import java.io.IOException; + +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; + +/** + * Resource util. + * + * @author wang.liang + */ +class ResourceUtil { + + private static final ResourcePatternResolver RESOURCE_RESOLVER = new PathMatchingResourcePatternResolver(); + + public static Resource[] getResources(String location) { + try { + return RESOURCE_RESOLVER.getResources(location); + } catch (IOException e) { + return new Resource[0]; + } + } +} \ No newline at end of file From da2f61de9b9a8ea271b3d9628ba528446edef5d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 09:57:08 +0800 Subject: [PATCH 04/32] Change proxy `byte-buddy` to `JDK-Proxy`. --- config/seata-config-core/pom.xml | 4 -- .../io/seata/config/ConfigurationCache.java | 13 +++---- .../SpringBootConfigurationProvider.java | 39 ++++++++++++------- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/config/seata-config-core/pom.xml b/config/seata-config-core/pom.xml index 72098b12471..f167cca61e2 100644 --- a/config/seata-config-core/pom.xml +++ b/config/seata-config-core/pom.xml @@ -40,10 +40,6 @@ org.yaml snakeyaml - - net.bytebuddy - byte-buddy - diff --git a/config/seata-config-core/src/main/java/io/seata/config/ConfigurationCache.java b/config/seata-config-core/src/main/java/io/seata/config/ConfigurationCache.java index e837ce78fae..f3e6bd6c224 100644 --- a/config/seata-config-core/src/main/java/io/seata/config/ConfigurationCache.java +++ b/config/seata-config-core/src/main/java/io/seata/config/ConfigurationCache.java @@ -15,17 +15,16 @@ */ package io.seata.config; +import java.lang.reflect.Proxy; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; + import io.seata.common.util.CollectionUtils; import io.seata.common.util.DurationUtil; import io.seata.common.util.StringUtils; -import net.bytebuddy.ByteBuddy; -import net.bytebuddy.implementation.InvocationHandlerAdapter; -import net.bytebuddy.matcher.ElementMatchers; /** * @author funkye @@ -101,8 +100,8 @@ public void onChangeEvent(ConfigurationChangeEvent event) { } public Configuration proxy(Configuration originalConfiguration) throws Exception { - return new ByteBuddy().subclass(Configuration.class).method(ElementMatchers.any()) - .intercept(InvocationHandlerAdapter.of((proxy, method, args) -> { + return (Configuration)Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[]{Configuration.class} + , (proxy, method, args) -> { String methodName = method.getName(); if (methodName.startsWith(METHOD_PREFIX) && !methodName.equalsIgnoreCase(METHOD_LATEST_CONFIG)) { String rawDataId = (String)args[0]; @@ -126,8 +125,8 @@ public Configuration proxy(Configuration originalConfiguration) throws Exception return wrapper == null ? null : wrapper.convertData(type); } return method.invoke(originalConfiguration, args); - })).make().load(originalConfiguration.getClass().getClassLoader()).getLoaded().getDeclaredConstructor() - .newInstance(); + } + ); } private static class ConfigurationCacheInstance { diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/provider/SpringBootConfigurationProvider.java b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/provider/SpringBootConfigurationProvider.java index 5a3c4cdd07c..f999561bd39 100644 --- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/provider/SpringBootConfigurationProvider.java +++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/provider/SpringBootConfigurationProvider.java @@ -16,12 +16,13 @@ package io.seata.spring.boot.autoconfigure.provider; import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; import java.time.Duration; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Stream; import io.seata.common.exception.ShouldNeverHappenException; import io.seata.common.holder.ObjectHolder; @@ -32,8 +33,6 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cglib.proxy.Enhancer; -import org.springframework.cglib.proxy.MethodInterceptor; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.lang.Nullable; @@ -60,8 +59,8 @@ public class SpringBootConfigurationProvider implements ExtConfigurationProvider @Override public Configuration provide(Configuration originalConfiguration) { - return (Configuration)Enhancer.create(originalConfiguration.getClass(), - (MethodInterceptor)(proxy, method, args, methodProxy) -> { + return (Configuration)Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class[]{Configuration.class} + , (proxy, method, args) -> { if (method.getName().startsWith(INTERCEPT_METHOD_PREFIX) && args.length > 0) { Object result; String rawDataId = (String)args[0]; @@ -115,7 +114,7 @@ public Configuration provide(Configuration originalConfiguration) { }); } - private Object getDefaultValueFromPropertyObject(String dataId) throws IllegalAccessException { + private Object getDefaultValueFromPropertyObject(String dataId) throws IllegalAccessException, InvocationTargetException { String propertyPrefix = getPropertyPrefix(dataId); String propertySuffix = getPropertySuffix(dataId); @@ -149,17 +148,31 @@ private Object getDefaultValueFromPropertyObject(String dataId) throws IllegalAc * @author xingfudeshi@gmail.com */ @Nullable - private Object getDefaultValueFromPropertyObject(Object propertyObj, String fieldName) throws IllegalAccessException { - Optional fieldOptional = Stream.of(propertyObj.getClass().getDeclaredFields()) - .filter(f -> f.getName().equalsIgnoreCase(fieldName)).findAny(); + private Object getDefaultValueFromPropertyObject(Object propertyObj, String fieldName) throws IllegalAccessException, InvocationTargetException { + try { + Field field = propertyObj.getClass().getDeclaredField(fieldName); - // Get defaultValue from the field - if (fieldOptional.isPresent()) { - Field field = fieldOptional.get(); if (!Map.class.isAssignableFrom(field.getType())) { field.setAccessible(true); return field.get(propertyObj); } + } catch (NoSuchFieldException e) { + Method method = null; + try { + method = propertyObj.getClass().getMethod("get" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1)); + } catch (NoSuchMethodException ex) { + try { + method = propertyObj.getClass().getMethod("is" + Character.toUpperCase(fieldName.charAt(0)) + fieldName.substring(1)); + } catch (NoSuchMethodException exc) { + LOGGER.warn("The get method not found for the field '{}#{}'.", propertyObj.getClass().getSimpleName(), fieldName); + } + } + if (method != null) { + if (!Map.class.isAssignableFrom(method.getReturnType())) { + method.setAccessible(true); + return method.invoke(propertyObj); + } + } } return null; From f1f8374c35881ba6312e05c70fdd7351618e3868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:00:32 +0800 Subject: [PATCH 05/32] Add support for `spring-boot-maven-plugin:process-aot`. --- .../annotation/GlobalTransactionScanner.java | 25 +++++++++++++++++++ .../SeataAutoDataSourceProxyCreator.java | 12 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/spring/src/main/java/io/seata/spring/annotation/GlobalTransactionScanner.java b/spring/src/main/java/io/seata/spring/annotation/GlobalTransactionScanner.java index ef455ea6e54..435b660b267 100644 --- a/spring/src/main/java/io/seata/spring/annotation/GlobalTransactionScanner.java +++ b/spring/src/main/java/io/seata/spring/annotation/GlobalTransactionScanner.java @@ -25,7 +25,9 @@ import javax.annotation.Nullable; +import io.seata.common.aot.NativeUtils; import io.seata.common.util.CollectionUtils; +import io.seata.common.util.ReflectionUtil; import io.seata.common.util.StringUtils; import io.seata.config.ConfigurationCache; import io.seata.config.ConfigurationChangeEvent; @@ -36,6 +38,7 @@ import io.seata.core.rpc.netty.RmNettyRemotingClient; import io.seata.core.rpc.netty.TmNettyRemotingClient; import io.seata.rm.RMClient; +import io.seata.rm.tcc.api.LocalTCC; import io.seata.spring.annotation.scannercheckers.PackageScannerChecker; import io.seata.spring.tcc.TccActionInterceptor; import io.seata.spring.util.OrderUtil; @@ -492,9 +495,31 @@ private MethodDesc makeMethodDesc(GlobalTransactional anno, Method method) { return new MethodDesc(anno, method); } + public static boolean isTccAutoProxy(Class beanClass) { + Set> interfaceClasses = ReflectionUtil.getInterfaces(beanClass); + for (Class interClass : interfaceClasses) { + if (interClass.isAnnotationPresent(LocalTCC.class)) { + return true; + } + } + return beanClass.isAnnotationPresent(LocalTCC.class); + } + @Override protected Object[] getAdvicesAndAdvisorsForBean(Class beanClass, String beanName, TargetSource customTargetSource) throws BeansException { + if (NativeUtils.isSpringAotProcessing()) { + if (isTccAutoProxy(beanClass)) { + LOGGER.info("Proxy TCC service: {}", beanName); + return new Object[]{new TccActionInterceptor()}; + } else if (existsAnnotation(beanClass)) { + LOGGER.info("Proxy TM bean: {}", beanName); + return new Object[]{new GlobalTransactionalInterceptor(failureHandlerHook)}; + } else { + return DO_NOT_PROXY; + } + } + return new Object[]{interceptor}; } diff --git a/spring/src/main/java/io/seata/spring/annotation/datasource/SeataAutoDataSourceProxyCreator.java b/spring/src/main/java/io/seata/spring/annotation/datasource/SeataAutoDataSourceProxyCreator.java index b5fdb69d4d3..39b4fbe163a 100644 --- a/spring/src/main/java/io/seata/spring/annotation/datasource/SeataAutoDataSourceProxyCreator.java +++ b/spring/src/main/java/io/seata/spring/annotation/datasource/SeataAutoDataSourceProxyCreator.java @@ -15,11 +15,12 @@ */ package io.seata.spring.annotation.datasource; -import javax.sql.DataSource; import java.util.Arrays; import java.util.HashSet; import java.util.Set; +import javax.sql.DataSource; +import io.seata.common.aot.NativeUtils; import io.seata.core.model.BranchType; import io.seata.rm.datasource.DataSourceProxy; import io.seata.rm.datasource.SeataDataSourceProxy; @@ -59,6 +60,15 @@ private Object[] buildAdvisors(String dataSourceProxyMode) { @Override protected Object[] getAdvicesAndAdvisorsForBean(Class beanClass, String beanName, TargetSource customTargetSource) { + if (NativeUtils.isSpringAotProcessing()) { + if (!DataSource.class.isAssignableFrom(beanClass)) { + return DO_NOT_PROXY; + } + + if (this.shouldSkip(beanClass, beanName)) { + return DO_NOT_PROXY; + } + } return advisors; } From f9f1248f0146cea7e0919ca4c3b686c94f7815c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:05:07 +0800 Subject: [PATCH 06/32] Add reachability-metadata for `/META-INF/services/*` and `/META-INF/seata/*`. --- .../seata-common/resource-config.json | 42 ++++++++++++ .../spring/aot/SeataServicesRuntimeHints.java | 68 +++++++++++++++++++ .../resources/META-INF/spring/aot.factories | 2 + 3 files changed, 112 insertions(+) create mode 100644 common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json create mode 100644 spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/SeataServicesRuntimeHints.java create mode 100644 spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories diff --git a/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json b/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json new file mode 100644 index 00000000000..57b859160c0 --- /dev/null +++ b/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json @@ -0,0 +1,42 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.\\E.*" + }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.\\E.*" + }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/seata\/com.alibaba.dubbo.rpc.Filter\\E" + }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/seata\/com.alipay.sofa.rpc.filter.Filter\\E" + }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/seata\/com.taobao.hsf.invocation.filter.RPCFilter\\E" + }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/seata\/com.weibo.api.motan.filter.Filter\\E" + } + ] + } +} diff --git a/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/SeataServicesRuntimeHints.java b/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/SeataServicesRuntimeHints.java new file mode 100644 index 00000000000..1d4412790db --- /dev/null +++ b/spring-aot/seata-spring-aot-core/src/main/java/io/seata/spring/aot/SeataServicesRuntimeHints.java @@ -0,0 +1,68 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.seata.spring.aot; + +import java.util.HashSet; +import java.util.Set; +import java.util.function.Predicate; + +import org.springframework.aot.hint.RuntimeHints; +import org.springframework.aot.hint.RuntimeHintsRegistrar; +import org.springframework.core.io.Resource; +import org.springframework.lang.Nullable; + +import static io.seata.common.loader.EnhancedServiceLoader.SEATA_DIRECTORY; +import static io.seata.common.loader.EnhancedServiceLoader.SERVICES_DIRECTORY; + +/** + * The seata /META-INF/services runtime hints registrar + * + * @author wang.liang + */ +class SeataServicesRuntimeHints implements RuntimeHintsRegistrar { + + private static final Set OTHER_SERVICES = new HashSet<>(); + + static { + OTHER_SERVICES.add("com.alibaba.dubbo.rpc.Filter"); + OTHER_SERVICES.add("com.alipay.sofa.rpc.filter.Filter"); + OTHER_SERVICES.add("com.taobao.hsf.invocation.filter.RPCFilter"); + OTHER_SERVICES.add("com.weibo.api.motan.filter.Filter"); + } + + + @Override + public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) { + // Register the services to reflection hints in 'META-INF/services', only the services required by seata. + Predicate predicate = this::isSeataServicesResource; + AotUtils.registerServices(hints.reflection(), "classpath*:" + SERVICES_DIRECTORY + "*", predicate, AotUtils.MEMBER_CATEGORIES_FOR_INSTANTIATE); + AotUtils.registerServices(hints.reflection(), "classpath*:" + SEATA_DIRECTORY + "*", predicate, AotUtils.MEMBER_CATEGORIES_FOR_INSTANTIATE); + } + + + private boolean isSeataServicesResource(Resource resource) { + if (resource.getFilename() == null) { + return false; + } + + if (resource.getFilename().startsWith("io.seata.")) { + return true; + } + + return OTHER_SERVICES.contains(resource.getFilename()); + } + +} diff --git a/spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories b/spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories new file mode 100644 index 00000000000..e6519b7d2de --- /dev/null +++ b/spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories @@ -0,0 +1,2 @@ +org.springframework.aot.hint.RuntimeHintsRegistrar= \ +io.seata.spring.aot.SeataServicesRuntimeHints From eb065bf53acb29a4ca0de18238b26dc17a8f5427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:05:42 +0800 Subject: [PATCH 07/32] Add reachability-metadata for `Configuration` --- .../io.seata/seata-config-core/proxy-config.json | 10 ++++++++++ .../seata-spring-autoconfigure-core/proxy-config.json | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json create mode 100644 seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/proxy-config.json diff --git a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json new file mode 100644 index 00000000000..e46ef9962f0 --- /dev/null +++ b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json @@ -0,0 +1,10 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationCache" + }, + "interfaces": [ + "io.seata.config.Configuration" + ] + } +] \ No newline at end of file diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/proxy-config.json b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/proxy-config.json new file mode 100644 index 00000000000..86bc6c1305f --- /dev/null +++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/proxy-config.json @@ -0,0 +1,10 @@ +[ + { + "condition": { + "typeReachable": "io.seata.spring.boot.autoconfigure.provider.SpringBootConfigurationProvider" + }, + "interfaces": [ + "io.seata.config.Configuration" + ] + } +] \ No newline at end of file From aec3f80045f3bfae954e3c2b94a78b1356231457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:05:53 +0800 Subject: [PATCH 08/32] Add reachability-metadata for `seata-core` --- .../io.seata/seata-core/reflect-config.json | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json diff --git a/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json new file mode 100644 index 00000000000..9185b3e528a --- /dev/null +++ b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json @@ -0,0 +1,20 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.constants.DubboConstants" + }, + "name": "org.apache.dubbo.rpc.RpcContext" + }, + { + "condition": { + "typeReachable": "io.seata.core.serializer.SerializerServiceLoader" + }, + "name": "io.seata.serializer.protobuf.ProtobufSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file From cd7ea26397af2e3c64188635d9c2411b8be20d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:08:37 +0800 Subject: [PATCH 09/32] Add reachability-metadata for AT mode --- .../seata-rm-datasource/reflect-config.json | 142 ++++++++++++++++++ .../io.seata/seata-spring/reflect-config.json | 9 ++ .../seata-sqlparser-antlr/reflect-config.json | 14 ++ .../seata-sqlparser-druid/reflect-config.json | 26 ++++ .../resource-config.json | 12 ++ 5 files changed, 203 insertions(+) create mode 100644 rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json create mode 100644 spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json create mode 100644 sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json create mode 100644 sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json create mode 100644 sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json new file mode 100644 index 00000000000..709117426e1 --- /dev/null +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json @@ -0,0 +1,142 @@ +[ + { + "condition": { + "typeReachable": "com.mysql.jdbc.Driver" + }, + "name": "io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor", + "allDeclaredConstructors": true + }, + { + "condition": { + "typeReachable": "com.mysql.cj.jdbc.Driver" + }, + "name": "io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor", + "allDeclaredConstructors": true + }, + { + "condition": { + "typeReachable": "oracle.jdbc.driver.OracleDriver" + }, + "name": "io.seata.rm.datasource.exec.oracle.OracleInsertExecutor", + "allDeclaredConstructors": true + }, + { + "condition": { + "typeReachable": "org.postgresql.Driver" + }, + "name": "io.seata.rm.datasource.exec.postgresql.PostgresqlInsertExecutor", + "allDeclaredConstructors": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.BranchUndoLog" + }, + "name": "io.seata.rm.datasource.undo.BranchUndoLog", + "allPublicClasses": true, + "allPublicConstructors": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allDeclaredFields": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredClasses": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.Row" + }, + "name": "io.seata.rm.datasource.sql.struct.Row", + "allPublicClasses": true, + "allPublicConstructors": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allDeclaredFields": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredClasses": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableRecords" + }, + "name": "io.seata.rm.datasource.sql.struct.TableRecords", + "allPublicClasses": true, + "allPublicConstructors": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allDeclaredFields": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredClasses": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.Field" + }, + "name": "io.seata.rm.datasource.sql.struct.Field", + "allPublicClasses": true, + "allPublicConstructors": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allDeclaredFields": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredClasses": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableRecords$EmptyTableRecords" + }, + "name": "io.seata.rm.datasource.sql.struct.TableRecords$EmptyTableRecords", + "allPublicClasses": true, + "allPublicConstructors": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allDeclaredFields": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredClasses": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.SQLUndoLog" + }, + "name": "io.seata.rm.datasource.undo.SQLUndoLog", + "allPublicClasses": true, + "allPublicConstructors": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allDeclaredFields": true, + "allPublicMethods": true, + "allPublicFields": true, + "allDeclaredClasses": true + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.cache.AbstractTableMetaCache" + }, + "name": "com.github.benmanes.caffeine.cache.SIMSW", + "methods": [ + { + "name": "", + "parameterTypes": [ + "com.github.benmanes.caffeine.cache.Caffeine", + "com.github.benmanes.caffeine.cache.AsyncCacheLoader", + "boolean" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.cache.AbstractTableMetaCache" + }, + "name": "com.github.benmanes.caffeine.cache.PDWMS", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json new file mode 100644 index 00000000000..09ba99e2b15 --- /dev/null +++ b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json @@ -0,0 +1,9 @@ +[ + { + "condition": { + "typeReachable": "io.seata.spring.annotation.datasource.SeataAutoDataSourceProxyAdvice" + }, + "name": "javax.sql.DataSource", + "allDeclaredMethods": true + } +] \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json new file mode 100644 index 00000000000..39bf63ea631 --- /dev/null +++ b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.sqlparser.antlr.AntlrDelegatingSQLRecognizerFactory" + }, + "name": "io.seata.sqlparser.antlr.mysql.AntlrMySQLRecognizerFactory", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json new file mode 100644 index 00000000000..0c9e1a52d37 --- /dev/null +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.DruidDelegatingDbTypeParser" + }, + "name": "io.seata.sqlparser.druid.DruidDbTypeParserImpl", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory" + }, + "name": "io.seata.sqlparser.druid.DruidSQLRecognizerFactoryImpl", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json new file mode 100644 index 00000000000..2b4710d907e --- /dev/null +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json @@ -0,0 +1,12 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.DefaultDruidLoader" + }, + "pattern": "\\Qlib\/sqlparser\/druid.jar\\E" + } + ] + } +} From d21be4c3ef4616422a3706001aff7eadf917ade3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:09:53 +0800 Subject: [PATCH 10/32] Add reachability-metadata for XA mode --- .../seata-rm-datasource/native-image.properties | 1 + .../seata-rm-datasource/reflect-config.json | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties new file mode 100644 index 00000000000..a974103baf7 --- /dev/null +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties @@ -0,0 +1 @@ +Args = -H:+AddAllCharsets \ No newline at end of file diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json index 709117426e1..865350bc861 100644 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json @@ -138,5 +138,19 @@ "parameterTypes": [] } ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.util.XAUtils" + }, + "name": "io.seata.rm.datasource.util.XAUtils", + "allPublicMethods": true + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.alibaba.druid.util.MySqlUtils", + "allPublicMethods": true } ] \ No newline at end of file From 7382e0fb7d17ebb99b9cf79a695b16fa114a9dc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:10:06 +0800 Subject: [PATCH 11/32] Add reachability-metadata for TCC mode --- ...aLocalTCCBeanRegistrationAotProcessor.java | 89 +++++++++++++++++++ .../resources/META-INF/spring/aot.factories | 2 + .../io.seata/seata-spring/reflect-config.json | 12 +++ .../io.seata/seata-tcc/reflect-config.json | 26 ++++++ 4 files changed, 129 insertions(+) create mode 100644 spring-aot/seata-spring-aot-client/src/main/java/io/seata/spring/aot/SeataLocalTCCBeanRegistrationAotProcessor.java create mode 100644 spring-aot/seata-spring-aot-client/src/main/resources/META-INF/spring/aot.factories create mode 100644 tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json diff --git a/spring-aot/seata-spring-aot-client/src/main/java/io/seata/spring/aot/SeataLocalTCCBeanRegistrationAotProcessor.java b/spring-aot/seata-spring-aot-client/src/main/java/io/seata/spring/aot/SeataLocalTCCBeanRegistrationAotProcessor.java new file mode 100644 index 00000000000..c6e266d2bf2 --- /dev/null +++ b/spring-aot/seata-spring-aot-client/src/main/java/io/seata/spring/aot/SeataLocalTCCBeanRegistrationAotProcessor.java @@ -0,0 +1,89 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.seata.spring.aot; + +import java.util.Set; + +import io.seata.common.util.ReflectionUtil; +import io.seata.rm.tcc.api.LocalTCC; +import io.seata.spring.annotation.GlobalTransactionScanner; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.aot.generate.GenerationContext; +import org.springframework.aot.hint.ReflectionHints; +import org.springframework.beans.factory.aot.BeanRegistrationAotContribution; +import org.springframework.beans.factory.aot.BeanRegistrationAotProcessor; +import org.springframework.beans.factory.aot.BeanRegistrationCode; +import org.springframework.beans.factory.support.RegisteredBean; + +import static io.seata.spring.aot.AotUtils.ALL_MEMBER_CATEGORIES; +import static org.springframework.aot.hint.MemberCategory.INVOKE_PUBLIC_METHODS; + +/** + * The seata-client bean registration AOT processor + * + * @author wang.liang + */ +class SeataLocalTCCBeanRegistrationAotProcessor implements BeanRegistrationAotProcessor { + + private static final Logger LOGGER = LoggerFactory.getLogger(SeataLocalTCCBeanRegistrationAotProcessor.class); + + @Override + public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) { + Class beanClass = registeredBean.getBeanClass(); + if (GlobalTransactionScanner.isTccAutoProxy(beanClass)) { + return new SeataTccBeanRegistrationAotContribution(beanClass); + } + return null; + } + + + /** + * The seata tcc bean registration AOT contribution + */ + private static class SeataTccBeanRegistrationAotContribution implements BeanRegistrationAotContribution { + + private final Class beanClass; + + + public SeataTccBeanRegistrationAotContribution(Class beanClass) { + this.beanClass = beanClass; + } + + + @Override + public void applyTo(GenerationContext generationContext, BeanRegistrationCode beanRegistrationCode) { + ReflectionHints reflectionHints = generationContext.getRuntimeHints().reflection(); + + // register the bean class + registerClassAndItsInterfacesIfLocalTcc(reflectionHints, beanClass); + + // register the interface classes + Set> interfaceClasses = ReflectionUtil.getInterfaces(beanClass); + for (Class interClass : interfaceClasses) { + registerClassAndItsInterfacesIfLocalTcc(reflectionHints, interClass); + } + } + + private void registerClassAndItsInterfacesIfLocalTcc(ReflectionHints reflectionHints, Class clazz) { + if (clazz.isAnnotationPresent(LocalTCC.class)) { + reflectionHints.registerType(clazz, INVOKE_PUBLIC_METHODS); + LOGGER.info("TCC: Register reflection type '{}' (annotated `@LocalTCC`) with member categories {}", clazz.getName(), INVOKE_PUBLIC_METHODS); + AotUtils.registerAllOfClass(false, reflectionHints, clazz, ALL_MEMBER_CATEGORIES); + } + } + } +} diff --git a/spring-aot/seata-spring-aot-client/src/main/resources/META-INF/spring/aot.factories b/spring-aot/seata-spring-aot-client/src/main/resources/META-INF/spring/aot.factories new file mode 100644 index 00000000000..c58d25f79b4 --- /dev/null +++ b/spring-aot/seata-spring-aot-client/src/main/resources/META-INF/spring/aot.factories @@ -0,0 +1,2 @@ +org.springframework.beans.factory.aot.BeanRegistrationAotProcessor=\ +io.seata.spring.aot.SeataLocalTCCBeanRegistrationAotProcessor \ No newline at end of file diff --git a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json index 09ba99e2b15..40ea8e2f635 100644 --- a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json +++ b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json @@ -5,5 +5,17 @@ }, "name": "javax.sql.DataSource", "allDeclaredMethods": true + }, + { + "condition": { + "typeReachable": "io.seata.spring.tcc.TccAnnotationProcessor" + }, + "name": "org.apache.dubbo.config.annotation.Reference" + }, + { + "condition": { + "typeReachable": "io.seata.spring.tcc.TccAnnotationProcessor" + }, + "name": "com.alipay.sofa.runtime.api.annotation.SofaReference" } ] \ No newline at end of file diff --git a/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json new file mode 100644 index 00000000000..d73276ba5f6 --- /dev/null +++ b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.parser.HSFRemotingParser" + }, + "name": "com.taobao.hsf.app.api.util.HSFApiConsumerBean" + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.parser.HSFRemotingParser" + }, + "name": "com.taobao.hsf.app.api.util.HSFApiProviderBean" + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.parser.HSFRemotingParser" + }, + "name": "com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.parser.HSFRemotingParser" + }, + "name": "com.taobao.hsf.app.spring.util.HSFSpringProviderBean" + } +] \ No newline at end of file From 4a4f16214b363ea2c529f36a1c096efc35b4e357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 10:39:36 +0800 Subject: [PATCH 12/32] Revert "Add reachability-metadata for XA mode" This reverts commit d21be4c3ef4616422a3706001aff7eadf917ade3. --- .../seata-rm-datasource/native-image.properties | 1 - .../seata-rm-datasource/reflect-config.json | 14 -------------- 2 files changed, 15 deletions(-) delete mode 100644 rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties deleted file mode 100644 index a974103baf7..00000000000 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties +++ /dev/null @@ -1 +0,0 @@ -Args = -H:+AddAllCharsets \ No newline at end of file diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json index 865350bc861..709117426e1 100644 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json @@ -138,19 +138,5 @@ "parameterTypes": [] } ] - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.util.XAUtils" - }, - "name": "io.seata.rm.datasource.util.XAUtils", - "allPublicMethods": true - }, - { - "condition": { - "typeReachable": "com.alibaba.druid.util.MySqlUtils" - }, - "name": "com.alibaba.druid.util.MySqlUtils", - "allPublicMethods": true } ] \ No newline at end of file From 154f9e9ffe04cc9b1d90770590b35bb06210993f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 11:30:02 +0800 Subject: [PATCH 13/32] Add reachability-metadata for XA mode --- .../native-image.properties | 1 + .../seata-rm-datasource/reflect-config.json | 212 ++++++++++++++++++ 2 files changed, 213 insertions(+) create mode 100644 rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties new file mode 100644 index 00000000000..a974103baf7 --- /dev/null +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties @@ -0,0 +1 @@ +Args = -H:+AddAllCharsets \ No newline at end of file diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json index 709117426e1..d5b35f9296b 100644 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json @@ -138,5 +138,217 @@ "parameterTypes": [] } ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.util.XAUtils" + }, + "name": "oracle.jdbc.driver.T4CXAConnection", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.sql.Connection" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.util.XAUtils" + }, + "name": "oracle.jdbc.xa.client.OracleXAConnection", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.sql.Connection" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.jdbc.Util", + "methods": [ + { + "name": "isJdbc4", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.jdbc.Connection", + "methods": [ + { + "name": "getPinGlobalTxToPhysicalConnection", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection", + "methods": [ + { + "name": "", + "parameterTypes": [ + "com.mysql.jdbc.Connection" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection", + "methods": [ + { + "name": "", + "parameterTypes": [ + "com.mysql.jdbc.Connection" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.jdbc.jdbc2.optional.MysqlXAConnection", + "methods": [ + { + "name": "", + "parameterTypes": [ + "com.mysql.jdbc.Connection", + "boolean" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.cj.jdbc.JdbcConnection", + "methods": [ + { + "name": "getPropertySet", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.mysql.cj.jdbc.JdbcConnection" + }, + "name": "com.mysql.cj.conf.PropertySet", + "methods": [ + { + "name": "getBooleanReadableProperty", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.mysql.cj.jdbc.JdbcConnection" + }, + "name": "com.mysql.cj.conf.ReadableProperty", + "methods": [ + { + "name": "getValue", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.mysql.cj.jdbc.JdbcConnection" + }, + "name": "com.mysql.cj.conf.RuntimeProperty", + "methods": [ + { + "name": "getValue", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.cj.api.jdbc.JdbcConnection", + "methods": [ + { + "name": "getPropertySet", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.mysql.cj.api.jdbc.JdbcConnection" + }, + "name": "com.mysql.cj.api.conf.PropertySet", + "methods": [ + { + "name": "getBooleanReadableProperty", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.mysql.cj.api.jdbc.JdbcConnection" + }, + "name": "com.mysql.cj.api.conf.ReadableProperty", + "methods": [ + { + "name": "getValue", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.cj.jdbc.SuspendableXAConnection", + "methods": [ + { + "name": "getInstance", + "parameterTypes": [ + "com.mysql.cj.jdbc.JdbcConnection" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.alibaba.druid.util.MySqlUtils" + }, + "name": "com.mysql.cj.jdbc.MysqlXAConnection", + "methods": [ + { + "name": "getInstance", + "parameterTypes": [ + "com.mysql.cj.jdbc.JdbcConnection", + "boolean" + ] + } + ] } ] \ No newline at end of file From 49359390b520634f678fce89c253b14ae00ed4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 15:37:31 +0800 Subject: [PATCH 14/32] Add reachability-metadata for `/META-INF/services/*` and `/META-INF/seata/*`, and remove the `aot.factories` of the `SeataServicesRuntimeHints`. --- .../io.seata/seata-common/reflect-config.json | 14 + .../seata-common/resource-config.json | 12 + .../services/io.seata.common.loader.Hello | 2 +- .../seata-compressor-7z/reflect-config.json | 14 + .../seata-compressor-7z/resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-compressor-gzip/reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-compressor-lz4/reflect-config.json | 14 + .../seata-compressor-lz4/resource-config.json | 18 ++ .../seata-compressor-zip/reflect-config.json | 14 + .../seata-compressor-zip/resource-config.json | 18 ++ .../seata-compressor-zstd/reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-config-apollo/reflect-config.json | 14 + .../seata-config-apollo/resource-config.json | 18 ++ .../seata-config-consul/reflect-config.json | 14 + .../seata-config-consul/resource-config.json | 18 ++ .../seata-config-core/proxy-config.json | 54 ++++ .../seata-config-core/resource-config.json | 30 ++ .../services/io.seata.config.file.FileConfig | 2 +- .../seata-config-custom/reflect-config.json | 14 + .../seata-config-custom/resource-config.json | 18 ++ .../seata-config-custom/reflect-config.json | 14 + .../seata-config-etcd3/reflect-config.json | 14 + .../seata-config-etcd3/resource-config.json | 18 ++ .../seata-config-nacos/reflect-config.json | 14 + .../seata-config-nacos/resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-config-zk/reflect-config.json | 14 + .../seata-config-zk/resource-config.json | 18 ++ .../io.seata/seata-core/reflect-config.json | 168 ++++++++++ .../io.seata/seata-core/resource-config.json | 66 ++++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 74 +++++ .../resource-config.json | 30 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../seata-discovery-etcd3/reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-discovery-nacos/reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-discovery-redis/reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-discovery-sofa/reflect-config.json | 14 + .../seata-discovery-sofa/resource-config.json | 18 ++ .../seata-discovery-zk/reflect-config.json | 14 + .../seata-discovery-zk/resource-config.json | 18 ++ .../seata-dubbo-alibaba/reflect-config.json | 14 + .../seata-dubbo-alibaba/resource-config.json | 18 ++ .../io.seata/seata-hsf/reflect-config.json | 14 + .../io.seata/seata-hsf/resource-config.json | 18 ++ .../io.seata/seata-motan/reflect-config.json | 14 + .../io.seata/seata-motan/resource-config.json | 18 ++ .../seata-sofa-rpc/reflect-config.json | 26 ++ .../seata-sofa-rpc/resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-rm-datasource/reflect-config.json | 300 ++++++++++++++++++ .../seata-rm-datasource/resource-config.json | 102 ++++++ .../seata-rm-datasource/reflect-config.json | 74 +++++ .../seata-rm-datasource/resource-config.json | 54 ++++ .../io.seata.sqlparser.SQLRecognizerFactory | 18 +- ...sqlparser.druid.SQLOperateRecognizerHolder | 16 - .../io.seata.sqlparser.util.DbTypeParser | 18 +- .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-saga-engine/reflect-config.json | 50 +++ .../seata-saga-engine/resource-config.json | 30 ++ .../seata-saga-rm/reflect-config.json | 26 ++ .../seata-saga-rm/resource-config.json | 30 ++ .../io.seata.core.model.ResourceManager | 2 +- .../seata-saga-statelang/reflect-config.json | 26 ++ .../seata-saga-statelang/resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-serializer-fst/reflect-config.json | 14 + .../seata-serializer-fst/resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../seata-serializer-kryo/reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../reflect-config.json | 14 + .../resource-config.json | 18 ++ .../resources/META-INF/spring/aot.factories | 2 - .../io.seata/seata-spring/reflect-config.json | 36 +++ .../seata-spring/resource-config.json | 18 ++ .../seata-sqlparser-antlr/reflect-config.json | 24 ++ .../resource-config.json | 30 ++ .../io.seata.sqlparser.SQLRecognizerFactory | 2 +- ...sqlparser.antlr.SQLOperateRecognizerHolder | 2 +- .../seata-sqlparser-druid/reflect-config.json | 60 ++++ .../resource-config.json | 36 +++ .../io.seata.sqlparser.SQLRecognizerFactory | 2 +- .../io.seata.sqlparser.util.DbTypeParser | 2 +- .../io.seata/seata-tcc/reflect-config.json | 72 +++++ .../io.seata/seata-tcc/resource-config.json | 42 +++ .../io.seata.core.model.ResourceManager | 2 +- .../io.seata/seata-test/reflect-config.json | 50 +++ .../io.seata/seata-test/resource-config.json | 24 ++ .../io.seata/seata-tm/reflect-config.json | 14 + .../io.seata/seata-tm/resource-config.json | 18 ++ 116 files changed, 2784 insertions(+), 60 deletions(-) create mode 100644 common/src/test/resources/META-INF/native-image/io.seata/seata-common/reflect-config.json create mode 100644 common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json create mode 100644 compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/reflect-config.json create mode 100644 compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json create mode 100644 compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/reflect-config.json create mode 100644 compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json create mode 100644 compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/reflect-config.json create mode 100644 compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json create mode 100644 compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/reflect-config.json create mode 100644 compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json create mode 100644 compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/reflect-config.json create mode 100644 compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json create mode 100644 compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/reflect-config.json create mode 100644 compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json create mode 100644 compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/reflect-config.json create mode 100644 compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json create mode 100644 config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/reflect-config.json create mode 100644 config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json create mode 100644 config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/reflect-config.json create mode 100644 config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json create mode 100644 config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json create mode 100644 config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json create mode 100644 config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json create mode 100644 config/seata-config-custom/src/test/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json create mode 100644 config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/reflect-config.json create mode 100644 config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json create mode 100644 config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/reflect-config.json create mode 100644 config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json create mode 100644 config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/reflect-config.json create mode 100644 config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json create mode 100644 config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/reflect-config.json create mode 100644 config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json create mode 100644 core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json create mode 100644 discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json create mode 100644 discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json create mode 100644 discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json create mode 100644 discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json create mode 100644 discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json create mode 100644 discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json create mode 100644 discovery/seata-discovery-custom/src/test/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json create mode 100644 discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/reflect-config.json create mode 100644 discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json create mode 100644 discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/reflect-config.json create mode 100644 discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json create mode 100644 discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/reflect-config.json create mode 100644 discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json create mode 100644 discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/reflect-config.json create mode 100644 discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json create mode 100644 discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/reflect-config.json create mode 100644 discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json create mode 100644 discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/reflect-config.json create mode 100644 discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json create mode 100644 integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/reflect-config.json create mode 100644 integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json create mode 100644 integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/reflect-config.json create mode 100644 integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json create mode 100644 integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/reflect-config.json create mode 100644 integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json create mode 100644 integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/reflect-config.json create mode 100644 integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json create mode 100644 metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/reflect-config.json create mode 100644 metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json create mode 100644 metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/reflect-config.json create mode 100644 metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json create mode 100644 rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json create mode 100644 rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json create mode 100644 rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json create mode 100644 saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/reflect-config.json create mode 100644 saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json create mode 100644 saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/reflect-config.json create mode 100644 saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json create mode 100644 saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/reflect-config.json create mode 100644 saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json create mode 100644 saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/reflect-config.json create mode 100644 saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json create mode 100644 seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/reflect-config.json create mode 100644 seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json create mode 100644 seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/reflect-config.json create mode 100644 seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json create mode 100644 serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/reflect-config.json create mode 100644 serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json create mode 100644 serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/reflect-config.json create mode 100644 serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json create mode 100644 serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/reflect-config.json create mode 100644 serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json create mode 100644 serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/reflect-config.json create mode 100644 serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json create mode 100644 serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/reflect-config.json create mode 100644 serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json delete mode 100644 spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories create mode 100644 spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json create mode 100644 sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json create mode 100644 tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json create mode 100644 test/src/test/resources/META-INF/native-image/io.seata/seata-test/reflect-config.json create mode 100644 test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json create mode 100644 tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/reflect-config.json create mode 100644 tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json diff --git a/common/src/test/resources/META-INF/native-image/io.seata/seata-common/reflect-config.json b/common/src/test/resources/META-INF/native-image/io.seata/seata-common/reflect-config.json new file mode 100644 index 00000000000..1dc92069584 --- /dev/null +++ b/common/src/test/resources/META-INF/native-image/io.seata/seata-common/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.common.loader.Hello" + }, + "name": "io.seata.common.loader.ChineseHello", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json b/common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json new file mode 100644 index 00000000000..8839d21ac7e --- /dev/null +++ b/common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json @@ -0,0 +1,12 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.common.loader.Hello" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.common.loader.Hello\\E" + } + ] + } +} \ No newline at end of file diff --git a/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello b/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello index 1b772803d97..afeb748dab9 100644 --- a/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello +++ b/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello @@ -1 +1 @@ -io.seata.common.loader.ChineseHello \ No newline at end of file +io.seata.common.loader.ChineseHello diff --git a/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/reflect-config.json b/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/reflect-config.json new file mode 100644 index 00000000000..b49e8b6c200 --- /dev/null +++ b/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.sevenz.SevenZCompressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json b/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/reflect-config.json b/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/reflect-config.json new file mode 100644 index 00000000000..f5db3d44afc --- /dev/null +++ b/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.bzip2.BZip2Compressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json b/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/reflect-config.json b/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/reflect-config.json new file mode 100644 index 00000000000..82cae57a764 --- /dev/null +++ b/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.deflater.DeflaterCompressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json b/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/reflect-config.json b/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/reflect-config.json new file mode 100644 index 00000000000..e86eb53c3e1 --- /dev/null +++ b/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.gzip.GzipCompressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json b/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/reflect-config.json b/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/reflect-config.json new file mode 100644 index 00000000000..a0303f660de --- /dev/null +++ b/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.lz4.Lz4Compressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json b/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/reflect-config.json b/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/reflect-config.json new file mode 100644 index 00000000000..8e052e52bdb --- /dev/null +++ b/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.zip.ZipCompressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json b/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/reflect-config.json b/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/reflect-config.json new file mode 100644 index 00000000000..772676f43fe --- /dev/null +++ b/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "name": "io.seata.compressor.zstd.ZstdCompressor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json b/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json new file mode 100644 index 00000000000..3ccff14d418 --- /dev/null +++ b/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.compressor.Compressor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/reflect-config.json b/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/reflect-config.json new file mode 100644 index 00000000000..d5dad7e68db --- /dev/null +++ b/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.apollo.ApolloConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json b/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/reflect-config.json b/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/reflect-config.json new file mode 100644 index 00000000000..575a55ecc9e --- /dev/null +++ b/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.consul.ConsulConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json b/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json index e46ef9962f0..c28758f2502 100644 --- a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json +++ b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json @@ -6,5 +6,59 @@ "interfaces": [ "io.seata.config.Configuration" ] + }, + { + "condition": { + "typeReachable": "io.seata.config.file.FileConfig" + }, + "name": "io.seata.config.file.SimpleFileConfig", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.io.File", + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.config.file.FileConfig" + }, + "name": "io.seata.config.file.YamlFileConfig", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.io.File", + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.config.processor.Processor" + }, + "name": "io.seata.config.processor.ProcessorProperties", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.config.processor.Processor" + }, + "name": "io.seata.config.processor.ProcessorYaml", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] } ] \ No newline at end of file diff --git a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json new file mode 100644 index 00000000000..7f47fe2a43d --- /dev/null +++ b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json @@ -0,0 +1,30 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.file.FileConfig" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.file.FileConfig\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.file.FileConfig" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.file.FileConfig\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.processor.Processor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.processor.Processor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.processor.Processor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.processor.Processor\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-core/src/main/resources/META-INF/services/io.seata.config.file.FileConfig b/config/seata-config-core/src/main/resources/META-INF/services/io.seata.config.file.FileConfig index 911c3d91a46..b44f1b5ce05 100644 --- a/config/seata-config-core/src/main/resources/META-INF/services/io.seata.config.file.FileConfig +++ b/config/seata-config-core/src/main/resources/META-INF/services/io.seata.config.file.FileConfig @@ -1,2 +1,2 @@ io.seata.config.file.SimpleFileConfig -io.seata.config.file.YamlFileConfig +io.seata.config.file.YamlFileConfig \ No newline at end of file diff --git a/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json b/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json new file mode 100644 index 00000000000..9cece512be6 --- /dev/null +++ b/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.custom.CustomConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json b/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-custom/src/test/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json b/config/seata-config-custom/src/test/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json new file mode 100644 index 00000000000..babebe2a8f3 --- /dev/null +++ b/config/seata-config-custom/src/test/resources/META-INF/native-image/io.seata/seata-config-custom/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.CustomConfigurationProviderForTest", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/reflect-config.json b/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/reflect-config.json new file mode 100644 index 00000000000..00da19d813a --- /dev/null +++ b/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.etcd3.EtcdConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json b/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/reflect-config.json b/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/reflect-config.json new file mode 100644 index 00000000000..c8ed1707fce --- /dev/null +++ b/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.nacos.NacosConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json b/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/reflect-config.json b/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/reflect-config.json new file mode 100644 index 00000000000..05f33a9d39b --- /dev/null +++ b/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.springcloud.SpringCloudConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json b/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/reflect-config.json b/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/reflect-config.json new file mode 100644 index 00000000000..b3ed5b43182 --- /dev/null +++ b/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "name": "io.seata.config.zk.ZookeeperConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json b/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json new file mode 100644 index 00000000000..5ba31ee057a --- /dev/null +++ b/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json index 9185b3e528a..ec2f79715c4 100644 --- a/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json +++ b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/reflect-config.json @@ -16,5 +16,173 @@ "parameterTypes": [] } ] + }, + { + "condition": { + "typeReachable": "io.seata.core.auth.AuthSigner" + }, + "name": "io.seata.core.auth.DefaultAuthSigner", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.context.ContextCore" + }, + "name": "io.seata.core.context.ThreadLocalContextCore", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.context.ContextCore" + }, + "name": "io.seata.core.context.FastThreadLocalContextCore", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.rpc.hook.RpcHook" + }, + "name": "io.seata.core.rpc.hook.StatusRpcHook", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "name": "io.seata.core.store.db.sql.lock.MysqlLockStoreSql", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "name": "io.seata.core.store.db.sql.lock.OracleLockStoreSql", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "name": "io.seata.core.store.db.sql.lock.OceanbaseLockStoreSql", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "name": "io.seata.core.store.db.sql.lock.PostgresqlLockStoreSql", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "name": "io.seata.core.store.db.sql.lock.H2LockStoreSql", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "name": "io.seata.core.store.db.sql.log.MysqlLogStoreSqls", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "name": "io.seata.core.store.db.sql.log.OracleLogStoreSqls", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "name": "io.seata.core.store.db.sql.log.PostgresqlLogStoreSqls", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "name": "io.seata.core.store.db.sql.log.OceanbaseLogStoreSqls", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "name": "io.seata.core.store.db.sql.log.H2LogStoreSqls", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] } ] \ No newline at end of file diff --git a/core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json new file mode 100644 index 00000000000..fe3f34f1cdd --- /dev/null +++ b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json @@ -0,0 +1,66 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.auth.AuthSigner" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.auth.AuthSigner\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.auth.AuthSigner" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.auth.AuthSigner\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.context.ContextCore" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.context.ContextCore\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.context.ContextCore" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.context.ContextCore\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.rpc.hook.RpcHook" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.rpc.hook.RpcHook\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.rpc.hook.RpcHook" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.rpc.hook.RpcHook\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.store.db.sql.lock.LockStoreSql\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.store.db.sql.lock.LockStoreSql\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.store.db.sql.log.LogStoreSqls\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.store.db.sql.log.LogStoreSqls\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json b/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json new file mode 100644 index 00000000000..301a05860e6 --- /dev/null +++ b/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.consul.ConsulRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json b/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json b/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json new file mode 100644 index 00000000000..1a99d36dc36 --- /dev/null +++ b/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json @@ -0,0 +1,74 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "name": "io.seata.discovery.loadbalance.RoundRobinLoadBalance", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "name": "io.seata.discovery.loadbalance.RandomLoadBalance", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "name": "io.seata.discovery.loadbalance.ConsistentHashLoadBalance", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "name": "io.seata.discovery.loadbalance.LeastActiveLoadBalance", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "name": "io.seata.discovery.loadbalance.XIDLoadBalance", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.FileRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json b/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json new file mode 100644 index 00000000000..908df5ca5ad --- /dev/null +++ b/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json @@ -0,0 +1,30 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.loadbalance.LoadBalance\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.loadbalance.LoadBalance\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json b/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json new file mode 100644 index 00000000000..a5116bcf110 --- /dev/null +++ b/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.custom.CustomRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json b/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-custom/src/test/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json b/discovery/seata-discovery-custom/src/test/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json new file mode 100644 index 00000000000..db8a46ecfdf --- /dev/null +++ b/discovery/seata-discovery-custom/src/test/resources/META-INF/native-image/io.seata/seata-discovery-custom/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.custom.CustomRegistryProviderForTest", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/reflect-config.json b/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/reflect-config.json new file mode 100644 index 00000000000..ad34373e0fd --- /dev/null +++ b/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.etcd3.EtcdRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json b/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/reflect-config.json b/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/reflect-config.json new file mode 100644 index 00000000000..a9a50eaa8ec --- /dev/null +++ b/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.eureka.EurekaRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json b/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/reflect-config.json b/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/reflect-config.json new file mode 100644 index 00000000000..391c28cdfe9 --- /dev/null +++ b/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.nacos.NacosRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json b/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/reflect-config.json b/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/reflect-config.json new file mode 100644 index 00000000000..fc26abafdff --- /dev/null +++ b/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.redis.RedisRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json b/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/reflect-config.json b/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/reflect-config.json new file mode 100644 index 00000000000..2e7bb3c74a5 --- /dev/null +++ b/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.sofa.SofaRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json b/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/reflect-config.json b/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/reflect-config.json new file mode 100644 index 00000000000..301262c3441 --- /dev/null +++ b/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "name": "io.seata.discovery.registry.zk.ZookeeperRegistryProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json b/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json new file mode 100644 index 00000000000..891a2daf375 --- /dev/null +++ b/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.discovery.registry.RegistryProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/reflect-config.json b/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/reflect-config.json new file mode 100644 index 00000000000..3aabc896ced --- /dev/null +++ b/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "com.alibaba.dubbo.rpc.Filter" + }, + "name": "io.seata.integration.dubbo.alibaba.AlibabaDubboTransactionPropagationFilter", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json b/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json new file mode 100644 index 00000000000..16c205f1c3f --- /dev/null +++ b/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "com.alibaba.dubbo.rpc.Filter" + }, + "pattern": "\\QMETA-INF\/services\/com.alibaba.dubbo.rpc.Filter\\E" + }, + { + "condition": { + "typeReachable": "com.alibaba.dubbo.rpc.Filter" + }, + "pattern": "\\QMETA-INF\/seata\/com.alibaba.dubbo.rpc.Filter\\E" + } + ] + } +} \ No newline at end of file diff --git a/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/reflect-config.json b/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/reflect-config.json new file mode 100644 index 00000000000..ec2ca59dbd1 --- /dev/null +++ b/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "com.taobao.hsf.invocation.filter.RPCFilter" + }, + "name": "io.seata.integration.hsf.HsfTransactionFilter", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json b/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json new file mode 100644 index 00000000000..f4f3d4656d7 --- /dev/null +++ b/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "com.taobao.hsf.invocation.filter.RPCFilter" + }, + "pattern": "\\QMETA-INF\/services\/com.taobao.hsf.invocation.filter.RPCFilter\\E" + }, + { + "condition": { + "typeReachable": "com.taobao.hsf.invocation.filter.RPCFilter" + }, + "pattern": "\\QMETA-INF\/seata\/com.taobao.hsf.invocation.filter.RPCFilter\\E" + } + ] + } +} \ No newline at end of file diff --git a/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/reflect-config.json b/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/reflect-config.json new file mode 100644 index 00000000000..20fc9d92636 --- /dev/null +++ b/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "com.weibo.api.motan.filter.Filter" + }, + "name": "io.seata.integration.motan.MotanTransactionFilter", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json b/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json new file mode 100644 index 00000000000..f36a7e7d141 --- /dev/null +++ b/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "com.weibo.api.motan.filter.Filter" + }, + "pattern": "\\QMETA-INF\/services\/com.weibo.api.motan.filter.Filter\\E" + }, + { + "condition": { + "typeReachable": "com.weibo.api.motan.filter.Filter" + }, + "pattern": "\\QMETA-INF\/seata\/com.weibo.api.motan.filter.Filter\\E" + } + ] + } +} \ No newline at end of file diff --git a/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/reflect-config.json b/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/reflect-config.json new file mode 100644 index 00000000000..21eab9bdc03 --- /dev/null +++ b/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/reflect-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "com.alipay.sofa.rpc.filter.Filter" + }, + "name": "io.seata.integration.sofa.rpc.TransactionContextProviderFilter", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "com.alipay.sofa.rpc.filter.Filter" + }, + "name": "io.seata.integration.sofa.rpc.TransactionContextConsumerFilter", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json b/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json new file mode 100644 index 00000000000..71ffed56d32 --- /dev/null +++ b/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "com.alipay.sofa.rpc.filter.Filter" + }, + "pattern": "\\QMETA-INF\/services\/com.alipay.sofa.rpc.filter.Filter\\E" + }, + { + "condition": { + "typeReachable": "com.alipay.sofa.rpc.filter.Filter" + }, + "pattern": "\\QMETA-INF\/seata\/com.alipay.sofa.rpc.filter.Filter\\E" + } + ] + } +} \ No newline at end of file diff --git a/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/reflect-config.json b/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/reflect-config.json new file mode 100644 index 00000000000..2de446ee26e --- /dev/null +++ b/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.metrics.exporter.Exporter" + }, + "name": "io.seata.metrics.exporter.prometheus.PrometheusExporter", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json b/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json new file mode 100644 index 00000000000..272559151be --- /dev/null +++ b/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.metrics.exporter.Exporter" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.metrics.exporter.Exporter\\E" + }, + { + "condition": { + "typeReachable": "io.seata.metrics.exporter.Exporter" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.metrics.exporter.Exporter\\E" + } + ] + } +} \ No newline at end of file diff --git a/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/reflect-config.json b/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/reflect-config.json new file mode 100644 index 00000000000..5f241d7a6cd --- /dev/null +++ b/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.metrics.registry.Registry" + }, + "name": "io.seata.metrics.registry.compact.CompactRegistry", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json b/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json new file mode 100644 index 00000000000..c8a8a83b02a --- /dev/null +++ b/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.metrics.registry.Registry" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.metrics.registry.Registry\\E" + }, + { + "condition": { + "typeReachable": "io.seata.metrics.registry.Registry" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.metrics.registry.Registry\\E" + } + ] + } +} \ No newline at end of file diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json index d5b35f9296b..64dde84a0af 100644 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json @@ -350,5 +350,305 @@ ] } ] + }, + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "name": "io.seata.rm.datasource.DataSourceManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "name": "io.seata.rm.datasource.xa.ResourceManagerXA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "name": "io.seata.rm.RMHandlerAT", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "name": "io.seata.rm.RMHandlerXA", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" + }, + "name": "io.seata.rm.datasource.exec.mysql.MySQLInsertExecutor", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.rm.datasource.StatementProxy", + "io.seata.rm.datasource.exec.StatementCallback", + "io.seata.sqlparser.SQLRecognizer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" + }, + "name": "io.seata.rm.datasource.exec.oracle.OracleInsertExecutor", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.rm.datasource.StatementProxy", + "io.seata.rm.datasource.exec.StatementCallback", + "io.seata.sqlparser.SQLRecognizer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" + }, + "name": "io.seata.rm.datasource.exec.postgresql.PostgresqlInsertExecutor", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.rm.datasource.StatementProxy", + "io.seata.rm.datasource.exec.StatementCallback", + "io.seata.sqlparser.SQLRecognizer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" + }, + "name": "io.seata.rm.datasource.sql.struct.cache.MysqlTableMetaCache", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" + }, + "name": "io.seata.rm.datasource.sql.struct.cache.OracleTableMetaCache", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" + }, + "name": "io.seata.rm.datasource.sql.struct.cache.PostgresqlTableMetaCache", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" + }, + "name": "io.seata.rm.datasource.undo.mysql.MySQLUndoExecutorHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" + }, + "name": "io.seata.rm.datasource.undo.oracle.OracleUndoExecutorHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" + }, + "name": "io.seata.rm.datasource.undo.postgresql.PostgresqlUndoExecutorHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" + }, + "name": "io.seata.rm.datasource.undo.mysql.MySQLUndoLogManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" + }, + "name": "io.seata.rm.datasource.undo.oracle.OracleUndoLogManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" + }, + "name": "io.seata.rm.datasource.undo.postgresql.PostgresqlUndoLogManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "name": "io.seata.rm.datasource.undo.parser.FastjsonUndoLogParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "name": "io.seata.rm.datasource.undo.parser.JacksonUndoLogParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "name": "io.seata.rm.datasource.undo.parser.ProtostuffUndoLogParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "name": "io.seata.rm.datasource.undo.parser.KryoUndoLogParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "name": "io.seata.rm.datasource.undo.parser.FstUndoLogParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "name": "io.seata.rm.datasource.undo.oracle.keyword.OracleKeywordChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "name": "io.seata.rm.datasource.undo.mysql.keyword.MySQLKeywordChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "name": "io.seata.rm.datasource.undo.postgresql.keyword.PostgresqlKeywordChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] } ] \ No newline at end of file diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json new file mode 100644 index 00000000000..8f0c105d83f --- /dev/null +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json @@ -0,0 +1,102 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.model.ResourceManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.ResourceManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.AbstractRMHandler\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.AbstractRMHandler\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.exec.InsertExecutor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.exec.InsertExecutor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.sql.struct.TableMetaCache\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.sql.struct.TableMetaCache\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.UndoExecutorHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.UndoExecutorHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.UndoLogManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.UndoLogManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.UndoLogParser\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.UndoLogParser\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.KeywordChecker\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.KeywordChecker\\E" + } + ] + } +} \ No newline at end of file diff --git a/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json b/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json new file mode 100644 index 00000000000..2e31117e9ce --- /dev/null +++ b/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/reflect-config.json @@ -0,0 +1,74 @@ +[ + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.druid.mysql.MySQLOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.druid.oracle.OracleOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.druid.postgresql.PostgresqlOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "name": "io.seata.rm.datasource.undo.h2.keyword.H2KeywordChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "name": "io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.util.DbTypeParser" + }, + "name": "io.seata.sqlparser.druid.DruidDelegatingDbTypeParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json b/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json new file mode 100644 index 00000000000..ad44cc981ed --- /dev/null +++ b/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json @@ -0,0 +1,54 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.KeywordChecker\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.KeywordChecker" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.KeywordChecker\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.SQLRecognizerFactory\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.SQLRecognizerFactory\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.util.DbTypeParser" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.util.DbTypeParser\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.util.DbTypeParser" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.util.DbTypeParser\\E" + } + ] + } +} \ No newline at end of file diff --git a/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory b/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory index f4b2f829968..e360e22891c 100644 --- a/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory +++ b/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory @@ -1,17 +1 @@ -# -# Copyright 1999-2019 Seata.io Group. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory +io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory \ No newline at end of file diff --git a/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.druid.SQLOperateRecognizerHolder b/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.druid.SQLOperateRecognizerHolder index e7a870fdf31..0e290f5bd49 100644 --- a/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.druid.SQLOperateRecognizerHolder +++ b/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.druid.SQLOperateRecognizerHolder @@ -1,19 +1,3 @@ -# -# Copyright 1999-2019 Seata.io Group. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - io.seata.sqlparser.druid.mysql.MySQLOperateRecognizerHolder io.seata.sqlparser.druid.oracle.OracleOperateRecognizerHolder io.seata.sqlparser.druid.postgresql.PostgresqlOperateRecognizerHolder \ No newline at end of file diff --git a/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser b/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser index 983f0c35c92..a1eca58fd2a 100644 --- a/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser +++ b/rm-datasource/src/test/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser @@ -1,17 +1 @@ -# -# Copyright 1999-2019 Seata.io Group. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -io.seata.sqlparser.druid.DruidDelegatingDbTypeParser +io.seata.sqlparser.druid.DruidDelegatingDbTypeParser \ No newline at end of file diff --git a/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/reflect-config.json b/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/reflect-config.json new file mode 100644 index 00000000000..f9655b50f39 --- /dev/null +++ b/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "name": "io.seata.saga.engine.pcext.interceptors.InSagaBranchHandlerInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json b/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json new file mode 100644 index 00000000000..5e86e5f685d --- /dev/null +++ b/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" + } + ] + } +} \ No newline at end of file diff --git a/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/reflect-config.json b/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/reflect-config.json new file mode 100644 index 00000000000..c0e1bb0ad5c --- /dev/null +++ b/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/reflect-config.json @@ -0,0 +1,50 @@ +[ + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "name": "io.seata.saga.engine.pcext.interceptors.ServiceTaskHandlerInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "name": "io.seata.saga.engine.pcext.interceptors.ScriptTaskHandlerInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "name": "io.seata.saga.engine.pcext.interceptors.LoopTaskHandlerInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" + }, + "name": "io.seata.saga.engine.pcext.interceptors.EndStateRouterInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json b/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json new file mode 100644 index 00000000000..d2422792714 --- /dev/null +++ b/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json @@ -0,0 +1,30 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateRouterInterceptor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.saga.engine.pcext.StateRouterInterceptor\\E" + } + ] + } +} \ No newline at end of file diff --git a/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/reflect-config.json b/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/reflect-config.json new file mode 100644 index 00000000000..3fa805310e7 --- /dev/null +++ b/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/reflect-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "name": "io.seata.saga.rm.SagaResourceManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "name": "io.seata.saga.rm.RMHandlerSaga", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json b/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json new file mode 100644 index 00000000000..29891f8af2d --- /dev/null +++ b/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json @@ -0,0 +1,30 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.model.ResourceManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.ResourceManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.AbstractRMHandler\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.AbstractRMHandler\\E" + } + ] + } +} \ No newline at end of file diff --git a/saga/seata-saga-rm/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager b/saga/seata-saga-rm/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager index 69bc38af6f9..4ec5cba1d35 100644 --- a/saga/seata-saga-rm/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager +++ b/saga/seata-saga-rm/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager @@ -1 +1 @@ -io.seata.saga.rm.SagaResourceManager +io.seata.saga.rm.SagaResourceManager \ No newline at end of file diff --git a/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/reflect-config.json b/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/reflect-config.json new file mode 100644 index 00000000000..006a4cb149b --- /dev/null +++ b/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/reflect-config.json @@ -0,0 +1,26 @@ +[ + { + "condition": { + "typeReachable": "io.seata.saga.statelang.parser.JsonParser" + }, + "name": "io.seata.saga.statelang.parser.impl.FastjsonParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.saga.statelang.parser.JsonParser" + }, + "name": "io.seata.saga.statelang.parser.impl.JacksonJsonParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json b/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json new file mode 100644 index 00000000000..c9e42679e59 --- /dev/null +++ b/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.saga.statelang.parser.JsonParser" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.saga.statelang.parser.JsonParser\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.statelang.parser.JsonParser" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.saga.statelang.parser.JsonParser\\E" + } + ] + } +} \ No newline at end of file diff --git a/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/reflect-config.json b/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/reflect-config.json new file mode 100644 index 00000000000..057d1b94032 --- /dev/null +++ b/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.parser.spi.JacksonSerializer" + }, + "name": "io.seata.plugin.jackson.parser.oracle.OracleTimestampJacksonSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json b/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json new file mode 100644 index 00000000000..873178723f3 --- /dev/null +++ b/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.parser.spi.JacksonSerializer" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.parser.spi.JacksonSerializer\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.datasource.undo.parser.spi.JacksonSerializer" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.parser.spi.JacksonSerializer\\E" + } + ] + } +} \ No newline at end of file diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/reflect-config.json b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/reflect-config.json new file mode 100644 index 00000000000..abadecf024e --- /dev/null +++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.ExtConfigurationProvider" + }, + "name": "io.seata.spring.boot.autoconfigure.provider.SpringBootConfigurationProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json new file mode 100644 index 00000000000..56f6ada4791 --- /dev/null +++ b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.config.ExtConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.config.ExtConfigurationProvider\\E" + }, + { + "condition": { + "typeReachable": "io.seata.config.ExtConfigurationProvider" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.config.ExtConfigurationProvider\\E" + } + ] + } +} \ No newline at end of file diff --git a/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/reflect-config.json b/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/reflect-config.json new file mode 100644 index 00000000000..de413f4bd77 --- /dev/null +++ b/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "name": "io.seata.serializer.fst.FstSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json b/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json new file mode 100644 index 00000000000..be625dc24bb --- /dev/null +++ b/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" + } + ] + } +} \ No newline at end of file diff --git a/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/reflect-config.json b/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/reflect-config.json new file mode 100644 index 00000000000..4d6f3e586e7 --- /dev/null +++ b/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "name": "io.seata.serializer.hessian.HessianSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json b/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json new file mode 100644 index 00000000000..be625dc24bb --- /dev/null +++ b/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" + } + ] + } +} \ No newline at end of file diff --git a/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/reflect-config.json b/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/reflect-config.json new file mode 100644 index 00000000000..41aadd953bf --- /dev/null +++ b/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "name": "io.seata.serializer.kryo.KryoSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json b/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json new file mode 100644 index 00000000000..be625dc24bb --- /dev/null +++ b/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" + } + ] + } +} \ No newline at end of file diff --git a/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/reflect-config.json b/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/reflect-config.json new file mode 100644 index 00000000000..0e85dad04ba --- /dev/null +++ b/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "name": "io.seata.serializer.protobuf.ProtobufSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json b/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json new file mode 100644 index 00000000000..be625dc24bb --- /dev/null +++ b/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" + } + ] + } +} \ No newline at end of file diff --git a/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/reflect-config.json b/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/reflect-config.json new file mode 100644 index 00000000000..140bfe99f60 --- /dev/null +++ b/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "name": "io.seata.serializer.seata.SeataSerializer", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json b/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json new file mode 100644 index 00000000000..be625dc24bb --- /dev/null +++ b/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.serializer.Serializer" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" + } + ] + } +} \ No newline at end of file diff --git a/spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories b/spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories deleted file mode 100644 index e6519b7d2de..00000000000 --- a/spring-aot/seata-spring-aot-core/src/main/resources/META-INF/spring/aot.factories +++ /dev/null @@ -1,2 +0,0 @@ -org.springframework.aot.hint.RuntimeHintsRegistrar= \ -io.seata.spring.aot.SeataServicesRuntimeHints diff --git a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json index 40ea8e2f635..9557379d24d 100644 --- a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json +++ b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/reflect-config.json @@ -17,5 +17,41 @@ "typeReachable": "io.seata.spring.tcc.TccAnnotationProcessor" }, "name": "com.alipay.sofa.runtime.api.annotation.SofaReference" + }, + { + "condition": { + "typeReachable": "io.seata.spring.annotation.ScannerChecker" + }, + "name": "io.seata.spring.annotation.scannercheckers.PackageScannerChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.spring.annotation.ScannerChecker" + }, + "name": "io.seata.spring.annotation.scannercheckers.ConfigBeansScannerChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.spring.annotation.ScannerChecker" + }, + "name": "io.seata.spring.annotation.scannercheckers.ScopeBeansScannerChecker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] } ] \ No newline at end of file diff --git a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json new file mode 100644 index 00000000000..88876b4bf9e --- /dev/null +++ b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.spring.annotation.ScannerChecker" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.spring.annotation.ScannerChecker\\E" + }, + { + "condition": { + "typeReachable": "io.seata.spring.annotation.ScannerChecker" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.spring.annotation.ScannerChecker\\E" + } + ] + } +} \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json index 39bf63ea631..dac2a097694 100644 --- a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json +++ b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/reflect-config.json @@ -1,4 +1,28 @@ [ + { + "condition": { + "typeReachable": "io.seata.sqlparser.antlr.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.antlr.mysql.MySQLOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "name": "io.seata.sqlparser.antlr.AntlrDelegatingSQLRecognizerFactory", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, { "condition": { "typeReachable": "io.seata.sqlparser.antlr.AntlrDelegatingSQLRecognizerFactory" diff --git a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json new file mode 100644 index 00000000000..839044acee8 --- /dev/null +++ b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json @@ -0,0 +1,30 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.sqlparser.antlr.SQLOperateRecognizerHolder" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.antlr.SQLOperateRecognizerHolder" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.SQLRecognizerFactory\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.SQLRecognizerFactory\\E" + } + ] + } +} \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory index f8b91af9ded..492fd8b21f5 100644 --- a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory +++ b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory @@ -1 +1 @@ -io.seata.sqlparser.antlr.AntlrDelegatingSQLRecognizerFactory +io.seata.sqlparser.antlr.AntlrDelegatingSQLRecognizerFactory \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder index 177e9a18ffa..f3fa7ac6320 100644 --- a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder +++ b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/services/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder @@ -1 +1 @@ -io.seata.sqlparser.antlr.mysql.MySQLOperateRecognizerHolder +io.seata.sqlparser.antlr.mysql.MySQLOperateRecognizerHolder \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json index 0c9e1a52d37..a174a6e7942 100644 --- a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/reflect-config.json @@ -22,5 +22,65 @@ "parameterTypes": [] } ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.druid.mysql.MySQLOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.druid.oracle.OracleOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "name": "io.seata.sqlparser.druid.postgresql.PostgresqlOperateRecognizerHolder", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "name": "io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.util.DbTypeParser" + }, + "name": "io.seata.sqlparser.druid.DruidDelegatingDbTypeParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] } ] \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json index 2b4710d907e..909c6bf9aef 100644 --- a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json @@ -6,6 +6,42 @@ "typeReachable": "io.seata.sqlparser.druid.DefaultDruidLoader" }, "pattern": "\\Qlib\/sqlparser\/druid.jar\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.SQLRecognizerFactory\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.SQLRecognizerFactory\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.util.DbTypeParser" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.util.DbTypeParser\\E" + }, + { + "condition": { + "typeReachable": "io.seata.sqlparser.util.DbTypeParser" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.util.DbTypeParser\\E" } ] } diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory index aeb0a351b7f..e360e22891c 100644 --- a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.SQLRecognizerFactory @@ -1 +1 @@ -io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory +io.seata.sqlparser.druid.DruidDelegatingSQLRecognizerFactory \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser index a7a3494b374..a1eca58fd2a 100644 --- a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/services/io.seata.sqlparser.util.DbTypeParser @@ -1 +1 @@ -io.seata.sqlparser.druid.DruidDelegatingDbTypeParser +io.seata.sqlparser.druid.DruidDelegatingDbTypeParser \ No newline at end of file diff --git a/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json index d73276ba5f6..8b2f82a9ebd 100644 --- a/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json +++ b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/reflect-config.json @@ -22,5 +22,77 @@ "typeReachable": "io.seata.rm.tcc.remoting.parser.HSFRemotingParser" }, "name": "com.taobao.hsf.app.spring.util.HSFSpringProviderBean" + }, + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "name": "io.seata.rm.tcc.TCCResourceManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "name": "io.seata.rm.tcc.RMHandlerTCC", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" + }, + "name": "io.seata.rm.tcc.remoting.parser.DubboRemotingParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" + }, + "name": "io.seata.rm.tcc.remoting.parser.LocalTCCRemotingParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" + }, + "name": "io.seata.rm.tcc.remoting.parser.SofaRpcRemotingParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" + }, + "name": "io.seata.rm.tcc.remoting.parser.HSFRemotingParser", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] } ] \ No newline at end of file diff --git a/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json new file mode 100644 index 00000000000..2230d3e82af --- /dev/null +++ b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json @@ -0,0 +1,42 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.model.ResourceManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.model.ResourceManager" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.ResourceManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.AbstractRMHandler\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.AbstractRMHandler" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.AbstractRMHandler\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.rm.tcc.remoting.RemotingParser\\E" + }, + { + "condition": { + "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.rm.tcc.remoting.RemotingParser\\E" + } + ] + } +} \ No newline at end of file diff --git a/tcc/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager b/tcc/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager index b572908a4c9..c1b29118bb3 100644 --- a/tcc/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager +++ b/tcc/src/main/resources/META-INF/services/io.seata.core.model.ResourceManager @@ -1 +1 @@ -io.seata.rm.tcc.TCCResourceManager +io.seata.rm.tcc.TCCResourceManager \ No newline at end of file diff --git a/test/src/test/resources/META-INF/native-image/io.seata/seata-test/reflect-config.json b/test/src/test/resources/META-INF/native-image/io.seata/seata-test/reflect-config.json new file mode 100644 index 00000000000..769abd68314 --- /dev/null +++ b/test/src/test/resources/META-INF/native-image/io.seata/seata-test/reflect-config.json @@ -0,0 +1,50 @@ +[ + { + "condition": { + "typeReachable": "io.seata.common.loader.LoaderTestSPI" + }, + "name": "io.seata.common.loader.LoaderTestImpl1", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.common.loader.LoaderTestSPI" + }, + "name": "io.seata.common.loader.LoaderTestImpl2", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "name": "io.seata.saga.engine.mock.MockStateHandlerInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" + }, + "name": "io.seata.saga.engine.mock.MockStateRouterInterceptor", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json b/test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json new file mode 100644 index 00000000000..b3ea71cec94 --- /dev/null +++ b/test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json @@ -0,0 +1,24 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.common.loader.LoaderTestSPI" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.common.loader.LoaderTestSPI\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" + }, + { + "condition": { + "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateRouterInterceptor\\E" + } + ] + } +} \ No newline at end of file diff --git a/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/reflect-config.json b/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/reflect-config.json new file mode 100644 index 00000000000..b108a5bb2e3 --- /dev/null +++ b/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/reflect-config.json @@ -0,0 +1,14 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.model.TransactionManager" + }, + "name": "io.seata.tm.DefaultTransactionManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file diff --git a/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json b/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json new file mode 100644 index 00000000000..ad95a623713 --- /dev/null +++ b/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json @@ -0,0 +1,18 @@ +{ + "resources": { + "includes": [ + { + "condition": { + "typeReachable": "io.seata.core.model.TransactionManager" + }, + "pattern": "\\QMETA-INF\/services\/io.seata.core.model.TransactionManager\\E" + }, + { + "condition": { + "typeReachable": "io.seata.core.model.TransactionManager" + }, + "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.TransactionManager\\E" + } + ] + } +} \ No newline at end of file From 8dfe4486a2439b6bfe9c9ea553895509962120cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 15:45:37 +0800 Subject: [PATCH 15/32] Fix the wrong reachability-metadata. --- .../seata-config-core/proxy-config.json | 54 ------------------ .../seata-config-core/reflect-config.json | 56 +++++++++++++++++++ 2 files changed, 56 insertions(+), 54 deletions(-) create mode 100644 config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/reflect-config.json diff --git a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json index c28758f2502..e46ef9962f0 100644 --- a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json +++ b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/proxy-config.json @@ -6,59 +6,5 @@ "interfaces": [ "io.seata.config.Configuration" ] - }, - { - "condition": { - "typeReachable": "io.seata.config.file.FileConfig" - }, - "name": "io.seata.config.file.SimpleFileConfig", - "methods": [ - { - "name": "", - "parameterTypes": [ - "java.io.File", - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "io.seata.config.file.FileConfig" - }, - "name": "io.seata.config.file.YamlFileConfig", - "methods": [ - { - "name": "", - "parameterTypes": [ - "java.io.File", - "java.lang.String" - ] - } - ] - }, - { - "condition": { - "typeReachable": "io.seata.config.processor.Processor" - }, - "name": "io.seata.config.processor.ProcessorProperties", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "condition": { - "typeReachable": "io.seata.config.processor.Processor" - }, - "name": "io.seata.config.processor.ProcessorYaml", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] } ] \ No newline at end of file diff --git a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/reflect-config.json b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/reflect-config.json new file mode 100644 index 00000000000..361153750e9 --- /dev/null +++ b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/reflect-config.json @@ -0,0 +1,56 @@ +[ + { + "condition": { + "typeReachable": "io.seata.config.file.FileConfig" + }, + "name": "io.seata.config.file.SimpleFileConfig", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.io.File", + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.config.file.FileConfig" + }, + "name": "io.seata.config.file.YamlFileConfig", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.io.File", + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.config.processor.Processor" + }, + "name": "io.seata.config.processor.ProcessorProperties", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.config.processor.Processor" + }, + "name": "io.seata.config.processor.ProcessorYaml", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + } +] \ No newline at end of file From 4d24be8e663985cbcb64fcf280a2c48173cee343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 18:26:22 +0800 Subject: [PATCH 16/32] Remove duplicate `resource-config.json` --- .../seata-common/resource-config.json | 24 +++++ .../seata-common/resource-config.json | 12 --- .../seata-compressor-7z/resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-compressor-lz4/resource-config.json | 18 ---- .../seata-compressor-zip/resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-config-apollo/resource-config.json | 18 ---- .../seata-config-consul/resource-config.json | 18 ---- .../seata-config-core/resource-config.json | 30 ------ .../seata-config-custom/resource-config.json | 18 ---- .../seata-config-etcd3/resource-config.json | 18 ---- .../seata-config-nacos/resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-config-zk/resource-config.json | 18 ---- .../io.seata/seata-core/resource-config.json | 66 ------------ .../resource-config.json | 18 ---- .../resource-config.json | 30 ------ .../reflect-config.json | 0 .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-discovery-sofa/resource-config.json | 18 ---- .../seata-discovery-zk/resource-config.json | 18 ---- .../seata-dubbo-alibaba/resource-config.json | 18 ---- .../io.seata/seata-hsf/resource-config.json | 18 ---- .../io.seata/seata-motan/resource-config.json | 18 ---- .../seata-sofa-rpc/resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-rm-datasource/resource-config.json | 102 ------------------ .../seata-rm-datasource/resource-config.json | 54 ---------- .../resource-config.json | 18 ---- .../seata-saga-engine/resource-config.json | 30 ------ .../seata-saga-rm/resource-config.json | 30 ------ .../seata-saga-statelang/resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-serializer-fst/resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../resource-config.json | 18 ---- .../seata-spring/resource-config.json | 18 ---- .../resource-config.json | 30 ------ .../resource-config.json | 36 ------- .../io.seata/seata-tcc/resource-config.json | 42 -------- .../io.seata/seata-test/resource-config.json | 24 ----- .../io.seata/seata-tm/resource-config.json | 18 ---- 53 files changed, 24 insertions(+), 1188 deletions(-) delete mode 100644 common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json delete mode 100644 compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json delete mode 100644 compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json delete mode 100644 compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json delete mode 100644 compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json delete mode 100644 compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json delete mode 100644 compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json delete mode 100644 compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json delete mode 100644 config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json delete mode 100644 config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json delete mode 100644 config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json delete mode 100644 config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json delete mode 100644 config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json delete mode 100644 config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json delete mode 100644 config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json delete mode 100644 config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json delete mode 100644 core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json delete mode 100644 discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json delete mode 100644 discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json rename discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/{seata-discovery-consul => seata-discovery-core}/reflect-config.json (100%) delete mode 100644 discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json delete mode 100644 discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json delete mode 100644 discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json delete mode 100644 discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json delete mode 100644 discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json delete mode 100644 discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json delete mode 100644 discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json delete mode 100644 integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json delete mode 100644 integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json delete mode 100644 integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json delete mode 100644 integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json delete mode 100644 metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json delete mode 100644 metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json delete mode 100644 rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json delete mode 100644 rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json delete mode 100644 saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json delete mode 100644 saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json delete mode 100644 saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json delete mode 100644 saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json delete mode 100644 seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json delete mode 100644 seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json delete mode 100644 serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json delete mode 100644 serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json delete mode 100644 serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json delete mode 100644 serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json delete mode 100644 serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json delete mode 100644 spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json delete mode 100644 sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json delete mode 100644 tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json delete mode 100644 test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json delete mode 100644 tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json diff --git a/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json b/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json index 57b859160c0..a8a21ce022d 100644 --- a/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json +++ b/common/src/main/resources/META-INF/native-image/io.seata/seata-common/resource-config.json @@ -13,24 +13,48 @@ }, "pattern": "\\QMETA-INF\/seata\/io.seata.\\E.*" }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/services\/com.alibaba.dubbo.rpc.Filter\\E" + }, { "condition": { "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" }, "pattern": "\\QMETA-INF\/seata\/com.alibaba.dubbo.rpc.Filter\\E" }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/services\/com.alipay.sofa.rpc.filter.Filter\\E" + }, { "condition": { "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" }, "pattern": "\\QMETA-INF\/seata\/com.alipay.sofa.rpc.filter.Filter\\E" }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/services\/com.taobao.hsf.invocation.filter.RPCFilter\\E" + }, { "condition": { "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" }, "pattern": "\\QMETA-INF\/seata\/com.taobao.hsf.invocation.filter.RPCFilter\\E" }, + { + "condition": { + "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" + }, + "pattern": "\\QMETA-INF\/services\/com.weibo.api.motan.filter.Filter\\E" + }, { "condition": { "typeReachable": "io.seata.common.loader.EnhancedServiceLoader" diff --git a/common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json b/common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json deleted file mode 100644 index 8839d21ac7e..00000000000 --- a/common/src/test/resources/META-INF/native-image/io.seata/seata-common/resource-config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.common.loader.Hello" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.common.loader.Hello\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json b/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-7z/src/main/resources/META-INF/native-image/io.seata/seata-compressor-7z/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json b/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-bzip2/src/main/resources/META-INF/native-image/io.seata/seata-compressor-bzip2/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json b/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-deflater/src/main/resources/META-INF/native-image/io.seata/seata-compressor-deflater/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json b/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-gzip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-gzip/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json b/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-lz4/src/main/resources/META-INF/native-image/io.seata/seata-compressor-lz4/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json b/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-zip/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zip/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json b/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json deleted file mode 100644 index 3ccff14d418..00000000000 --- a/compressor/seata-compressor-zstd/src/main/resources/META-INF/native-image/io.seata/seata-compressor-zstd/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.compressor.Compressor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.compressor.Compressor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.compressor.Compressor\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json b/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-apollo/src/main/resources/META-INF/native-image/io.seata/seata-config-apollo/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json b/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-consul/src/main/resources/META-INF/native-image/io.seata/seata-config-consul/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json b/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json deleted file mode 100644 index 7f47fe2a43d..00000000000 --- a/config/seata-config-core/src/main/resources/META-INF/native-image/io.seata/seata-config-core/resource-config.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.file.FileConfig" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.file.FileConfig\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.file.FileConfig" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.file.FileConfig\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.processor.Processor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.processor.Processor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.processor.Processor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.processor.Processor\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json b/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-custom/src/main/resources/META-INF/native-image/io.seata/seata-config-custom/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json b/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-config-etcd3/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json b/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-nacos/src/main/resources/META-INF/native-image/io.seata/seata-config-nacos/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json b/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-spring-cloud/src/main/resources/META-INF/native-image/io.seata/seata-config-spring-cloud/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json b/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json deleted file mode 100644 index 5ba31ee057a..00000000000 --- a/config/seata-config-zk/src/main/resources/META-INF/native-image/io.seata/seata-config-zk/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json b/core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json deleted file mode 100644 index fe3f34f1cdd..00000000000 --- a/core/src/main/resources/META-INF/native-image/io.seata/seata-core/resource-config.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.auth.AuthSigner" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.auth.AuthSigner\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.auth.AuthSigner" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.auth.AuthSigner\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.context.ContextCore" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.context.ContextCore\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.context.ContextCore" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.context.ContextCore\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.rpc.hook.RpcHook" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.rpc.hook.RpcHook\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.rpc.hook.RpcHook" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.rpc.hook.RpcHook\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.store.db.sql.lock.LockStoreSql\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.store.db.sql.lock.LockStoreSql" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.store.db.sql.lock.LockStoreSql\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.store.db.sql.log.LogStoreSqls\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.store.db.sql.log.LogStoreSqls" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.store.db.sql.log.LogStoreSqls\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json b/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-consul/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json b/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json deleted file mode 100644 index 908df5ca5ad..00000000000 --- a/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/resource-config.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.loadbalance.LoadBalance\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.loadbalance.LoadBalance" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.loadbalance.LoadBalance\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json b/discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-core/reflect-config.json similarity index 100% rename from discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-consul/reflect-config.json rename to discovery/seata-discovery-core/src/main/resources/META-INF/native-image/io.seata/seata-discovery-core/reflect-config.json diff --git a/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json b/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-custom/src/main/resources/META-INF/native-image/io.seata/seata-discovery-custom/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json b/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-etcd3/src/main/resources/META-INF/native-image/io.seata/seata-discovery-etcd3/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json b/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-eureka/src/main/resources/META-INF/native-image/io.seata/seata-discovery-eureka/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json b/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-nacos/src/main/resources/META-INF/native-image/io.seata/seata-discovery-nacos/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json b/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-redis/src/main/resources/META-INF/native-image/io.seata/seata-discovery-redis/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json b/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-sofa/src/main/resources/META-INF/native-image/io.seata/seata-discovery-sofa/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json b/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json deleted file mode 100644 index 891a2daf375..00000000000 --- a/discovery/seata-discovery-zk/src/main/resources/META-INF/native-image/io.seata/seata-discovery-zk/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.discovery.registry.RegistryProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.discovery.registry.RegistryProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.discovery.registry.RegistryProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json b/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json deleted file mode 100644 index 16c205f1c3f..00000000000 --- a/integration/dubbo-alibaba/src/main/resources/META-INF/native-image/io.seata/seata-dubbo-alibaba/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "com.alibaba.dubbo.rpc.Filter" - }, - "pattern": "\\QMETA-INF\/services\/com.alibaba.dubbo.rpc.Filter\\E" - }, - { - "condition": { - "typeReachable": "com.alibaba.dubbo.rpc.Filter" - }, - "pattern": "\\QMETA-INF\/seata\/com.alibaba.dubbo.rpc.Filter\\E" - } - ] - } -} \ No newline at end of file diff --git a/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json b/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json deleted file mode 100644 index f4f3d4656d7..00000000000 --- a/integration/hsf/src/main/resources/META-INF/native-image/io.seata/seata-hsf/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "com.taobao.hsf.invocation.filter.RPCFilter" - }, - "pattern": "\\QMETA-INF\/services\/com.taobao.hsf.invocation.filter.RPCFilter\\E" - }, - { - "condition": { - "typeReachable": "com.taobao.hsf.invocation.filter.RPCFilter" - }, - "pattern": "\\QMETA-INF\/seata\/com.taobao.hsf.invocation.filter.RPCFilter\\E" - } - ] - } -} \ No newline at end of file diff --git a/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json b/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json deleted file mode 100644 index f36a7e7d141..00000000000 --- a/integration/motan/src/main/resources/META-INF/native-image/io.seata/seata-motan/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "com.weibo.api.motan.filter.Filter" - }, - "pattern": "\\QMETA-INF\/services\/com.weibo.api.motan.filter.Filter\\E" - }, - { - "condition": { - "typeReachable": "com.weibo.api.motan.filter.Filter" - }, - "pattern": "\\QMETA-INF\/seata\/com.weibo.api.motan.filter.Filter\\E" - } - ] - } -} \ No newline at end of file diff --git a/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json b/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json deleted file mode 100644 index 71ffed56d32..00000000000 --- a/integration/sofa-rpc/src/main/resources/META-INF/native-image/io.seata/seata-sofa-rpc/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "com.alipay.sofa.rpc.filter.Filter" - }, - "pattern": "\\QMETA-INF\/services\/com.alipay.sofa.rpc.filter.Filter\\E" - }, - { - "condition": { - "typeReachable": "com.alipay.sofa.rpc.filter.Filter" - }, - "pattern": "\\QMETA-INF\/seata\/com.alipay.sofa.rpc.filter.Filter\\E" - } - ] - } -} \ No newline at end of file diff --git a/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json b/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json deleted file mode 100644 index 272559151be..00000000000 --- a/metrics/seata-metrics-exporter-prometheus/src/main/resources/META-INF/native-image/io.seata/seata-metrics-exporter-prometheus/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.metrics.exporter.Exporter" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.metrics.exporter.Exporter\\E" - }, - { - "condition": { - "typeReachable": "io.seata.metrics.exporter.Exporter" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.metrics.exporter.Exporter\\E" - } - ] - } -} \ No newline at end of file diff --git a/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json b/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json deleted file mode 100644 index c8a8a83b02a..00000000000 --- a/metrics/seata-metrics-registry-compact/src/main/resources/META-INF/native-image/io.seata/seata-metrics-registry-compact/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.metrics.registry.Registry" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.metrics.registry.Registry\\E" - }, - { - "condition": { - "typeReachable": "io.seata.metrics.registry.Registry" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.metrics.registry.Registry\\E" - } - ] - } -} \ No newline at end of file diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json deleted file mode 100644 index 8f0c105d83f..00000000000 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.model.ResourceManager" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.model.ResourceManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.model.ResourceManager" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.ResourceManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.AbstractRMHandler" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.AbstractRMHandler\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.AbstractRMHandler" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.AbstractRMHandler\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.exec.InsertExecutor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.exec.InsertExecutor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.exec.InsertExecutor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.sql.struct.TableMetaCache\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.sql.struct.TableMetaCache" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.sql.struct.TableMetaCache\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.UndoExecutorHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.UndoExecutorHolder" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.UndoExecutorHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.UndoLogManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.UndoLogManager" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.UndoLogManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.UndoLogParser\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.UndoLogParser" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.UndoLogParser\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.KeywordChecker" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.KeywordChecker\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.KeywordChecker" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.KeywordChecker\\E" - } - ] - } -} \ No newline at end of file diff --git a/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json b/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json deleted file mode 100644 index ad44cc981ed..00000000000 --- a/rm-datasource/src/test/resources/META-INF/native-image/io.seata/seata-rm-datasource/resource-config.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.KeywordChecker" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.KeywordChecker\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.KeywordChecker" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.KeywordChecker\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.SQLRecognizerFactory\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.SQLRecognizerFactory\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.util.DbTypeParser" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.util.DbTypeParser\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.util.DbTypeParser" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.util.DbTypeParser\\E" - } - ] - } -} \ No newline at end of file diff --git a/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json b/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json deleted file mode 100644 index 5e86e5f685d..00000000000 --- a/saga/seata-saga-engine-store/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine-store/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" - } - ] - } -} \ No newline at end of file diff --git a/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json b/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json deleted file mode 100644 index d2422792714..00000000000 --- a/saga/seata-saga-engine/src/main/resources/META-INF/native-image/io.seata/seata-saga-engine/resource-config.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateRouterInterceptor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.saga.engine.pcext.StateRouterInterceptor\\E" - } - ] - } -} \ No newline at end of file diff --git a/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json b/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json deleted file mode 100644 index 29891f8af2d..00000000000 --- a/saga/seata-saga-rm/src/main/resources/META-INF/native-image/io.seata/seata-saga-rm/resource-config.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.model.ResourceManager" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.model.ResourceManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.model.ResourceManager" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.ResourceManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.AbstractRMHandler" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.AbstractRMHandler\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.AbstractRMHandler" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.AbstractRMHandler\\E" - } - ] - } -} \ No newline at end of file diff --git a/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json b/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json deleted file mode 100644 index c9e42679e59..00000000000 --- a/saga/seata-saga-statelang/src/main/resources/META-INF/native-image/io.seata/seata-saga-statelang/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.saga.statelang.parser.JsonParser" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.saga.statelang.parser.JsonParser\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.statelang.parser.JsonParser" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.saga.statelang.parser.JsonParser\\E" - } - ] - } -} \ No newline at end of file diff --git a/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json b/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json deleted file mode 100644 index 873178723f3..00000000000 --- a/seata-plugin/seata-jackson-parser-oracle/src/main/resources/META-INF/native-image/io.seata/seata-jackson-parser-oracle/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.parser.spi.JacksonSerializer" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.datasource.undo.parser.spi.JacksonSerializer\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.datasource.undo.parser.spi.JacksonSerializer" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.datasource.undo.parser.spi.JacksonSerializer\\E" - } - ] - } -} \ No newline at end of file diff --git a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json b/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json deleted file mode 100644 index 56f6ada4791..00000000000 --- a/seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/resources/META-INF/native-image/io.seata/seata-spring-autoconfigure-core/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.config.ExtConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.config.ExtConfigurationProvider\\E" - }, - { - "condition": { - "typeReachable": "io.seata.config.ExtConfigurationProvider" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.config.ExtConfigurationProvider\\E" - } - ] - } -} \ No newline at end of file diff --git a/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json b/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json deleted file mode 100644 index be625dc24bb..00000000000 --- a/serializer/seata-serializer-fst/src/main/resources/META-INF/native-image/io.seata/seata-serializer-fst/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" - } - ] - } -} \ No newline at end of file diff --git a/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json b/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json deleted file mode 100644 index be625dc24bb..00000000000 --- a/serializer/seata-serializer-hessian/src/main/resources/META-INF/native-image/io.seata/seata-serializer-hessian/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" - } - ] - } -} \ No newline at end of file diff --git a/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json b/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json deleted file mode 100644 index be625dc24bb..00000000000 --- a/serializer/seata-serializer-kryo/src/main/resources/META-INF/native-image/io.seata/seata-serializer-kryo/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" - } - ] - } -} \ No newline at end of file diff --git a/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json b/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json deleted file mode 100644 index be625dc24bb..00000000000 --- a/serializer/seata-serializer-protobuf/src/main/resources/META-INF/native-image/io.seata/seata-serializer-protobuf/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" - } - ] - } -} \ No newline at end of file diff --git a/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json b/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json deleted file mode 100644 index be625dc24bb..00000000000 --- a/serializer/seata-serializer-seata/src/main/resources/META-INF/native-image/io.seata/seata-serializer-seata/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.serializer.Serializer\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.serializer.Serializer" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.serializer.Serializer\\E" - } - ] - } -} \ No newline at end of file diff --git a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json b/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json deleted file mode 100644 index 88876b4bf9e..00000000000 --- a/spring/src/main/resources/META-INF/native-image/io.seata/seata-spring/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.spring.annotation.ScannerChecker" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.spring.annotation.ScannerChecker\\E" - }, - { - "condition": { - "typeReachable": "io.seata.spring.annotation.ScannerChecker" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.spring.annotation.ScannerChecker\\E" - } - ] - } -} \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json b/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json deleted file mode 100644 index 839044acee8..00000000000 --- a/sqlparser/seata-sqlparser-antlr/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-antlr/resource-config.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.sqlparser.antlr.SQLOperateRecognizerHolder" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.antlr.SQLOperateRecognizerHolder" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.antlr.SQLOperateRecognizerHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.SQLRecognizerFactory\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.SQLRecognizerFactory\\E" - } - ] - } -} \ No newline at end of file diff --git a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json index 909c6bf9aef..2b4710d907e 100644 --- a/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json +++ b/sqlparser/seata-sqlparser-druid/src/main/resources/META-INF/native-image/io.seata/seata-sqlparser-druid/resource-config.json @@ -6,42 +6,6 @@ "typeReachable": "io.seata.sqlparser.druid.DefaultDruidLoader" }, "pattern": "\\Qlib\/sqlparser\/druid.jar\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.druid.SQLOperateRecognizerHolder" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.druid.SQLOperateRecognizerHolder\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.SQLRecognizerFactory\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.SQLRecognizerFactory" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.SQLRecognizerFactory\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.util.DbTypeParser" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.sqlparser.util.DbTypeParser\\E" - }, - { - "condition": { - "typeReachable": "io.seata.sqlparser.util.DbTypeParser" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.sqlparser.util.DbTypeParser\\E" } ] } diff --git a/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json b/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json deleted file mode 100644 index 2230d3e82af..00000000000 --- a/tcc/src/main/resources/META-INF/native-image/io.seata/seata-tcc/resource-config.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.model.ResourceManager" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.model.ResourceManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.model.ResourceManager" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.ResourceManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.AbstractRMHandler" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.AbstractRMHandler\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.AbstractRMHandler" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.AbstractRMHandler\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.rm.tcc.remoting.RemotingParser\\E" - }, - { - "condition": { - "typeReachable": "io.seata.rm.tcc.remoting.RemotingParser" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.rm.tcc.remoting.RemotingParser\\E" - } - ] - } -} \ No newline at end of file diff --git a/test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json b/test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json deleted file mode 100644 index b3ea71cec94..00000000000 --- a/test/src/test/resources/META-INF/native-image/io.seata/seata-test/resource-config.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.common.loader.LoaderTestSPI" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.common.loader.LoaderTestSPI\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateHandlerInterceptor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateHandlerInterceptor\\E" - }, - { - "condition": { - "typeReachable": "io.seata.saga.engine.pcext.StateRouterInterceptor" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.saga.engine.pcext.StateRouterInterceptor\\E" - } - ] - } -} \ No newline at end of file diff --git a/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json b/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json deleted file mode 100644 index ad95a623713..00000000000 --- a/tm/src/main/resources/META-INF/native-image/io.seata/seata-tm/resource-config.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "resources": { - "includes": [ - { - "condition": { - "typeReachable": "io.seata.core.model.TransactionManager" - }, - "pattern": "\\QMETA-INF\/services\/io.seata.core.model.TransactionManager\\E" - }, - { - "condition": { - "typeReachable": "io.seata.core.model.TransactionManager" - }, - "pattern": "\\QMETA-INF\/seata\/io.seata.core.model.TransactionManager\\E" - } - ] - } -} \ No newline at end of file From 56e2cd129b7c6e97c4a81ad8dbba4fc3b70c268a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 16 Feb 2023 18:37:00 +0800 Subject: [PATCH 17/32] Optimize log --- .../java/io/seata/common/loader/EnhancedServiceLoader.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java b/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java index 92c52d743d0..69f7189a099 100644 --- a/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java +++ b/common/src/main/java/io/seata/common/loader/EnhancedServiceLoader.java @@ -556,7 +556,9 @@ private void loadFile(String dir, ClassLoader loader, List Date: Fri, 17 Feb 2023 16:39:12 +0800 Subject: [PATCH 18/32] release: release for 1.7.0-native-rc1 --- .github/workflows/publishes.yml | 28 +++++++++---------- .github/workflows/test.yml | 2 +- build/pom.xml | 2 +- .../java/io/seata/core/protocol/Version.java | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/publishes.yml b/.github/workflows/publishes.yml index 3ab37947947..00f020be9f1 100644 --- a/.github/workflows/publishes.yml +++ b/.github/workflows/publishes.yml @@ -2,7 +2,7 @@ name: "Publishes" on: push: - branches: [ snapshot, "*.*.*" ] + branches: [ native ] #tags: [ "*" ] #This schedule only takes effect in the default branch @@ -42,16 +42,16 @@ jobs: cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import; ./mvnw -T 4C clean deploy -Prelease,release-by-github-actions -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - # step 4 for type=image - - name: "Package and Publish-Image-To-DockerHub" - if: matrix.type == 'image' - env: - IMAGE_NAME: openjdk:8u342 - REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} - REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} - run: | - if [ "${{ github.ref_name }}" == "develop" ] || [ "${{ github.ref_name }}" == "snapshot" || [ "${{ github.ref_name }}" == "2.x" ]; then - ./mvnw -T 4C clean package -Pimage -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; - else - ./mvnw -T 4C clean package -Pimage,release-image -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; - fi +# # step 4 for type=image +# - name: "Package and Publish-Image-To-DockerHub" +# if: matrix.type == 'image' +# env: +# IMAGE_NAME: openjdk:8u342 +# REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} +# REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} +# run: | +# if [ "${{ github.ref_name }}" == "develop" ] || [ "${{ github.ref_name }}" == "snapshot" || [ "${{ github.ref_name }}" == "2.x" ]; then +# ./mvnw -T 4C clean package -Pimage -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; +# else +# ./mvnw -T 4C clean package -Pimage,release-image -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; +# fi diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 418102858b1..15fcb6fe12f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,7 +2,7 @@ name: "test" on: push: - branches: [ test*, "*.*.*" ] + branches: [ native ] jobs: # job 1 diff --git a/build/pom.xml b/build/pom.xml index bcb752d977c..b6b17046c79 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-native-SNAPSHOT + 1.7.0-native-rc1 1.8 diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java index 2f371f8432a..0b90c4f85f3 100644 --- a/core/src/main/java/io/seata/core/protocol/Version.java +++ b/core/src/main/java/io/seata/core/protocol/Version.java @@ -36,7 +36,7 @@ public class Version { /** * The constant CURRENT. */ - private static final String CURRENT = "1.7.0-native-SNAPSHOT"; + private static final String CURRENT = "1.7.0-native-rc1"; private static final String VERSION_0_7_1 = "0.7.1"; private static final String VERSION_1_5_0 = "1.5.0"; private static final int MAX_VERSION_DOT = 3; From 4714e9d802852e2eaa9bc00b8860aa5527606b4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Sat, 18 Feb 2023 16:48:54 +0800 Subject: [PATCH 19/32] change the version to 1.7.0-NATIVE-RC2-SNAPSHOT --- build/pom.xml | 2 +- core/src/main/java/io/seata/core/protocol/Version.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/pom.xml b/build/pom.xml index b6b17046c79..06918e17513 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-native-rc1 + 1.7.0-NATIVE-RC2-SNAPSHOT 1.8 diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java index 0b90c4f85f3..b899c33455c 100644 --- a/core/src/main/java/io/seata/core/protocol/Version.java +++ b/core/src/main/java/io/seata/core/protocol/Version.java @@ -36,7 +36,7 @@ public class Version { /** * The constant CURRENT. */ - private static final String CURRENT = "1.7.0-native-rc1"; + private static final String CURRENT = "1.7.0-NATIVE-RC2-SNAPSHOT"; private static final String VERSION_0_7_1 = "0.7.1"; private static final String VERSION_1_5_0 = "1.5.0"; private static final int MAX_VERSION_DOT = 3; From d1d345f52302a233ce2b1bc99803d601d2330ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Sat, 18 Feb 2023 16:54:59 +0800 Subject: [PATCH 20/32] Add reachability-metadata for `seata-server` --- .../seata-console/resource-config.json | 9 + server/pom.xml | 117 +++++- .../io/seata/server/ServerApplication.java | 27 +- .../controller/BranchSessionController.java | 3 +- .../controller/GlobalLockController.java | 7 +- .../controller/GlobalSessionController.java | 8 +- .../impl/db/GlobalSessionDBServiceImpl.java | 3 +- .../io.seata/server/reflect-config.json | 362 ++++++++++++++++++ .../io.seata/server/resource-config.json | 21 + 9 files changed, 542 insertions(+), 15 deletions(-) create mode 100644 console/src/main/resources/META-INF/native-image/io.seata/seata-console/resource-config.json create mode 100644 server/src/main/resources/META-INF/native-image/io.seata/server/reflect-config.json create mode 100644 server/src/main/resources/META-INF/native-image/io.seata/server/resource-config.json diff --git a/console/src/main/resources/META-INF/native-image/io.seata/seata-console/resource-config.json b/console/src/main/resources/META-INF/native-image/io.seata/seata-console/resource-config.json new file mode 100644 index 00000000000..2128dbb992b --- /dev/null +++ b/console/src/main/resources/META-INF/native-image/io.seata/seata-console/resource-config.json @@ -0,0 +1,9 @@ +{ + "resources": { + "includes": [ + { + "pattern": "\\Qstatic\/\\E.*" + } + ] + } +} diff --git a/server/pom.xml b/server/pom.xml index c2e3589e33c..ecd90b2984d 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -31,6 +31,7 @@ ${spring-boot.version} ${spring-framework.version} + 0.9.20 @@ -160,7 +161,7 @@ com.h2database h2 - + mysql mysql-connector-java @@ -367,6 +368,120 @@ + + native + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + repackage + + repackage + + + + process-aot + + process-aot + + + + + io.seata.server.ServerApplication + + paketobuildpacks/builder:tiny + + true + + + + + + org.graalvm.buildtools + native-maven-plugin + ${native-build-tools-plugin.version} + + ${project.build.outputDirectory} + + true + + 22.3 + + -H:+ReportExceptionStackTraces + -H:+PrintAnalysisCallTree + + -H:+ExhaustiveHeapScan + + + + + add-reachability-metadata + + add-reachability-metadata + + + + build-native + + compile-no-fork + + + + + + + + + nativeTest + + + org.junit.platform + junit-platform-launcher + test + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + process-test-aot + + process-test-aot + + + + + + org.graalvm.buildtools + native-maven-plugin + ${native-build-tools-plugin.version} + + ${project.build.outputDirectory} + + true + + 22.3 + + + + native-test + + test + + + + + + + release-seata diff --git a/server/src/main/java/io/seata/server/ServerApplication.java b/server/src/main/java/io/seata/server/ServerApplication.java index e168ad65c06..f61ec5f62a1 100644 --- a/server/src/main/java/io/seata/server/ServerApplication.java +++ b/server/src/main/java/io/seata/server/ServerApplication.java @@ -15,8 +15,7 @@ */ package io.seata.server; -import java.io.IOException; - +import io.seata.common.aot.NativeUtils; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -25,8 +24,26 @@ */ @SpringBootApplication(scanBasePackages = {"io.seata"}) public class ServerApplication { - public static void main(String[] args) throws IOException { - // run the spring-boot application - SpringApplication.run(ServerApplication.class, args); + + public static void main(String[] args) throws Throwable { + try { + // run the spring-boot application + SpringApplication.run(ServerApplication.class, args); + } catch (Throwable t) { + // This exception is used to end `spring-boot-maven-plugin:process-aot`, so ignore it. + if ("org.springframework.boot.SpringApplication$AbandonedRunException".equals(t.getClass().getName())) { + throw t; + } + + // In the `native-image`, if an exception occurs prematurely during the startup process, the exception log will not be recorded, + // so here we sleep for 20 seconds to observe the exception information. + if (NativeUtils.inNativeImage()) { + t.printStackTrace(); + Thread.sleep(20000); + } + + throw t; + } } + } diff --git a/server/src/main/java/io/seata/server/console/controller/BranchSessionController.java b/server/src/main/java/io/seata/server/console/controller/BranchSessionController.java index 62ffac67c06..6310688b11d 100644 --- a/server/src/main/java/io/seata/server/console/controller/BranchSessionController.java +++ b/server/src/main/java/io/seata/server/console/controller/BranchSessionController.java @@ -16,12 +16,14 @@ package io.seata.server.console.controller; import javax.annotation.Resource; + import io.seata.server.console.service.BranchSessionService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Branch Session Controller + * * @author zhongxiang.wang */ @RestController @@ -31,5 +33,4 @@ public class BranchSessionController { @Resource(type = BranchSessionService.class) private BranchSessionService branchSessionService; - } diff --git a/server/src/main/java/io/seata/server/console/controller/GlobalLockController.java b/server/src/main/java/io/seata/server/console/controller/GlobalLockController.java index ac20ebf14ba..b9478111859 100644 --- a/server/src/main/java/io/seata/server/console/controller/GlobalLockController.java +++ b/server/src/main/java/io/seata/server/console/controller/GlobalLockController.java @@ -17,18 +17,18 @@ import javax.annotation.Resource; -import io.seata.server.console.param.GlobalLockParam; import io.seata.console.result.PageResult; -import io.seata.server.console.vo.GlobalLockVO; +import io.seata.server.console.param.GlobalLockParam; import io.seata.server.console.service.GlobalLockService; +import io.seata.server.console.vo.GlobalLockVO; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; - /** * Global Lock Controller + * * @author zhongxiang.wang */ @RestController @@ -40,6 +40,7 @@ public class GlobalLockController { /** * Query locks by param + * * @param param the param * @return the list of GlobalLockVO */ diff --git a/server/src/main/java/io/seata/server/console/controller/GlobalSessionController.java b/server/src/main/java/io/seata/server/console/controller/GlobalSessionController.java index 9bd79d95622..6c7ee50ba9f 100644 --- a/server/src/main/java/io/seata/server/console/controller/GlobalSessionController.java +++ b/server/src/main/java/io/seata/server/console/controller/GlobalSessionController.java @@ -17,10 +17,10 @@ import javax.annotation.Resource; -import io.seata.server.console.param.GlobalSessionParam; import io.seata.console.result.PageResult; -import io.seata.server.console.vo.GlobalSessionVO; +import io.seata.server.console.param.GlobalSessionParam; import io.seata.server.console.service.GlobalSessionService; +import io.seata.server.console.vo.GlobalSessionVO; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; @@ -28,6 +28,7 @@ /** * Global Session Controller + * * @author zhongxiang.wang */ @RestController @@ -39,8 +40,9 @@ public class GlobalSessionController { /** * Query all globalSession + * * @param param param for query globalSession - * @return the list of GlobalSessionVO + * @return the list of GlobalSessionVO */ @GetMapping("query") public PageResult query(@ModelAttribute GlobalSessionParam param) { diff --git a/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java b/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java index 7583cf3c2b1..fb414d0c8be 100644 --- a/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java +++ b/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java @@ -23,9 +23,8 @@ import java.util.Date; import java.util.HashSet; import java.util.List; - -import javax.annotation.Resource; import javax.sql.DataSource; +import javax.annotation.Resource; import io.seata.common.ConfigurationKeys; import io.seata.common.exception.StoreException; diff --git a/server/src/main/resources/META-INF/native-image/io.seata/server/reflect-config.json b/server/src/main/resources/META-INF/native-image/io.seata/server/reflect-config.json new file mode 100644 index 00000000000..9d762dfbaca --- /dev/null +++ b/server/src/main/resources/META-INF/native-image/io.seata/server/reflect-config.json @@ -0,0 +1,362 @@ +[ + { + "condition": { + "typeReachable": "io.seata.core.rpc.RegisterCheckAuthHandler" + }, + "name": "io.seata.server.auth.DefaultCheckAuthHandler", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.DataSourceProvider" + }, + "name": "io.seata.server.store.DbcpDataSourceProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.DataSourceProvider" + }, + "name": "io.seata.server.store.DruidDataSourceProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.db.DataSourceProvider" + }, + "name": "io.seata.server.store.HikariDataSourceProvider", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.DistributedLocker" + }, + "name": "io.seata.server.storage.redis.lock.RedisDistributedLocker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.core.store.DistributedLocker" + }, + "name": "io.seata.server.storage.db.lock.DataBaseDistributedLocker", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.coordinator.AbstractCore" + }, + "name": "io.seata.server.transaction.at.ATCore", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.core.rpc.RemotingServer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.coordinator.AbstractCore" + }, + "name": "io.seata.server.transaction.tcc.TccCore", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.core.rpc.RemotingServer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.coordinator.AbstractCore" + }, + "name": "io.seata.server.transaction.saga.SagaCore", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.core.rpc.RemotingServer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.coordinator.AbstractCore" + }, + "name": "io.seata.server.transaction.xa.XACore", + "methods": [ + { + "name": "", + "parameterTypes": [ + "io.seata.core.rpc.RemotingServer" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.lock.LockManager" + }, + "name": "io.seata.server.storage.db.lock.DataBaseLockManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.lock.LockManager" + }, + "name": "io.seata.server.storage.file.lock.FileLockManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.lock.LockManager" + }, + "name": "io.seata.server.storage.redis.lock.RedisLockManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.session.SessionManager" + }, + "name": "io.seata.server.storage.file.session.FileSessionManager", + "methods": [ + { + "name": "", + "parameterTypes": [ + "java.lang.String", + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.session.SessionManager" + }, + "name": "io.seata.server.storage.db.session.DataBaseSessionManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.seata.server.session.SessionManager" + }, + "name": "io.seata.server.storage.redis.session.RedisSessionManager", + "methods": [ + { + "name": "", + "parameterTypes": [] + }, + { + "name": "", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Integer", + "methods": [ + { + "name": "parseInteger", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Long", + "methods": [ + { + "name": "parseLong", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Boolean", + "methods": [ + { + "name": "parseBoolean", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Byte", + "methods": [ + { + "name": "parseByte", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Short", + "methods": [ + { + "name": "parseShort", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Float", + "methods": [ + { + "name": "parseFloat", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "com.google.inject.internal.TypeConverterBindingProcessor" + }, + "name": "java.lang.Double", + "methods": [ + { + "name": "parseDouble", + "parameterTypes": [ + "java.lang.String" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.netty.channel.socket.nio.SelectorProviderUtil" + }, + "name": "java.nio.channels.spi.SelectorProvider", + "methods": [ + { + "name": "openServerSocketChannel", + "parameterTypes": [ + "java.net.ProtocolFamily" + ] + } + ] + }, + { + "condition": { + "typeReachable": "io.netty.channel.DefaultChannelConfig" + }, + "name": "io.netty.buffer.ByteBufAllocator" + }, + { + "condition": { + "typeReachable": "io.netty.channel.DefaultChannelConfig" + }, + "name": "io.netty.buffer.ByteBufUtil" + }, + { + "condition": { + "typeReachable": "io.netty.util.ResourceLeakDetector" + }, + "name": "io.netty.buffer.AbstractByteBufAllocator", + "allDeclaredMethods": true + }, + { + "condition": { + "typeReachable": "io.netty.util.ResourceLeakDetector" + }, + "name": "io.netty.buffer.AdvancedLeakAwareByteBuf", + "allDeclaredMethods": true + }, + { + "condition": { + "typeReachable": "io.netty.util.ResourceLeakDetector" + }, + "name": "io.netty.util.ReferenceCountUtil", + "allDeclaredMethods": true + } +] \ No newline at end of file diff --git a/server/src/main/resources/META-INF/native-image/io.seata/server/resource-config.json b/server/src/main/resources/META-INF/native-image/io.seata/server/resource-config.json new file mode 100644 index 00000000000..73b72ff3d84 --- /dev/null +++ b/server/src/main/resources/META-INF/native-image/io.seata/server/resource-config.json @@ -0,0 +1,21 @@ +{ + "resources": { + "includes": [ + { + "pattern": "\\Qlogback\/\\E.*" + }, + { + "pattern": "\\Qlua\/redislocker\/redislock.lua\\E" + }, + { + "pattern": "\\Qapplication.yml\\E" + }, + { + "pattern": "\\Qbanner.txt\\E" + }, + { + "pattern": "\\Qlogback-spring.xml\\E" + } + ] + } +} \ No newline at end of file From 73ad98348238d764b2a2574d4b361ca12a2122c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Sat, 18 Feb 2023 17:01:06 +0800 Subject: [PATCH 21/32] 1) Fix license; 2) Optimize `test.yml` . --- .github/workflows/test.yml | 2 +- .../seata-rm-datasource/native-image.properties | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 15fcb6fe12f..0ee8a0b7dc5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -73,7 +73,7 @@ jobs: # step 3 - name: "Test with Maven" run: | - ./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dcheckstyle.skip=false -Dlicense.skip=false -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + ./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dcheckstyle.skip=true -Dlicense.skip=true -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; # job 3 arm64-test: diff --git a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties index a974103baf7..109df519963 100644 --- a/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties +++ b/rm-datasource/src/main/resources/META-INF/native-image/io.seata/seata-rm-datasource/native-image.properties @@ -1 +1,16 @@ +# +# Copyright 1999-2019 Seata.io Group. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + Args = -H:+AddAllCharsets \ No newline at end of file From 58dc6aa1900a7cdd08de1fcdf89fbf85146db0cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 22 Feb 2023 10:04:21 +0800 Subject: [PATCH 22/32] add VersionTest.java --- build/pom.xml | 2 +- .../java/io/seata/core/protocol/Version.java | 8 ++- .../io/seata/core/protocol/VersionTest.java | 56 +++++++++++++++++++ 3 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 core/src/test/java/io/seata/core/protocol/VersionTest.java diff --git a/build/pom.xml b/build/pom.xml index 06918e17513..aaf9827868e 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-NATIVE-RC2-SNAPSHOT + 1.7.0-native-rc2-SNAPSHOT 1.8 diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java index b899c33455c..f5b0ae94669 100644 --- a/core/src/main/java/io/seata/core/protocol/Version.java +++ b/core/src/main/java/io/seata/core/protocol/Version.java @@ -36,7 +36,7 @@ public class Version { /** * The constant CURRENT. */ - private static final String CURRENT = "1.7.0-NATIVE-RC2-SNAPSHOT"; + private static final String CURRENT = "1.7.0-native-rc2-SNAPSHOT"; private static final String VERSION_0_7_1 = "0.7.1"; private static final String VERSION_1_5_0 = "1.5.0"; private static final int MAX_VERSION_DOT = 3; @@ -114,12 +114,14 @@ public static boolean isAboveOrEqualVersion150(String version) { public static long convertVersion(String version) throws IncompatibleVersionException { String[] parts = StringUtils.split(version, '.'); - long result = 0L; - int i = 1; + int size = parts.length; if (size > MAX_VERSION_DOT + 1) { throw new IncompatibleVersionException("incompatible version format:" + version); } + + long result = 0L; + int i = 1; size = MAX_VERSION_DOT + 1; for (String part : parts) { if (StringUtils.isNumeric(part)) { diff --git a/core/src/test/java/io/seata/core/protocol/VersionTest.java b/core/src/test/java/io/seata/core/protocol/VersionTest.java new file mode 100644 index 00000000000..8252a9a69b1 --- /dev/null +++ b/core/src/test/java/io/seata/core/protocol/VersionTest.java @@ -0,0 +1,56 @@ +/* + * Copyright 1999-2019 Seata.io Group. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.seata.core.protocol; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +/** + * Test {@link Version}. + * + * @author wang.liang + */ +public class VersionTest { + + @Test + public void testConvertVersion() { + // case: success + Assertions.assertDoesNotThrow(() -> { + long v = Version.convertVersion("1.7.0-SNAPSHOT"); + Assertions.assertEquals(1070000, v); + }); + Assertions.assertDoesNotThrow(() -> { + long v = Version.convertVersion("1.7.0"); + Assertions.assertEquals(1070000, v); + }); + Assertions.assertDoesNotThrow(() -> { + long v = Version.convertVersion("1.7.0-native-rc1-SNAPSHOT"); + Assertions.assertEquals(1070000, v); + }); + Assertions.assertDoesNotThrow(() -> { + long v = Version.convertVersion("1.7.0-native-rc1"); + Assertions.assertEquals(1070000, v); + }); + + // case: fail + Assertions.assertThrows(IncompatibleVersionException.class, () -> { + Version.convertVersion("1.7.0.native.rc1-SNAPSHOT"); + }); + Assertions.assertThrows(IncompatibleVersionException.class, () -> { + Version.convertVersion("1.7.0.native.rc1"); + }); + } +} From c93a5c0241e8196c84c875eff1863b90b33faf61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 22 Feb 2023 10:07:03 +0800 Subject: [PATCH 23/32] add VersionTest.java --- core/src/test/java/io/seata/core/protocol/VersionTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/test/java/io/seata/core/protocol/VersionTest.java b/core/src/test/java/io/seata/core/protocol/VersionTest.java index 8252a9a69b1..e43b6e5cab1 100644 --- a/core/src/test/java/io/seata/core/protocol/VersionTest.java +++ b/core/src/test/java/io/seata/core/protocol/VersionTest.java @@ -28,6 +28,10 @@ public class VersionTest { @Test public void testConvertVersion() { // case: success + Assertions.assertDoesNotThrow(() -> { + long v = Version.convertVersion(Version.getCurrent()); + Assertions.assertTrue(v > 0); + }); Assertions.assertDoesNotThrow(() -> { long v = Version.convertVersion("1.7.0-SNAPSHOT"); Assertions.assertEquals(1070000, v); From bade349c7050d0717889dd47561590224d61030a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 22 Feb 2023 10:21:47 +0800 Subject: [PATCH 24/32] release: release for 1.7.0-native-rc2 --- build/pom.xml | 2 +- core/src/main/java/io/seata/core/protocol/Version.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/pom.xml b/build/pom.xml index aaf9827868e..c251074092a 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-native-rc2-SNAPSHOT + 1.7.0-native-rc2 1.8 diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java index f5b0ae94669..c11f5939889 100644 --- a/core/src/main/java/io/seata/core/protocol/Version.java +++ b/core/src/main/java/io/seata/core/protocol/Version.java @@ -36,7 +36,7 @@ public class Version { /** * The constant CURRENT. */ - private static final String CURRENT = "1.7.0-native-rc2-SNAPSHOT"; + private static final String CURRENT = "1.7.0-native-rc2"; private static final String VERSION_0_7_1 = "0.7.1"; private static final String VERSION_1_5_0 = "1.5.0"; private static final int MAX_VERSION_DOT = 3; From fdf545133c3f5d268f80aea56da1209b5944e41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 22 Feb 2023 13:46:32 +0800 Subject: [PATCH 25/32] optimize publishes.yml --- .github/workflows/publishes.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publishes.yml b/.github/workflows/publishes.yml index 00f020be9f1..c9b76ce1549 100644 --- a/.github/workflows/publishes.yml +++ b/.github/workflows/publishes.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - type: [ "OSSRH", "image" ] + type: [ "OSSRH" ] steps: # step 1 - name: "Checkout" @@ -42,16 +42,16 @@ jobs: cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import; ./mvnw -T 4C clean deploy -Prelease,release-by-github-actions -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -# # step 4 for type=image -# - name: "Package and Publish-Image-To-DockerHub" -# if: matrix.type == 'image' -# env: -# IMAGE_NAME: openjdk:8u342 -# REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} -# REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} -# run: | -# if [ "${{ github.ref_name }}" == "develop" ] || [ "${{ github.ref_name }}" == "snapshot" || [ "${{ github.ref_name }}" == "2.x" ]; then -# ./mvnw -T 4C clean package -Pimage -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; -# else -# ./mvnw -T 4C clean package -Pimage,release-image -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; -# fi + # step 4 for type=image + - name: "Package and Publish-Image-To-DockerHub" + if: matrix.type == 'image' + env: + IMAGE_NAME: openjdk:8u342 + REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} + run: | + if [ "${{ github.ref_name }}" == "develop" ] || [ "${{ github.ref_name }}" == "snapshot" || [ "${{ github.ref_name }}" == "2.x" ]; then + ./mvnw -T 4C clean package -Pimage -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + else + ./mvnw -T 4C clean package -Pimage,release-image -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + fi From 4903f02eca11c12e8fa525751846a548b31da853 Mon Sep 17 00:00:00 2001 From: jimin Date: Wed, 22 Feb 2023 15:02:10 +0800 Subject: [PATCH 26/32] release 1.7.0-native-rc2 (#5379) --- .github/workflows/test.yml | 2 +- changes/en-us/develop.md | 2 +- changes/zh-cn/develop.md | 2 +- dependencies/pom.xml | 6 ---- .../rm/datasource/exec/MultiExecutorTest.java | 36 +++++++++---------- 5 files changed, 21 insertions(+), 27 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0ee8a0b7dc5..062b21cd10d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,7 @@ name: "test" on: - push: + pull_request: branches: [ native ] jobs: diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md index b675488425a..ac9a77fce01 100644 --- a/changes/en-us/develop.md +++ b/changes/en-us/develop.md @@ -43,7 +43,7 @@ Add changes here for all PR submitted to the develop branch. - [[#5172](https://github.com/seata/seata/pull/5172)] fix some security vulnerabilities ### test: -- [[#xxx](https://github.com/seata/seata/pull/xxx)] add test for xxx +- [[#5380](https://github.com/seata/seata/pull/5380)] fix UpdateExecutorTest failed Thanks to these contributors for their code commits. Please report an unintended omission. diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md index 57b9105c910..2be63ea969c 100644 --- a/changes/zh-cn/develop.md +++ b/changes/zh-cn/develop.md @@ -44,7 +44,7 @@ - [[#5172](https://github.com/seata/seata/pull/5172)] 修复一些安全漏洞的版本 ### test: -- [[#xxx](https://github.com/seata/seata/pull/xxx)] 增加 xxx 测试 +- [[#5380](https://github.com/seata/seata/pull/5380)] 修复 UpdateExecutorTest 单测失败问题 非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。 diff --git a/dependencies/pom.xml b/dependencies/pom.xml index e53f3475364..3137c5818c6 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -80,7 +80,6 @@ 1.4.19 0.10.5 - 2.13.4.1 0.6.0 1.2.9 6.5 @@ -616,11 +615,6 @@ jjwt-jackson ${jwt.version} - - com.fasterxml.jackson.core - jackson-databind - ${jackson.databind.version} - io.prometheus simpleclient_httpserver diff --git a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MultiExecutorTest.java b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MultiExecutorTest.java index b33c4b50653..332bde4985d 100644 --- a/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MultiExecutorTest.java +++ b/rm-datasource/src/test/java/io/seata/rm/datasource/exec/MultiExecutorTest.java @@ -61,8 +61,8 @@ public static void init() throws Throwable { new Object[]{2, "Jack"}, }; Object[][] columnMetas = new Object[][]{ - new Object[]{"", "", "table_update_executor_test", "id", Types.INTEGER, "INTEGER", 64, 0, 10, 1, "", "", 0, 0, 64, 1, "NO", "YES"}, - new Object[]{"", "", "table_update_executor_test", "name", Types.VARCHAR, "VARCHAR", 64, 0, 10, 0, "", "", 0, 0, 64, 2, "YES", "NO"}, + new Object[]{"", "", "table_multi_executor_test", "id", Types.INTEGER, "INTEGER", 64, 0, 10, 1, "", "", 0, 0, 64, 1, "NO", "YES"}, + new Object[]{"", "", "table_multi_executor_test", "name", Types.VARCHAR, "VARCHAR", 64, 0, 10, 0, "", "", 0, 0, 64, 2, "YES", "NO"}, }; Object[][] indexMetas = new Object[][]{ new Object[]{"PRIMARY", "id", false, "", 3, 1, "A", 34}, @@ -91,8 +91,8 @@ public static void init() throws Throwable { @Test public void testBeforeImageAndAfterImages() throws SQLException { //same table and same type - String sql = "update table_update_executor_test set name = 'WILL' where id = 1;" + - "update table_update_executor_test set name = 'WILL2' where id = 2"; + String sql = "update table_multi_executor_test set name = 'WILL' where id = 1;" + + "update table_multi_executor_test set name = 'WILL2' where id = 2"; List multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -106,14 +106,14 @@ public void testBeforeImageAndAfterImages() throws SQLException { Assertions.assertEquals(executor.getAfterImagesMap().size(), 1); executor.prepareUndoLog(beforeImage, afterImage); List items = connectionProxy.getContext().getUndoItems(); - Assertions.assertTrue(items.stream().allMatch(t -> Objects.equals(t.getSqlType(), SQLType.UPDATE) && Objects.equals(t.getTableName(), "table_update_executor_test"))); + Assertions.assertTrue(items.stream().allMatch(t -> Objects.equals(t.getSqlType(), SQLType.UPDATE) && Objects.equals(t.getTableName(), "table_multi_executor_test"))); Assertions.assertEquals(items.size(), 1); connectionProxy.getContext().reset(); //same table delete - sql = "delete from table_update_executor_test where id = 2;" + - "delete from table_update_executor_test where id = 3"; + sql = "delete from table_multi_executor_test where id = 2;" + + "delete from table_multi_executor_test where id = 3"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -128,13 +128,13 @@ public void testBeforeImageAndAfterImages() throws SQLException { executor.prepareUndoLog(beforeImage, afterImage); items = connectionProxy.getContext().getUndoItems(); Set itemSet = items.stream().map(t -> t.getTableName()).collect(Collectors.toSet()); - Assertions.assertTrue(itemSet.contains("table_update_executor_test")); + Assertions.assertTrue(itemSet.contains("table_multi_executor_test")); Assertions.assertEquals(items.size(), 1); connectionProxy.getContext().reset(); //multi table update - sql = "update table_update_executor_test set name = 'WILL' where id = 1;update table_update_executor_test2 set name = 'WILL' where id = 1;update table_update_executor_test2 set name = 'WILL' where id = 3;"; + sql = "update table_multi_executor_test set name = 'WILL' where id = 1;update table_multi_executor_test2 set name = 'WILL' where id = 1;update table_multi_executor_test2 set name = 'WILL' where id = 3;"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -149,14 +149,14 @@ public void testBeforeImageAndAfterImages() throws SQLException { executor.prepareUndoLog(beforeImage, afterImage); items = connectionProxy.getContext().getUndoItems(); itemSet = items.stream().map(t -> t.getTableName()).collect(Collectors.toSet()); - Assertions.assertTrue(itemSet.contains("table_update_executor_test")); - Assertions.assertTrue(itemSet.contains("table_update_executor_test2")); + Assertions.assertTrue(itemSet.contains("table_multi_executor_test")); + Assertions.assertTrue(itemSet.contains("table_multi_executor_test2")); Assertions.assertEquals(items.size(), 2); connectionProxy.getContext().reset(); // multi table delete - sql = "delete from table_update_executor_test2 where id = 2;delete from table_update_executor_test where id = 3;delete from table_update_executor_test where id = 4;delete from table_update_executor_test"; + sql = "delete from table_multi_executor_test2 where id = 2;delete from table_multi_executor_test where id = 3;delete from table_multi_executor_test where id = 4;delete from table_multi_executor_test"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -171,12 +171,12 @@ public void testBeforeImageAndAfterImages() throws SQLException { executor.prepareUndoLog(beforeImage, afterImage); items = connectionProxy.getContext().getUndoItems(); itemSet = items.stream().map(t -> t.getTableName()).collect(Collectors.toSet()); - Assertions.assertTrue(itemSet.contains("table_update_executor_test")); - Assertions.assertTrue(itemSet.contains("table_update_executor_test2")); + Assertions.assertTrue(itemSet.contains("table_multi_executor_test")); + Assertions.assertTrue(itemSet.contains("table_multi_executor_test2")); Assertions.assertEquals(items.size(), 2); // contains limit delete - sql = "delete from table_update_executor_test2 where id = 2;delete from table_update_executor_test2 where id = 2 limit 1;"; + sql = "delete from table_multi_executor_test2 where id = 2;delete from table_multi_executor_test2 where id = 2 limit 1;"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -184,7 +184,7 @@ public void testBeforeImageAndAfterImages() throws SQLException { Assertions.assertThrows(NotSupportYetException.class, executor::beforeImage); // contains order by and limit delete - sql = "delete from table_update_executor_test2 where id = 2;delete from table_update_executor_test2 where id = 2 order by id desc limit 1;"; + sql = "delete from table_multi_executor_test2 where id = 2;delete from table_multi_executor_test2 where id = 2 order by id desc limit 1;"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -193,7 +193,7 @@ public void testBeforeImageAndAfterImages() throws SQLException { //contains order by update - sql = "update table_update_executor_test set name = 'WILL' where id = 1;update table_update_executor_test set name = 'WILL' where id = 1 order by id desc;"; + sql = "update table_multi_executor_test set name = 'WILL' where id = 1;update table_multi_executor_test set name = 'WILL' where id = 1 order by id desc;"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; @@ -201,7 +201,7 @@ public void testBeforeImageAndAfterImages() throws SQLException { Assertions.assertThrows(NotSupportYetException.class, executor::beforeImage); //contains order by and limit update - sql = "update table_update_executor_test set name = 'WILL' where id = 1;update table_update_executor_test set name = 'WILL' where id = 1 order by id desc limit 1;"; + sql = "update table_multi_executor_test set name = 'WILL' where id = 1;update table_multi_executor_test set name = 'WILL' where id = 1 order by id desc limit 1;"; multi = SQLVisitorFactory.get(sql, JdbcConstants.MYSQL); executor = new MultiExecutor(statementProxy, (statement, args) -> { return null; From c7a392e5c8787a079075aed8cddffc165d606cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 23 Feb 2023 11:02:32 +0800 Subject: [PATCH 27/32] change the version to 1.7.0-native-rc3-SNAPSHOT --- build/pom.xml | 2 +- core/src/main/java/io/seata/core/protocol/Version.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/pom.xml b/build/pom.xml index c251074092a..2cf57b79a86 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-native-rc2 + 1.7.0-native-rc3-SNAPSHOT 1.8 diff --git a/core/src/main/java/io/seata/core/protocol/Version.java b/core/src/main/java/io/seata/core/protocol/Version.java index c11f5939889..90fad98edd6 100644 --- a/core/src/main/java/io/seata/core/protocol/Version.java +++ b/core/src/main/java/io/seata/core/protocol/Version.java @@ -36,7 +36,7 @@ public class Version { /** * The constant CURRENT. */ - private static final String CURRENT = "1.7.0-native-rc2"; + private static final String CURRENT = "1.7.0-native-rc3-SNAPSHOT"; private static final String VERSION_0_7_1 = "0.7.1"; private static final String VERSION_1_5_0 = "1.5.0"; private static final int MAX_VERSION_DOT = 3; From c8b225f86f3129d59ae74cac832a8a2114adc110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Wed, 8 Mar 2023 15:19:46 +0800 Subject: [PATCH 28/32] optimize actions --- .github/workflows/build.yml | 6 +++--- .github/workflows/test.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6839bbba2d8..ae7ca470e57 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -61,6 +61,6 @@ jobs: docker run --rm -v ${{ github.workspace }}:/ws:rw --workdir=/ws \ arm64v8/ubuntu:20.04 \ bash -exc 'apt-get update -y && \ - apt-get install maven -y && \ - mvn -version && \ - mvn -Prelease-seata -DskipTests clean install -U' + apt-get install maven -y && \ + mvn -version && \ + mvn -Prelease-seata -DskipTests clean install -U' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index abace4f1540..b2c126832c1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -117,7 +117,7 @@ jobs: docker run --rm -v ${{ github.workspace }}:/ws:rw --workdir=/ws \ arm64v8/ubuntu:20.04 \ bash -exc 'apt-get update -y && \ - apt-get install maven -y' + apt-get install maven -y' # step 4 - name: "Print maven version" run: ./mvnw -version From f94dffa38adee14cc96e27513686676355e214ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 30 Mar 2023 15:07:55 +0800 Subject: [PATCH 29/32] optimize style --- .../main/java/io/seata/rm/datasource/util/SeataXAResource.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rm-datasource/src/main/java/io/seata/rm/datasource/util/SeataXAResource.java b/rm-datasource/src/main/java/io/seata/rm/datasource/util/SeataXAResource.java index 924fec80795..e185fb5477e 100644 --- a/rm-datasource/src/main/java/io/seata/rm/datasource/util/SeataXAResource.java +++ b/rm-datasource/src/main/java/io/seata/rm/datasource/util/SeataXAResource.java @@ -22,7 +22,8 @@ * @since 2023/3/16 */ public interface SeataXAResource extends XAResource { + // OracleXAResource Loosely Coupled Branches - public static final int ORATRANSLOOSE = 65536; + int ORATRANSLOOSE = 65536; } From 9a14df3a6e9afe9259869282da5aefb45a312276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Thu, 30 Mar 2023 15:38:53 +0800 Subject: [PATCH 30/32] optimize style --- .github/workflows/publishes.yml | 46 ++++++++++++++++++- .github/workflows/test.yml | 4 +- build/pom.xml | 2 +- .../services/io.seata.common.loader.Hello | 2 +- .../impl/db/GlobalSessionDBServiceImpl.java | 3 +- 5 files changed, 51 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publishes.yml b/.github/workflows/publishes.yml index abf3ce21ea4..9e179e7f9b4 100644 --- a/.github/workflows/publishes.yml +++ b/.github/workflows/publishes.yml @@ -2,7 +2,7 @@ name: "Publishes" on: push: - branches: [ native ] + branches: [ snapshot, "*.*.*" ] #tags: [ "*" ] #This schedule only takes effect in the default branch @@ -42,3 +42,47 @@ jobs: GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} run: | ./mvnw -T 4C clean deploy -Prelease,release-by-github-actions -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + + # job 2 + publish-images-to-dockerhub: + name: "Publish images to DockerHub" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java: [ 8, 17 ] + steps: + # step 1 + - name: "Checkout" + uses: actions/checkout@v2.4.0 + # step 2 + - name: "Setup Java JDK" + uses: actions/setup-java@v3.9.0 + with: + distribution: 'zulu' + java-version: ${{ matrix.java }} + # step 3 + - name: "Print maven version" + run: ./mvnw -version + # step 4 based on java8 + - name: "Publish images to DockerHub based on java8" + if: matrix.java == 8 + env: + REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} + run: | + if [ "${{ github.ref_name }}" == "develop" ] || [ "${{ github.ref_name }}" == "snapshot" || [ "${{ github.ref_name }}" == "2.x" ]; then + ./mvnw -T 4C clean package -Dimage.name=openjdk:8u342 -Pimage -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + else + ./mvnw -T 4C clean package -Dimage.name=openjdk:8u342 -Pimage,release-image-based-on-java8 -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + ./mvnw -T 4C clean package -Dimage.name=openjdk:8u342-slim -Pimage,release-image-based-on-java8-slim -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + fi + # step 4 based on java17 + - name: "Publish images to DockerHub based on java17" + if: ${{ matrix.java == 17 && github.ref_name != 'develop' && github.ref_name != 'snapshot' && github.ref_name != '2.x' }} + env: + REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} + run: | + ./mvnw -T 4C clean package -Dimage.name=openjdk:17.0.2 -Pimage,release-image-based-on-java17 -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + ./mvnw -T 4C clean package -Dimage.name=openjdk:17.0.2-slim -Pimage,release-image-based-on-java17-slim -DskipTests -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b2c126832c1..3fed98f62ef 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,8 +1,8 @@ name: "test" on: - pull_request: - branches: [ native ] + push: + branches: [ test*, "*.*.*" ] jobs: # job 1 diff --git a/build/pom.xml b/build/pom.xml index 4920b41fc63..753413a0a6d 100644 --- a/build/pom.xml +++ b/build/pom.xml @@ -63,7 +63,7 @@ - 1.7.0-native-rc3-SNAPSHOT + 1.7.0-SNAPSHOT 1.8 diff --git a/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello b/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello index afeb748dab9..1b772803d97 100644 --- a/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello +++ b/common/src/test/resources/META-INF/services/io.seata.common.loader.Hello @@ -1 +1 @@ -io.seata.common.loader.ChineseHello +io.seata.common.loader.ChineseHello \ No newline at end of file diff --git a/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java b/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java index fb414d0c8be..7583cf3c2b1 100644 --- a/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java +++ b/server/src/main/java/io/seata/server/console/impl/db/GlobalSessionDBServiceImpl.java @@ -23,8 +23,9 @@ import java.util.Date; import java.util.HashSet; import java.util.List; -import javax.sql.DataSource; + import javax.annotation.Resource; +import javax.sql.DataSource; import io.seata.common.ConfigurationKeys; import io.seata.common.exception.StoreException; From 803267ca23d0c600ea5ddb17f1541c7afcb78cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Fri, 31 Mar 2023 17:08:18 +0800 Subject: [PATCH 31/32] =?UTF-8?q?=E6=81=A2=E5=A4=8Dspring=20fake=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=B8=8B=E7=9A=84=E6=89=80=E6=9C=89=E7=B1=BB=E7=9A=84?= =?UTF-8?q?=E8=AE=B8=E5=8F=AF=E5=86=85=E5=AE=B9=E5=8F=8A=E4=BD=9C=E8=80=85?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aot/generate/GenerationContext.java | 25 +++++----- .../aot/hint/ExecutableMode.java | 30 +++++++----- .../aot/hint/MemberCategory.java | 26 +++++----- .../springframework/aot/hint/ProxyHints.java | 24 +++++----- .../aot/hint/ReflectionHints.java | 47 ++++++++++--------- .../aot/hint/ResourceHints.java | 30 ++++++------ .../aot/hint/RuntimeHints.java | 25 +++++----- .../aot/hint/RuntimeHintsRegistrar.java | 25 +++++----- .../aot/hint/SerializationHints.java | 25 +++++----- .../aot/hint/TypeReference.java | 28 ++++++----- .../aot/BeanRegistrationAotContribution.java | 26 +++++----- .../aot/BeanRegistrationAotProcessor.java | 25 +++++----- .../factory/aot/BeanRegistrationCode.java | 24 +++++----- .../beans/factory/support/RegisteredBean.java | 30 ++++++------ style/seata_suppressions.xml | 2 + 15 files changed, 218 insertions(+), 174 deletions(-) diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java index eb97d861a72..e226ca4b6b9 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/generate/GenerationContext.java @@ -1,18 +1,19 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.generate; import org.springframework.aot.hint.RuntimeHints; @@ -20,7 +21,9 @@ /** * GenerationContext's fake * - * @author wang.liang + * @author Phillip Webb + * @author Stephane Nicoll + * @since 6.0 */ public interface GenerationContext { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java index 5ef52463e8f..6ee04575cf2 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ExecutableMode.java @@ -1,24 +1,28 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; +import org.springframework.lang.Nullable; + /** * ExecutableMode's fake * - * @author wang.liang + * @author Stephane Nicoll + * @since 6.0 */ public enum ExecutableMode { @@ -26,4 +30,8 @@ public enum ExecutableMode { INVOKE; + boolean includes(@Nullable ExecutableMode other) { + return true; + } + } diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java index da204fbd589..d1c47657421 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/MemberCategory.java @@ -1,24 +1,28 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; /** * MemberCategory's fake * - * @author wang.liang + * @author Andy Clement + * @author Sebastien Deleuze + * @author Stephane Nicoll + * @since 6.0 */ public enum MemberCategory { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java index 235f68f9200..509953be3a3 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ProxyHints.java @@ -1,24 +1,26 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; /** * ProxyHints's fake * - * @author wang.liang + * @author Stephane Nicoll + * @since 6.0 */ public class ProxyHints { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java index 4fb53fefcc3..d84b1b742e9 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ReflectionHints.java @@ -1,35 +1,38 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ -package org.springframework.aot.hint; -import org.springframework.lang.Nullable; +package org.springframework.aot.hint; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; +import org.springframework.lang.Nullable; /** * ReflectionHints's fake * - * @author wang.liang + * @author Stephane Nicoll + * @author Phillip Webb + * @author Andy Wilkinson + * @since 6.0 */ public class ReflectionHints { // public Stream typeHints() { -// return this.types.values().stream().map(Builder::build); +// return null; // } // // @Nullable @@ -55,15 +58,17 @@ public ReflectionHints registerType(TypeReference type, MemberCategory... member // } public ReflectionHints registerType(Class type, MemberCategory... memberCategories) { - return null; + return this; } -// public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, String typeName, Consumer typeHint) { +// public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, +// String typeName, Consumer typeHint) { // return this; // } - public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, String typeName, MemberCategory... memberCategories) { - return null; + public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, + String typeName, MemberCategory... memberCategories) { + return this; } // public ReflectionHints registerTypes(Iterable types, Consumer typeHint) { @@ -71,15 +76,15 @@ public ReflectionHints registerTypeIfPresent(@Nullable ClassLoader classLoader, // } public ReflectionHints registerField(Field field) { - return null; + return this; } public ReflectionHints registerConstructor(Constructor constructor, ExecutableMode mode) { - return null; + return this; } public ReflectionHints registerMethod(Method method, ExecutableMode mode) { - return null; + return this; } } diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java index 8ac66667611..1f679d84dcb 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/ResourceHints.java @@ -1,18 +1,19 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; import org.springframework.core.io.Resource; @@ -20,7 +21,9 @@ /** * ResourceHints's fake * - * @author wang.liang + * @author Stephane Nicoll + * @author Sam Brannen + * @since 6.0 */ public class ResourceHints { @@ -38,11 +41,6 @@ public class ResourceHints { // } // // public ResourceHints registerPattern(@Nullable Consumer resourceHint) { -// ResourcePatternHints.Builder builder = new ResourcePatternHints.Builder(); -// if (resourceHint != null) { -// resourceHint.accept(builder); -// } -// this.resourcePatternHints.add(builder.build()); // return this; // } diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java index 195d2721f75..4bb99528d1d 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHints.java @@ -1,24 +1,27 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; /** * RuntimeHints's fake * - * @author wang.liang + * @author Stephane Nicoll + * @author Janne Valkealahti + * @since 6.0 */ public class RuntimeHints { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java index 54e2bc7e036..caf9898d155 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/RuntimeHintsRegistrar.java @@ -1,18 +1,19 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; import org.springframework.lang.Nullable; @@ -20,7 +21,9 @@ /** * RuntimeHintsRegistrar's fake * - * @author wang.liang + * @author Brian Clozel + * @author Stephane Nicoll + * @since 6.0 */ @FunctionalInterface public interface RuntimeHintsRegistrar { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java index 5d38a4dda62..9a0a7bf5ce3 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/SerializationHints.java @@ -1,18 +1,19 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.aot.hint; import java.io.Serializable; @@ -20,7 +21,9 @@ /** * SerializationHints's fake * - * @author wang.liang + * @author Stephane Nicoll + * @since 6.0 + * @see Serializable */ public class SerializationHints { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java index 767303a8465..69463bbba32 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/aot/hint/TypeReference.java @@ -1,28 +1,30 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ -package org.springframework.aot.hint; -import org.springframework.lang.Nullable; +package org.springframework.aot.hint; import java.util.List; +import org.springframework.lang.Nullable; + /** * TypeReference's fake * - * @author wang.liang + * @author Stephane Nicoll + * @since 6.0 */ public interface TypeReference { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java index 9279acbaff0..c1d8ffcc346 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotContribution.java @@ -1,18 +1,19 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.beans.factory.aot; import org.springframework.aot.generate.GenerationContext; @@ -20,7 +21,10 @@ /** * BeanRegistrationAotContribution's fake * - * @author wang.liang + * @author Phillip Webb + * @author Stephane Nicoll + * @since 6.0 + * @see BeanRegistrationAotProcessor */ @FunctionalInterface public interface BeanRegistrationAotContribution { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java index 91b3645a0ae..d83519f2cfe 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationAotProcessor.java @@ -1,18 +1,19 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.beans.factory.aot; import org.springframework.beans.factory.support.RegisteredBean; @@ -21,7 +22,9 @@ /** * BeanRegistrationAotProcessor's fake * - * @author wang.liang + * @author Phillip Webb + * @author Stephane Nicoll + * @since 6.0 */ @FunctionalInterface public interface BeanRegistrationAotProcessor { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java index 530607cd9a1..4fe0eb4aab1 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/aot/BeanRegistrationCode.java @@ -1,24 +1,26 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.beans.factory.aot; /** * BeanRegistrationCode's fake * - * @author wang.liang + * @author Phillip Webb + * @since 6.0 */ public interface BeanRegistrationCode { diff --git a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java index b2282348b18..e698f6554e9 100644 --- a/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java +++ b/spring-framework-fake-for-java8/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java @@ -1,33 +1,35 @@ /* - * Copyright 1999-2019 Seata.io Group. + * Copyright 2002-2022 the original author or authors. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * https://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package org.springframework.beans.factory.support; +import java.lang.reflect.Executable; +import java.util.function.Supplier; + import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinitionHolder; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.core.ResolvableType; import org.springframework.lang.Nullable; -import java.lang.reflect.Executable; -import java.util.function.Supplier; - /** * RegisteredBean's fake * - * @author wang.liang + * @author Phillip Webb + * @since 6.0 */ public final class RegisteredBean { diff --git a/style/seata_suppressions.xml b/style/seata_suppressions.xml index eb7923380da..a933135d00b 100644 --- a/style/seata_suppressions.xml +++ b/style/seata_suppressions.xml @@ -31,4 +31,6 @@ files="[\\/]antlr[\\/]mysql[\\/]antlr[\\/]"/> + \ No newline at end of file From dfffb5b7db83224df5a46bc8778b67880f83de96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=89=AF?= <841369634@qq.com> Date: Fri, 31 Mar 2023 17:13:50 +0800 Subject: [PATCH 32/32] style --- .licenserc.yaml | 1 + changes/en-us/develop.md | 2 +- changes/zh-cn/develop.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.licenserc.yaml b/.licenserc.yaml index 699f39beee0..d295560cf1f 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -75,6 +75,7 @@ header: - 'ext/apm-seata-skywalking-plugin/config/agent.config' - 'server/src/main/resources/lua/redislocker/redislock.lua' - 'server/src/main/resources/banner.txt' + - '**/org/springframework/**' comment: on-failure diff --git a/changes/en-us/develop.md b/changes/en-us/develop.md index 97b136f8c99..515d1d033ef 100644 --- a/changes/en-us/develop.md +++ b/changes/en-us/develop.md @@ -3,7 +3,7 @@ Add changes here for all PR submitted to the develop branch. ### feature: -- [[#xxx](https://github.com/seata/seata/pull/xxx)] support xxx +- [[#5476](https://github.com/seata/seata/pull/5476)] First support `native-image` for `seata-client` ### bugfix: - [[#5194](https://github.com/seata/seata/pull/5194)] fix wrong keyword order for oracle when creating a table diff --git a/changes/zh-cn/develop.md b/changes/zh-cn/develop.md index 96b0746fd20..6b116a4ebb5 100644 --- a/changes/zh-cn/develop.md +++ b/changes/zh-cn/develop.md @@ -3,7 +3,7 @@ ### feature: -- [[#xxx](https://github.com/seata/seata/pull/xxx)] 支持 xxx +- [[#5476](https://github.com/seata/seata/pull/5476)] seata客户端,首次支持 `native-image` ### bugfix: - [[#5194](https://github.com/seata/seata/pull/5194)] 修复使用Oracle作为服务端DB存储时的建表失败问题