Skip to content

Commit

Permalink
Added unit tests for the previous bug fix.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rafael Winterhalter committed Oct 27, 2015
1 parent 0a1ba4d commit 16249d7
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 27 deletions.
Expand Up @@ -171,7 +171,7 @@ public interface AgentBuilder {
* @param initializationStrategy The initialization strategy to use. * @param initializationStrategy The initialization strategy to use.
* @return A new instance of this agent builder that applies the given initialization strategy. * @return A new instance of this agent builder that applies the given initialization strategy.
*/ */
AgentBuilder withInitialization(InitializationStrategy initializationStrategy); AgentBuilder withInitializationStrategy(InitializationStrategy initializationStrategy);


/** /**
* Specifies a strategy for modifying existing types. * Specifies a strategy for modifying existing types.
Expand Down Expand Up @@ -1655,7 +1655,7 @@ public AgentBuilder withRedefinitionStrategy(RedefinitionStrategy redefinitionSt
} }


@Override @Override
public AgentBuilder withInitialization(InitializationStrategy initializationStrategy) { public AgentBuilder withInitializationStrategy(InitializationStrategy initializationStrategy) {
return new Default(byteBuddy, return new Default(byteBuddy,
binaryLocator, binaryLocator,
typeStrategy, typeStrategy,
Expand Down Expand Up @@ -2698,8 +2698,8 @@ public AgentBuilder withAccessControlContext(AccessControlContext accessControlC
} }


@Override @Override
public AgentBuilder withInitialization(InitializationStrategy initializationStrategy) { public AgentBuilder withInitializationStrategy(InitializationStrategy initializationStrategy) {
return materialize().withInitialization(initializationStrategy); return materialize().withInitializationStrategy(initializationStrategy);
} }


@Override @Override
Expand Down
Expand Up @@ -119,7 +119,7 @@ class UsingReflection implements ClassInjector {


/** /**
* Creates a new injector for the given {@link java.lang.ClassLoader} and a default {@link java.security.ProtectionDomain}, * Creates a new injector for the given {@link java.lang.ClassLoader} and a default {@link java.security.ProtectionDomain},
* {@link PackageDefinitionStrategy}, {@link AccessControlContext} which triggers a failure when discovering existent classes. * {@link PackageDefinitionStrategy}, {@link AccessControlContext} which does not trigger an error when discovering existent classes.
* *
* @param classLoader The {@link java.lang.ClassLoader} into which new class definitions are to be injected. * @param classLoader The {@link java.lang.ClassLoader} into which new class definitions are to be injected.
*/ */
Expand All @@ -129,7 +129,7 @@ public UsingReflection(ClassLoader classLoader) {


/** /**
* Creates a new injector for the given {@link java.lang.ClassLoader} and a default {@link PackageDefinitionStrategy} where the * Creates a new injector for the given {@link java.lang.ClassLoader} and a default {@link PackageDefinitionStrategy} where the
* injection of existent classes triggers an error. * injection of existent classes does not trigger an error.
* *
* @param classLoader The {@link java.lang.ClassLoader} into which new class definitions are to be injected. * @param classLoader The {@link java.lang.ClassLoader} into which new class definitions are to be injected.
* @param protectionDomain The protection domain to apply during class definition. * @param protectionDomain The protection domain to apply during class definition.
Expand Down
Expand Up @@ -62,7 +62,7 @@ public void setUp() throws Exception {
public void testAgentWithoutSelfInitialization() throws Exception { public void testAgentWithoutSelfInitialization() throws Exception {
assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class)); assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class));
ClassFileTransformer classFileTransformer = new AgentBuilder.Default() ClassFileTransformer classFileTransformer = new AgentBuilder.Default()
.withInitialization(AgentBuilder.InitializationStrategy.NoOp.INSTANCE) .withInitializationStrategy(AgentBuilder.InitializationStrategy.NoOp.INSTANCE)
.type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer()) .type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer())
.installOnByteBuddyAgent(); .installOnByteBuddyAgent();
try { try {
Expand Down Expand Up @@ -108,7 +108,7 @@ public void testAgentSelfInitializationAuxiliaryTypes() throws Exception {
public void testAgentWithoutSelfInitializationWithNativeMethodPrefix() throws Exception { public void testAgentWithoutSelfInitializationWithNativeMethodPrefix() throws Exception {
assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class)); assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class));
ClassFileTransformer classFileTransformer = new AgentBuilder.Default() ClassFileTransformer classFileTransformer = new AgentBuilder.Default()
.withInitialization(AgentBuilder.InitializationStrategy.NoOp.INSTANCE) .withInitializationStrategy(AgentBuilder.InitializationStrategy.NoOp.INSTANCE)
.withNativeMethodPrefix(QUX) .withNativeMethodPrefix(QUX)
.type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer()) .type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer())
.installOnByteBuddyAgent(); .installOnByteBuddyAgent();
Expand All @@ -129,7 +129,7 @@ public void testRedefinition() throws Exception {
assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class)); assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class));
assertThat(classLoader.loadClass(SimpleType.class.getName()).getName(), is(SimpleType.class.getName())); // ensure that class is loaded assertThat(classLoader.loadClass(SimpleType.class.getName()).getName(), is(SimpleType.class.getName())); // ensure that class is loaded
ClassFileTransformer classFileTransformer = new AgentBuilder.Default() ClassFileTransformer classFileTransformer = new AgentBuilder.Default()
.withInitialization(AgentBuilder.InitializationStrategy.NoOp.INSTANCE) .withInitializationStrategy(AgentBuilder.InitializationStrategy.NoOp.INSTANCE)
.withTypeStrategy(AgentBuilder.TypeStrategy.Default.REDEFINE) .withTypeStrategy(AgentBuilder.TypeStrategy.Default.REDEFINE)
.withRedefinitionStrategy(AgentBuilder.RedefinitionStrategy.REDEFINITION) .withRedefinitionStrategy(AgentBuilder.RedefinitionStrategy.REDEFINITION)
.type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer()) .type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer())
Expand All @@ -150,7 +150,7 @@ public void testRetransformation() throws Exception {
assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class)); assertThat(ByteBuddyAgent.install(), instanceOf(Instrumentation.class));
assertThat(classLoader.loadClass(SimpleType.class.getName()).getName(), is(SimpleType.class.getName())); // ensure that class is loaded assertThat(classLoader.loadClass(SimpleType.class.getName()).getName(), is(SimpleType.class.getName())); // ensure that class is loaded
ClassFileTransformer classFileTransformer = new AgentBuilder.Default() ClassFileTransformer classFileTransformer = new AgentBuilder.Default()
.withInitialization(AgentBuilder.InitializationStrategy.NoOp.INSTANCE) .withInitializationStrategy(AgentBuilder.InitializationStrategy.NoOp.INSTANCE)
.withTypeStrategy(AgentBuilder.TypeStrategy.Default.REDEFINE) .withTypeStrategy(AgentBuilder.TypeStrategy.Default.REDEFINE)
.withRedefinitionStrategy(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION) .withRedefinitionStrategy(AgentBuilder.RedefinitionStrategy.RETRANSFORMATION)
.type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer()) .type(isAnnotatedWith(ShouldRebase.class), ElementMatchers.is(classLoader)).transform(new FooTransformer())
Expand Down

0 comments on commit 16249d7

Please sign in to comment.