md-5/SpecialSource — pull request #8 by LexManos (2013-06-10 07:11:32+00:00)
Title: Finish up protected packages. Maps now respect protected packages in

method invocations and signatures.
New argument -p, --ignored-packages to specify protected

It seems to produce properly obfed jars as you would expect:

before

public static bbe a(JsonNode par0JsonNode)
{
bbe mcoserver = new bbe();
try
{
mcoserver.a = Long.parseLong(par0JsonNode.c(new Object[] { "id" }));
mcoserver.b = par0JsonNode.b(new Object[] { "name" });
mcoserver.c = par0JsonNode.b(new Object[] { "motd" });
mcoserver.d = par0JsonNode.b(new Object[] { "state" });
mcoserver.e = par0JsonNode.b(new Object[] { "owner" });

if (par0JsonNode.d(new Object[] { "invited" }))
{
mcoserver.f = a(par0JsonNode.e(new Object[] { "invited" }));
}
else
{
mcoserver.f = new ArrayList();
}

mcoserver.i = Integer.parseInt(par0JsonNode.c(new Object[] { "daysLeft" }));
mcoserver.g = par0JsonNode.b(new Object[] { "ip" });
mcoserver.h = par0JsonNode.a(new Object[] { "expired" }).booleanValue();
}
catch (IllegalArgumentException illegalargumentexception)
{
}

return mcoserver;
}

after:

public static bbe a(JsonNode par0JsonNode)
{
bbe mcoserver = new bbe();
try
{
mcoserver.a = Long.parseLong(par0JsonNode.getNumberValue(new Object[] { "id" }));
mcoserver.b = par0JsonNode.getStringValue(new Object[] { "name" });
mcoserver.c = par0JsonNode.getStringValue(new Object[] { "motd" });
mcoserver.d = par0JsonNode.getStringValue(new Object[] { "state" });
mcoserver.e = par0JsonNode.getStringValue(new Object[] { "owner" });

if (par0JsonNode.isArrayNode(new Object[] { "invited" }))
{
mcoserver.f = a(par0JsonNode.getArrayNode(new Object[] { "invited" }));
}
else
{
mcoserver.f = new ArrayList();
}

mcoserver.i = Integer.parseInt(par0JsonNode.getNumberValue(new Object[] { "daysLeft" }));
mcoserver.g = par0JsonNode.getStringValue(new Object[] { "ip" });
mcoserver.h = par0JsonNode.getBooleanValue(new Object[] { "expired" }).booleanValue();
}
catch (IllegalArgumentException illegalargumentexception)
{
}

return mcoserver;
}