Kevin, This may well be a very interesting approach which opens up a lot of options for us in how we tackle a 2.x...
Thanks On Tue, Aug 3, 2021 at 8:45 AM Kevin Doran <kdoran.apa...@gmail.com> wrote: > > Outside of core NiFi, for MiNiFi, I think it would be beneficial to align > MiNiFi Java and MiNiFI C++ to use the same method(s) for command and control > / flow deployment. This was discussed when MiNiFi Java was merged into the > NiFi codebase [1]. > > My proposal would be to create a Java implementation of the C2 Protocol used > by MiNiFi C++, both server-side and client-side, to allow deploying to MiNiFi > Java instances from a centralize flow definition. Thanks to the unification > of MiNiFi Java and NiFi, this could likely also be added as a capability of > NiFi at that same time. > > If we are able to do this on the 1.x line, then I would also support > deprecating other methods of flow deployment to MiNiFi outlined in [1] and > removing them in a 2.x release. > > [1] https://github.com/apache/nifi/pull/4933#issuecomment-808411977 > <https://github.com/apache/nifi/pull/4933#issuecomment-808411977> > [2] https://cwiki.apache.org/confluence/display/MINIFI/C2+Design > <https://cwiki.apache.org/confluence/display/MINIFI/C2+Design> > > Thanks, > Kevin > > > On Aug 3, 2021, at 10:07 AM, David Handermann <exceptionfact...@gmail.com> > > wrote: > > > > Thanks for the continued discussion around what can or should be removed. > > Having a clear migration path from version 1 to version 2 will be very > > important for supporting current deployments. > > > > Following the example of some other projects, one way to consider the > > upgrade is from the point of view of deprecation warnings. If implemented > > correctly, an installation of NiFi running the latest minor release of > > version 1, and showing no deprecation warnings, should be upgradeable to > > version 2 without any changes. Making this work involves accurately tagging > > components and methods with deprecation indicators, and providing a clear > > way to observe deprecation warnings. With the current version containing > > both deprecated components and deprecated methods in various classes, this > > would involve some work to get right. A simple approach might be a named > > logger for deprecation warnings, which would write a separate log file. A > > more advanced approach might involve a tool to analyze the system and flow > > configurations. Either way, it seems that some additional work in a minor > > release version is necessary before considering a major release version. > > > > One other point on compatibility: as long as the core component API > > definition remains backwards compatible, it should be possible to run older > > components. This provides a transition option for customers using > > components such as PostHTTP, or any others that are not actively > > maintained. At some point it may become necessary to break compatibility at > > that level, but at least for version 2, maintaining component API > > compatibility is key. > > > > Regards, > > David Handermann > > > > On Sun, Aug 1, 2021 at 10:23 AM Mark Bean <mark.o.b...@gmail.com> wrote: > > > >> I created a JIRA ticket to investigate and improve the performance of > >> InvokeHTTP. It includes a flow definition for benchmarking the performance > >> of both PostHTTP and InvokeHTTP. > >> > >> https://issues.apache.org/jira/browse/NIFI-8968 > >> > >> Thanks, > >> Mark > >> > >> On Fri, Jul 30, 2021 at 6:41 PM Adam Taft <a...@adamtaft.com> wrote: > >> > >>> I'm not seeing the side thread that was going to discuss deprecation of > >>> PostHTTP. Has that thread started and I just don't see it? > >>> > >>> One (significant?) concern with PostHTTP is the smooth integration of > >>> NiFi-to-NiFi communication that is very transparently enabled with the > >>> ListenHTTP and PostHTTP processors. There's some special logic in there > >> for > >>> handling flowfiles that InvokeHTTP doesn't really (nor should really) > >> have. > >>> > >>> I know of several (large) NiFi installations that rely on the PostHTTP / > >>> ListenHTTP combination. It has enabled NiFi to NiFi communication for > >> folks > >>> reluctant or unable to enable site-to-site type configuration. > >>> > >>> Honestly, I don't know why we'd want to "deprecate" any processor, as > >>> opposed to just moving it to a new location. If these processors can be > >>> ported and maintained to whatever the 2.0 API looks like, there's > >> possibly > >>> little harm keeping them around. > >>> > >>> And by the way, what happened to the "marketplace" concept? Is this being > >>> considered for 2.0 as well? Because relocating the deprecated processors > >>> to an external nar might be the best solution. Losing PostHTTP entirely I > >>> think would be a mistake, but I'd conceptually support relocating it. > >>> > >>> Thanks, > >>> > >>> /Adam > >>> > >>> On Tue, Jul 27, 2021 at 2:11 PM Joe Witt <joe.w...@gmail.com> wrote: > >>> > >>>> Looks like we just need to knock out 5 JIRAs :) [1] > >>>> > >>>> I felt like we had a label folks were using at one point but quickly > >>>> looking revealed nothing exciting. After this confluence page > >>>> stabilizes a bit we can probably knock out some JIRAs and such. > >>>> > >>>> [1] https://issues.apache.org/jira/projects/NIFI/versions/12339599 > >>>> > >>>> On Tue, Jul 27, 2021 at 1:06 PM Otto Fowler <ottobackwa...@gmail.com> > >>>> wrote: > >>>>> > >>>>> I find myself wishing I had a list of all the jiras / issues that > >> have > >>>>> been put off for a 2.0 release because they required some change or > >>>> another > >>>>> :( > >>>>> > >>>>> From: Joe Witt <joe.w...@gmail.com> <joe.w...@gmail.com> > >>>>> Reply: dev@nifi.apache.org <dev@nifi.apache.org> < > >> dev@nifi.apache.org> > >>>>> Date: July 27, 2021 at 12:30:35 > >>>>> To: dev@nifi.apache.org <dev@nifi.apache.org> <dev@nifi.apache.org> > >>>>> Subject: Re: [DISCUSS] NiFi 2.0 Release Goals > >>>>> > >>>>> A few thoughts: > >>>>> > >>>>> 1. I would love to see deprecation notices show up in the UI in > >>>>> various ways to help motivate users to move off things to more > >>>>> supportable things. That is not a prerequisite for anything happening > >>>>> however. Just a good feature/nice thing to do for users when someone > >>>>> is able to tackle it. > >>>>> > >>>>> 2. The decision to deprecate something and to further remove it need > >>>>> not mean there is a superior solution available. If that thing itself > >>>>> isn't getting the love/attention it needs to be > >>>>> maintained/supported/healthy going forward that alone is enough to > >>>>> remove it. That might well be the case with PostHTTP [1] and for > >>>>> comparison you can see how much effort has gone into InvokeHTTP [2]. > >>>>> > >>>>> 3. When discussing a 2.0 release each thing we add as a 'must do' the > >>>>> further away from reality such a release will become. We'll have to > >>>>> get very specific about 'musts' vs 'wants'. > >>>>> > >>>>> [1] > >>>>> > >>>> > >>> > >> https://github.com/apache/nifi/commits/11e9ff377333784974fa55f41483c4281d80da50/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java > >>>>> [2] > >>>>> > >>>> > >>> > >> https://github.com/apache/nifi/commits/cc554a6b110dfa45767bcb13d834ea4265d6dfe6/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java > >>>>> > >>>>> On Tue, Jul 27, 2021 at 8:47 AM David Handermann > >>>>> <exceptionfact...@apache.org> wrote: > >>>>>> > >>>>>> Thanks Mark, providing a template or comparison statistics with > >> Java > >>>>>> versions and component configuration details would be very helpful. > >>> If > >>>> it > >>>>>> is possible to run tests using a public API or deployable service, > >>> that > >>>>>> would also help confirm potential differences. > >>>>>> > >>>>>> Showing a deprecation notice in the UI could be helpful, perhaps > >> as a > >>>>>> configurable option. NIFI-8650 describes a general Flow Analysis > >>>>>> capability, and it seems like that might be one possible way to > >>> surface > >>>>>> deprecation warnings. For something more specific to component > >>>>> deprecation, > >>>>>> it seems important to find a balance between making it obvious and > >>>> making > >>>>>> it something that ends up getting ignored. > >>>>>> > >>>>>> Regards, > >>>>>> David Handermann > >>>>>> > >>>>>> On Tue, Jul 27, 2021 at 10:28 AM Mark Bean <mark.o.b...@gmail.com> > >>>> wrote: > >>>>>> > >>>>>>> I'll start a new thread for PostHTTP when I get a template and/or > >>>>> detailed > >>>>>>> stats. > >>>>>>> > >>>>>>> I know the deprecation is noted in the documentation. That's a > >>>>> necessary > >>>>>>> and minimum level of notification. I was suggesting it be more > >>>> obvious > >>>>> in > >>>>>>> the UI. I think it would be beneficial to somehow be aware of the > >>>>>>> deprecation status simply by looking at the flow (perhaps even on > >>> the > >>>>>>> summary pages too), and without having to open the documentation > >>> for > >>>>> every > >>>>>>> processor to confirm whether or not a component is marked as > >>>>> deprecated. > >>>>>>> > >>>>>>> Thanks, > >>>>>>> Mark > >>>>>>> > >>>>>>> > >>>>>>> On Tue, Jul 27, 2021 at 11:16 AM David Handermann < > >>>>>>> exceptionfact...@apache.org> wrote: > >>>>>>> > >>>>>>>> Mark, > >>>>>>>> > >>>>>>>> Thanks for the feedback. It may be better to start a separate > >>>> thread > >>>>> on > >>>>>>>> PostHTTP, but can you provide an example flow demonstrating the > >>>>>>> performance > >>>>>>>> differences between PostHTTP and InvokeHTTP? > >>>>>>>> > >>>>>>>> PostHTTP uses the Apache HttpComponents library, whereas > >>> InvokeHTTP > >>>>> uses > >>>>>>>> OkHttp. NiFi 1.13.2 and 1.14.0 included major version updates > >> for > >>>>> OkHttp, > >>>>>>>> so it would be important to test with the most recent version. > >> It > >>>> is > >>>>> also > >>>>>>>> worth noting that test classes for PostHTTP are now integration > >>>> tests > >>>>> as > >>>>>>>> opposed to unit tests, which means they are not executed as > >> part > >>> of > >>>>> the > >>>>>>>> automated builds. > >>>>>>>> > >>>>>>>> The NiFi documentation includes the contents of the > >>>> DeprecationNotice > >>>>> for > >>>>>>>> PostHTTP: > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >>> > >> https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.14.0/org.apache.nifi.processors.standard.PostHTTP/index.html > >>>>>>>> > >>>>>>>> Regards, > >>>>>>>> David Handermann > >>>>>>>> > >>>>>>>> On Tue, Jul 27, 2021 at 9:56 AM Mark Bean < > >> mark.o.b...@gmail.com > >>>> > >>>>> wrote: > >>>>>>>> > >>>>>>>>> I'm strongly in favor of reducing tech debt, and moving > >>>>> deliberately > >>>>>>> to a > >>>>>>>>> 2.0 release. I have a concern with just one processor that is > >>>>> currently > >>>>>>>>> marked as deprecated: PostHTTP. (I have not evaluated > >>>> specifically > >>>>> any > >>>>>>>>> other deprecated components; I cannot say if there are or are > >>> not > >>>>>>> similar > >>>>>>>>> issues elsewhere.) I understand the rationale for deprecating > >>>> this > >>>>>>>>> processor in that it eliminates a processor whose > >> functionality > >>>> is > >>>>>>>>> available elsewhere, specifically in the more flexible > >>>> InvokeHTTP. > >>>>>>>> However, > >>>>>>>>> in my experience and testing, PostHTTP performs transfers > >> with > >>>> far > >>>>>>>> greater > >>>>>>>>> throughput than InvokeHTTP. I would not be in favor of > >> removing > >>>>>>> PostHTTP > >>>>>>>>> unless/until InvokeHTTP is refactored to increase its > >>> throughput > >>>>>>>>> capability. > >>>>>>>>> > >>>>>>>>> Has anyone else continued to use PostHTTP over InvokeHTTP for > >>>>> similar > >>>>>>>>> reasons? Or, is there a performance-related configuration for > >>>>>>> InvokeHTTP > >>>>>>>> I > >>>>>>>>> may have missed? > >>>>>>>>> > >>>>>>>>> Also, in order to help facilitate a smooth transition to 2.0 > >>>> from a > >>>>>>> user > >>>>>>>>> perspective, would it be advisable to add some sort of visual > >>>>> indicator > >>>>>>>> in > >>>>>>>>> the UI for components that are currently annotated as > >>>> @Deprecated? > >>>>> This > >>>>>>>>> might help users proactively modify their flow prior to a > >>> release > >>>>> that > >>>>>>>>> would otherwise break it. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> On Mon, Jul 26, 2021 at 5:02 PM Bryan Bende < > >> bbe...@gmail.com> > >>>>> wrote: > >>>>>>>>> > >>>>>>>>>> With the merging of MiNiFi and registry into the NiFi repo, > >>>> we've > >>>>>>>>>> actually gone more towards a mono-repo where everything is > >>>>> released > >>>>>>>>>> together. Eventually it would still be nice to have a > >> smaller > >>>>> base > >>>>>>>>>> distribution containing just the framework and standard > >> NARs, > >>>> but > >>>>> it > >>>>>>>>>> is hard to tackle that until we provide a way for users to > >>>> easily > >>>>>>>>>> obtain the NARs in some other way. > >>>>>>>>>> > >>>>>>>>>> On Mon, Jul 26, 2021 at 4:20 PM Edward Armes < > >>>>> edward.ar...@gmail.com > >>>>>>>> > >>>>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>> Given the major version number shift and the spliting up > >> of > >>>>>>>> processors > >>>>>>>>>> into > >>>>>>>>>>> multiple NAR's. I'd like to suggest that we start > >>>> individually > >>>>>>>>> versioning > >>>>>>>>>>> individual NARs/ bundles. > >>>>>>>>>>> > >>>>>>>>>>> I can see this bringing a large number of benifits > >>> including > >>>>> making > >>>>>>>>> Nifi > >>>>>>>>>>> more deployable with things RPM, but also potentially > >>>> allowing > >>>>>>> those > >>>>>>>>> that > >>>>>>>>>>> have to deploy managed Nifi instances easier to upgrade. > >>>>>>>>>>> > >>>>>>>>>>> Edward > >>>>>>>>>>> > >>>>>>>>>>> On Mon, 26 Jul 2021, 20:42 Otto Fowler, < > >>>> ottobackwa...@gmail.com> > >>>>> > >>>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>>> The issue with updating the aws sdk is if it breaks any > >>> one > >>>>> of > >>>>>>> the > >>>>>>>>>>>> processors. > >>>>>>>>>>>> the Web Gateway API invoke processor for example is not > >>>> using > >>>>> a > >>>>>>>> high > >>>>>>>>>> level > >>>>>>>>>>>> purpose build client and may break. > >>>>>>>>>>>> > >>>>>>>>>>>> If we change the aws version, we need to coordinate in > >>>> such a > >>>>> way > >>>>>>>>> that > >>>>>>>>>> they > >>>>>>>>>>>> all > >>>>>>>>>>>> can come along reasonably. > >>>>>>>>>>>> IE: what happens if 1 or 2 break but the rest or OK? > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> From: David Handermann <exceptionfact...@apache.org> > >>>>>>>>>>>> <exceptionfact...@apache.org> > >>>>>>>>>>>> Reply: dev@nifi.apache.org <dev@nifi.apache.org> < > >>>>>>>>> dev@nifi.apache.org> > >>>>>>>>>>>> Date: July 26, 2021 at 09:33:42 > >>>>>>>>>>>> To: dev@nifi.apache.org <dev@nifi.apache.org> < > >>>>>>> dev@nifi.apache.org > >>>>>>>>> > >>>>>>>>>>>> Subject: Re: [DISCUSS] NiFi 2.0 Release Goals > >>>>>>>>>>>> > >>>>>>>>>>>> Chris, > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks for the reply and recommendations. It seems like > >>>> some > >>>>> of > >>>>>>> the > >>>>>>>>>> work to > >>>>>>>>>>>> reorganize the module structure could be done outside > >> of > >>> a > >>>>> major > >>>>>>>>>> release, > >>>>>>>>>>>> but it would be great to target any breaking changes > >> for > >>>> 2.0. > >>>>>>>>> Perhaps a > >>>>>>>>>>>> separate feature proposal on module restructuring, with > >>> the > >>>>> goal > >>>>>>> of > >>>>>>>>>>>> supporting optimized builds, would be a helpful way to > >>> move > >>>>> that > >>>>>>>> part > >>>>>>>>>> of > >>>>>>>>>>>> the discussion forward. > >>>>>>>>>>>> > >>>>>>>>>>>> Regarding updating AWS SDK to version 2, it seems like > >>> that > >>>>> might > >>>>>>>> be > >>>>>>>>>>>> possible now. I haven't taken a close look at the > >>>> referencing > >>>>>>>>>> components, > >>>>>>>>>>>> so I'm not sure about the level of effort involved. > >> Minor > >>>>> NiFi > >>>>>>>>> version > >>>>>>>>>>>> updates have incorporated major new versions of > >>>> dependencies. > >>>>> For > >>>>>>>>>> example, > >>>>>>>>>>>> NiFi 1.14 included an upgrade from Spring Framework 4 > >> to > >>> 5. > >>>>> On > >>>>>>> the > >>>>>>>>> one > >>>>>>>>>>>> hand, including the AWS SDK update as part of a major > >>>> release > >>>>>>> seems > >>>>>>>>>>>> helpful, but unless there are changes that break > >> existing > >>>>>>> component > >>>>>>>>>>>> properties, upgrading the AWS SDK could be worked > >>>>> independently. > >>>>>>>>>> Others may > >>>>>>>>>>>> have more insight into particular usage of that > >> library. > >>>>>>>>>>>> > >>>>>>>>>>>> Regards, > >>>>>>>>>>>> David Handermann > >>>>>>>>>>>> > >>>>>>>>>>>> On Sun, Jul 25, 2021 at 2:12 AM Chris Sampson > >>>>>>>>>>>> <chris.samp...@naimuri.com.invalid> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>>> Might be worth considering refactoring the build as > >>> part > >>>> of > >>>>>>> this > >>>>>>>>> work > >>>>>>>>>>>> too, > >>>>>>>>>>>>> e.g. only building the bits of the repo affected by a > >>>>> commit, > >>>>>>>> etc. > >>>>>>>>> - > >>>>>>>>>>>>> discussed briefly in previous threads but don't think > >>> any > >>>>>>> changes > >>>>>>>>>> made > >>>>>>>>>>>> yet. > >>>>>>>>>>>>> If NARs/components are likely to be split up and > >>>> refactored > >>>>>>> then > >>>>>>>>> such > >>>>>>>>>>>> work > >>>>>>>>>>>>> around the build probably makes sense to consider. > >>>>>>>>>>>>> > >>>>>>>>>>>>> I've a couple of PRs open that include updates to > >>>>> Elasticsearch > >>>>>>>>>> versions > >>>>>>>>>>>>> already, although I stopped at 7.10.2 (after which > >>>> Elastic > >>>>>>>> changed > >>>>>>>>>>>> licence) > >>>>>>>>>>>>> in case there were licence concerns. But more work > >> can > >>> be > >>>>> done > >>>>>>> to > >>>>>>>>>> tidy up > >>>>>>>>>>>>> the processors, absolutely. > >>>>>>>>>>>>> > >>>>>>>>>>>>> AWS libraries to v2 would seem a sensible move and a > >>>>> refactor > >>>>>>> of > >>>>>>>>>> those > >>>>>>>>>>>>> processors as well. > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> Cheers, > >>>>>>>>>>>>> > >>>>>>>>>>>>> Chris Sampson > >>>>>>>>>>>>> > >>>>>>>>>>>>> On Sat, 24 Jul 2021, 17:47 David Handermann, < > >>>>>>>>>>>> exceptionfact...@apache.org> > >>>>>>>>>>>> > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>>> Thanks for pointing out the standard NAR bundles, > >>> Mark. > >>>>> There > >>>>>>>>> are a > >>>>>>>>>>>>> number > >>>>>>>>>>>>>> of components in the standard NAR bundles with > >>>> particular > >>>>>>>>>> dependencies > >>>>>>>>>>>>> that > >>>>>>>>>>>>>> would make more sense in separate NARs. > >> Reorganizing > >>>> the > >>>>>>>> standard > >>>>>>>>>> NAR > >>>>>>>>>>>> to > >>>>>>>>>>>>>> components with limited dependencies and wide > >>>>> applicability > >>>>>>>> would > >>>>>>>>>>>>>> definitely help with future maintenance. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Regards, > >>>>>>>>>>>>>> David Handermann > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> On Sat, Jul 24, 2021 at 10:57 AM Mark Payne < > >>>>>>>>> marka...@hotmail.com> > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> There’s also some code that exists in order to > >>>> maintain > >>>>>>>>> backward > >>>>>>>>>>>>>>> compatibility in the repositories. I would very > >>> much > >>>>> like > >>>>>>> the > >>>>>>>>>>>>>> repositories > >>>>>>>>>>>>>>> to contain no unnecessary code. And swap file > >>> format > >>>>>>> supports > >>>>>>>>>> really > >>>>>>>>>>>>> old > >>>>>>>>>>>>>>> formats. And the old impls of the repositories > >>>>> themselves, > >>>>>>>> like > >>>>>>>>>>>>>>> PersistentProvRepo instead of WriteAheadProv > >> Repo, > >>>> etc. > >>>>>>> Lots > >>>>>>>> of > >>>>>>>>>> stuff > >>>>>>>>>>>>>> there > >>>>>>>>>>>>>>> that can be removed. And some methods in > >>>> ProcessSession > >>>>>>> that > >>>>>>>>> are > >>>>>>>>>>>> never > >>>>>>>>>>>>>> used > >>>>>>>>>>>>>>> by any processor in the codebase but exists in > >> the > >>>>> public > >>>>>>> API > >>>>>>>>> so > >>>>>>>>>>>> can’t > >>>>>>>>>>>>> be > >>>>>>>>>>>>>>> removed till 2.0. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> I think his is also a great time to clean up the > >>>>> “standard > >>>>>>>>> nar.” > >>>>>>>>>> At > >>>>>>>>>>>>> this > >>>>>>>>>>>>>>> point, it’s something like 70 MB. And many of the > >>>>>>> components > >>>>>>>>>> there > >>>>>>>>>>>> are > >>>>>>>>>>>>>> not > >>>>>>>>>>>>>>> really “standard” - things like connecting to > >> FTP & > >>>>> SFTP > >>>>>>>>>> servers, XML > >>>>>>>>>>>>>>> processing, Jolt transform, etc. could > >> potentially > >>> be > >>>>> moved > >>>>>>>>> into > >>>>>>>>>>>> other > >>>>>>>>>>>>>>> nars. The > >>>>> nifi-standard-content-viewer-1.15.0-SNAPSHOT.war > >>>>>>> is > >>>>>>>>>> 6.9 MB > >>>>>>>>>>>> is > >>>>>>>>>>>>>> not > >>>>>>>>>>>>>>> necessary for stateless or minifi java. Lots of > >>>> things > >>>>>>>> probably > >>>>>>>>>> to > >>>>>>>>>>>>>>> reconsider within the standard nar. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> I definitely think this is a reasonable approach, > >>> to > >>>>> allow > >>>>>>>> for > >>>>>>>>> a > >>>>>>>>>> 2.0 > >>>>>>>>>>>>> that > >>>>>>>>>>>>>>> is not a huge feature release but allows the > >>> project > >>>> to > >>>>> be > >>>>>>>>>> simpler > >>>>>>>>>>>> and > >>>>>>>>>>>>>> more > >>>>>>>>>>>>>>> nimble. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Thanks > >>>>>>>>>>>>>>> -Mark > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Jul 24, 2021, at 10:59 AM, Mike Thomsen < > >>>>>>>>>> mikerthom...@gmail.com > >>>>>>>>>>>>>> <mailto: > >>>>>>>>>>>>>>> mikerthom...@gmail.com>> wrote: > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Russell, > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> AFAICT from looking at Elastic's repos, the low > >>> level > >>>>> REST > >>>>>>>>>> client is > >>>>>>>>>>>>>>> still fine. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>> > >>>> > >>> > >> https://github.com/elastic/elasticsearch/blob/e5518e07f13701e3bb3dcc6842b9023966752497/client/rest/src/main/java/org/elasticsearch/client/RestClient.java > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Our Elasticsearch support is spread over two NARs > >>> at > >>>>>>> present. > >>>>>>>>> One > >>>>>>>>>>>> uses > >>>>>>>>>>>>>>> OkHttp and the other uses that low level Elastic > >>> REST > >>>>>>> client. > >>>>>>>>>>>>>>> Therefore, I think we're fine on licensing for > >> the > >>>>> moment. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Mike > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 1:10 PM Russell Bateman < > >>>>>>>>>>>> r...@windofkeltia.com > >>>>>>>>>>>>>>> <mailto:r...@windofkeltia.com>> wrote: > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Bringing up Elastic also reminds me that the > >>> Elastic > >>>>>>>> framework > >>>>>>>>>> has > >>>>>>>>>>>> just > >>>>>>>>>>>>>>> recently transitioned out of Open Source, so to > >>>>> acknowledge > >>>>>>>>> that, > >>>>>>>>>>>> maybe > >>>>>>>>>>>>>>> some effort toward OpenSearch--I say this not > >>>>> understanding > >>>>>>>>>> exactly > >>>>>>>>>>>> how > >>>>>>>>>>>>>>> this sort of thing is considered in a > >> large-scale, > >>>>>>>> world-class > >>>>>>>>>>>> software > >>>>>>>>>>>>>>> project like Apache NiFi. (I'm not a contributor, > >>>> just > >>>>> a > >>>>>>>>> grateful > >>>>>>>>>>>>>>> consumer.) > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Russ > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On 7/23/21 10:28 AM, Matt Burgess wrote: > >>>>>>>>>>>>>>> Along with the itemized list for ancient > >> components > >>>> we > >>>>>>> should > >>>>>>>>>> look at > >>>>>>>>>>>>>>> updating versions of drivers, SDKs, etc. for > >>> external > >>>>>>> systems > >>>>>>>>>> such as > >>>>>>>>>>>>>>> Elasticsearch, Cassandra, etc. There may be > >>> breaking > >>>>>>> changes > >>>>>>>>> but > >>>>>>>>>> 2.0 > >>>>>>>>>>>>>>> is probably the right time to get things up to > >> date > >>>> to > >>>>> make > >>>>>>>>> them > >>>>>>>>>> more > >>>>>>>>>>>>>>> useful to more people. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 12:21 PM Nathan Gough < > >>>>>>>>>> thena...@gmail.com > >>>>>>>>>>>>>> <mailto: > >>>>>>>>>>>>>>> thena...@gmail.com>> wrote: > >>>>>>>>>>>>>>> I'm a +1 for removing pretty much all of this > >>> stuff. > >>>>> There > >>>>>>>> are > >>>>>>>>>>>> security > >>>>>>>>>>>>>>> implications to keeping old dependencies around, > >> so > >>>> the > >>>>>>> more > >>>>>>>>> old > >>>>>>>>>> code > >>>>>>>>>>>>> we > >>>>>>>>>>>>>>> can remove the better. I agree that eventually we > >>>> need > >>>>> to > >>>>>>>> move > >>>>>>>>> to > >>>>>>>>>>>>>>> supporting only Java 11+, and as our next release > >>>> will > >>>>>>>> probably > >>>>>>>>>> be > >>>>>>>>>>>>> about > >>>>>>>>>>>>>> 4 > >>>>>>>>>>>>>>> - 6 months from now that doesn't seem too soon. > >> We > >>>>> could > >>>>>>>>>> potentially > >>>>>>>>>>>>>> break > >>>>>>>>>>>>>>> this in two and remove the deprecated processors > >>> and > >>>>> leave > >>>>>>>> 1.x > >>>>>>>>> on > >>>>>>>>>>>> Java > >>>>>>>>>>>>> 8, > >>>>>>>>>>>>>>> and finally start on 2.x which would support only > >>>> Java > >>>>> 11. > >>>>>>>> I'm > >>>>>>>>>> unsure > >>>>>>>>>>>>> of > >>>>>>>>>>>>>>> what implications changing the date and time > >>> handling > >>>>> would > >>>>>>>>> have > >>>>>>>>>> - > >>>>>>>>>>>> for > >>>>>>>>>>>>>>> running systems that use long term historical > >> logs, > >>>>>>>> unexpected > >>>>>>>>>>>> impacts > >>>>>>>>>>>>> to > >>>>>>>>>>>>>>> time logging could be a problem. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> As Joe says I think feature work will have to be > >>>>> dedicated > >>>>>>> to > >>>>>>>>>> 2.x and > >>>>>>>>>>>>> we > >>>>>>>>>>>>>>> could support 1.x for security fixes for some > >>> period > >>>> of > >>>>>>> time. > >>>>>>>>> 2.x > >>>>>>>>>>>> seems > >>>>>>>>>>>>>>> like a gargantuan task but it's probably time to > >>> get > >>>>>>> started. > >>>>>>>>> Not > >>>>>>>>>>>> sure > >>>>>>>>>>>>>> how > >>>>>>>>>>>>>>> we handle all open PRs and the transition between > >>> 1.x > >>>>> and > >>>>>>>> 2.x. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 10:57 AM Joe Witt < > >>>>>>>> joe.w...@gmail.com > >>>>>>>>>>>> <mailto: > >>>>>>>>>>>>>>> joe.w...@gmail.com>> wrote: > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Jon > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> You're right we have to be careful and you're > >> right > >>>>> there > >>>>>>> are > >>>>>>>>>> still > >>>>>>>>>>>>>>> significant Java 8 users out there. But we also > >>> have > >>>> to > >>>>> be > >>>>>>>>>> careful > >>>>>>>>>>>>>>> about security and sustainability of the > >> codebase. > >>> If > >>>>> we > >>>>>>> had > >>>>>>>>>> talked > >>>>>>>>>>>>>>> about this last year when that article came out > >> I'd > >>>>> have > >>>>>>>> agreed > >>>>>>>>>> it is > >>>>>>>>>>>>>>> too early. Interestingly that link seems to get > >>>> updated > >>>>>>> and I > >>>>>>>>>> tried > >>>>>>>>>>>>>>> [1] and found more recent data (not sure how > >>> recent). > >>>>>>> Anyway > >>>>>>>> it > >>>>>>>>>>>>>>> suggests Java 8 is still the top dog but we see > >>> good > >>>>> growth > >>>>>>>> on > >>>>>>>>>> 11. In > >>>>>>>>>>>>>>> my $dayjob this aligns to what I'm seeing too. > >>>>> Customers > >>>>>>>> didn't > >>>>>>>>>> seem > >>>>>>>>>>>>>>> to care about Java 11 until later half last year > >>> and > >>>>> now > >>>>>>>>>> suddenly it > >>>>>>>>>>>>>>> is all over the place. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> I think once we put out a NiFi 2.0 release we'd > >> see > >>>>> rapid > >>>>>>>>>> decrease in > >>>>>>>>>>>>>>> work on the 1.x line just being blunt. We did > >> this > >>>> many > >>>>>>> years > >>>>>>>>> ago > >>>>>>>>>>>>>>> with 0.x to 1.x and we stood behind 0.x for a > >> while > >>>>> (maybe > >>>>>>> a > >>>>>>>>>> year or > >>>>>>>>>>>>>>> so) but it was purely bug fix/security related > >>> bits. > >>>> We > >>>>>>> would > >>>>>>>>>> need to > >>>>>>>>>>>>>>> do something similar. But feature work would > >> almost > >>>>>>> certainly > >>>>>>>>> go > >>>>>>>>>> to > >>>>>>>>>>>>>>> the 2.x line. Maybe there are other workable > >> models > >>>> but > >>>>> my > >>>>>>>>>> instinct > >>>>>>>>>>>>>>> suggests this is likely to follow a similar path. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> ...anyway I agree it isn't that easy of a call to > >>>> dump > >>>>> Java > >>>>>>>> 8. > >>>>>>>>> We > >>>>>>>>>>>>>>> need to make the call in both the interests of > >> the > >>>> user > >>>>>>> base > >>>>>>>>> and > >>>>>>>>>> the > >>>>>>>>>>>>>>> contributor base of the community. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> [1] > >>>> https://www.jetbrains.com/lp/devecosystem-2021/java/ > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Thanks > >>>>>>>>>>>>>>> Joe > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 7:46 AM Joe Witt < > >>>>>>> joe.w...@gmail.com > >>>>>>>>>> <mailto: > >>>>>>>>>>>>>>> joe.w...@gmail.com>> wrote: > >>>>>>>>>>>>>>> Russ > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Yeah the flow registry is a key part of it. But > >>> also > >>>>> now > >>>>>>> you > >>>>>>>>> can > >>>>>>>>>>>>>>> download the flow definition in JSON (upload i > >>> think > >>>> is > >>>>>>> there > >>>>>>>>> now > >>>>>>>>>>>>>>> too). Templates offered a series of challenges > >> such > >>>> as > >>>>> we > >>>>>>>> store > >>>>>>>>>> them > >>>>>>>>>>>>>>> in the flow definition which has made flows > >> massive > >>>> in > >>>>> an > >>>>>>>>>> unintended > >>>>>>>>>>>>>>> way which isn't fun for cluster behavior. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> We have a couple cases where we headed down a > >>>>> particular > >>>>>>>>> concept > >>>>>>>>>> and > >>>>>>>>>>>>>>> came up with better approaches later. We need to > >>>>> reconcile > >>>>>>>>> these > >>>>>>>>>> with > >>>>>>>>>>>>>>> the benefit of hindsight, and while being careful > >>> to > >>>> be > >>>>> not > >>>>>>>>>> overly > >>>>>>>>>>>>>>> disruptive to existing users, to reduce the > >>>>>>>>> codebase/maintenance > >>>>>>>>>>>>>>> burden and allow continued evolution of the > >>> project. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Thanks > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 7:43 AM Russell Bateman < > >>>>>>>>>>>> r...@windofkeltia.com > >>>>>>>>>>>>>>> <mailto:r...@windofkeltia.com>> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>> Joe, > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> I apologize for the off-topic intrusion, but what > >>>>> replaces > >>>>>>>>>> templates? > >>>>>>>>>>>>>>> The Registry? Templates rocked and we have used > >>> them > >>>>> since > >>>>>>>>> 0.5.x. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Russ > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On 7/23/21 8:31 AM, Joe Witt wrote: > >>>>>>>>>>>>>>> David, > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> I think this is a highly reasonable approach and > >>>> such a > >>>>>>> focus > >>>>>>>>>> will > >>>>>>>>>>>>>>> greatly help make a 2.0 release far more > >>> approachable > >>>>> to > >>>>>>>> knock > >>>>>>>>>> out. > >>>>>>>>>>>>>>> Not only that but tech debt reduction would help > >>> make > >>>>> work > >>>>>>>>>> towards > >>>>>>>>>>>>>>> major features we'd think about in a 'major > >>> release' > >>>>> sense > >>>>>>>> more > >>>>>>>>>>>>>>> approachable. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> We should remove all deprecated things (as well > >> as > >>>>> verify > >>>>>>> we > >>>>>>>>>> have the > >>>>>>>>>>>>>>> right list). We should remove/consider removal of > >>>>>>> deprecated > >>>>>>>>>>>>>>> concepts > >>>>>>>>>>>>>>> like templates. We should consider whether we can > >>>>> resolve > >>>>>>> the > >>>>>>>>>>>>>>> various > >>>>>>>>>>>>>>> ways we've handled what are now parameters down > >> to > >>>> one > >>>>>>> clean > >>>>>>>>>>>>>>> approach. > >>>>>>>>>>>>>>> We should remove options in the nifi.properties > >>> which > >>>>> turn > >>>>>>>> out > >>>>>>>>> to > >>>>>>>>>>>>>>> never be used quite right (if there are). There > >> is > >>>>> quite a > >>>>>>>> bit > >>>>>>>>> we > >>>>>>>>>>>>>>> can > >>>>>>>>>>>>>>> do purely in the name of tech debt reduction. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Lots to consider here but I think this is the > >> right > >>>>>>>> discussion. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Than ks > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 7:26 AM Bryan Bende < > >>>>>>>> bbe...@gmail.com > >>>>>>>>>>>> <mailto: > >>>>>>>>>>>>>>> bbe...@gmail.com>> > >>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>> I'm a +1 for this... Not sure if this falls under > >>>>> "Removing > >>>>>>>>>>>>>>> Deprecated > >>>>>>>>>>>>>>> Components", but I think we should also look at > >>>>> anything > >>>>>>> that > >>>>>>>>> has > >>>>>>>>>>>>>>> been > >>>>>>>>>>>>>>> marked as deprecated throughout the code base as > >> a > >>>>>>> candidate > >>>>>>>>> for > >>>>>>>>>>>>>>> removal. There are quite a few classes, methods, > >>>>>>> properties, > >>>>>>>>> etc > >>>>>>>>>>>>>>> that > >>>>>>>>>>>>>>> have been waiting for a chance to be removed. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Fri, Jul 23, 2021 at 10:13 AM David Handermann > >>>>>>>>>>>>>>> <exceptionfact...@apache.org<mailto: > >>>>>>>>> exceptionfact...@apache.org > >>>>>>>>>>>> > >>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>> Team, > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> With all of the excellent work that many have > >>>>> contributed > >>>>>>> to > >>>>>>>>> NiFi > >>>>>>>>>>>>>>> over the > >>>>>>>>>>>>>>> years, the code base has also accumulated some > >>> amount > >>>>> of > >>>>>>>>>> technical > >>>>>>>>>>>>>>> debt. A > >>>>>>>>>>>>>>> handful of components have been marked as > >>> deprecated, > >>>>> and > >>>>>>>> some > >>>>>>>>>>>>>>> components > >>>>>>>>>>>>>>> remain in the code base to support integration > >> with > >>>> old > >>>>>>>>> versions > >>>>>>>>>>>>>>> of various > >>>>>>>>>>>>>>> products. Following the principles of semantic > >>>>> versioning, > >>>>>>>>>>>>>>> introducing a > >>>>>>>>>>>>>>> major release would provide the opportunity to > >>> remove > >>>>> these > >>>>>>>>>>>>>>> deprecated and > >>>>>>>>>>>>>>> unsupported components. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Rather than focusing the next major release on > >> new > >>>>>>> features, > >>>>>>>>> what > >>>>>>>>>>>>>>> do you > >>>>>>>>>>>>>>> think about focusing on technical debt removal? > >>> This > >>>>>>> approach > >>>>>>>>>>>>>>> would not > >>>>>>>>>>>>>>> make for the most interesting release, but it > >>>> provides > >>>>> the > >>>>>>>>>>>>>>> opportunity to > >>>>>>>>>>>>>>> clean up elements that involve breaking changes. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Focusing on technical debt, at least three > >> primary > >>>>> goals > >>>>>>> come > >>>>>>>>> to > >>>>>>>>>>>>>>> mind for > >>>>>>>>>>>>>>> the next major release: > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> 1. Removal of deprecated and unmaintained > >>> components > >>>>>>>>>>>>>>> 2. Require Java 11 as the minimum supported > >> version > >>>>>>>>>>>>>>> 3. Transition internal date and time handling to > >>> JSR > >>>>> 310 > >>>>>>>>>> java.time > >>>>>>>>>>>>>>> components > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> *Removing Deprecated Components* > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Removing support for older and deprecated > >>> components > >>>>>>>> provides a > >>>>>>>>>>>>>>> great > >>>>>>>>>>>>>>> opportunity to improve the overall security > >> posture > >>>>> when it > >>>>>>>>> comes > >>>>>>>>>>>>>>> to > >>>>>>>>>>>>>>> maintaining dependencies. The OWASP dependency > >>> plugin > >>>>>>> report > >>>>>>>>>>>>>>> currently > >>>>>>>>>>>>>>> generates 50 MB of HTML for questionable > >>>> dependencies, > >>>>> many > >>>>>>>> of > >>>>>>>>>>>>>>> which are > >>>>>>>>>>>>>>> related to old versions of various libraries. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> As a starting point, here are a handful of > >>> components > >>>>> and > >>>>>>>>>>>>>>> extension modules > >>>>>>>>>>>>>>> that could be targeted for removal in a major > >>>> version: > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> - PostHTTP and GetHTTP > >>>>>>>>>>>>>>> - ListenLumberjack and the entire > >>>>> nifi-lumberjack-bundle > >>>>>>>>>>>>>>> - ListenBeats and the entire nifi-beats-bundle > >>>>>>>>>>>>>>> - Elasticsearch 5 components > >>>>>>>>>>>>>>> - Hive 1 and 2 components > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> *Requiring Java 11* > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Java 8 is now over seven years old, and NiFi has > >>>>> supported > >>>>>>>>>> general > >>>>>>>>>>>>>>> compatibility with Java 11 for several years. > >> NiFi > >>>>> 1.14.0 > >>>>>>>>>>>>>>> incorporated > >>>>>>>>>>>>>>> internal improvements specifically related to TLS > >>>> 1.3, > >>>>>>> which > >>>>>>>>>>>>>>> allowed > >>>>>>>>>>>>>>> closing out the long-running Java 11 > >> compatibility > >>>> epic > >>>>>>>>>> NIFI-5174. > >>>>>>>>>>>>>>> Making > >>>>>>>>>>>>>>> Java 11 the minimum required version provides the > >>>>>>> opportunity > >>>>>>>>> to > >>>>>>>>>>>>>>> address > >>>>>>>>>>>>>>> any lingering edge cases and put NiFi in a better > >>>>> position > >>>>>>> to > >>>>>>>>>>>>>>> support > >>>>>>>>>>>>>>> current Java versions. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> *JSR 310 for Date and Time Handling* > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Without making the scope too broad, transitioning > >>>>> internal > >>>>>>>> date > >>>>>>>>>>>>>>> and time > >>>>>>>>>>>>>>> handling to use DateTimeFormatter instead of > >>>>>>> SimpleDateFormat > >>>>>>>>>>>>>>> would provide > >>>>>>>>>>>>>>> a number of advantages. The Java Time components > >>>>> provide > >>>>>>> much > >>>>>>>>>>>>>>> better > >>>>>>>>>>>>>>> clarity when it comes to handling localized date > >>> and > >>>>> time > >>>>>>>>>>>>>>> representations, > >>>>>>>>>>>>>>> and also avoid the inherent confusion of > >>>> java.sql.Date > >>>>>>>>> extending > >>>>>>>>>>>>>>> java.util.Date. Many internal components, > >>>> specifically > >>>>>>>>>>>>>>> Record-oriented > >>>>>>>>>>>>>>> processors and services, rely on date parsing, > >>>> leading > >>>>> to > >>>>>>>>>>>>>>> confusion and > >>>>>>>>>>>>>>> various workarounds. The pattern formats of > >>>>>>> SimpleDateFormat > >>>>>>>>> and > >>>>>>>>>>>>>>> DateTimeFormatter are very similar, but there > >> are a > >>>> few > >>>>>>>> subtle > >>>>>>>>>>>>>>> differences. > >>>>>>>>>>>>>>> Making this transition would provide a much > >> better > >>>>>>> foundation > >>>>>>>>>>>>>>> going forward. > >>>>>>>>>>>>>>> *Conclusion* > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Thanks for giving this proposal some > >> consideration. > >>>>> Many of > >>>>>>>> you > >>>>>>>>>>>>>>> have been > >>>>>>>>>>>>>>> developing NiFi for years and I look forward to > >>> your > >>>>>>>> feedback. > >>>>>>>>> I > >>>>>>>>>>>>>>> would be > >>>>>>>>>>>>>>> glad to put together a more formalized > >>> recommendation > >>>>> on > >>>>>>>>>>>>>>> Confluence and > >>>>>>>>>>>>>>> write up Jira epics if this general approach > >> sounds > >>>>>>> agreeable > >>>>>>>>> to > >>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>> community. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Regards, > >>>>>>>>>>>>>>> David Handermann > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>> > >>> > >> >