<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 8/19/16 9:04 AM, Stian Thorgersen
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAJgngAfA3jVSENea3hC0Y21JgH5scgtxu88JSpok54bi7GK-1w@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On 19 August 2016 at 14:57, Bill
            Burke <span dir="ltr">&lt;<a moz-do-not-send="true"
                href="mailto:bburke@redhat.com" target="_blank">bburke@redhat.com</a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"><span class="">
                  <p><br>
                  </p>
                  <br>
                  <div>On 8/19/16 2:34 AM, Stian Thorgersen wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr"><br>
                      <div class="gmail_extra"><br>
                        <div class="gmail_quote">On 18 August 2016 at
                          19:26, Bill Burke <span dir="ltr">&lt;<a
                              moz-do-not-send="true"
                              href="mailto:bburke@redhat.com"
                              target="_blank">bburke@redhat.com</a>&gt;</span>
                          wrote:<br>
                          <blockquote class="gmail_quote"
                            style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex">
                            <div bgcolor="#FFFFFF" text="#000000"><span>
                                <p><br>
                                </p>
                                <br>
                                <div>On 8/18/16 1:13 AM, Stian
                                  Thorgersen wrote:<br>
                                </div>
                                <blockquote type="cite">
                                  <div dir="ltr">One problem with this
                                    approach is that you end up having a
                                    separate JDBC connection and
                                    transaction even if it uses the same
                                    database the Keycloak server uses.
                                    <div><br>
                                    </div>
                                  </div>
                                </blockquote>
                              </span> Something we have to fix anyways. 
                              Its on my todo list. </div>
                          </blockquote>
                          <blockquote class="gmail_quote"
                            style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex">
                            <div bgcolor="#FFFFFF" text="#000000"><span><br>
                                <br>
                                <blockquote type="cite">
                                  <div dir="ltr">
                                    <div>Take a look at <a
                                        moz-do-not-send="true"
href="https://github.com/keycloak/keycloak/tree/master/examples/providers/domain-extension/src/main/java/org/keycloak/examples/domainextension/jpa"
                                        target="_blank">https://github.com/keycloak/ke<wbr>ycloak/tree/master/examples/pr<wbr>oviders/domain-extension/src/<wbr>main/java/org/keycloak/example<wbr>s/domainextension/jpa</a>
                                      for example which allows adding
                                      custom entities to the main
                                      EntityManager.</div>
                                  </div>
                                  <div class="gmail_extra"><br>
                                  </div>
                                </blockquote>
                              </span> I'm really not a big fan of this
                              extension and this is something I do not
                              want to support for product ever.</div>
                          </blockquote>
                          <div><br>
                          </div>
                          <div>Why, please elaborate? IMO it's a really
                            nice and simple way to add a few extra
                            entities for custom providers.</div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </span> Are you going to make our JPA entity classes
                public?  If not, what's the point of this extension? 
                Now that we have real deployers, its now easier to write
                your own persistence unit.  Take a look at the example:<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>Has nothing to do with our entity classes. It allows
              users to easily register an extra entity in our
              persistence unit, so same connection and transaction and
              no need to create a persistence unit at all. It also has
              support for Liquibase so schema is update the same way as
              with our stuff. Users would then get the EntityManager
              from the JpaConnectionProvider and be able to get their
              custom entities from there.</div>
            <div><br>
            </div>
            <div>It's simpler than what you have. Doesn't work if folks
              want a different database and such though.</div>
          </div>
        </div>
      </div>
    </blockquote>
    I disagree.  Its not simpler than using standard EJB/JPA.<br>
    <br>
    @PersistenceContext EntityManager em;<br>
    <br>
    is simpler than<br>
    <br>
    EntityManager em =
    KeycloakSession.getProvider(JpaConnectionProvider.class);<br>
    <br>
    You do have a point about liquibase, but then, we would also have to
    support Liquibase forever too...<br>
    <br>
    This should only be a community feature not a product one.<br>
    <br>
    Bill<br>
  </body>
</html>