Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sisu-users] @Nullable working example

Thank you, Stuart. Custom @Nullable worked.

--
Regards,
Igor

On 2014-06-17, 15:52, Stuart McCulloch wrote:
On 17 Jun 2014, at 20:12, Igor Fedorenko <igor@xxxxxxxxxxxxxx> wrote:

I am using Sisu 0.0.0.M5 (part of Maven 3.2.1) and I am having
difficulty getting @org.eclipse.sisu.Nullable to do anything. It didn't
work neither for injected constructor parameter nor for injected field.

For plugin or extension? AFAIK maven doesn’t expose any org.eclipse.sisu packages from maven-core, in which case @org.eclipse.sisu.Nullable won't be visible at runtime from the plugin realm. However note that any @Nullable annotation can be used, as long as it’s visible when loading the annotated class - the actual @Nullable check is in Guice where it compares the name of the annotation to “Nullable”, regardless of the package. So you could always create your own @Nullable in a package that’s known to be visible to your plugin.

@com.google.inject.Inject(optional = true) worked for injected field as
suggested in [1], which I hope means the rest of my code is setup
correctly and the problem is with how I use @Nullable.

Note optional=true is not quite the same as @Nullable - the former allows you to proceed without any binding for the injected member (which for a field means it’s not injected at all) whereas the latter allows null to be injected.

When using Sisu, @Nullable becomes a reasonable approximation to optional=true (because its generated bindings will return null when a component is not available) but is still slightly different because the injection goes ahead even if the value being injected is null, whereas with optional=true you can set a default value for the field and it won’t be disturbed if the relevant binding is missing.

Are there known problems with @Nullable in Sisu 0.0.0.M5?

Not according to the test reports (the expected behaviour of @Nullable is tested for all kinds of injection points in BeanImportTest)

Can somebody
point me at a working example that shows how to use it properly, ideally
when used from plexus shim?

[1] https://code.google.com/p/google-guice/wiki/FrequentlyAskedQuestions

--
Regards,
Igor
_______________________________________________
sisu-users mailing list
sisu-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/sisu-users

_______________________________________________
sisu-users mailing list
sisu-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/sisu-users



Back to the top