NiFi Front End Development

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

NiFi Front End Development

Alex Aversa
Hello,

I am interested in doing some front-end work on Apache Nifi. I am currently
trying to figure out the best practice to setup the project such that I can
change the front end files (*.css, *.js,  etc) in the nifi-web-ui component
and have them sync in the Jetty web container in near real time. Currently,
I've have been forced run the "package" maven build in the nifi-web-ui
component and that is requiring me to wait approximately 20 seconds while
it re-packages all the front-end files prior to copying them out to the
Jetty container and be able to view my changes. It appears the "package"
step is aggregating multiple source files into  common files with a custom
naming convention, preventing any simple direct copy of these static files
from the project into the Jetty container when working on the UI. I wanted
to know if anyone is aware of a setting I can tweak in the project that
makes the project go to a "development" mode where it skips the source file
aggregation and renaming step prior to generating the war file for the
Jetty container and ultimately keeps the nifi-web-ui maintains the same
source structure in the web container? If anyone has any insight/guidance
on if this is possible, it would be a huge help on this end. Waiting 20
seconds to view minor changes to static files is an exercise in frustration
I'd like to avoid. My maven is rusty at best, so the solution didn't seem
very apparent to me when I looked at the *.pom files. Many thanks in
advance for any assistance you can render.

Take care,

--Alex
Reply | Threaded
Open this post in threaded view
|

Re: NiFi Front End Development

Alex Aversa
Ok - Found the setting in the *nifi-web-ui > pom.xml* that prevents the
aggregation of the front end files. All I needed to do was deactivate
the "*minify
and compress*" profile:


*<profile>*

*      <id>minify and compress</id>*

*     <activation>*

*          <activeByDefault>false</activeByDefault>*
*     </activation>*

...and the project structure stays intact when installed on the Jetty
container allowing me to make updates real-time. If anyone has any other
sources that have recommendations/best practices for the developer setup
when working with the front end, it would be a huge help as I didn't see
much documentation out there.

Thanks,

--alex




On Wed, Nov 1, 2017 at 8:20 AM, Alex Aversa <[hidden email]> wrote:

> Hello,
>
> I am interested in doing some front-end work on Apache Nifi. I am
> currently trying to figure out the best practice to setup the project such
> that I can change the front end files (*.css, *.js,  etc) in the
> nifi-web-ui component and have them sync in the Jetty web container in near
> real time. Currently, I've have been forced run the "package" maven build
> in the nifi-web-ui component and that is requiring me to wait approximately
> 20 seconds while it re-packages all the front-end files prior to copying
> them out to the Jetty container and be able to view my changes. It appears
> the "package" step is aggregating multiple source files into  common files
> with a custom naming convention, preventing any simple direct copy of these
> static files from the project into the Jetty container when working on the
> UI. I wanted to know if anyone is aware of a setting I can tweak in the
> project that makes the project go to a "development" mode where it skips
> the source file aggregation and renaming step prior to generating the war
> file for the Jetty container and ultimately keeps the nifi-web-ui maintains
> the same source structure in the web container? If anyone has any
> insight/guidance on if this is possible, it would be a huge help on this
> end. Waiting 20 seconds to view minor changes to static files is an
> exercise in frustration I'd like to avoid. My maven is rusty at best, so
> the solution didn't seem very apparent to me when I looked at the *.pom
> files. Many thanks in advance for any assistance you can render.
>
> Take care,
>
> --Alex
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: NiFi Front End Development

Matt Gilman
Alex,

That profile is what allows the sources to not be minified or aggregated.
Once NiFi is started, those front-end resources are deployed to

<NIFI_HOME>/work/jetty/nifi-web-ui-1.5.0-SNAPSHOT.war/webapp

If your making changes within the NiFi codebase, you can rebuild the
nifi-web-ui module and then nifi-framework-nar (which has a dependency on
nifi-web-ui). Once the resulting framework nar is copied into your
<NIFI_HOME>/lib directory you can restart NiFi to realize your changes.

Hope this helps

Matt

On Wed, Nov 1, 2017 at 9:06 AM, Alex Aversa <[hidden email]> wrote:

> Ok - Found the setting in the *nifi-web-ui > pom.xml* that prevents the
> aggregation of the front end files. All I needed to do was deactivate
> the "*minify
> and compress*" profile:
>
>
> *<profile>*
>
> *      <id>minify and compress</id>*
>
> *     <activation>*
>
> *          <activeByDefault>false</activeByDefault>*
> *     </activation>*
>
> ...and the project structure stays intact when installed on the Jetty
> container allowing me to make updates real-time. If anyone has any other
> sources that have recommendations/best practices for the developer setup
> when working with the front end, it would be a huge help as I didn't see
> much documentation out there.
>
> Thanks,
>
> --alex
>
>
>
>
> On Wed, Nov 1, 2017 at 8:20 AM, Alex Aversa <[hidden email]> wrote:
>
> > Hello,
> >
> > I am interested in doing some front-end work on Apache Nifi. I am
> > currently trying to figure out the best practice to setup the project
> such
> > that I can change the front end files (*.css, *.js,  etc) in the
> > nifi-web-ui component and have them sync in the Jetty web container in
> near
> > real time. Currently, I've have been forced run the "package" maven build
> > in the nifi-web-ui component and that is requiring me to wait
> approximately
> > 20 seconds while it re-packages all the front-end files prior to copying
> > them out to the Jetty container and be able to view my changes. It
> appears
> > the "package" step is aggregating multiple source files into  common
> files
> > with a custom naming convention, preventing any simple direct copy of
> these
> > static files from the project into the Jetty container when working on
> the
> > UI. I wanted to know if anyone is aware of a setting I can tweak in the
> > project that makes the project go to a "development" mode where it skips
> > the source file aggregation and renaming step prior to generating the war
> > file for the Jetty container and ultimately keeps the nifi-web-ui
> maintains
> > the same source structure in the web container? If anyone has any
> > insight/guidance on if this is possible, it would be a huge help on this
> > end. Waiting 20 seconds to view minor changes to static files is an
> > exercise in frustration I'd like to avoid. My maven is rusty at best, so
> > the solution didn't seem very apparent to me when I looked at the *.pom
> > files. Many thanks in advance for any assistance you can render.
> >
> > Take care,
> >
> > --Alex
> >
> >
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: NiFi Front End Development

Alex Aversa
It does. Thanks Matt for your help with this!

Take care,

-alex

On Wed, Nov 1, 2017 at 9:29 AM, Matt Gilman <[hidden email]> wrote:

> Alex,
>
> That profile is what allows the sources to not be minified or aggregated.
> Once NiFi is started, those front-end resources are deployed to
>
> <NIFI_HOME>/work/jetty/nifi-web-ui-1.5.0-SNAPSHOT.war/webapp
>
> If your making changes within the NiFi codebase, you can rebuild the
> nifi-web-ui module and then nifi-framework-nar (which has a dependency on
> nifi-web-ui). Once the resulting framework nar is copied into your
> <NIFI_HOME>/lib directory you can restart NiFi to realize your changes.
>
> Hope this helps
>
> Matt
>
> On Wed, Nov 1, 2017 at 9:06 AM, Alex Aversa <[hidden email]> wrote:
>
> > Ok - Found the setting in the *nifi-web-ui > pom.xml* that prevents the
> > aggregation of the front end files. All I needed to do was deactivate
> > the "*minify
> > and compress*" profile:
> >
> >
> > *<profile>*
> >
> > *      <id>minify and compress</id>*
> >
> > *     <activation>*
> >
> > *          <activeByDefault>false</activeByDefault>*
> > *     </activation>*
> >
> > ...and the project structure stays intact when installed on the Jetty
> > container allowing me to make updates real-time. If anyone has any other
> > sources that have recommendations/best practices for the developer setup
> > when working with the front end, it would be a huge help as I didn't see
> > much documentation out there.
> >
> > Thanks,
> >
> > --alex
> >
> >
> >
> >
> > On Wed, Nov 1, 2017 at 8:20 AM, Alex Aversa <[hidden email]>
> wrote:
> >
> > > Hello,
> > >
> > > I am interested in doing some front-end work on Apache Nifi. I am
> > > currently trying to figure out the best practice to setup the project
> > such
> > > that I can change the front end files (*.css, *.js,  etc) in the
> > > nifi-web-ui component and have them sync in the Jetty web container in
> > near
> > > real time. Currently, I've have been forced run the "package" maven
> build
> > > in the nifi-web-ui component and that is requiring me to wait
> > approximately
> > > 20 seconds while it re-packages all the front-end files prior to
> copying
> > > them out to the Jetty container and be able to view my changes. It
> > appears
> > > the "package" step is aggregating multiple source files into  common
> > files
> > > with a custom naming convention, preventing any simple direct copy of
> > these
> > > static files from the project into the Jetty container when working on
> > the
> > > UI. I wanted to know if anyone is aware of a setting I can tweak in the
> > > project that makes the project go to a "development" mode where it
> skips
> > > the source file aggregation and renaming step prior to generating the
> war
> > > file for the Jetty container and ultimately keeps the nifi-web-ui
> > maintains
> > > the same source structure in the web container? If anyone has any
> > > insight/guidance on if this is possible, it would be a huge help on
> this
> > > end. Waiting 20 seconds to view minor changes to static files is an
> > > exercise in frustration I'd like to avoid. My maven is rusty at best,
> so
> > > the solution didn't seem very apparent to me when I looked at the *.pom
> > > files. Many thanks in advance for any assistance you can render.
> > >
> > > Take care,
> > >
> > > --Alex
> > >
> > >
> > >
> >
>