jarjar: Package init

This commit is contained in:
gnaygnil 2020-03-06 18:24:29 +08:00
parent 4540407987
commit d442daf11f
9 changed files with 317 additions and 73 deletions

View File

@ -1,36 +0,0 @@
# jarjar
#### Description
Jar jar links is a utility that makes it easy to repackage java libraries.
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

@ -1,37 +0,0 @@
# jarjar
#### 介绍
Jar jar links is a utility that makes it easy to repackage java libraries.
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

28
do-not-embed-asm.patch Normal file
View File

@ -0,0 +1,28 @@
--- src/build.xml.orig 2014-12-18 21:38:42.035192783 +0000
+++ src/build.xml 2014-12-18 21:39:34.233460061 +0000
@@ -95,16 +95,10 @@
<mkdir dir="dist"/>
<jarjar jarfile="${jarfile}">
<fileset dir="build/main"/>
- <zipfileset src="lib/asm-4.0.jar"/>
- <zipfileset src="lib/asm-commons-4.0.jar">
- <include name="org/objectweb/asm/commons/Remap*.class"/>
- <include name="org/objectweb/asm/commons/LocalVariablesSorter.class"/>
- </zipfileset>
<keep pattern="com.tonicsystems.jarjar.Main"/>
<keep pattern="com.tonicsystems.jarjar.JarJarTask"/>
<keep pattern="com.tonicsystems.jarjar.JarJarMojo"/>
<rule pattern="com.tonicsystems.jarjar.util.**" result="com.tonicsystems.jarjar.ext_util.@1"/>
- <rule pattern="org.objectweb.asm.**" result="com.tonicsystems.jarjar.asm.@1"/>
<manifest>
<attribute name="Main-Class" value="com.tonicsystems.jarjar.Main"/>
<attribute name="Implementation-Version" value="${version}"/>
@@ -199,7 +199,7 @@
</target>
<target name="test-rejar" depends="jar">
- <taskdef name="jarjar2" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${jarfile}"/>
+ <taskdef name="jarjar2" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${jarfile}:lib/asm-4.0.jar:lib/asm-commons-4.0.jar"/>
<delete file="${test.jar}"/>
<jarjar2 jarfile="${test.jar}">
<fileset dir="build/main"/>

10
fix-maven-plugin.patch Normal file
View File

@ -0,0 +1,10 @@
--- src/build.xml.orig 2013-09-15 17:37:59.398986270 +0100
+++ src/build.xml 2013-09-15 17:38:27.659100029 +0100
@@ -102,6 +102,7 @@
</zipfileset>
<keep pattern="com.tonicsystems.jarjar.Main"/>
<keep pattern="com.tonicsystems.jarjar.JarJarTask"/>
+ <keep pattern="com.tonicsystems.jarjar.JarJarMojo"/>
<rule pattern="com.tonicsystems.jarjar.util.**" result="com.tonicsystems.jarjar.ext_util.@1"/>
<rule pattern="org.objectweb.asm.**" result="com.tonicsystems.jarjar.asm.@1"/>
<manifest>

BIN
jarjar-src-1.4.zip Normal file

Binary file not shown.

25
jarjar-util.pom Normal file
View File

@ -0,0 +1,25 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>tonic</groupId>
<artifactId>jarjar-util</artifactId>
<version>1.4</version>
<distributionManagement>
<relocation>
<groupId>com.tonicsystems</groupId>
<artifactId>jarjar-util</artifactId>
<version>1.4</version>
</relocation>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
<version>5.0.3</version>
</dependency>
</dependencies>
</project>

25
jarjar.pom Normal file
View File

@ -0,0 +1,25 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>tonic</groupId>
<artifactId>jarjar</artifactId>
<version>1.4</version>
<distributionManagement>
<relocation>
<groupId>com.tonicsystems</groupId>
<artifactId>jarjar</artifactId>
<version>1.4</version>
</relocation>
</distributionManagement>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-util</artifactId>
<version>5.0.3</version>
</dependency>
</dependencies>
</project>

82
jarjar.spec Normal file
View File

@ -0,0 +1,82 @@
Name: jarjar
Version: 1.4
Release: 23
Summary: A utility that makes it easy to repackage Java libraries and embed them into your own distribution
License: ASL 2.0
URL: https://code.google.com/archive/p/jarjar/
Source0: https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jarjar/jarjar-src-1.4.zip
# Pom file for jarjar maven project
Source1: jarjar.pom
# Pom file for jarjar-util maven project
Source2: jarjar-util.pom
# Add JarJarMojo for fixed build error
Patch0000: fix-maven-plugin.patch
# Remove asm in jarjar
Patch0001: do-not-embed-asm.patch
# Update asm4 to asm6
Patch0002: port-to-asm6.patch
BuildRequires: ant ant-junit objectweb-asm javapackages-local maven
Requires: objectweb-asm javapackages-tools
BuildArch: noarch
%description
jarjar (Jar Jar Links) is a utility that makes it easy to repackage Java libraries and embed them
into your own distribution.
%package maven-plugin
Summary: Jarjar maven plugin
Requires: maven jarjar = %{version}-%{release}
%description maven-plugin
jarjar (Jar Jar Links) is a utility that makes it easy to repackage Java libraries and embed them
into your own distribution.
%package help
Summary: Documents for jarjar
Provides: jarjar-javadoc = %{version}-%{release}
Obsoletes: jarjar-javadoc < %{version}-%{release}
%description help
The jarjar package contains related documents.
%prep
%autosetup -n jarjar-%{version} -p1
rm -f lib/*.jar
%mvn_package :jarjar-plugin jarjar-maven-plugin
echo "jarjar/jarjar objectweb-asm/asm objectweb-asm/asm-commons" > jarjar.ant
%build
cd lib
ln -sf $(build-classpath objectweb-asm/asm) asm-4.0.jar
ln -sf $(build-classpath objectweb-asm/asm-commons) asm-commons-4.0.jar
ln -sf $(build-classpath maven/maven-plugin-api) maven-plugin-api.jar
cd -
export CLASSPATH=$(build-classpath ant)
ant jar jar-util javadoc mojo test
sed -i -e s/@VERSION@/%{version}/g maven/pom.xml
%mvn_artifact %{SOURCE1} dist/jarjar-%{version}.jar
%mvn_artifact %{SOURCE2} dist/jarjar-util-%{version}.jar
%mvn_artifact maven/pom.xml dist/jarjar-plugin-%{version}.jar
%mvn_alias tonic:jarjar jarjar:jarjar com.tonicsystems:jarjar com.googlecode.jarjar:jarjar org.gradle.jarjar:jarjar
%mvn_alias tonic:jarjar-util jarjar:jarjar-util com.tonicsystems:jarjar-util
%mvn_alias com.tonicsystems.jarjar:jarjar-plugin jarjar:jarjar-plugin tonic:jarjar-plugin com.tonicsystems:jarjar-plugin
%install
%mvn_install -J dist/javadoc
%jpackage_script com.tonicsystems.jarjar.Main "" "" jarjar/jarjar:objectweb-asm/asm:objectweb-asm/asm-commons jarjar true
install -m 644 -D jarjar.ant %{buildroot}%{_sysconfdir}/ant.d/jarjar
%files -f .mfiles
%doc COPYING
%{_bindir}/jarjar
%{_sysconfdir}/ant.d/jarjar
%dir %{_javadir}/jarjar
%files maven-plugin -f .mfiles-jarjar-maven-plugin
%doc COPYING
%files help -f .mfiles-javadoc
%changelog
* Wed Mar 4 2020 Ling Yang <lingyang2@huawei.com> - 1.4-23
- Package Init

147
port-to-asm6.patch Normal file
View File

@ -0,0 +1,147 @@
From f3be10509b9ae73ee97bee82cb6150b98d4a4595 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 18 Sep 2017 09:48:46 +0200
Subject: [PATCH] Port to ASM 6
---
src/main/com/tonicsystems/jarjar/DepFindVisitor.java | 2 +-
src/main/com/tonicsystems/jarjar/EmptyClassVisitor.java | 8 ++++----
src/main/com/tonicsystems/jarjar/KeepProcessor.java | 2 +-
src/main/com/tonicsystems/jarjar/StringReader.java | 8 ++++----
src/main/com/tonicsystems/jarjar/util/GetNameClassWriter.java | 2 +-
.../com/tonicsystems/jarjar/util/RemappingClassTransformer.java | 4 ++--
6 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/main/com/tonicsystems/jarjar/DepFindVisitor.java b/src/main/com/tonicsystems/jarjar/DepFindVisitor.java
index 9d6611e..bad909e 100644
--- a/src/main/com/tonicsystems/jarjar/DepFindVisitor.java
+++ b/src/main/com/tonicsystems/jarjar/DepFindVisitor.java
@@ -25,7 +25,7 @@ import org.objectweb.asm.*;
import org.objectweb.asm.Type;
import org.objectweb.asm.commons.*;
-class DepFindVisitor extends RemappingClassAdapter
+class DepFindVisitor extends ClassRemapper
{
public DepFindVisitor(Map<String, String> classes, String source, DepHandler handler) throws IOException {
super(null, new DepFindRemapper(classes, source, handler));
diff --git a/src/main/com/tonicsystems/jarjar/EmptyClassVisitor.java b/src/main/com/tonicsystems/jarjar/EmptyClassVisitor.java
index 348e03d..7a758fe 100644
--- a/src/main/com/tonicsystems/jarjar/EmptyClassVisitor.java
+++ b/src/main/com/tonicsystems/jarjar/EmptyClassVisitor.java
@@ -28,23 +28,23 @@ import org.objectweb.asm.Opcodes;
public class EmptyClassVisitor extends ClassVisitor {
public EmptyClassVisitor() {
- super(Opcodes.ASM4);
+ super(Opcodes.ASM6);
}
@Override
public MethodVisitor visitMethod(int access, String name, String desc,
String signature, String[] exceptions) {
- return new MethodVisitor(Opcodes.ASM4) {};
+ return new MethodVisitor(Opcodes.ASM6) {};
}
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
- return new AnnotationVisitor(Opcodes.ASM4) {};
+ return new AnnotationVisitor(Opcodes.ASM6) {};
}
@Override
public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
- return new FieldVisitor(Opcodes.ASM4) {};
+ return new FieldVisitor(Opcodes.ASM6) {};
}
}
diff --git a/src/main/com/tonicsystems/jarjar/KeepProcessor.java b/src/main/com/tonicsystems/jarjar/KeepProcessor.java
index 0176b84..3ed4636 100644
--- a/src/main/com/tonicsystems/jarjar/KeepProcessor.java
+++ b/src/main/com/tonicsystems/jarjar/KeepProcessor.java
@@ -26,7 +26,7 @@ import org.objectweb.asm.commons.*;
// TODO: this can probably be refactored into JarClassVisitor, etc.
class KeepProcessor extends Remapper implements JarProcessor
{
- private final ClassVisitor cv = new RemappingClassAdapter(new EmptyClassVisitor(), this);
+ private final ClassVisitor cv = new ClassRemapper(new EmptyClassVisitor(), this);
private final List<Wildcard> wildcards;
private final List<String> roots = new ArrayList<String>();
private final Map<String, Set<String>> depend = new HashMap<String, Set<String>>();
diff --git a/src/main/com/tonicsystems/jarjar/StringReader.java b/src/main/com/tonicsystems/jarjar/StringReader.java
index ba7bb29..5bb719c 100644
--- a/src/main/com/tonicsystems/jarjar/StringReader.java
+++ b/src/main/com/tonicsystems/jarjar/StringReader.java
@@ -24,7 +24,7 @@ abstract class StringReader extends ClassVisitor
private String className;
public StringReader() {
- super(Opcodes.ASM4);
+ super(Opcodes.ASM6);
}
abstract public void visitString(String className, String value, int line);
@@ -42,7 +42,7 @@ abstract class StringReader extends ClassVisitor
public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
handleObject(value);
- return new FieldVisitor(Opcodes.ASM4){
+ return new FieldVisitor(Opcodes.ASM6){
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
return StringReader.this.visitAnnotation(desc, visible);
@@ -52,7 +52,7 @@ abstract class StringReader extends ClassVisitor
@Override
public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
- return new AnnotationVisitor(Opcodes.ASM4) {
+ return new AnnotationVisitor(Opcodes.ASM6) {
@Override
public void visit(String name, Object value) {
handleObject(value);
@@ -71,7 +71,7 @@ abstract class StringReader extends ClassVisitor
@Override
public MethodVisitor visitMethod(int access, String name, String desc,
String signature, String[] exceptions) {
- MethodVisitor mv = new MethodVisitor(Opcodes.ASM4){
+ MethodVisitor mv = new MethodVisitor(Opcodes.ASM6){
@Override
public void visitLdcInsn(Object cst) {
handleObject(cst);
diff --git a/src/main/com/tonicsystems/jarjar/util/GetNameClassWriter.java b/src/main/com/tonicsystems/jarjar/util/GetNameClassWriter.java
index bbb8590..966ac82 100644
--- a/src/main/com/tonicsystems/jarjar/util/GetNameClassWriter.java
+++ b/src/main/com/tonicsystems/jarjar/util/GetNameClassWriter.java
@@ -25,7 +25,7 @@ public class GetNameClassWriter extends ClassVisitor
private String className;
public GetNameClassWriter(int flags) {
- super(Opcodes.ASM4,new ClassWriter(flags));
+ super(Opcodes.ASM6,new ClassWriter(flags));
}
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
diff --git a/src/main/com/tonicsystems/jarjar/util/RemappingClassTransformer.java b/src/main/com/tonicsystems/jarjar/util/RemappingClassTransformer.java
index fd1b9d7..9c1d4c9 100644
--- a/src/main/com/tonicsystems/jarjar/util/RemappingClassTransformer.java
+++ b/src/main/com/tonicsystems/jarjar/util/RemappingClassTransformer.java
@@ -17,12 +17,12 @@
package com.tonicsystems.jarjar.util;
import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.commons.ClassRemapper;
import org.objectweb.asm.commons.Remapper;
-import org.objectweb.asm.commons.RemappingClassAdapter;
import com.tonicsystems.jarjar.EmptyClassVisitor;
-public class RemappingClassTransformer extends RemappingClassAdapter
+public class RemappingClassTransformer extends ClassRemapper
{
public RemappingClassTransformer(Remapper pr) {
super(new EmptyClassVisitor(), pr);
--
2.13.5