JavaFX modeler

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

JavaFX modeler

Andrus Adamchik
Hi Mike and everybody,

I suggest that we bring JavaFX Modeler at https://github.com/mrg/CMP into Cayenne Git. It has a chance to get better momentum here. I've been traveling a lot recently with Cayenne trainings and presentations, and I've met people on a few occasions who offered their help with the tool. There's no guarantee that any of this materializes yet, but I think keeping the new Modeler under the Apache Cayenne umbrella should help. Also consider all the legal issues we'll face when bringing a GitHub project with multiple contributors to Cayenne at a later date.

So I suggest that we request a new Git repo from infra (cayenne-modeler2.git or something), move Mike's code in there, and then promote this new project on the website, the mailing lists, etc. It will be developed in parallel with the main repo until we are ready to make a release.

From myself I promise a Bootique launcher contribution.

Thoughts?
Andrus

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Michael Gentry
Well, GitHub has certainly been convenient for me thus far, but I
understand your concern if someone issues a pull request (which hasn't
happened) who isn't part of the ASF.  The general organization of the
project is in OK shape currently, although I expect more refactoring over
time.

Why are you thinking a separate Git repository?  At some point, changes
will need to be made to the main project to support some of the changes I
have in mind:

https://github.com/mrg/CMP/wiki/Extensions-Format

What would a Bootique launcher entail?  Just launching it from Bootique or
other Bootique things inside the modeler?

mrg


On Mon, Nov 14, 2016 at 5:32 AM, Andrus Adamchik <[hidden email]>
wrote:

> Hi Mike and everybody,
>
> I suggest that we bring JavaFX Modeler at https://github.com/mrg/CMP into
> Cayenne Git. It has a chance to get better momentum here. I've been
> traveling a lot recently with Cayenne trainings and presentations, and I've
> met people on a few occasions who offered their help with the tool. There's
> no guarantee that any of this materializes yet, but I think keeping the new
> Modeler under the Apache Cayenne umbrella should help. Also consider all
> the legal issues we'll face when bringing a GitHub project with multiple
> contributors to Cayenne at a later date.
>
> So I suggest that we request a new Git repo from infra
> (cayenne-modeler2.git or something), move Mike's code in there, and then
> promote this new project on the website, the mailing lists, etc. It will be
> developed in parallel with the main repo until we are ready to make a
> release.
>
> From myself I promise a Bootique launcher contribution.
>
> Thoughts?
> Andrus
>
>
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Andrus Adamchik
Hi Mike,


> On Nov 19, 2016, at 4:26 PM, Michael Gentry <[hidden email]> wrote:
>
> Well, GitHub has certainly been convenient for me thus far, but I
> understand your concern if someone issues a pull request (which hasn't
> happened) who isn't part of the ASF.  

Talking of contributors, there was a request from Hyderabad JUG where I had presented recently to get involved in JavaFX Modeler development. I'll start a separate thread on it.

> The general organization of the project is in OK shape currently, although I expect more refactoring over time.

None of this prevents it from being developed at Apache. We don't have to officially release it, but I think having the code right here and usign the dev@ list to discuss features would help.

> Why are you thinking a separate Git repository?

Cayenne build system is crumbling under its weight (remember the whole Travis effort). I'd like to put a stop on it. Bootique project is a good case study - we develop each "subsystem" in a separate repo, still release them together. This requires an operational CI (that we already have in Cayenne) to ensure smooth integration, but allows to work on modules in isolation. (Kind of like you do now, only at Apache :))

> What would a Bootique launcher entail?  Just launching it from Bootique or
> other Bootique things inside the modeler?

Bootique will provide the launcher, but will also provide injection (Guice) and modularity system. Remember we had a discussion of modeler plugins like 10 years ago. We'll get that for free with Bootique. E.g. you'll be able to "contribute" menu items from user extensions, etc. Also I hope it will assist in Swing migration, as we can cleanly abstract the "service layer", meaning we can evolve common services for both front-ends.

Andrus
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Michael Gentry-2
On Sat, Nov 19, 2016 at 10:16 AM, Andrus Adamchik <[hidden email]>
wrote:

> > On Nov 19, 2016, at 4:26 PM, Michael Gentry <[hidden email]> wrote:
> >
> > Well, GitHub has certainly been convenient for me thus far, but I
> > understand your concern if someone issues a pull request (which hasn't
> > happened) who isn't part of the ASF.
>
> Talking of contributors, there was a request from Hyderabad JUG where I
> had presented recently to get involved in JavaFX Modeler development. I'll
> start a separate thread on it.
>

I'd be interested in hearing their thoughts.


> > The general organization of the project is in OK shape currently,
> although I expect more refactoring over time.
>
> None of this prevents it from being developed at Apache. We don't have to
> officially release it, but I think having the code right here and usign the
> dev@ list to discuss features would help.
>

Nope, it doesn't prevent it.  Was just letting you know it is in much more
reasonable shape now, if others want to look at, than it was months ago.  I
need(ed) to come to grips with some JavaFX things -- and I do not claim to
be an expert, but I think what I have is usable now, even if incomplete.

> Why are you thinking a separate Git repository?
>
> Cayenne build system is crumbling under its weight (remember the whole
> Travis effort). I'd like to put a stop on it. Bootique project is a good
> case study - we develop each "subsystem" in a separate repo, still release
> them together. This requires an operational CI (that we already have in
> Cayenne) to ensure smooth integration, but allows to work on modules in
> isolation. (Kind of like you do now, only at Apache :))
>

That's pretty much the reason I was expecting.  :-)

I'll still need to make changes to the Cayenne core, though, to support
some of the extensions I want in the modeler (annotations, etc).

> What would a Bootique launcher entail?  Just launching it from Bootique or
> > other Bootique things inside the modeler?
>
> Bootique will provide the launcher, but will also provide injection
> (Guice) and modularity system. Remember we had a discussion of modeler
> plugins like 10 years ago. We'll get that for free with Bootique. E.g.
> you'll be able to "contribute" menu items from user extensions, etc. Also I
> hope it will assist in Swing migration, as we can cleanly abstract the
> "service layer", meaning we can evolve common services for both front-ends.


Hmm, are you thinking of making everything under "Tools" pluggable?

mrg
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Andrus Adamchik

> On Nov 21, 2016, at 5:15 PM, Michael Gentry <[hidden email]> wrote:
>
>> What would a Bootique launcher entail?  Just launching it from Bootique or
>>> other Bootique things inside the modeler?
>>
>> Bootique will provide the launcher, but will also provide injection
>> (Guice) and modularity system. Remember we had a discussion of modeler
>> plugins like 10 years ago. We'll get that for free with Bootique. E.g.
>> you'll be able to "contribute" menu items from user extensions, etc. Also I
>> hope it will assist in Swing migration, as we can cleanly abstract the
>> "service layer", meaning we can evolve common services for both front-ends.
>
>
> Hmm, are you thinking of making everything under "Tools" pluggable?

Everything that is not UI - yes.

Andrus

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Andrus Adamchik

> On Nov 21, 2016, at 6:20 PM, Andrus Adamchik <[hidden email]> wrote:
>
>
>> On Nov 21, 2016, at 5:15 PM, Michael Gentry <[hidden email]> wrote:
>>
>>> What would a Bootique launcher entail?  Just launching it from Bootique or
>>>> other Bootique things inside the modeler?
>>>
>>> Bootique will provide the launcher, but will also provide injection
>>> (Guice) and modularity system. Remember we had a discussion of modeler
>>> plugins like 10 years ago. We'll get that for free with Bootique. E.g.
>>> you'll be able to "contribute" menu items from user extensions, etc. Also I
>>> hope it will assist in Swing migration, as we can cleanly abstract the
>>> "service layer", meaning we can evolve common services for both front-ends.
>>
>>
>> Hmm, are you thinking of making everything under "Tools" pluggable?
>
> Everything that is not UI - yes.


Perhaps even some UI model and controller code, but not sure how feasible this is.

Andrus
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

buddha
In reply to this post by Michael Gentry-2
Hi Andrus,

We have spoken earlier over email regarding a meetup in Java User Group, Hyderabad. I am interested in contributing, not sure where to begin though.

Thanks
Buddha

On 21/11/16, 7:45 PM, "Michael Gentry" <[hidden email]> wrote:

    On Sat, Nov 19, 2016 at 10:16 AM, Andrus Adamchik <[hidden email]>
    wrote:
   
    > > On Nov 19, 2016, at 4:26 PM, Michael Gentry <[hidden email]> wrote:
    > >
    > > Well, GitHub has certainly been convenient for me thus far, but I
    > > understand your concern if someone issues a pull request (which hasn't
    > > happened) who isn't part of the ASF.
    >
    > Talking of contributors, there was a request from Hyderabad JUG where I
    > had presented recently to get involved in JavaFX Modeler development. I'll
    > start a separate thread on it.
    >
   
    I'd be interested in hearing their thoughts.
   
   
    > > The general organization of the project is in OK shape currently,
    > although I expect more refactoring over time.
    >
    > None of this prevents it from being developed at Apache. We don't have to
    > officially release it, but I think having the code right here and usign the
    > dev@ list to discuss features would help.
    >
   
    Nope, it doesn't prevent it.  Was just letting you know it is in much more
    reasonable shape now, if others want to look at, than it was months ago.  I
    need(ed) to come to grips with some JavaFX things -- and I do not claim to
    be an expert, but I think what I have is usable now, even if incomplete.
   
    > Why are you thinking a separate Git repository?
    >
    > Cayenne build system is crumbling under its weight (remember the whole
    > Travis effort). I'd like to put a stop on it. Bootique project is a good
    > case study - we develop each "subsystem" in a separate repo, still release
    > them together. This requires an operational CI (that we already have in
    > Cayenne) to ensure smooth integration, but allows to work on modules in
    > isolation. (Kind of like you do now, only at Apache :))
    >
   
    That's pretty much the reason I was expecting.  :-)
   
    I'll still need to make changes to the Cayenne core, though, to support
    some of the extensions I want in the modeler (annotations, etc).
   
    > What would a Bootique launcher entail?  Just launching it from Bootique or
    > > other Bootique things inside the modeler?
    >
    > Bootique will provide the launcher, but will also provide injection
    > (Guice) and modularity system. Remember we had a discussion of modeler
    > plugins like 10 years ago. We'll get that for free with Bootique. E.g.
    > you'll be able to "contribute" menu items from user extensions, etc. Also I
    > hope it will assist in Swing migration, as we can cleanly abstract the
    > "service layer", meaning we can evolve common services for both front-ends.
   
   
    Hmm, are you thinking of making everything under "Tools" pluggable?
   
    mrg
   


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Andrus Adamchik
> On Nov 21, 2016, at 8:11 PM, buddha <[hidden email]> wrote:
>
> Hi Andrus,
>
> We have spoken earlier over email regarding a meetup in Java User Group, Hyderabad. I am interested in contributing, not sure where to begin though.
>
> Thanks
> Buddha

Hi Buddha,

Good seeing you here. I was also in touch with Rohit, who should be now subscribed to this list.

Some background for the rest of the dev@ subscribers... Rohit and Buddha are the folks running Hyderabad Java User Group. When I was there a little more than a week ago, we discussed contributing to open source projects and specifically to Apache Cayenne. Rohit mentioned that he and some of his colleagues have JavaFX skills, which we certainly need now.

Now some background for Rohit, Buddha and others who might want to join the fun. Apache Cayenne is shipped with CayenneModeler mapping tool written in Java Swing. Swing being yesterday's news, we decided after some discussion on this list that we'd like to create a new Modeler written in JavaFX. Other technologies were floated as alternatives (mostly various JS frameworks). But since we are all Java programmers and will need to support this codebase for years to come, JavaFX was the only realistic choice. Michael Gentry started a prototype under his GitHub account at https://github.com/mrg/CMP . In this thread we started discussing how to bring this code to Apache so that we can all develop it here.

My recommendations for the new contributors are the following:

* Fork Cayenne on GitHub and make sure you can build it locally, including the current CayenneModeler (http://cayenne.apache.org/dev/building-cayenne.html)
* Go through Cayenne tutorial (http://cayenne.apache.org/docs/4.0/tutorial/index.html), but use your local build of master branch instead of an official release for the code and for the Modeler.
* Since you will be working with the Modeler, familiarize yourself with Cayenne project structure both in its visual Modeler representation, and how it is stored in XML. Things like DbEntities, DbAttributes, DbRelationships and their Obj counterparts. You will need to understand how the ORM mapping is structured, as the Modeler is a tool to work with it.

In the meantime, current Cayenne developers will need to figure out how to organize the tasks for the JavaFX modeler.

@Mike:

since you are the author of the prototype, would you mind handling code transition to Apache and also explain the state of the JavaFX Modeler now, and your thoughts on the next dev steps and how they can be parallelized? We've sorta already started doing that, but let's get to the specifics.

Thanks,
Andrus



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Andrus Adamchik
Oh, and also I encourage other new subscribers from HJUG to introduce themselves here. Perhaps also write a few words about their areas of expertise and areas of interest in Java, etc.

Andrus

> On Nov 21, 2016, at 9:50 PM, Andrus Adamchik <[hidden email]> wrote:
>
>> On Nov 21, 2016, at 8:11 PM, buddha <[hidden email]> wrote:
>>
>> Hi Andrus,
>>
>> We have spoken earlier over email regarding a meetup in Java User Group, Hyderabad. I am interested in contributing, not sure where to begin though.
>>
>> Thanks
>> Buddha
>
> Hi Buddha,
>
> Good seeing you here. I was also in touch with Rohit, who should be now subscribed to this list.
>
> Some background for the rest of the dev@ subscribers... Rohit and Buddha are the folks running Hyderabad Java User Group. When I was there a little more than a week ago, we discussed contributing to open source projects and specifically to Apache Cayenne. Rohit mentioned that he and some of his colleagues have JavaFX skills, which we certainly need now.
>
> Now some background for Rohit, Buddha and others who might want to join the fun. Apache Cayenne is shipped with CayenneModeler mapping tool written in Java Swing. Swing being yesterday's news, we decided after some discussion on this list that we'd like to create a new Modeler written in JavaFX. Other technologies were floated as alternatives (mostly various JS frameworks). But since we are all Java programmers and will need to support this codebase for years to come, JavaFX was the only realistic choice. Michael Gentry started a prototype under his GitHub account at https://github.com/mrg/CMP . In this thread we started discussing how to bring this code to Apache so that we can all develop it here.
>
> My recommendations for the new contributors are the following:
>
> * Fork Cayenne on GitHub and make sure you can build it locally, including the current CayenneModeler (http://cayenne.apache.org/dev/building-cayenne.html)
> * Go through Cayenne tutorial (http://cayenne.apache.org/docs/4.0/tutorial/index.html), but use your local build of master branch instead of an official release for the code and for the Modeler.
> * Since you will be working with the Modeler, familiarize yourself with Cayenne project structure both in its visual Modeler representation, and how it is stored in XML. Things like DbEntities, DbAttributes, DbRelationships and their Obj counterparts. You will need to understand how the ORM mapping is structured, as the Modeler is a tool to work with it.
>
> In the meantime, current Cayenne developers will need to figure out how to organize the tasks for the JavaFX modeler.
>
> @Mike:
>
> since you are the author of the prototype, would you mind handling code transition to Apache and also explain the state of the JavaFX Modeler now, and your thoughts on the next dev steps and how they can be parallelized? We've sorta already started doing that, but let's get to the specifics.
>
> Thanks,
> Andrus
>
>
>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Michael Gentry-2
On Mon, Nov 21, 2016 at 1:56 PM, Andrus Adamchik <[hidden email]>
wrote:

> > @Mike:
> >
> > since you are the author of the prototype, would you mind handling code
> transition to Apache and also explain the state of the JavaFX Modeler now,
> and your thoughts on the next dev steps and how they can be parallelized?
> We've sorta already started doing that, but let's get to the specifics.
>


Hi Andrus,

The README.md for the project (shown on the GitHub project page) already
has a fair amount of "getting started" details, although I'm sure it could
be expanded upon.

As for parallelizing tasks, I've mainly been working on the main editing
area (DataDomain, DataMap, DataNode, Object/Database Entities), but there
are still some gaps in there (Object/Database Relationships, for
starters).  I've stubbed out some of the preferences UI and it is pretty
isolated, but needs a lot of code and more UI work done. The code in the
Cayenne core that reads/writes the model files (and adds the new modeler
features) and exposes the data to the UI and the Velocity templates is
another quite-isolated area and has to be completed before the extended
features can be added.  There is a GitHub wiki page for my initial thoughts
on the model file changes.  Nothing under the "Tools" menu has been done.
Undo/Redo are on my radar, too, plus Copy/Paste (especially of more complex
items).  I haven't touched Embeddables or Queries yet.  There are other
areas to tackle, but those are some big/visible ones.

Do we want to try to have a GitHub clone of a new Apache repository like we
do for Cayenne proper?  It can be nicer/easier to use GitHub for Markdown,
Wiki, pull requests, etc.  Alternatively, just have a "javafx-modeler"
directory under the main Cayenne project, but don't have it building as
part of the main pom.xml?

Thanks,

mrg

PS. It should be emphasized that anyone committing to the project will have
to have an ICLA in place or we cannot accept the contribution:
https://www.apache.org/licenses/icla.txt (has to be in place even if not a
Cayenne committer).
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Andrus Adamchik

> On Nov 21, 2016, at 10:23 PM, Michael Gentry <[hidden email]> wrote:
>
> Do we want to try to have a GitHub clone of a new Apache repository like we
> do for Cayenne proper?  

Absolutely.


> PS. It should be emphasized that anyone committing to the project will have
> to have an ICLA in place or we cannot accept the contribution:
> https://www.apache.org/licenses/icla.txt (has to be in place even if not a
> Cayenne committer).

Good point.

Andrus

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

Michael Gentry
In reply to this post by Michael Gentry-2
On Mon, Nov 21, 2016 at 2:23 PM, Michael Gentry <[hidden email]>
wrote:

>
> As for parallelizing tasks, I've mainly been working on the main editing
> area (DataDomain, DataMap, DataNode, Object/Database Entities), but there
> are still some gaps in there (Object/Database Relationships, for
> starters).  I've stubbed out some of the preferences UI and it is pretty
> isolated, but needs a lot of code and more UI work done. The code in the
> Cayenne core that reads/writes the model files (and adds the new modeler
> features) and exposes the data to the UI and the Velocity templates is
> another quite-isolated area and has to be completed before the extended
> features can be added.  There is a GitHub wiki page for my initial thoughts
> on the model file changes.  Nothing under the "Tools" menu has been done.
> Undo/Redo are on my radar, too, plus Copy/Paste (especially of more complex
> items).  I haven't touched Embeddables or Queries yet.  There are other
> areas to tackle, but those are some big/visible ones.
>

Another task I forgot which should be pretty independent is creating
OS-specific launchers for Linux, OS X/macOS, and Windows.

mrg
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: JavaFX modeler

buddha
In reply to this post by Andrus Adamchik
Thanks Andrus,  I will try the recommendations for new contributors.

I do have some expertise in JavaFX. I have been a java developer since 8 years or so. I did learn JavaFX on my own and authored a course in pluralsight.com and working on another javafx related course. I hope to contribute for this Modeler.

Thanks
Buddha



On 22/11/16, 12:20 AM, "Andrus Adamchik" <[hidden email]> wrote:

    > On Nov 21, 2016, at 8:11 PM, buddha <[hidden email]> wrote:
    >
    > Hi Andrus,
    >
    > We have spoken earlier over email regarding a meetup in Java User Group, Hyderabad. I am interested in contributing, not sure where to begin though.
    >
    > Thanks
    > Buddha
   
    Hi Buddha,
   
    Good seeing you here. I was also in touch with Rohit, who should be now subscribed to this list.
   
    Some background for the rest of the dev@ subscribers... Rohit and Buddha are the folks running Hyderabad Java User Group. When I was there a little more than a week ago, we discussed contributing to open source projects and specifically to Apache Cayenne. Rohit mentioned that he and some of his colleagues have JavaFX skills, which we certainly need now.
   
    Now some background for Rohit, Buddha and others who might want to join the fun. Apache Cayenne is shipped with CayenneModeler mapping tool written in Java Swing. Swing being yesterday's news, we decided after some discussion on this list that we'd like to create a new Modeler written in JavaFX. Other technologies were floated as alternatives (mostly various JS frameworks). But since we are all Java programmers and will need to support this codebase for years to come, JavaFX was the only realistic choice. Michael Gentry started a prototype under his GitHub account at https://github.com/mrg/CMP . In this thread we started discussing how to bring this code to Apache so that we can all develop it here.
   
    My recommendations for the new contributors are the following:
   
    * Fork Cayenne on GitHub and make sure you can build it locally, including the current CayenneModeler (http://cayenne.apache.org/dev/building-cayenne.html)
    * Go through Cayenne tutorial (http://cayenne.apache.org/docs/4.0/tutorial/index.html), but use your local build of master branch instead of an official release for the code and for the Modeler.
    * Since you will be working with the Modeler, familiarize yourself with Cayenne project structure both in its visual Modeler representation, and how it is stored in XML. Things like DbEntities, DbAttributes, DbRelationships and their Obj counterparts. You will need to understand how the ORM mapping is structured, as the Modeler is a tool to work with it.
   
    In the meantime, current Cayenne developers will need to figure out how to organize the tasks for the JavaFX modeler.
   
    @Mike:
   
    since you are the author of the prototype, would you mind handling code transition to Apache and also explain the state of the JavaFX Modeler now, and your thoughts on the next dev steps and how they can be parallelized? We've sorta already started doing that, but let's get to the specifics.
   
    Thanks,
    Andrus
   
   
   
   


Loading...