<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <base href="https://hibernate.atlassian.net" />
        <title>Message Title</title>
    </head>
    <body class="jira" style="color: #333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429">
        <table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
            <!-- header here -->
            <tr>
                <td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px">
                    <table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
                        <tr>
                            <td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px"> <img id="header-avatar-image" class="image_fix" src="https://secure.gravatar.com/avatar/6db67528c0dfb637ac5d957a22643392?d=mm&amp;s=48" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top" />
                            </td>
                            <td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="gunnar.morling" id="email_gunnar.morling" href="https://hibernate.atlassian.net/secure/ViewProfile.jspa?name=gunnar.morling" style="color:#6c797f;; color: #3b73af; text-decoration: none">Gunnar Morling</a> <strong>commented</strong> on an issue
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px">
                    <table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate">
                        <tr>
                            <!-- there needs to be content in the cell for it to render in some clients -->
                            <td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left: 1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td>
                        </tr>
                        <tr>
                            <td id="text-paragraph-pattern-top" class="email-content-main mobile-expand  comment-top-pattern" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 15px 16px; background-color: #fff; border-bottom: 1px solid #ccc; border-bottom: none; padding-bottom: 0px">
                                <table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px">
                                    <tr>
                                        <td class="text-paragraph-pattern-container mobile-resize-text" style="padding: 0px; border-collapse: collapse; padding: 0px; padding-left: 16px; padding-bottom: 10px; border-left: 1px solid #ccc">
                                            <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #ccc; color: #707070; margin-left: 19px; padding: 10px 20px">
                                                <p style="margin: 10px 0 0 0">I in particular don't want to introduce something now which is sub optimal in conjunction with the Java 8 work we are going to start soon.</p>
                                            </blockquote>
                                            <p style="margin: 10px 0 0 0">That's a very good point which we need to keep in mind. Still a solution working with older Java versions will be beneficial for users for quite a long time. Also JavaFX won't be able to take advantage of the type parameter solution.</p>
                                            <blockquote style="margin: 10px 0 0 0; border-left: 1px solid #ccc; color: #707070; margin-left: 19px; padding: 10px 20px">
                                                <p style="margin: 10px 0 0 0">Regarding JavaFX, how many different types are we talking about? Would it make sense to bundle the required constraint validators as part of HV?</p>
                                            </blockquote>
                                            <p style="margin: 10px 0 0 0">The API docs has a complete list of <a href="http://docs.oracle.com/javafx/2/api/index.html?javafx/beans/property/Property.html" class="external-link" rel="nofollow" style="color: #3b73af; text-decoration: none">Property</a> subtypes.</p>
                                            <p style="margin: 10px 0 0 0">The problem I see with bundling the required constraints with HV is that this will never be exhaustive. We could provide constraints for the existing property types, but if a user e.g. adds her own <tt>BigIntegerProperty</tt> she'd again have to create a custom constraint. Thus I think a generic solution which automatically enables to apply all existing constraints/validators makes more sense.</p>
                                            <p style="margin: 10px 0 0 0">Regarding the JPA converter approach, I'm no big fan of referencing the converter type within the annotation, as it a) can become verbose when to be done for each usage and b) exposes an implementation type at the usage site which otherwise could be hidden from client code (e.g. being part of some <tt>internal</tt> package).</p>
                                            <p style="margin: 10px 0 0 0">The auto-apply approach avoids this, but doesn't it have the same issues as the original approach? For the reader of the client code it is not apparent whether a constraint applies to the wrapper or the wrapped type (as he might not be aware of the converter), which you seemed to dislike. Personally I wouldn't mind to always unwrap values (which makes things deterministic), but approach #2 also works for me; Configuring the unwrapping once on the class-level sounds good.</p>
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 15px 16px; background-color: #fff">
                                <table id="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
                                    <tr>
                                        <td id="page-title-pattern-first-line" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; padding-top: 16px"> <a href="https://hibernate.atlassian.net/browse/HV" style="color: #3b73af; text-decoration: none">Hibernate Validator</a> / <a href="https://hibernate.atlassian.net/browse/HV-819" style="color: #3b73af; text-decoration: none"><img src="https://hibernate.atlassian.net/images/icons/issuetypes/newfeature.png" height="16" width="16" border="0" align="absmiddle" alt="New Feature" /></a> <a href="https://hibernate.atlassian.net/browse/HV-819" style="color: #3b73af; text-decoration: none">HV-819</a>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" id="page-title-pattern-header-container"> <span id="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HV-819" style="color: #3b73af; text-decoration: none">Add an API/SPI which allows to make the process of value retrieval customizable</a> </span>
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <tr>
                            <td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0; padding: 0 15px 15px 16px; background-color: #fff">
                                <table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px">
                                    <tr>
                                        <td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 0 0 0 24px; vertical-align: middle; padding-left: 0px">
                                            <table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
                                                <tr>
                                                    <td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0px; vertical-align: middle"> <a href="https://hibernate.atlassian.net/browse/HV-819#add-comment" target="_blank" title="{getText($action.text)}" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="https://hibernate.atlassian.net/images/mail/comment-icon.png" alt="Add Comment" title="{Add Comment}-icon" height="16" width="16" border="0" style="vertical-align: middle" /> </a>
                                                    </td>
                                                    <td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://hibernate.atlassian.net/browse/HV-819#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a>
                                                    </td>
                                                </tr>
                                            </table>
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <!-- there needs to be content in the cell for it to render in some clients -->
                        <tr>
                            <td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #fff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #fff; border-top: 0; border-left: 1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly">
                                &nbsp;
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px">
                    <table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
                        <tr>
                            <td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px">
                                 This message was sent by Atlassian JIRA <span id="footer-build-information">(v6.1-OD-06-1#6139-<span title="55675310699987538e94bba02907336bb66489a8" data-commit-id="55675310699987538e94bba02907336bb66489a8}">sha1:5567531</span>)</span>
                            </td>
                            <td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top">
                                <table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
                                    <tr>
                                        <td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="https://hibernate.atlassian.net/images/mail/footer-desktop-logo.png" alt="Atlassian logo" title="Atlassian logo" width="169" height="36" class="image_fix" />
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
</html>