diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/Crc64.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/Crc64.cs
index 2b7078d95..803583152 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/Crc64.cs
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/Crc64.cs
@@ -176,7 +176,11 @@ public class Crc64 : HashAlgorithm
ulong crc = ulong.MaxValue;
ulong length = 0;
- public override void Initialize () { }
+ public override void Initialize ()
+ {
+ crc = ulong.MaxValue;
+ length = 0;
+ }
protected override void HashCore (byte [] array, int ibStart, int cbSize)
{
diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs
index 6a1a5ab34..2bc2bd2ed 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGeneratorTests.cs
@@ -102,7 +102,7 @@ public void GenerateIndirectApplication (
)
{
var actual = Generate (typeof (IndirectApplication), applicationJavaClass);
- var expected = @"package md5f43cdfade412ae71b21bb70a5c2841ab;
+ var expected = @"package crc64197ae30a36756915;
public class IndirectApplication
@@ -153,7 +153,7 @@ public void monodroidClearReferences ()
public void GenerateExportedMembers ()
{
var actual = Generate (typeof (ExportsMembers));
- var expected = @"package md5f43cdfade412ae71b21bb70a5c2841ab;
+ var expected = @"package crc64197ae30a36756915;
public class ExportsMembers
@@ -165,7 +165,7 @@ extends java.lang.Object
public static final String __md_methods;
static {
__md_methods =
- ""n_GetInstance:()Lmd5f43cdfade412ae71b21bb70a5c2841ab/ExportsMembers;:__export__\n"" +
+ ""n_GetInstance:()Lcrc64197ae30a36756915/ExportsMembers;:__export__\n"" +
""n_GetValue:()Ljava/lang/String;:__export__\n"" +
""n_methodNamesNotMangled:()V:__export__\n"" +
""n_CompletelyDifferentName:(Ljava/lang/String;I)Ljava/lang/String;:__export__\n"" +
@@ -176,17 +176,17 @@ extends java.lang.Object
}
- public static md5f43cdfade412ae71b21bb70a5c2841ab.ExportsMembers STATIC_INSTANCE = GetInstance ();
+ public static crc64197ae30a36756915.ExportsMembers STATIC_INSTANCE = GetInstance ();
public java.lang.String VALUE = GetValue ();
- public static md5f43cdfade412ae71b21bb70a5c2841ab.ExportsMembers GetInstance ()
+ public static crc64197ae30a36756915.ExportsMembers GetInstance ()
{
return n_GetInstance ();
}
- private static native md5f43cdfade412ae71b21bb70a5c2841ab.ExportsMembers n_GetInstance ();
+ private static native crc64197ae30a36756915.ExportsMembers n_GetInstance ();
public java.lang.String GetValue ()
{
@@ -249,7 +249,7 @@ public void monodroidClearReferences ()
public void GenerateInnerClass ()
{
var actual = Generate (typeof (ExampleOuterClass));
- var expected = @"package md5f43cdfade412ae71b21bb70a5c2841ab;
+ var expected = @"package crc64197ae30a36756915;
public class ExampleOuterClass
diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaNativeTypeManagerTests.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaNativeTypeManagerTests.cs
index ba3df1c08..aca492e74 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaNativeTypeManagerTests.cs
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/JavaNativeTypeManagerTests.cs
@@ -25,13 +25,6 @@ public void TearDown ()
JavaNativeTypeManager.PackageNamingPolicy = existingValue;
}
- [Test]
- public void MD5 ()
- {
- JavaNativeTypeManager.PackageNamingPolicy = PackageNamingPolicy.LowercaseMD5;
- Assert.AreEqual ("md5acb69d261d9efeb0927dd7ff443b9a3a", JavaNativeTypeManager.GetPackageName (typeof (string)));
- }
-
[Test]
public void Crc64 ()
{
diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/TypeNameMapGeneratorTests.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/TypeNameMapGeneratorTests.cs
index 99ec63fb0..9440583cd 100644
--- a/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/TypeNameMapGeneratorTests.cs
+++ b/src/Java.Interop.Tools.JavaCallableWrappers/Test/Java.Interop.Tools.JavaCallableWrappers/TypeNameMapGeneratorTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
@@ -50,8 +50,8 @@ public void WriteJavaToManaged ()
v.WriteJavaToManaged (o);
var a = ToArray (o);
Save (a, "__j2m");
- var length = 204;
- var offset = 90;
+ var length = 190;
+ var offset = 76;
var e =
"version=1\u0000" +
$"entry-count={types.Count - 1}\u0000" +
@@ -59,13 +59,13 @@ public void WriteJavaToManaged ()
"value-offset=" + offset + "\u0000" +
GetJ2MEntryLine (typeof (ActivityName), "activity/Name", offset, length) +
GetJ2MEntryLine (typeof (ApplicationName), "application/Name", offset, length) +
+ GetJ2MEntryLine (typeof (DefaultName), "crc64197ae30a36756915/DefaultName", offset, length) +
+ GetJ2MEntryLine (typeof (DefaultName.A), "crc64197ae30a36756915/DefaultName_A", offset, length) +
+ GetJ2MEntryLine (typeof (DefaultName.A.B), "crc64197ae30a36756915/DefaultName_A_B", offset, length) +
+ GetJ2MEntryLine (typeof (DefaultName.C.D), "crc64197ae30a36756915/DefaultName_C_D", offset, length) +
+ GetJ2MEntryLine (typeof (ExampleOuterClass), "crc64197ae30a36756915/ExampleOuterClass", offset, length) +
+ GetJ2MEntryLine (typeof (ExampleOuterClass.ExampleInnerClass), "crc64197ae30a36756915/ExampleOuterClass$ExampleOuterClass_ExampleInnerClass", offset, length) +
GetJ2MEntryLine (typeof (InstrumentationName), "instrumentation/Name", offset, length) +
- GetJ2MEntryLine (typeof (DefaultName), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName", offset, length) +
- GetJ2MEntryLine (typeof (DefaultName.A), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName_A", offset, length) +
- GetJ2MEntryLine (typeof (DefaultName.A.B), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName_A_B", offset, length) +
- GetJ2MEntryLine (typeof (DefaultName.C.D), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName_C_D", offset, length) +
- GetJ2MEntryLine (typeof (ExampleOuterClass), "md5f43cdfade412ae71b21bb70a5c2841ab/ExampleOuterClass", offset, length) +
- GetJ2MEntryLine (typeof (ExampleOuterClass.ExampleInnerClass), "md5f43cdfade412ae71b21bb70a5c2841ab/ExampleOuterClass$ExampleOuterClass_ExampleInnerClass", offset, length) +
GetJ2MEntryLine (typeof (AbstractClass), "my/AbstractClass", offset, length) +
GetJ2MEntryLine (typeof (ExampleActivity), "my/ExampleActivity", offset, length) +
GetJ2MEntryLine (typeof (ExampleInstrumentation), "my/ExampleInstrumentation", offset, length) +
@@ -128,7 +128,7 @@ public void WriteManagedToJava ()
v.WriteManagedToJava (o);
var a = ToArray (o);
Save (a, "__m2j");
- var length = 204;
+ var length = 190;
var offset = 114;
var e =
"version=1\u0000" +
@@ -139,14 +139,14 @@ public void WriteManagedToJava ()
GetM2JEntryLine (typeof (AbstractClassInvoker), "my/AbstractClass", offset, length) +
GetM2JEntryLine (typeof (ActivityName), "activity/Name", offset, length) +
GetM2JEntryLine (typeof (ApplicationName), "application/Name", offset, length) +
- GetM2JEntryLine (typeof (DefaultName.A.B), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName_A_B", offset, length) +
- GetM2JEntryLine (typeof (DefaultName.A), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName_A", offset, length) +
- GetM2JEntryLine (typeof (DefaultName.C.D), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName_C_D", offset, length) +
- GetM2JEntryLine (typeof (DefaultName), "md5f43cdfade412ae71b21bb70a5c2841ab/DefaultName", offset, length) +
+ GetM2JEntryLine (typeof (DefaultName.A.B), "crc64197ae30a36756915/DefaultName_A_B", offset, length) +
+ GetM2JEntryLine (typeof (DefaultName.A), "crc64197ae30a36756915/DefaultName_A", offset, length) +
+ GetM2JEntryLine (typeof (DefaultName.C.D), "crc64197ae30a36756915/DefaultName_C_D", offset, length) +
+ GetM2JEntryLine (typeof (DefaultName), "crc64197ae30a36756915/DefaultName", offset, length) +
GetM2JEntryLine (typeof (ExampleActivity), "my/ExampleActivity", offset, length) +
GetM2JEntryLine (typeof (ExampleInstrumentation), "my/ExampleInstrumentation", offset, length) +
- GetM2JEntryLine (typeof (ExampleOuterClass.ExampleInnerClass), "md5f43cdfade412ae71b21bb70a5c2841ab/ExampleOuterClass$ExampleOuterClass_ExampleInnerClass", offset, length) +
- GetM2JEntryLine (typeof (ExampleOuterClass), "md5f43cdfade412ae71b21bb70a5c2841ab/ExampleOuterClass", offset, length) +
+ GetM2JEntryLine (typeof (ExampleOuterClass.ExampleInnerClass), "crc64197ae30a36756915/ExampleOuterClass$ExampleOuterClass_ExampleInnerClass", offset, length) +
+ GetM2JEntryLine (typeof (ExampleOuterClass), "crc64197ae30a36756915/ExampleOuterClass", offset, length) +
GetM2JEntryLine (typeof (InstrumentationName), "instrumentation/Name", offset, length) +
GetM2JEntryLine (typeof (NonStaticOuterClass.NonStaticInnerClass), "register/NonStaticOuterClass$NonStaticInnerClass", offset, length) +
GetM2JEntryLine (typeof (NonStaticOuterClass), "register/NonStaticOuterClass", offset, length) +
diff --git a/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs b/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs
index 758c08a85..41ea7cd22 100644
--- a/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs
+++ b/src/Java.Interop.Tools.TypeNameMappings/Java.Interop.Tools.TypeNameMappings/JavaNativeTypeManager.cs
@@ -19,12 +19,11 @@ namespace Java.Interop.Tools.TypeNameMappings
public
#endif
enum PackageNamingPolicy {
- ///
- /// A hashed package name, currently defaults to LowercaseMD5
- ///
+ [Obsolete ("No longer supported. Use PackageNamingPolicy.LowercaseCrc64 instead.", error: true)]
LowercaseHash = 0,
Lowercase = 1,
LowercaseWithAssemblyName = 2,
+ [Obsolete ("No longer supported. Use PackageNamingPolicy.LowercaseCrc64 instead.", error: true)]
LowercaseMD5 = LowercaseHash,
LowercaseCrc64 = 3,
}
@@ -43,7 +42,7 @@ class JniTypeName
#endif
static class JavaNativeTypeManager {
- public static PackageNamingPolicy PackageNamingPolicy { get; set; }
+ public static PackageNamingPolicy PackageNamingPolicy { get; set; } = PackageNamingPolicy.LowercaseCrc64;
public static string ApplicationJavaClass { get; set; }
@@ -203,10 +202,8 @@ public static string GetPackageName (Type type)
case PackageNamingPolicy.LowercaseCrc64:
using (var crc = new Crc64 ())
return "crc64" + ToHash (type.Namespace + ":" + assemblyName, crc);
- case PackageNamingPolicy.LowercaseMD5:
default:
- using (var md5 = MD5.Create ())
- return "md5" + ToHash (type.Namespace + ":" + assemblyName, md5);
+ throw new NotSupportedException ($"PackageNamingPolicy.{PackageNamingPolicy} is no longer supported.");
}
}
@@ -528,10 +525,8 @@ public static string GetPackageName (TypeDefinition type)
case PackageNamingPolicy.LowercaseCrc64:
using (var crc = new Crc64 ())
return "crc64" + ToHash (type.Namespace + ":" + type.GetPartialAssemblyName (), crc);
- case PackageNamingPolicy.LowercaseMD5:
default:
- using (var md5 = MD5.Create ())
- return "md5" + ToHash (type.Namespace + ":" + type.GetPartialAssemblyName (), md5);
+ throw new NotSupportedException ($"PackageNamingPolicy.{PackageNamingPolicy} is no longer supported.");
}
}
#endif
diff --git a/tools/generator/Tests/Integration-Tests/BaseGeneratorTest.cs b/tools/generator/Tests/Integration-Tests/BaseGeneratorTest.cs
index 28a5dcb56..db7294331 100644
--- a/tools/generator/Tests/Integration-Tests/BaseGeneratorTest.cs
+++ b/tools/generator/Tests/Integration-Tests/BaseGeneratorTest.cs
@@ -1,11 +1,11 @@
-using System;
-using System.Linq;
+using System;
+using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Reflection;
-using System.Security.Cryptography;
+using Java.Interop.Tools.JavaCallableWrappers;
using NUnit.Framework;
using Xamarin.Android.Binder;
-using System.Collections.Generic;
namespace generatortests
{
@@ -93,10 +93,11 @@ protected bool FileCompare (string file1, string file2)
byte[] f1 = ReadAllBytesIgnoringLineEndings (file1);
byte[] f2 = ReadAllBytesIgnoringLineEndings (file2);
- var hash = MD5.Create ();
- var f1hash = Convert.ToBase64String (hash.ComputeHash (f1));
- var f2hash = Convert.ToBase64String (hash.ComputeHash (f2));
- result = f1hash.Equals (f2hash);
+ using (var hash = new Crc64 ()) {
+ var f1hash = Convert.ToBase64String (hash.ComputeHash (f1));
+ var f2hash = Convert.ToBase64String (hash.ComputeHash (f2));
+ result = f1hash.Equals (f2hash);
+ }
}
return result;
diff --git a/tools/generator/Tests/generator-Tests.csproj b/tools/generator/Tests/generator-Tests.csproj
index 68a150222..58d073b8e 100644
--- a/tools/generator/Tests/generator-Tests.csproj
+++ b/tools/generator/Tests/generator-Tests.csproj
@@ -86,6 +86,10 @@
+
+ {D18FCF91-8876-48A0-A693-2DC1E7D3D80A}
+ Java.Interop.Tools.JavaCallableWrappers
+
{D14A1B5C-2060-4930-92BE-F7190256C735}
generator