Comments (6)
That is very definitely a problem. I'm on it.
from auto.
A workaround is to explicitely state that the other factories don't need to implement any interface like this: @AutoFactory(implementing = {})
from auto.
@cypressious I don't think that's a work around...
If you have two classes like
home package
Person.java -> PersonFactoryImpl implements PersonFactory
Dog.java -> DogFactoryImpl implements DogFactory
The only way to fix the problem it is to move Person / Dog into separate packages if you need to use DI on each factory, pretty hacky work around in my opinion, not really scalable also if you need to generate a factory for each item in a package potentially.....
This really should be fixed ASAP, almost a blocking adoption of this library.
This also applies to extending = ...
from auto.
Hey, I don't know if this is strictly related, but I'm noticing that if I have 2 classes, in different packages, both using the same @AutoFactory(implementing = Foo.class)
, the second factory to be generated contains the interface's method twice. (and one of those has the signature of the other type)
from auto.
Eh, in fact, both generated factories have the problem. So it goes like this: in my sources:
package foo
public interface Foo {}
public interface FooFactory {
Foo heyDoMe();
}
package foo.bar
@AutoFactory(implementing = FooFactory.class)
public class Bar implements Foo {}
package foo.qux
@AutoFactory(implementing = FooFactory.class)
public class Qux implements Foo {}
Both resulting factories like this, both have these 2 methods, which makes the compiler rather unhappy obviously.
[...]
@Override
public foo.bar.Bar heyDoMe() {
return create(p);
}
@Override
public Qux heyDoMe() {
return create(p);
}
from auto.
Sorry for being impatient with an issue opened Feb 2014... but do we already know when this bug will be fixed (and a new version of autofactory will be published)?
This bug makes it autofactory practically unusable... creating for each factory with it's classes (which implements an interface) a separate package results in almost more time lost than saved due to the factory autogeneration.
from auto.
Related Issues (20)
- AutoService breaks with Immutables HOT 8
- Shaded guava triggers CVE checks HOT 1
- AutoValue functional tests not being run by Maven
- Intermittent `Stream closed` exception after upgrading to 1.10.2 HOT 16
- auto-value 1.10.2 breaks compatibility with Kotlin 1.6 HOT 8
- AutoBuilder will not build Kotlin data class with Duration HOT 3
- Require Java 11+ for compilation HOT 1
- Use Jakarta's @Generated annotation if available HOT 2
- AutoValue `toBuilder()` works poorly if an extension subclasses `Builder`; possible INCOMPATIBLE change HOT 1
- Android does not use AutoService. See the example code HOT 2
- Is cross-process support available? HOT 3
- Release AutoFactory 1.1.0 HOT 1
- Remove `o == this` check from generated `equals`? HOT 2
- AutoValue null annotations in Eclipse HOT 2
- Possible documentation issue around collection builders HOT 1
- google/auto
- Annotation Processor output is not deterministic HOT 3
- Drop support for running generated code under Java 7 HOT 2
- [Bug] Annotation processor generated duplicated classes from dependency that also used autovalue HOT 3
- AutoValue 1.10.4 no longer works with GraalVM native image resource loading HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from auto.