mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
javafx packaging preloader: generate ant
(cherry picked from commit 8fb025325d845d3755f18e61e469befd03bab7b9)
This commit is contained in:
+28
-37
@@ -71,9 +71,6 @@ public class JavaFxArtifactProperties extends ArtifactProperties<JavaFxArtifactP
|
||||
private String myStorepass;
|
||||
private String myKeypass;
|
||||
|
||||
private String myPreloaderClass;
|
||||
private String myPreloaderJar;
|
||||
|
||||
@Override
|
||||
public void onBuildFinished(@NotNull final Artifact artifact, @NotNull final CompileContext compileContext) {
|
||||
if (!(artifact.getArtifactType() instanceof JavaFxApplicationArtifactType)) {
|
||||
@@ -255,22 +252,38 @@ public class JavaFxArtifactProperties extends ArtifactProperties<JavaFxArtifactP
|
||||
myKeypass = keypass;
|
||||
}
|
||||
|
||||
public String getPreloaderClass() {
|
||||
return myPreloaderClass;
|
||||
public String getPreloaderClass(Artifact rootArtifact, Project project) {
|
||||
final Artifact artifact = getPreloaderArtifact(rootArtifact, project);
|
||||
if (artifact != null) {
|
||||
final JavaFxPreloaderArtifactProperties properties =
|
||||
(JavaFxPreloaderArtifactProperties)artifact.getProperties(JavaFxPreloaderArtifactPropertiesProvider.getInstance());
|
||||
return properties.getPreloaderClass();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setPreloaderClass(String preloaderClass) {
|
||||
myPreloaderClass = preloaderClass;
|
||||
public String getPreloaderJar(Artifact rootArtifact, Project project) {
|
||||
final Artifact artifact = getPreloaderArtifact(rootArtifact, project);
|
||||
if (artifact != null) {
|
||||
return ((ArchivePackagingElement)artifact.getRootElement()).getArchiveFileName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getPreloaderJar() {
|
||||
return myPreloaderJar;
|
||||
}
|
||||
|
||||
public void setPreloaderJar(String preloaderJar) {
|
||||
myPreloaderJar = preloaderJar;
|
||||
private static Artifact getPreloaderArtifact(Artifact rootArtifact, Project project) {
|
||||
for (PackagingElement<?> element : rootArtifact.getRootElement().getChildren()) {
|
||||
if (element instanceof ArtifactPackagingElement) {
|
||||
final Artifact artifact = ((ArtifactPackagingElement)element)
|
||||
.findArtifact(ArtifactManager.getInstance(project).getResolvingContext());
|
||||
if (artifact != null && artifact.getArtifactType() instanceof JavaFxPreloaderArtifactType) {
|
||||
return artifact;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private static class JavaFxPackager extends AbstractJavaFxPackager {
|
||||
private final Artifact myArtifact;
|
||||
private final JavaFxArtifactProperties myProperties;
|
||||
@@ -334,34 +347,12 @@ public class JavaFxArtifactProperties extends ArtifactProperties<JavaFxArtifactP
|
||||
|
||||
@Override
|
||||
public String getPreloaderClass() {
|
||||
final Artifact artifact = getPreloaderArtifact();
|
||||
if (artifact != null) {
|
||||
final JavaFxPreloaderArtifactProperties properties = (JavaFxPreloaderArtifactProperties)artifact.getProperties(JavaFxPreloaderArtifactPropertiesProvider.getInstance());
|
||||
return properties.getPreloaderClass();
|
||||
}
|
||||
return null;
|
||||
return myProperties.getPreloaderClass(myArtifact, myCompileContext.getProject());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreloaderJar() {
|
||||
final Artifact artifact = getPreloaderArtifact();
|
||||
if (artifact != null) {
|
||||
return ((ArchivePackagingElement)artifact.getRootElement()).getArchiveFileName();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Artifact getPreloaderArtifact() {
|
||||
for (PackagingElement<?> element : myArtifact.getRootElement().getChildren()) {
|
||||
if (element instanceof ArtifactPackagingElement) {
|
||||
final Artifact artifact = ((ArtifactPackagingElement)element)
|
||||
.findArtifact(ArtifactManager.getInstance(myCompileContext.getProject()).getResolvingContext());
|
||||
if (artifact != null && artifact.getArtifactType() instanceof JavaFxPreloaderArtifactType) {
|
||||
return artifact;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return myProperties.getPreloaderJar(myArtifact, myCompileContext.getProject());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+35
-7
@@ -111,15 +111,18 @@ public class JavaFxChunkBuildExtension extends ChunkBuildExtension {
|
||||
ArtifactAntGenerationContext context,
|
||||
CompositeGenerator generator) {
|
||||
if (preprocessing) return;
|
||||
if (!(artifact.getArtifactType() instanceof JavaFxApplicationArtifactType)) return;
|
||||
|
||||
final CompositePackagingElement<?> rootElement = artifact.getRootElement();
|
||||
|
||||
List<PackagingElement<?>> children = rootElement.getChildren();
|
||||
final List<PackagingElement<?>> children = new ArrayList<PackagingElement<?>>();
|
||||
String artifactFileName = rootElement.getName();
|
||||
for (PackagingElement<?> child : children) {
|
||||
for (PackagingElement<?> child : rootElement.getChildren()) {
|
||||
if (child instanceof ArchivePackagingElement) {
|
||||
artifactFileName = ((ArchivePackagingElement)child).getArchiveFileName();
|
||||
children = ((ArchivePackagingElement)child).getChildren();
|
||||
children.addAll(((ArchivePackagingElement)child).getChildren());
|
||||
} else {
|
||||
children.add(child);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,12 +141,28 @@ public class JavaFxChunkBuildExtension extends ChunkBuildExtension {
|
||||
final JavaFxArtifactProperties properties =
|
||||
(JavaFxArtifactProperties)artifact.getProperties(JavaFxArtifactPropertiesProvider.getInstance());
|
||||
|
||||
String preloaderFiles = null;
|
||||
final String preloaderJar = properties.getPreloaderJar(artifact, context.getProject());
|
||||
final String preloaderClass = properties.getPreloaderClass(artifact, context.getProject());
|
||||
if (!StringUtil.isEmptyOrSpaces(preloaderJar) && !StringUtil.isEmptyOrSpaces(preloaderClass)) {
|
||||
preloaderFiles = artifactName + "_preloader_files";
|
||||
generator.add(new Tag("fx:fileset",
|
||||
new Pair<String, String>("id", preloaderFiles),
|
||||
new Pair<String, String>("requiredFor", "preloader"),
|
||||
new Pair<String, String>("dir", tempDirPath),
|
||||
new Pair<String, String>("includes", preloaderJar)));
|
||||
}
|
||||
|
||||
//register application
|
||||
final String appId = artifactName + "_id";
|
||||
final Tag applicationTag = new Tag("fx:application",
|
||||
new Pair<String, String>("id", appId),
|
||||
new Pair<String, String>("name", artifactName),
|
||||
new Pair<String, String>("mainClass", properties.getAppClass()));
|
||||
Pair[] applicationParams = {new Pair<String, String>("id", appId),
|
||||
new Pair<String, String>("name", artifactName),
|
||||
new Pair<String, String>("mainClass", properties.getAppClass())};
|
||||
if (preloaderFiles != null) {
|
||||
applicationParams = ArrayUtil.append(applicationParams, new Pair<String, String>("preloaderClass", preloaderClass));
|
||||
}
|
||||
|
||||
final Tag applicationTag = new Tag("fx:application", applicationParams);
|
||||
|
||||
appendValuesFromPropertiesFile(applicationTag, properties.getHtmlParamFile(), "fx:htmlParam", false);
|
||||
//also loads fx:argument values
|
||||
@@ -156,6 +175,11 @@ public class JavaFxChunkBuildExtension extends ChunkBuildExtension {
|
||||
new Pair<String, String>("destfile", tempDirPath + "/" + artifactFileName));
|
||||
createJarTag.add(new Tag("fx:application", new Pair<String, String>("refid", appId)));
|
||||
createJarTag.add(new Tag("fileset", new Pair<String, String>("dir", tempDirPath)));
|
||||
if (preloaderFiles != null) {
|
||||
final Tag createJarResourcesTag = new Tag("fx:resources");
|
||||
createJarResourcesTag.add(new Tag("fx:fileset", new Pair<String, String>("refid", preloaderFiles)));
|
||||
createJarTag.add(createJarResourcesTag);
|
||||
}
|
||||
generator.add(createJarTag);
|
||||
|
||||
//deploy task
|
||||
@@ -174,6 +198,10 @@ public class JavaFxChunkBuildExtension extends ChunkBuildExtension {
|
||||
final Tag deployResourcesTag = new Tag("fx:resources");
|
||||
deployResourcesTag.add(new Tag("fx:fileset", new Pair<String, String>("dir", tempDirPath),
|
||||
new Pair<String, String>("includes", artifactFileName)));
|
||||
if (preloaderFiles != null) {
|
||||
deployResourcesTag.add(new Tag("fx:fileset", new Pair<String, String>("refid", preloaderFiles)));
|
||||
}
|
||||
|
||||
deployTag.add(deployResourcesTag);
|
||||
|
||||
generator.add(deployTag);
|
||||
|
||||
Reference in New Issue
Block a user