Gentoo Archives: gentoo-commits

From: "Miroslav Šulc" <fordfrog@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/java-ebuilder:master commit in: src/main/java/org/gentoo/java/ebuilder/maven/, maven/eclass/
Date: Fri, 31 Jul 2020 08:33:42
Message-Id: 1596003565.970308e5d845b5da6818131c75f84c38691691c6.fordfrog@gentoo
1 commit: 970308e5d845b5da6818131c75f84c38691691c6
2 Author: zongyu <zzy2529420793 <AT> gmail <DOT> com>
3 AuthorDate: Wed Jul 29 06:13:04 2020 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Wed Jul 29 06:19:25 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=970308e5
7
8 write src_unpack everytime is not elegant, use java-pkg-maven to handle it
9
10 Signed-off-by: zongyu <zzy2529420793 <AT> gmail.com>
11
12 maven/eclass/java-pkg-maven.eclass | 60 ++++++++++++++++++++++
13 .../gentoo/java/ebuilder/maven/MavenEbuilder.java | 41 +++------------
14 2 files changed, 67 insertions(+), 34 deletions(-)
15
16 diff --git a/maven/eclass/java-pkg-maven.eclass b/maven/eclass/java-pkg-maven.eclass
17 new file mode 100644
18 index 0000000..d926cc3
19 --- /dev/null
20 +++ b/maven/eclass/java-pkg-maven.eclass
21 @@ -0,0 +1,60 @@
22 +# Copyright 2004-2020 Gentoo Foundation
23 +# Distributed under the terms of the GNU General Public License v2
24 +# $Id$
25 +
26 +# @ECLASS: java-pkg-binjar.eclass
27 +# @MAINTAINER:
28 +# zzy2529420793@×××××.com
29 +# @AUTHOR:
30 +# Zhang Zongyu
31 +# @BLURB: Eclass for unpacking Maven aritfacts
32 +# @DESCRIPTION:
33 +# This class is an attempt to unpack Maven artifacts properly.
34 +
35 +EXPORT_FUNCTIONS src_unpack
36 +
37 +# @ECLASS-VARIABLE: JAVA_SOURCE_FILENAME
38 +# @DESCRIPTION:
39 +# The filename of the source code.
40 +: ${JAVA_SOURCE_FILENAME:=${P}-sources.jar}
41 +
42 +# @ECLASS-VARIABLE: JAVA_TEST_SOURCE_FILENAME
43 +# @DESCRIPTION:
44 +# The filename of the source code for launch testing.
45 +: ${JAVA_TEST_SOURCE_FILENAME:=${P}-test-sources.jar}
46 +
47 +# @ECLASS-VARIABLE: JAVA_RESOURCE_DIRS
48 +# @DEFAULT_UNSET
49 +# @DESCRIPTION:
50 +# A directory relative to ${S} which contain the resources of the
51 +# application. Give it a default value to handle src_unpack.
52 +: ${JAVA_RESOURCE_DIRS:=src/main/resources}
53 +
54 +# @FUNCTION: java-pkg-binjar_src_unpack
55 +# @DESCRIPTION:
56 +# Copy the binary jar into the expected place of java-pkg-simple. Do
57 +# not extract files from archive.
58 +java-pkg-maven_src_unpack() {
59 + for file in ${A}; do
60 + case ${file} in
61 + ${JAVA_BINJAR_FILENAME}) ;;
62 + ${JAVA_SOURCE_FILENAME})
63 + mkdir -p "${S}"/${JAVA_SRC_DIR}\
64 + || die "Could not create ${JAVA_SRC_DIR}"
65 + unzip -q -o "${DISTDIR}"/${file} -d "${S}"/${JAVA_SRC_DIR}\
66 + || die "Could not unzip source code" ;;
67 + ${JAVA_TEST_SOURCE_FILENAME})
68 + mkdir -p "${S}"/${JAVA_TEST_SRC_DIR}\
69 + || die "Could not create ${JAVA_TEST_SRC_DIR}"
70 + unzip -q -o "${DISTDIR}"/${file} -d "${S}"/${JAVA_TEST_SRC_DIR}\
71 + || die "Could not unzip source code for testing" ;;
72 + esac
73 + done
74 +
75 + # the resources (maven resources are bundled inside source file)
76 + cp "${S}"/${JAVA_SRC_DIR} "${S}"/${JAVA_RESOURCE_DIRS} -r || die
77 + rm "${S}"/${JAVA_RESOURCE_DIRS}/META-INF -r || die
78 + find "${S}"/${JAVA_RESOURCE_DIRS} -type f ! -name \*.properties \
79 + -exec rm {} \; || die
80 +}
81 +
82
83 diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
84 index 3f74241..37d45a4 100644
85 --- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
86 +++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenEbuilder.java
87 @@ -624,7 +624,13 @@ public class MavenEbuilder {
88
89 writer.println('"');
90 writer.println();
91 - writer.println("inherit java-pkg-2 java-pkg-simple");
92 + writer.print("inherit java-pkg-2 java-pkg-simple");
93 +
94 + if (config.isFromMavenCentral()) {
95 + writer.print(" java-pkg-maven");
96 + }
97 +
98 + writer.println("");
99 }
100
101 /**
102 @@ -849,11 +855,6 @@ public class MavenEbuilder {
103 writer.println(')');
104 }
105 }
106 -
107 - if (config.isFromMavenCentral()) {
108 - writeMavenUnpack(mavenProject, writer);
109 - }
110 -
111 }
112
113 /**
114 @@ -865,32 +866,4 @@ public class MavenEbuilder {
115 writer.println();
116 writer.println("S=\"${WORKDIR}\"");
117 }
118 -
119 - /**
120 - * modify src_unpack() if we use Maven distributed source codes.
121 - *
122 - * @param writer ebuild writer
123 - */
124 - private void writeMavenUnpack(final MavenProject mavenProject,
125 - final PrintWriter writer) {
126 - writer.println();
127 - writer.println("src_unpack() {");
128 - writer.println("\tmkdir -p \"${S}\"/${JAVA_SRC_DIR}");
129 - writer.println(
130 - "\tunzip \"${DISTDIR}\"/${P}-sources.jar" +
131 - " -d \"${S}\"/${JAVA_SRC_DIR} || die");
132 -
133 - /**
134 - * unzip ${P}-test-sources.jar, uncomment it after the switch
135 - * --test-source-uri is supported
136 - if (mavenProject.hasTests()) {
137 - writer.println("\tmkdir -p \"${S}\"/${JAVA_TEST_SRC_DIR}");
138 - writer.println(
139 - "\tunzip \"${DISTDIR}\"/${P}-test-sources.jar" +
140 - " -d \"${S}\"/${JAVA_TEST_SRC_DIR} || die");
141 - }
142 - */
143 -
144 - writer.println("}");
145 - }
146 }