[ 
https://issues.apache.org/jira/browse/SLING-8706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142111#comment-17142111
 ] 

Justin Edelson commented on SLING-8706:
---------------------------------------

The question of how HTL interprets methods which return {{Optional}} should 
really be orthogonal. Whether or not Sling Models supports *injection* of 
{{Optional}} fields has no bearing on the API exposed by a model class. One 
could have a Sling Model class *today* used by HTL which had a method which 
returned an {{Optional}} value.

I don't see why the lack of serialization support is a problem, for two reasons 
-- one, I'm not sure how common is it to use Java serialization for model 
classes, second, this is (no pun intended) an _optional_ feature so worst case 
a model developer would need to make a choice between using Java serialization 
and this method for optional field injection. While yes, {{Optional}} wasn't 
intended to be used in this way, I see no documentation that its usage as a 
field is *prohibited*.

> Injections for java.util.Optional<> should be automatic optional 
> -----------------------------------------------------------------
>
>                 Key: SLING-8706
>                 URL: https://issues.apache.org/jira/browse/SLING-8706
>             Project: Sling
>          Issue Type: Improvement
>          Components: Sling Models
>            Reporter: Jörg Hoh
>            Priority: Major
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> The current approach to support optional injections requires to annotate the 
> field with {{@Optional}} plus proper handling within the javacode (null 
> checks etc), which can be forgotten.
> So instead of
> {code}
> @Inject @Optional
> String fieldname;
> {code}
> it should also be possible to use this
> {code}
> @Inject
> Optional<String> fieldname;
> {code}
> with the very same semantic. But the developer is forced to deal with the 
> case that the value is not present.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to