Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,18 @@ internal class DefaultImplementationLoader : ImplementationLoader {
val (packageName, binaryName) = splitComponentName(componentClass)
// no need to parse and join simple names, as codegen joins them with '$' and
// that's what JVM binary class name already is.
val implementationName = "$packageName.Yatagan\$$binaryName"
val implementationName = "$packageName.Yatagan${binaryName.replace('$', '_')}"

return componentClass.classLoader.loadClass(implementationName)
return try {
componentClass.classLoader.loadClass(implementationName)
} catch (e1: ClassNotFoundException) {
// fallback to the legacy loader name
try {
componentClass.classLoader.loadClass("$packageName.Yatagan\$$binaryName")
} catch (e2: ClassNotFoundException) {
throw e2.also { it.addSuppressed(e1) }
}
}
}

private fun splitComponentName(clazz: Class<*>): Pair<String, String> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Keep generated components, as they are accessed with a reflection call.
-keep class **.Yatagan$* {
-keep class **.Yatagan* {
# Keep creating methods - called via reflection.
public * autoBuilder();
public * builder();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ internal fun formatImplementationClassName(graph: BindingGraph): ClassName {
else -> throw AssertionError("Unexpected component name: $it")
}
// Keep name mangling in sync with loader!
ClassName.get(name.packageName, "Yatagan$" + name.simpleNames.joinToString(separator = "$"))
ClassName.get(name.packageName, "Yatagan" + name.simpleNames.joinToString(separator = "_"))
}
else -> with(parent[GeneratorComponent]) {
implementationClassName.nestedClass(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,21 @@ class RtOnlyTest : CompileTestDriver by DynamicCompileTestDriver() {
const val ID1 = 1234567
const val ID2 = 89101112

class `Yatagan${'$'}MyComponent` : MyComponent {
class YataganMyComponent : MyComponent {
override fun getInt(): Int = ID1
companion object {
@JvmStatic fun autoBuilder() = object : AutoBuilder<MyComponent> {
override fun <I : Any> provideInput(i: I, c: Class<I>) = throw AssertionError()
override fun create() = `Yatagan${'$'}MyComponent`()
override fun create() = YataganMyComponent()
}
}
}

class `Yatagan${'$'}MyComponentWithBuilder` : MyComponentWithBuilder {
class YataganMyComponentWithBuilder : MyComponentWithBuilder {
override fun getInt(): Int = ID2
companion object {
@JvmStatic fun builder() = object : MyComponentWithBuilder.Builder {
override fun create() = `Yatagan${'$'}MyComponentWithBuilder`()
override fun create() = YataganMyComponentWithBuilder()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$TestComponent.java
Name: test/YataganTestComponent.java
package test;

import com.yandex.yatagan.AutoBuilder;
Expand All @@ -15,10 +15,10 @@ import javax.annotation.processing.Generated;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$TestComponent implements TestComponent {
public final class YataganTestComponent implements TestComponent {
final boolean mMyFeatureSEnabled = MyFeature.sEnabled;

private Yatagan$TestComponent() {
private YataganTestComponent() {
}

@Override
Expand All @@ -41,20 +41,20 @@ public final class Yatagan$TestComponent implements TestComponent {
return new MyClassD();
}

public static AutoBuilder<Yatagan$TestComponent> autoBuilder() {
public static AutoBuilder<YataganTestComponent> autoBuilder() {
return new AutoBuilderImpl();
}

private static final class AutoBuilderImpl implements AutoBuilder<Yatagan$TestComponent> {
private static final class AutoBuilderImpl implements AutoBuilder<YataganTestComponent> {
@Override
public final <I> AutoBuilder<Yatagan$TestComponent> provideInput(I input, Class<I> inputClass) {
public final <I> AutoBuilder<YataganTestComponent> provideInput(I input, Class<I> inputClass) {
Checks.reportUnexpectedAutoBuilderInput(input.getClass(), Collections.emptyList());
return this;
}

@Override
public final Yatagan$TestComponent create() {
return new Yatagan$TestComponent();
public final YataganTestComponent create() {
return new YataganTestComponent();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$RootComponent2.java
Name: test/YataganRootComponent2.java
package test;

import com.yandex.yatagan.AutoBuilder;
Expand All @@ -14,16 +14,16 @@ import javax.annotation.processing.Generated;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$RootComponent2 implements RootComponent2 {
private Yatagan$RootComponent2() {
public final class YataganRootComponent2 implements RootComponent2 {
private YataganRootComponent2() {
}

@Override
public SubComponent1.Factory sub1EP() {
return new SubComponent1Impl.ComponentFactoryImpl();
}

public static AutoBuilder<Yatagan$RootComponent2> autoBuilder() {
public static AutoBuilder<YataganRootComponent2> autoBuilder() {
return new AutoBuilderImpl();
}

Expand All @@ -45,17 +45,16 @@ public final class Yatagan$RootComponent2 implements RootComponent2 {
}
}

private static final class AutoBuilderImpl implements AutoBuilder<Yatagan$RootComponent2> {
private static final class AutoBuilderImpl implements AutoBuilder<YataganRootComponent2> {
@Override
public final <I> AutoBuilder<Yatagan$RootComponent2> provideInput(I input,
Class<I> inputClass) {
public final <I> AutoBuilder<YataganRootComponent2> provideInput(I input, Class<I> inputClass) {
Checks.reportUnexpectedAutoBuilderInput(input.getClass(), Collections.emptyList());
return this;
}

@Override
public final Yatagan$RootComponent2 create() {
return new Yatagan$RootComponent2();
public final YataganRootComponent2 create() {
return new YataganRootComponent2();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$AnotherRootComponent.java
Name: test/YataganAnotherRootComponent.java
package test;

import com.yandex.yatagan.AutoBuilder;
Expand All @@ -14,25 +14,25 @@ import javax.annotation.processing.Generated;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$AnotherRootComponent implements AnotherRootComponent {
private Yatagan$AnotherRootComponent() {
public final class YataganAnotherRootComponent implements AnotherRootComponent {
private YataganAnotherRootComponent() {
}

public static AutoBuilder<Yatagan$AnotherRootComponent> autoBuilder() {
public static AutoBuilder<YataganAnotherRootComponent> autoBuilder() {
return new AutoBuilderImpl();
}

private static final class AutoBuilderImpl implements AutoBuilder<Yatagan$AnotherRootComponent> {
private static final class AutoBuilderImpl implements AutoBuilder<YataganAnotherRootComponent> {
@Override
public final <I> AutoBuilder<Yatagan$AnotherRootComponent> provideInput(I input,
public final <I> AutoBuilder<YataganAnotherRootComponent> provideInput(I input,
Class<I> inputClass) {
Checks.reportUnexpectedAutoBuilderInput(input.getClass(), Collections.emptyList());
return this;
}

@Override
public final Yatagan$AnotherRootComponent create() {
return new Yatagan$AnotherRootComponent();
public final YataganAnotherRootComponent create() {
return new YataganAnotherRootComponent();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$MyApplicationComponent.java
Name: test/YataganMyApplicationComponent.java
package test;

import com.yandex.yatagan.internal.YataganGenerated;
Expand All @@ -10,8 +10,8 @@ import javax.annotation.processing.Generated;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$MyApplicationComponent implements MyApplicationComponent {
Yatagan$MyApplicationComponent() {
public final class YataganMyApplicationComponent implements MyApplicationComponent {
YataganMyApplicationComponent() {
}

@Override
Expand All @@ -26,13 +26,13 @@ public final class Yatagan$MyApplicationComponent implements MyApplicationCompon
private static final class ComponentFactoryImpl implements MyApplicationComponent.Factory {
@Override
public MyApplicationComponent create() {
return new Yatagan$MyApplicationComponent();
return new YataganMyApplicationComponent();
}
}
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$MyActivityComponent.java
Name: test/YataganMyActivityComponent.java
package test;

import com.yandex.yatagan.Lazy;
Expand All @@ -49,10 +49,10 @@ import javax.inject.Provider;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$MyActivityComponent implements MyActivityComponent {
public final class YataganMyActivityComponent implements MyActivityComponent {
final MyApplicationComponent mMyApplicationComponent;

Yatagan$MyActivityComponent(MyApplicationComponent pApp) {
YataganMyActivityComponent(MyApplicationComponent pApp) {
this.mMyApplicationComponent = Checks.checkInputNotNull(pApp);
}

Expand Down Expand Up @@ -83,11 +83,11 @@ public final class Yatagan$MyActivityComponent implements MyActivityComponent {
}

static final class ProviderImpl implements Lazy {
private final Yatagan$MyActivityComponent mDelegate;
private final YataganMyActivityComponent mDelegate;

private final int mIndex;

ProviderImpl(Yatagan$MyActivityComponent delegate, int index) {
ProviderImpl(YataganMyActivityComponent delegate, int index) {
this.mDelegate = delegate;
this.mIndex = index;
}
Expand All @@ -99,13 +99,13 @@ public final class Yatagan$MyActivityComponent implements MyActivityComponent {
}

private static final class CachingProviderImpl implements Lazy {
private final Yatagan$MyActivityComponent mDelegate;
private final YataganMyActivityComponent mDelegate;

private final int mIndex;

private Object mValue;

CachingProviderImpl(Yatagan$MyActivityComponent factory, int index) {
CachingProviderImpl(YataganMyActivityComponent factory, int index) {
mDelegate = factory;
mIndex = index;
}
Expand All @@ -125,7 +125,7 @@ public final class Yatagan$MyActivityComponent implements MyActivityComponent {
private static final class ComponentFactoryImpl implements MyActivityComponent.Factory {
@Override
public MyActivityComponent create(MyApplicationComponent app) {
return new Yatagan$MyActivityComponent(app);
return new YataganMyActivityComponent(app);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$MyApplicationComponent.java
Name: test/YataganMyApplicationComponent.java
package test;

import com.yandex.yatagan.internal.YataganGenerated;
Expand All @@ -10,8 +10,8 @@ import javax.annotation.processing.Generated;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$MyApplicationComponent implements MyApplicationComponent {
Yatagan$MyApplicationComponent() {
public final class YataganMyApplicationComponent implements MyApplicationComponent {
YataganMyApplicationComponent() {
}

public static MyApplicationComponent.Factory builder() {
Expand All @@ -21,13 +21,13 @@ public final class Yatagan$MyApplicationComponent implements MyApplicationCompon
private static final class ComponentFactoryImpl implements MyApplicationComponent.Factory {
@Override
public MyApplicationComponent create() {
return new Yatagan$MyApplicationComponent();
return new YataganMyApplicationComponent();
}
}
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$MyActivityComponent.java
Name: test/YataganMyActivityComponent.java
package test;

import com.yandex.yatagan.Lazy;
Expand All @@ -44,10 +44,10 @@ import javax.inject.Provider;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$MyActivityComponent implements MyActivityComponent {
public final class YataganMyActivityComponent implements MyActivityComponent {
final MyApplicationComponent mMyApplicationComponent;

Yatagan$MyActivityComponent(MyApplicationComponent pApp) {
YataganMyActivityComponent(MyApplicationComponent pApp) {
this.mMyApplicationComponent = Checks.checkInputNotNull(pApp);
}

Expand Down Expand Up @@ -78,11 +78,11 @@ public final class Yatagan$MyActivityComponent implements MyActivityComponent {
}

static final class ProviderImpl implements Lazy {
private final Yatagan$MyActivityComponent mDelegate;
private final YataganMyActivityComponent mDelegate;

private final int mIndex;

ProviderImpl(Yatagan$MyActivityComponent delegate, int index) {
ProviderImpl(YataganMyActivityComponent delegate, int index) {
this.mDelegate = delegate;
this.mIndex = index;
}
Expand All @@ -94,13 +94,13 @@ public final class Yatagan$MyActivityComponent implements MyActivityComponent {
}

private static final class CachingProviderImpl implements Lazy {
private final Yatagan$MyActivityComponent mDelegate;
private final YataganMyActivityComponent mDelegate;

private final int mIndex;

private Object mValue;

CachingProviderImpl(Yatagan$MyActivityComponent factory, int index) {
CachingProviderImpl(YataganMyActivityComponent factory, int index) {
mDelegate = factory;
mIndex = index;
}
Expand All @@ -120,7 +120,7 @@ public final class Yatagan$MyActivityComponent implements MyActivityComponent {
private static final class ComponentFactoryImpl implements MyActivityComponent.Factory {
@Override
public MyActivityComponent create(MyApplicationComponent app) {
return new Yatagan$MyActivityComponent(app);
return new YataganMyActivityComponent(app);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Name: test/Yatagan$MyComponent.java
Name: test/YataganMyComponent.java
package test;

import com.yandex.yatagan.internal.Checks;
Expand All @@ -11,10 +11,10 @@ import javax.annotation.processing.Generated;
@SuppressWarnings({"unchecked", "rawtypes", "NullableProblems"})
@YataganGenerated
@Generated("com.yandex.yatagan.codegen.impl.ComponentGenerator")
public final class Yatagan$MyComponent implements MyComponent {
public final class YataganMyComponent implements MyComponent {
final Dependencies mDependencies;

Yatagan$MyComponent(Dependencies pDep) {
YataganMyComponent(Dependencies pDep) {
this.mDependencies = Checks.checkInputNotNull(pDep);
}

Expand All @@ -30,7 +30,7 @@ public final class Yatagan$MyComponent implements MyComponent {
private static final class ComponentFactoryImpl implements MyComponent.Builder {
@Override
public MyComponent create(Dependencies dep) {
return new Yatagan$MyComponent(dep);
return new YataganMyComponent(dep);
}
}
}
Expand Down
Loading
Loading