Skip to content

Commit 1cd3980

Browse files
committed
Directly import JZlib since it appears unmaintained upstream.
1 parent ae13d7c commit 1cd3980

34 files changed

+8203
-7
lines changed

LICENSE.JZlib.txt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
JZlib 0.0.* were released under the GNU LGPL license. Later, we have switched
2+
over to a BSD-style license.
3+
4+
------------------------------------------------------------------------------
5+
Copyright (c) 2000-2011 ymnk, JCraft,Inc. All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without
8+
modification, are permitted provided that the following conditions are met:
9+
10+
1. Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
13+
2. Redistributions in binary form must reproduce the above copyright
14+
notice, this list of conditions and the following disclaimer in
15+
the documentation and/or other materials provided with the distribution.
16+
17+
3. The names of the authors may not be used to endorse or promote products
18+
derived from this software without specific prior written permission.
19+
20+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
21+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
23+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
24+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
26+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
29+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

pom.xml

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,6 @@
4141
<skipITs>true</skipITs>
4242
</properties>
4343
<dependencies>
44-
<dependency>
45-
<groupId>com.jcraft</groupId>
46-
<artifactId>jzlib</artifactId>
47-
<version>1.1.3</version>
48-
<optional>true</optional>
49-
</dependency>
5044
<dependency>
5145
<groupId>org.junit.jupiter</groupId>
5246
<artifactId>junit-jupiter</artifactId>
@@ -77,6 +71,24 @@
7771
<version>1.2.3</version>
7872
<scope>test</scope>
7973
</dependency>
74+
<dependency>
75+
<groupId>org.scala-lang</groupId>
76+
<artifactId>scala-library</artifactId>
77+
<version>2.13.6</version>
78+
<scope>test</scope>
79+
</dependency>
80+
<dependency>
81+
<groupId>org.scalatest</groupId>
82+
<artifactId>scalatest_2.13</artifactId>
83+
<version>3.2.9</version>
84+
<scope>test</scope>
85+
</dependency>
86+
<dependency>
87+
<groupId>co.helmethair</groupId>
88+
<artifactId>scalatest-junit-runner</artifactId>
89+
<version>0.1.9</version>
90+
<scope>test</scope>
91+
</dependency>
8092
</dependencies>
8193

8294
<build>
@@ -143,6 +155,28 @@
143155
</execution>
144156
</executions>
145157
</plugin>
158+
<plugin>
159+
<groupId>net.alchim31.maven</groupId>
160+
<artifactId>scala-maven-plugin</artifactId>
161+
<version>4.5.3</version>
162+
<configuration>
163+
<recompileMode>all</recompileMode>
164+
<sendJavaToScalac>false</sendJavaToScalac>
165+
<args>
166+
<arg>-deprecation</arg>
167+
<arg>-feature</arg>
168+
<arg>-unchecked</arg>
169+
<arg>-Xfatal-warnings</arg>
170+
</args>
171+
</configuration>
172+
<executions>
173+
<execution>
174+
<goals>
175+
<goal>testCompile</goal>
176+
</goals>
177+
</execution>
178+
</executions>
179+
</plugin>
146180
<plugin>
147181
<groupId>org.apache.maven.plugins</groupId>
148182
<artifactId>maven-surefire-plugin</artifactId>

src/main/java/com/jcraft/jsch/jcraft/Compression.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
2828
*/
2929

3030
package com.jcraft.jsch.jcraft;
31-
import com.jcraft.jzlib.*;
31+
import com.jcraft.jsch.jzlib.*;
3232
import com.jcraft.jsch.*;
3333

3434
public class Compression implements com.jcraft.jsch.Compression {
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
/* -*-mode:java; c-basic-offset:2; -*- */
2+
/*
3+
Copyright (c) 2000-2011 ymnk, JCraft,Inc. All rights reserved.
4+
5+
Redistribution and use in source and binary forms, with or without
6+
modification, are permitted provided that the following conditions are met:
7+
8+
1. Redistributions of source code must retain the above copyright notice,
9+
this list of conditions and the following disclaimer.
10+
11+
2. Redistributions in binary form must reproduce the above copyright
12+
notice, this list of conditions and the following disclaimer in
13+
the documentation and/or other materials provided with the distribution.
14+
15+
3. The names of the authors may not be used to endorse or promote products
16+
derived from this software without specific prior written permission.
17+
18+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
19+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
21+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
22+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28+
*/
29+
/*
30+
* This program is based on zlib-1.1.3, so all credit should go authors
31+
* Jean-loup Gailly([email protected]) and Mark Adler([email protected])
32+
* and contributors of zlib.
33+
*/
34+
35+
package com.jcraft.jsch.jzlib;
36+
37+
final public class Adler32 implements Checksum {
38+
39+
// largest prime smaller than 65536
40+
static final private int BASE=65521;
41+
// NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1
42+
static final private int NMAX=5552;
43+
44+
private long s1=1L;
45+
private long s2=0L;
46+
47+
public void reset(long init){
48+
s1=init&0xffff;
49+
s2=(init>>16)&0xffff;
50+
}
51+
52+
public void reset(){
53+
s1=1L;
54+
s2=0L;
55+
}
56+
57+
public long getValue(){
58+
return ((s2<<16)|s1);
59+
}
60+
61+
public void update(byte[] buf, int index, int len){
62+
63+
if(len==1){
64+
s1+=buf[index++]&0xff; s2+=s1;
65+
s1%=BASE;
66+
s2%=BASE;
67+
return;
68+
}
69+
70+
int len1 = len/NMAX;
71+
int len2 = len%NMAX;
72+
while(len1-->0) {
73+
int k=NMAX;
74+
len-=k;
75+
while(k-->0){
76+
s1+=buf[index++]&0xff; s2+=s1;
77+
}
78+
s1%=BASE;
79+
s2%=BASE;
80+
}
81+
82+
int k=len2;
83+
len-=k;
84+
while(k-->0){
85+
s1+=buf[index++]&0xff; s2+=s1;
86+
}
87+
s1%=BASE;
88+
s2%=BASE;
89+
}
90+
91+
public Adler32 copy(){
92+
Adler32 foo = new Adler32();
93+
foo.s1 = this.s1;
94+
foo.s2 = this.s2;
95+
return foo;
96+
}
97+
98+
// The following logic has come from zlib.1.2.
99+
static long combine(long adler1, long adler2, long len2){
100+
long BASEL = (long)BASE;
101+
long sum1;
102+
long sum2;
103+
long rem; // unsigned int
104+
105+
rem = len2 % BASEL;
106+
sum1 = adler1 & 0xffffL;
107+
sum2 = rem * sum1;
108+
sum2 %= BASEL; // MOD(sum2);
109+
sum1 += (adler2 & 0xffffL) + BASEL - 1;
110+
sum2 += ((adler1 >> 16) & 0xffffL) + ((adler2 >> 16) & 0xffffL) + BASEL - rem;
111+
if (sum1 >= BASEL) sum1 -= BASEL;
112+
if (sum1 >= BASEL) sum1 -= BASEL;
113+
if (sum2 >= (BASEL << 1)) sum2 -= (BASEL << 1);
114+
if (sum2 >= BASEL) sum2 -= BASEL;
115+
return sum1 | (sum2 << 16);
116+
}
117+
118+
/*
119+
private java.util.zip.Adler32 adler=new java.util.zip.Adler32();
120+
public void update(byte[] buf, int index, int len){
121+
if(buf==null) {adler.reset();}
122+
else{adler.update(buf, index, len);}
123+
}
124+
public void reset(){
125+
adler.reset();
126+
}
127+
public void reset(long init){
128+
if(init==1L){
129+
adler.reset();
130+
}
131+
else{
132+
System.err.println("unsupported operation");
133+
}
134+
}
135+
public long getValue(){
136+
return adler.getValue();
137+
}
138+
*/
139+
}

0 commit comments

Comments
 (0)