JSR-330 specifies certain naming conventions in terms of packages, for example:
javax.inject.Inject
javax.inject.Scope
Guice is the Reference Implementation of JSR-330. However, when using it, you notice that it doesn't follow the spec. For example:
com.google.inject.Inject
com.google.inject.Scope
This doesn't happen in any of the reference implementations I have seen so far. What makes Google Guice so special that being the RI they can just ignore the specification they are implementing?
Guice 3 supports JSR 330 annotations. It also supports the com.google
annotations for backwards compatibility with earlier versions of Guice (when JSR 330 didn't exist yet).