From d704db67625234158ad3a6beb7b6aa677c1a4db5 Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 8 Oct 2022 22:50:18 +0800 Subject: [PATCH] opt the maven build plugin --- lattice-model/pom.xml | 2 +- lattice-remote/lattice-remote-client/pom.xml | 2 +- .../lattice-remote-container/pom.xml | 2 +- .../lattice-remote-runner-dubbo/pom.xml | 2 +- lattice-remote/lattice-remote-runner/pom.xml | 2 +- lattice-remote/pom.xml | 2 +- lattice-runtime/pom.xml | 2 +- lattice-tools/lattice-load-config-res/pom.xml | 2 +- .../lattice-maven-build-model/pom.xml | 2 +- .../lattice/maven/model/AbilityInstInfo.java | 4 ++ .../lattice/maven/model/LatticeInfo.java | 12 ++++++ .../lattice-maven-build-plugin/pom.xml | 2 +- .../lattice/maven/LatticeBuildPlugin.java | 4 ++ .../maven/builder/AbilityInfoBuilder.java | 35 +++-------------- .../maven/builder/LatticeInfoBuilder.java | 38 +++++++++++++++++++ .../maven/builder/ProductInfoBuilder.java | 28 +------------- .../maven/builder/UseCaseInfoBuilder.java | 27 +------------ lattice-tools/lattice-maven-build/pom.xml | 2 +- lattice-tools/pom.xml | 2 +- pom.xml | 4 +- 20 files changed, 80 insertions(+), 96 deletions(-) diff --git a/lattice-model/pom.xml b/lattice-model/pom.xml index 4e433a58..c429af89 100644 --- a/lattice-model/pom.xml +++ b/lattice-model/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 lattice-model diff --git a/lattice-remote/lattice-remote-client/pom.xml b/lattice-remote/lattice-remote-client/pom.xml index c58081e0..a9626283 100644 --- a/lattice-remote/lattice-remote-client/pom.xml +++ b/lattice-remote/lattice-remote-client/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 ../../pom.xml 4.0.0 diff --git a/lattice-remote/lattice-remote-container/pom.xml b/lattice-remote/lattice-remote-container/pom.xml index b1f02d4b..831b8a81 100644 --- a/lattice-remote/lattice-remote-container/pom.xml +++ b/lattice-remote/lattice-remote-container/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 ../../pom.xml 4.0.0 diff --git a/lattice-remote/lattice-remote-runner/lattice-remote-runner-dubbo/pom.xml b/lattice-remote/lattice-remote-runner/lattice-remote-runner-dubbo/pom.xml index 4fa8da74..4301b32f 100644 --- a/lattice-remote/lattice-remote-runner/lattice-remote-runner-dubbo/pom.xml +++ b/lattice-remote/lattice-remote-runner/lattice-remote-runner-dubbo/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 ../../../pom.xml 4.0.0 diff --git a/lattice-remote/lattice-remote-runner/pom.xml b/lattice-remote/lattice-remote-runner/pom.xml index 19d0c4ed..81fd3e9f 100644 --- a/lattice-remote/lattice-remote-runner/pom.xml +++ b/lattice-remote/lattice-remote-runner/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 ../../pom.xml 4.0.0 diff --git a/lattice-remote/pom.xml b/lattice-remote/pom.xml index b05e7335..4a5e548b 100644 --- a/lattice-remote/pom.xml +++ b/lattice-remote/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 diff --git a/lattice-runtime/pom.xml b/lattice-runtime/pom.xml index fdc39712..166e7c25 100644 --- a/lattice-runtime/pom.xml +++ b/lattice-runtime/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 diff --git a/lattice-tools/lattice-load-config-res/pom.xml b/lattice-tools/lattice-load-config-res/pom.xml index 1b54f89d..a724c3fd 100644 --- a/lattice-tools/lattice-load-config-res/pom.xml +++ b/lattice-tools/lattice-load-config-res/pom.xml @@ -5,7 +5,7 @@ lattice-tools org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-model/pom.xml b/lattice-tools/lattice-maven-build/lattice-maven-build-model/pom.xml index 22fc02f6..eaff1595 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-model/pom.xml +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-model/pom.xml @@ -5,7 +5,7 @@ lattice-maven-build org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/AbilityInstInfo.java b/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/AbilityInstInfo.java index a69548ee..be8f4b3e 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/AbilityInstInfo.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/AbilityInstInfo.java @@ -24,4 +24,8 @@ public class AbilityInstInfo extends BaseInfo { @Getter private final List extensions = Lists.newArrayList(); + + @Getter + @Setter + private DependencyInfo dependency; } diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/LatticeInfo.java b/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/LatticeInfo.java index caef0ae9..02c10fb6 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/LatticeInfo.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-model/src/main/java/org/hiforce/lattice/maven/model/LatticeInfo.java @@ -13,6 +13,18 @@ public class LatticeInfo implements Serializable { private static final long serialVersionUID = 6289372399096534060L; + @Getter + @Setter + private String groupId; + + @Getter + @Setter + private String artifactId; + + @Getter + @Setter + private String version; + @Getter @Setter private AbilitySet ability = new AbilitySet(); diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/pom.xml b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/pom.xml index ff436e4c..8baf68b6 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/pom.xml +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/pom.xml @@ -5,7 +5,7 @@ lattice-maven-build org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 maven-plugin diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/LatticeBuildPlugin.java b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/LatticeBuildPlugin.java index a854e696..882ea9c2 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/LatticeBuildPlugin.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/LatticeBuildPlugin.java @@ -61,6 +61,10 @@ public void execute() throws MojoExecutionException, MojoFailureException { getLog().info(">> LatticeBuildPlugin start...."); getLog().info(">> Project: " + mavenProject.getName()); + latticeInfo.setGroupId(mavenProject.getGroupId()); + latticeInfo.setArtifactId(mavenProject.getArtifactId()); + latticeInfo.setVersion(mavenProject.getVersion()); + totalClassLoader = loadClassLoader(false, false); projectClassLoader = loadClassLoader(true, false); importClassLoader = loadClassLoader(false, true); diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/AbilityInfoBuilder.java b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/AbilityInfoBuilder.java index bd3c2748..0dca4d24 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/AbilityInfoBuilder.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/AbilityInfoBuilder.java @@ -1,22 +1,18 @@ package org.hiforce.lattice.maven.builder; -import org.apache.commons.lang3.StringUtils; -import org.apache.maven.model.Dependency; import org.hifforce.lattice.model.ability.IAbility; import org.hifforce.lattice.model.register.AbilityInstSpec; import org.hifforce.lattice.model.register.AbilitySpec; import org.hifforce.lattice.model.register.ExtensionPointSpec; import org.hiforce.lattice.maven.LatticeBuildPlugin; -import org.hiforce.lattice.maven.model.*; -import org.hiforce.lattice.runtime.Lattice; +import org.hiforce.lattice.maven.model.AbilityInfo; +import org.hiforce.lattice.maven.model.AbilityInstInfo; +import org.hiforce.lattice.maven.model.ExtParam; +import org.hiforce.lattice.maven.model.ExtensionInfo; import org.hiforce.lattice.runtime.ability.register.AbilityBuildRequest; import org.hiforce.lattice.runtime.ability.register.AbilityRegister; -import java.io.File; import java.lang.reflect.Parameter; -import java.net.URI; -import java.security.CodeSource; -import java.security.ProtectionDomain; import java.util.List; import java.util.stream.Collectors; @@ -59,7 +55,7 @@ private List getLoadAbilityClass(List classNames) { @SuppressWarnings("all") private AbilityInfo buildAbilityInfo(AbilitySpec abilitySpec) { AbilityInfo info = new AbilityInfo(); - List dependencies = getPlugin().getMavenProject().getRuntimeDependencies(); + Class abilityClass = abilitySpec.getAbilityClass(); info.setCode(abilitySpec.getCode()); info.setName(abilitySpec.getName()); @@ -67,26 +63,7 @@ private AbilityInfo buildAbilityInfo(AbilitySpec abilitySpec) { info.getInstances().addAll(abilitySpec.getAbilityInstances().stream() .map(p -> buildAbilityInstInfo(p)).collect(Collectors.toList())); - - try { - ProtectionDomain protectionDomain = abilityClass.getProtectionDomain(); - CodeSource codeSource = protectionDomain.getCodeSource(); - URI location = (codeSource != null) ? codeSource.getLocation().toURI() : null; - String path = (location != null) ? location.getSchemeSpecificPart() : null; - - File file = new File(path); - DependencyInfo dependency = dependencies.stream() - .filter(p -> StringUtils.equals(file.getName(), - String.format("%s-%s.jar", p.getArtifactId(), p.getVersion()))) - .findFirst() - .map(p -> DependencyInfo.of(p.getGroupId(), p.getArtifactId(), p.getVersion())) - .orElse(null); - if (null != dependency) { - info.setDependency(dependency); - } - } catch (Exception e) { - throw new RuntimeException(e); - } + info.setDependency(getDependencyInfo(abilityClass)); return info; } diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/LatticeInfoBuilder.java b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/LatticeInfoBuilder.java index d8bac3c5..11868fba 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/LatticeInfoBuilder.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/LatticeInfoBuilder.java @@ -3,16 +3,23 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import lombok.Getter; +import org.apache.commons.lang3.StringUtils; +import org.apache.maven.model.Dependency; import org.apache.maven.plugin.logging.Log; import org.hifforce.lattice.annotation.model.ExtensionAnnotation; import org.hifforce.lattice.model.ability.IBusinessExt; import org.hifforce.lattice.model.register.RealizationSpec; import org.hiforce.lattice.maven.LatticeBuildPlugin; +import org.hiforce.lattice.maven.model.DependencyInfo; import org.hiforce.lattice.maven.model.ExtensionInfo; import org.hiforce.lattice.maven.model.RealizationInfo; import org.hiforce.lattice.runtime.Lattice; +import java.io.File; import java.lang.reflect.Method; +import java.net.URI; +import java.security.CodeSource; +import java.security.ProtectionDomain; import java.util.List; import java.util.Set; @@ -91,6 +98,37 @@ public static RealizationInfo buildRealizationInfo(RealizationSpec spec) { return info; } + @SuppressWarnings("unchecked") + public DependencyInfo getDependencyInfo(Class targetClass) { + if (null == targetClass) { + return null; + } + + try { + + ProtectionDomain protectionDomain = targetClass.getProtectionDomain(); + CodeSource codeSource = protectionDomain.getCodeSource(); + URI location = (codeSource != null) ? codeSource.getLocation().toURI() : null; + String path = (location != null) ? location.getSchemeSpecificPart() : null; + if (null == path) { + return null; + } + + File file = new File(path); + + List dependencies = getPlugin().getMavenProject().getRuntimeDependencies(); + return dependencies.stream() + .filter(p -> StringUtils.equals(file.getName(), + String.format("%s-%s.jar", p.getArtifactId(), p.getVersion()))) + .findFirst() + .map(p -> DependencyInfo.of(p.getGroupId(), p.getArtifactId(), p.getVersion())) + .orElse(null); + } catch (Exception ex) { + getLog().error(ex.getMessage(), ex); + return null; + } + } + public List buildCustomizedExtensionInfos(IBusinessExt businessExt) { List extensionInfos = Lists.newArrayList(); for (Method method : businessExt.getClass().getDeclaredMethods()) { diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/ProductInfoBuilder.java b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/ProductInfoBuilder.java index ba40ef60..d7818103 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/ProductInfoBuilder.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/ProductInfoBuilder.java @@ -1,21 +1,15 @@ package org.hiforce.lattice.maven.builder; import com.google.common.collect.Lists; -import org.apache.commons.lang3.StringUtils; import org.apache.maven.model.Dependency; import org.hifforce.lattice.model.ability.IBusinessExt; import org.hifforce.lattice.model.business.IProduct; import org.hifforce.lattice.model.register.ProductSpec; import org.hiforce.lattice.maven.LatticeBuildPlugin; -import org.hiforce.lattice.maven.model.DependencyInfo; import org.hiforce.lattice.maven.model.ProductInfo; import org.hiforce.lattice.maven.model.RealizationInfo; import org.hiforce.lattice.runtime.ability.register.TemplateRegister; -import java.io.File; -import java.net.URI; -import java.security.CodeSource; -import java.security.ProtectionDomain; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -81,27 +75,7 @@ private ProductInfo buildProductInfo(ProductSpec spec) { } catch (Exception ex) { getLog().error(ex.getMessage(), ex); } - - - try { - ProtectionDomain protectionDomain = spec.getProductClass().getProtectionDomain(); - CodeSource codeSource = protectionDomain.getCodeSource(); - URI location = (codeSource != null) ? codeSource.getLocation().toURI() : null; - String path = (location != null) ? location.getSchemeSpecificPart() : null; - - File file = new File(path); - DependencyInfo dependency = dependencies.stream() - .filter(p -> StringUtils.equals(file.getName(), - String.format("%s-%s.jar", p.getArtifactId(), p.getVersion()))) - .findFirst() - .map(p -> DependencyInfo.of(p.getGroupId(), p.getArtifactId(), p.getVersion())) - .orElse(null); - if (null != dependency) { - info.setDependency(dependency); - } - } catch (Exception e) { - throw new RuntimeException(e); - } + info.setDependency(getDependencyInfo(spec.getProductClass())); return info; } } diff --git a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/UseCaseInfoBuilder.java b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/UseCaseInfoBuilder.java index c34030c9..640eeefa 100644 --- a/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/UseCaseInfoBuilder.java +++ b/lattice-tools/lattice-maven-build/lattice-maven-build-plugin/src/main/java/org/hiforce/lattice/maven/builder/UseCaseInfoBuilder.java @@ -1,22 +1,16 @@ package org.hiforce.lattice.maven.builder; import com.google.common.collect.Lists; -import org.apache.commons.lang3.StringUtils; import org.apache.maven.model.Dependency; import org.hifforce.lattice.model.ability.IBusinessExt; import org.hifforce.lattice.model.business.IUseCase; import org.hifforce.lattice.model.register.UseCaseSpec; import org.hiforce.lattice.maven.LatticeBuildPlugin; -import org.hiforce.lattice.maven.model.DependencyInfo; import org.hiforce.lattice.maven.model.RealizationInfo; import org.hiforce.lattice.maven.model.UseCaseInfo; import org.hiforce.lattice.runtime.ability.register.AbilityRegister; import org.hiforce.lattice.runtime.ability.register.TemplateRegister; -import java.io.File; -import java.net.URI; -import java.security.CodeSource; -import java.security.ProtectionDomain; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -91,26 +85,7 @@ private UseCaseInfo buildUseCaseInfo(UseCaseSpec useCaseSpec) { getLog().error(ex.getMessage(), ex); } - - try { - ProtectionDomain protectionDomain = useCaseSpec.getUseCaseClass().getProtectionDomain(); - CodeSource codeSource = protectionDomain.getCodeSource(); - URI location = (codeSource != null) ? codeSource.getLocation().toURI() : null; - String path = (location != null) ? location.getSchemeSpecificPart() : null; - - File file = new File(path); - DependencyInfo dependency = dependencies.stream() - .filter(p -> StringUtils.equals(file.getName(), - String.format("%s-%s.jar", p.getArtifactId(), p.getVersion()))) - .findFirst() - .map(p -> DependencyInfo.of(p.getGroupId(), p.getArtifactId(), p.getVersion())) - .orElse(null); - if (null != dependency) { - info.setDependency(dependency); - } - } catch (Exception e) { - throw new RuntimeException(e); - } + info.setDependency(getDependencyInfo(useCaseSpec.getUseCaseClass())); return info; } diff --git a/lattice-tools/lattice-maven-build/pom.xml b/lattice-tools/lattice-maven-build/pom.xml index 2c4ccda2..80515623 100644 --- a/lattice-tools/lattice-maven-build/pom.xml +++ b/lattice-tools/lattice-maven-build/pom.xml @@ -5,7 +5,7 @@ lattice-tools org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 pom diff --git a/lattice-tools/pom.xml b/lattice-tools/pom.xml index 75f45f0e..06a548fa 100644 --- a/lattice-tools/pom.xml +++ b/lattice-tools/pom.xml @@ -5,7 +5,7 @@ lattice org.hiforce.lattice - 1.0.9 + 1.0.9.1 4.0.0 pom diff --git a/pom.xml b/pom.xml index bda65d8a..2d753ffe 100644 --- a/pom.xml +++ b/pom.xml @@ -16,9 +16,9 @@ https://github.com/hiforce/lattice 2022 - 1.0.9 + 1.0.9.1 - 1.0.9 + 1.0.9.1 5.3.23 2.7.4 1.2