Skip to content

Commit bfa3de3

Browse files
committed
[refactor] passing around class-es during boot instead of lookup ...
1 parent 313bbff commit bfa3de3

27 files changed

Lines changed: 93 additions & 122 deletions

src/main/java/org/jruby/ext/openssl/ASN1.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -694,9 +694,8 @@ static ASN1Encodable typeInstance(Class<? extends ASN1Encodable> type, Object va
694694
return (ASN1Encodable) getInstance.invoke(null, value);
695695
}
696696

697-
public static void createASN1(final Ruby runtime, final RubyModule OpenSSL) {
697+
public static void createASN1(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
698698
final RubyModule ASN1 = OpenSSL.defineModuleUnder("ASN1");
699-
final RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
700699
ASN1.defineClassUnder("ASN1Error", OpenSSLError, OpenSSLError.getAllocator());
701700

702701
ASN1.defineAnnotatedMethods(ASN1.class);

src/main/java/org/jruby/ext/openssl/BN.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ static BN newInstance(final Ruby runtime, BigInteger value) {
8989
return new BN(runtime, value != null ? value : BigInteger.ZERO);
9090
}
9191

92-
public static void createBN(final Ruby runtime, final RubyModule OpenSSL) {
93-
final RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
92+
static void createBN(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
9493
OpenSSL.defineClassUnder("BNError", OpenSSLError, OpenSSLError.getAllocator());
9594

9695
RubyClass BN = OpenSSL.defineClassUnder("BN", runtime.getObject(), BN_ALLOCATOR);
@@ -106,7 +105,7 @@ private BN(Ruby runtime, RubyClass clazz) {
106105
}
107106

108107
protected BN(Ruby runtime, BigInteger value) {
109-
super(runtime, runtime.getModule("OpenSSL").getClass("BN"));
108+
super(runtime, (RubyClass) runtime.getModule("OpenSSL").getConstantAt("BN"));
110109
this.value = value;
111110
}
112111

src/main/java/org/jruby/ext/openssl/Cipher.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,10 @@ public class Cipher extends RubyObject {
8181
public Cipher allocate(Ruby runtime, RubyClass klass) { return new Cipher(runtime, klass); }
8282
};
8383

84-
public static void createCipher(final Ruby runtime, final RubyModule OpenSSL) {
84+
static void createCipher(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
8585
final RubyClass Cipher = OpenSSL.defineClassUnder("Cipher", runtime.getObject(), ALLOCATOR);
86-
Cipher.defineAnnotatedMethods(Cipher.class);
87-
final RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
8886
Cipher.defineClassUnder("CipherError", OpenSSLError, OpenSSLError.getAllocator());
87+
Cipher.defineAnnotatedMethods(Cipher.class);
8988

9089
String cipherName;
9190

src/main/java/org/jruby/ext/openssl/Digest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,14 @@ public class Digest extends RubyObject {
5656
public Digest allocate(Ruby runtime, RubyClass klass) { return new Digest(runtime, klass); }
5757
};
5858

59-
public static void createDigest(Ruby runtime, RubyModule OpenSSL) {
59+
static void createDigest(Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
6060
runtime.getLoadService().require("digest");
6161

6262
final RubyModule coreDigest = runtime.getModule("Digest");
6363
final RubyClass DigestClass = coreDigest.getClass("Class"); // ::Digest::Class
6464
RubyClass Digest = OpenSSL.defineClassUnder("Digest", DigestClass, ALLOCATOR);
65-
Digest.defineAnnotatedMethods(Digest.class);
66-
RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
6765
OpenSSL.defineClassUnder("DigestError", OpenSSLError, OpenSSLError.getAllocator());
66+
Digest.defineAnnotatedMethods(Digest.class);
6867

6968
String digestName;
7069

src/main/java/org/jruby/ext/openssl/HMAC.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,9 @@ public class HMAC extends RubyObject {
5454
public HMAC allocate(Ruby runtime, RubyClass klass) { return new HMAC(runtime, klass); }
5555
};
5656

57-
public static void createHMAC(final Ruby runtime, final RubyModule OpenSSL) {
57+
static void createHMAC(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
5858
RubyClass HMAC = OpenSSL.defineClassUnder("HMAC", runtime.getObject(), ALLOCATOR);
59-
RubyClass openSSLError = OpenSSL.getClass("OpenSSLError");
60-
OpenSSL.defineClassUnder("HMACError",openSSLError,openSSLError.getAllocator());
59+
OpenSSL.defineClassUnder("HMACError", OpenSSLError, OpenSSLError.getAllocator());
6160
HMAC.defineAnnotatedMethods(HMAC.class);
6261
}
6362

src/main/java/org/jruby/ext/openssl/KDF.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@
4343
@JRubyModule(name = "OpenSSL::KDF")
4444
public class KDF {
4545

46-
static void createKDF(final Ruby runtime, final RubyModule OpenSSL) {
46+
static void createKDF(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
4747
RubyModule KDF = OpenSSL.defineModuleUnder("KDF");
48-
RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
4948
KDF.defineClassUnder("KDFError", OpenSSLError, OpenSSLError.getAllocator());
5049
KDF.defineAnnotatedMethods(KDF.class);
5150
}

src/main/java/org/jruby/ext/openssl/NetscapeSPKI.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,11 @@ public IRubyObject allocate(Ruby runtime, RubyClass klass) {
7474
}
7575
};
7676

77-
public static void createNetscapeSPKI(Ruby runtime, RubyModule ossl) {
78-
RubyModule mNetscape = ossl.defineModuleUnder("Netscape");
79-
RubyClass cSPKI = mNetscape.defineClassUnder("SPKI",runtime.getObject(),NETSCAPESPKI_ALLOCATOR);
80-
RubyClass openSSLError = ossl.getClass("OpenSSLError");
81-
mNetscape.defineClassUnder("SPKIError",openSSLError,openSSLError.getAllocator());
82-
83-
cSPKI.defineAnnotatedMethods(NetscapeSPKI.class);
77+
static void createNetscapeSPKI(Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
78+
RubyModule Netscape = OpenSSL.defineModuleUnder("Netscape");
79+
RubyClass SPKI = Netscape.defineClassUnder("SPKI",runtime.getObject(),NETSCAPESPKI_ALLOCATOR);
80+
Netscape.defineClassUnder("SPKIError", OpenSSLError, OpenSSLError.getAllocator());
81+
SPKI.defineAnnotatedMethods(NetscapeSPKI.class);
8482
}
8583

8684
private static RubyModule _Netscape(final Ruby runtime) {

src/main/java/org/jruby/ext/openssl/OCSP.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,8 @@ public class OCSP {
147147
responseMap = resMap;
148148
}
149149

150-
public static void createOCSP(final Ruby runtime, final RubyModule OpenSSL) {
150+
static void createOCSP(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
151151
final RubyModule OCSP = OpenSSL.defineModuleUnder("OCSP");
152-
final RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
153152
Security.addProvider(new BouncyCastleProvider());
154153
OCSP.defineClassUnder("OCSPError", OpenSSLError, OpenSSLError.getAllocator());
155154

src/main/java/org/jruby/ext/openssl/OpenSSL.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,10 @@ public static void createOpenSSL(final Ruby runtime) {
5656
SecurityHelper.setRegisterProvider( SafePropertyAccessor.getBoolean("jruby.openssl.provider.register") );
5757

5858
final RubyModule _OpenSSL = runtime.getOrCreateModule("OpenSSL");
59-
RubyClass _StandardError = runtime.getClass("StandardError");
60-
_OpenSSL.defineClassUnder("OpenSSLError", _StandardError, _StandardError.getAllocator());
59+
60+
RubyClass StandardError = runtime.getStandardError();
61+
final RubyClass OpenSSLError = _OpenSSL.defineClassUnder("OpenSSLError", StandardError, StandardError.getAllocator());
62+
6163
_OpenSSL.defineAnnotatedMethods(OpenSSL.class);
6264

6365
// set OpenSSL debug internal flag early on so it can print traces even while loading extension
@@ -68,20 +70,20 @@ public static void createOpenSSL(final Ruby runtime) {
6870

6971
// Config.createConfig(runtime, _OpenSSL);
7072
ExtConfig.create(runtime, _OpenSSL);
71-
PKey.createPKey(runtime, _OpenSSL);
72-
BN.createBN(runtime, _OpenSSL);
73-
Digest.createDigest(runtime, _OpenSSL);
74-
Cipher.createCipher(runtime, _OpenSSL);
75-
Random.createRandom(runtime, _OpenSSL);
76-
HMAC.createHMAC(runtime, _OpenSSL);
77-
ASN1.createASN1(runtime, _OpenSSL);
78-
X509.createX509(runtime, _OpenSSL);
79-
NetscapeSPKI.createNetscapeSPKI(runtime, _OpenSSL);
80-
SSL.createSSL(runtime, _OpenSSL);
81-
PKCS7.createPKCS7(runtime, _OpenSSL);
73+
PKey.createPKey(runtime, _OpenSSL, OpenSSLError);
74+
BN.createBN(runtime, _OpenSSL, OpenSSLError);
75+
Digest.createDigest(runtime, _OpenSSL, OpenSSLError);
76+
Cipher.createCipher(runtime, _OpenSSL, OpenSSLError);
77+
Random.createRandom(runtime, _OpenSSL, OpenSSLError);
78+
HMAC.createHMAC(runtime, _OpenSSL, OpenSSLError);
79+
ASN1.createASN1(runtime, _OpenSSL, OpenSSLError);
80+
X509.createX509(runtime, _OpenSSL, OpenSSLError);
81+
NetscapeSPKI.createNetscapeSPKI(runtime, _OpenSSL, OpenSSLError);
82+
SSL.createSSL(runtime, _OpenSSL, OpenSSLError);
83+
PKCS7.createPKCS7(runtime, _OpenSSL, OpenSSLError);
8284
PKCS5.createPKCS5(runtime, _OpenSSL);
83-
OCSP.createOCSP(runtime, _OpenSSL);
84-
KDF.createKDF(runtime, _OpenSSL);
85+
OCSP.createOCSP(runtime, _OpenSSL, OpenSSLError);
86+
KDF.createKDF(runtime, _OpenSSL, OpenSSLError);
8587

8688
runtime.getLoadService().require("jopenssl/version");
8789

@@ -100,8 +102,8 @@ public static void createOpenSSL(final Ruby runtime) {
100102

101103
_OpenSSL.setConstant("VERSION", StringHelper.newString(runtime, version));
102104

103-
final RubyModule _Jopenssl = runtime.getModule("Jopenssl");
104-
final RubyString jVERSION = _Jopenssl.getConstantAt("VERSION").asString();
105+
final RubyModule JOpenSSL = runtime.getModule("JOpenSSL");
106+
final RubyString jVERSION = JOpenSSL.getConstantAt("VERSION").asString();
105107

106108
final byte[] JRuby_OpenSSL_ = { 'J','R','u','b','y','-','O','p','e','n','S','S','L',' ' };
107109
final int OPENSSL_VERSION_NUMBER = 999999999; // NOTE: smt more useful?
@@ -120,7 +122,7 @@ public static void createOpenSSL(final Ruby runtime) {
120122
}
121123

122124
static RubyClass _OpenSSLError(final Ruby runtime) {
123-
return runtime.getModule("OpenSSL").getClass("OpenSSLError");
125+
return (RubyClass) runtime.getModule("OpenSSL").getConstantAt("OpenSSLError");
124126
}
125127

126128
// OpenSSL module methods :

src/main/java/org/jruby/ext/openssl/PKCS7.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,8 @@ public IRubyObject allocate(Ruby runtime, RubyClass klass) {
8888
}
8989
};
9090

91-
public static void createPKCS7(final Ruby runtime, final RubyModule OpenSSL) {
91+
public static void createPKCS7(final Ruby runtime, final RubyModule OpenSSL, final RubyClass OpenSSLError) {
9292
RubyClass _PKCS7 = OpenSSL.defineClassUnder("PKCS7", runtime.getObject(), PKCS7_ALLOCATOR);
93-
RubyClass OpenSSLError = OpenSSL.getClass("OpenSSLError");
9493
_PKCS7.defineClassUnder("PKCS7Error", OpenSSLError, OpenSSLError.getAllocator());
9594
_PKCS7.addReadWriteAttribute(runtime.getCurrentContext(), "data");
9695
_PKCS7.addReadWriteAttribute(runtime.getCurrentContext(), "error_string");

0 commit comments

Comments
 (0)