I use weld 2.3.5 which supports CDI 1.2. I came across a problem that CDI beans, annotated with @javax.inject.Singleton are ignored by the container (bean-discovery-mode="annotated").
After googling I still can't find information about singletons and CDI 1.2. Could anyone explain the situation and give example how to make singleton CDI bean with CDI 1.2.
With bean discovery mode annotated, CDI will only pick up bean annotated with so-called bean defining annotations. The spec clearly defines these and as you might expect, @Singleton is not amongst them.
To make your singleton recognizable, easiest way would be to just use discovery mode all but I suppose you want to avoid that. In which case perhaps an extension could be used to register the annotated type of your singleton - CDI should be able to pick up from there.
Then again, the usage of CDI @Singleton is very limited/specific as it is a non-proxy pseudo-scope. In most cases, @ApplicationScoped will do exactly what you want anyway so make sure you consider that before doing any extra work.