<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 10/21/2015 2:08 PM, Stan Silvert
      wrote:<br>
    </div>
    <blockquote cite="mid:5627D4B3.5030609@redhat.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">On 10/21/2015 1:57 PM, Stian
        Thorgersen wrote:<br>
      </div>
      <blockquote
cite="mid:CAJgngAcuXAS09r3+Txry3epdnpN9rzRb9JzAZMRvCrdTee5m2w@mail.gmail.com"
        type="cite">
        <div dir="ltr">We manage our own EntityManagerFactory and
          EntityManager as well as our own transactions. So that's not
          true.</div>
      </blockquote>
      If all you need is the datasource info that lives in
      standalone.xml then yes, we can get that.<br>
    </blockquote>
    But I'm a little confused as to how this would work.&nbsp; Are you saying
    that you wouldn't use any of the classes in
    org.keycloak.models.jpa.entities?&nbsp; Those need containers.<br>
    <blockquote cite="mid:5627D4B3.5030609@redhat.com" type="cite"> <br>
      <blockquote
cite="mid:CAJgngAcuXAS09r3+Txry3epdnpN9rzRb9JzAZMRvCrdTee5m2w@mail.gmail.com"
        type="cite">
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On 21 October 2015 at 19:53, Stan
            Silvert <span dir="ltr">&lt;<a moz-do-not-send="true"
                href="mailto:ssilvert@redhat.com" target="_blank">ssilvert@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 text="#000000" bgcolor="#FFFFFF"><span class="">
                  <div>On 10/21/2015 1:23 PM, Stian Thorgersen wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr">Guys - all we need is the datasource.
                      I want to create a "db tool" for Keycloak, this is
                      not for the Admin CLI
                      <div><br>
                      </div>
                      <div>We don't need CDI, EJB, etc.. All we need is
                        the datasource, or at least the connection
                        information for the datasource + we also need
                        JBoss modules so we can get the required
                        classes.</div>
                      <div><br>
                      </div>
                      <div>If offline mode can do this then that'd be
                        good, but I seem to remember datasources weren't
                        available?</div>
                    </div>
                  </blockquote>
                </span> If you want to use our existing JPA
                infrastructure then you need a JPA container.&nbsp; That's
                where this other stuff all gets pulled in.<br>
                <br>
                Hey, let's just use JDBC!&nbsp; :-)<span class=""><br>
                  <br>
                  <blockquote type="cite">
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On 21 October 2015 at
                        18:22, Marko Strukelj <span dir="ltr">&lt;<a
                            moz-do-not-send="true"
                            href="mailto:mstrukel@redhat.com"
                            target="_blank">mstrukel@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 dir="ltr">
                            <div class="gmail_extra">
                              <div class="gmail_quote"><span>On Wed, Oct
                                  21, 2015 at 5:57 PM, Stan Silvert <span
                                    dir="ltr">&lt;<a
                                      moz-do-not-send="true"
                                      href="mailto:ssilvert@redhat.com"
                                      target="_blank">ssilvert@redhat.com</a>&gt;</span>
                                  wrote:<br>
                                  <blockquote class="gmail_quote"
                                    style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>On


                                      10/21/2015 11:14 AM, Marko
                                      Strukelj wrote:<br>
                                      <blockquote class="gmail_quote"
                                        style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I
                                        haven't taken a very close look
                                        at Swarm yet, but I assumed you
                                        start Wildfly embedded in the
                                        same JVM as your Main class. If
                                        that is the case, then there
                                        should be no problem
                                        communicating with any kind of
                                        deployed component via heap
                                        directly - just lookup some
                                        singleton ...<br>
                                      </blockquote>
                                    </span> Classloading constraints are
                                    what you usually run up against.&nbsp;
                                    You can't use your own version of a
                                    class that was loaded from a
                                    different classloader.&nbsp; I don't
                                    think Swarm helps you get around
                                    that, but just assumes you will
                                    access the WAR in the usual way
                                    through an HTTP port.&nbsp; But I could
                                    be wrong as I haven't worked with
                                    Swarm either.<br>
                                    <br>
                                    Here is an explanation of the
                                    problem based on an old version of
                                    JBoss:<br>
                                    <a moz-do-not-send="true"
href="https://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/JBoss_JMX_Implementation_Architecture-Class_Loading_and_Types_in_Java.html"
                                      rel="noreferrer" target="_blank">https://docs.jboss.org/jbossas/docs/Server_Configuration_Guide/4/html/JBoss_JMX_Implementation_Architecture-Class_Loading_and_Types_in_Java.html</a><br>
                                    <br>
                                    With jboss-modules, it's easier to
                                    get around these problems, but you
                                    still run into the isolation built
                                    into the container itself,
                                    especially in the case of a WAR.</blockquote>
                                  <div>&nbsp;</div>
                                </span>
                                <div>CLI running in the same JVM as
                                  Wildfly would get bootstrapped through
                                  jboss-modules, and would package it's
                                  classes as a jboss module. It can then
                                  deploy additional 'in-container' logic
                                  that needs actual access to
                                  datasources via many different
                                  mechanisms. It can be a .jar
                                  containing a SLSB, a .war, a .sar, a
                                  POJO (via pojo subsystem), it can be a
                                  custom subsystem that gets installed
                                  ... In every of these cases it can
                                  then have access to resource objects
                                  bound to java:jboss JNDI space ... And
                                  in every of these cases it uses shared
                                  types loaded via dependencies on
                                  jboss-modules.</div>
                                <span>
                                  <div><br>
                                  </div>
                                  <div><br>
                                  </div>
                                  <blockquote class="gmail_quote"
                                    style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>
                                      <blockquote class="gmail_quote"
                                        style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
                                        If that is not the case, then we
                                        would need some kind of
                                        interprocess communication
                                        going. With shell the roles of
                                        who connects where could also be
                                        reversed, and a started up
                                        Wildfly instance could have a
                                        service connecting out to local
                                        port bound by our CLI rather
                                        than the other way around.<br>
                                      </blockquote>
                                    </span> I don't think the direction
                                    of the connection matters so much as
                                    the fact that you need a serialized
                                    format to issue commands to a
                                    foreign container.<br>
                                    <br>
                                    Or, as I mentioned, you need the CLI
                                    to actually live inside the
                                    container.</blockquote>
                                  <div><br>
                                  </div>
                                </span>
                                <div>CLI needs to be able to execute its
                                  logic inside the container in order to
                                  harness the datasources, but the UI
                                  part that takes care of getting the
                                  inputs and displaying the outputs -
                                  e.g. CraSH, does not have to be inside
                                  the container.&nbsp;</div>
                                <div><br>
                                </div>
                                <div>I don't know what you mean by
                                  'serialized format to issue commands
                                  to a foreign container', but if it
                                  means taking care of UI interaction,
                                  CraSH looks pretty decent CLI, easy to
                                  extend with custom commands.&nbsp;</div>
                                <div><br>
                                </div>
                              </div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                  </blockquote>
                  <br>
                </span></div>
            </blockquote>
          </div>
          <br>
        </div>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
keycloak-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/keycloak-dev">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a></pre>
    </blockquote>
    <br>
  </body>
</html>