syndesisio / syndesis-project

Placeholder repository for project management
https://syndesis.io/
Apache License 2.0
6 stars 12 forks source link

Expert Developer should be able to contribute low level camel routes/policies to a Citizen created integration. #83

Closed chirino closed 6 years ago

chirino commented 7 years ago
[11:45:13]  <chirino_m> basically we need to share ipaas projects with IDE based developers.
[11:45:22]  <lburgazzoli>   oh no
[11:45:35]  <chirino_m> so that they can do stuff like add java based camel routes.
[11:46:13]  <chirino_m> since the current design overwrites all the files.. it would not work.
[11:46:24]  <chirino_m> do you see the problem?
[11:46:45]  <lburgazzoli>   the current design of the project generator ?
[11:46:48]  <chirino_m> right
[11:47:03]  <chirino_m> starting with the generated pom.xml
[11:47:11]  <chirino_m> lots of times developers need to tweak the pom.xml
[11:47:34]  <lburgazzoli>   so we would need to read the pom
[11:47:38]  <lburgazzoli>   or whatever they have
[11:47:43]  <lburgazzoli>   and apply stuffs ?
[11:47:44]  <chirino_m> yeah maybe.
[11:47:54]  <chirino_m> or perhaps lets generate a multi module project
[11:48:06]  <chirino_m> and have a project that's for our generated bits, and another one for user bits
[11:48:13]  <lburgazzoli>   ok
[11:48:25]  <chirino_m> not sure.. we need to dream up a good simple soultion
[11:49:11]  <lburgazzoli>   or just drop ide support
[11:49:13]  <lburgazzoli>   :)
[11:49:14]  <chirino_m> perhaps we should start with a brainstorming session. and also invite the IDE folks
[11:49:18]  <chirino_m> oh no.. that won't happen
[11:49:34]  <lburgazzoli>   yeah jiking
[11:49:37]  <lburgazzoli>   or dreaming
[11:49:38]  <chirino_m> ;)
[11:50:13]  <chirino_m> so keep this requirement simmering in the back of your brain..
[11:50:25]  <lburgazzoli>   hard to keep something ide related
[11:50:29]  <lburgazzoli>   but I'll try hard
[11:50:41]  <chirino_m> :) <3
[11:51:06]  <lburgazzoli>   going to catch my train
[11:51:12]  <lburgazzoli>   will think a little about it while travelling
[11:52:30]  lburgazzoli left the query by disconnecting from IRC.
[03:13:39]  lburgazzoli joined the query by connecting to IRC.
[07:16:19]  chirino_m left the query by disconnecting from IRC.
[09:25:03] Disconnected
[10:34:24]  <lburgazzoli>   chirino_m ping
[10:36:07]  <chirino_m> pogn
[10:36:08]  <chirino_m> pong
[10:36:41]  <lburgazzoli>   beside metadata and ide support, how much is relevant to have health check in camel for external systems ?
[10:37:12]  <chirino_m> you mean to the ipaas?
[10:37:19]  <lburgazzoli>   yes sorry
[10:37:50]  <chirino_m> well, I think it's important, but got a feeling that lower on the priority list until we get other stuff done
[10:38:13]  <chirino_m> once we are in a good place in terms of being able to create useful integrations
[10:38:30]  <chirino_m> the whole runtime monitoring / troubleshooting aspects will jump in priority.
[10:38:37]  <lburgazzoli>   ok
[10:38:49]  <lburgazzoli>   because I was thinking to have something quick and "dirty"
[10:39:02]  <chirino_m> I'd not worry about it too much.
[10:39:25]  <lburgazzoli>   ok, just for discussion
[10:39:33]  <lburgazzoli>   would it make sense to have an external "checker" ?
[10:39:43]  <chirino_m> it might
[10:39:44]  <lburgazzoli>   i.e. you can configure consul to do health check
[10:40:00]  <lburgazzoli>   so all the integrations using twitter do not have do do it on their own
[10:40:02]  <chirino_m> I think all options are on the table at this point
[10:40:17]  <chirino_m> right
[10:40:47]  <chirino_m> did you think about that IDE editing projects problem?
[10:41:17]  <lburgazzoli>   not yet
[10:41:36]  <lburgazzoli>   I think it would be nice to have first a tipical workflow
[10:41:53]  <lburgazzoli>   just to know what could possible go wrong
[10:42:13]  <chirino_m> So typical workflow I think we create an integration in the ipaas.
[10:42:32]  <chirino_m> that citizen user tells his dev, hey I need some extra stuff..
[10:42:39]  <chirino_m> not sure that would be at this point.
[10:43:13]  <lburgazzoli>   so it may be something external to the integration ?
[10:43:16]  <chirino_m> perhaps it's something a little more complex like using an aggregator.
[10:43:21]  <lburgazzoli>   i.e. the dv creates something on a different repo ?
[10:43:31]  <lburgazzoli>   the dev
[10:43:33]  <chirino_m> lburgazzoli: I think that's a fine approach too.
[10:43:52]  <lburgazzoli>   because in that case the additional deps may be just addedcia the ui ?
[10:44:00]  <chirino_m> the question is how does this extra stuff get integrated /w the citizen's integration
[10:44:17]  <lburgazzoli>   can we add linked repos ?
[10:44:20]  <lburgazzoli>   to the integration ?
[10:44:20]  <chirino_m> lburgazzoli: we could do that.
[10:44:39]  <chirino_m> so have a the UI have a way to configure a gav or something right?
[10:44:48]  <lburgazzoli>   yeah
[10:44:56]  <lburgazzoli>   maybe the ui can also create the base project
[10:45:03]  <lburgazzoli>   which is one off
[10:45:10]  <chirino_m> that's ok for me too.
[10:45:26]  <chirino_m> then you don't need to configure that gav since we will know what it is.
[10:45:30]  <lburgazzoli>   so the citizen is the driver
[10:45:40]  <lburgazzoli>   dev the slave as usual :)
[10:45:52]  <lburgazzoli>   correct
[10:46:11]  <chirino_m> the big question then is what can the dev provide?? could he provide direct: routes?
[10:46:22]  <chirino_m> that then the citizen can call into?
[10:46:38]  <lburgazzoli>   it can provides beans ?
[10:46:48]  <lburgazzoli>   we then just scan the spring beans
[10:46:59]  <lburgazzoli>   and add them to the integration as steps ?
[10:47:04]  <lburgazzoli>   (thinking aloud)
[10:47:06]  <lburgazzoli>   like processors
[10:47:19]  <chirino_m> and how do those thing gets show to the citizen in the UI? do they have to be shown?
[10:47:36]  <lburgazzoli>   maybe we can add some emta data ?
[10:47:39]  <chirino_m> policy bits?
[10:47:43]  <chirino_m> interceptors ?
[10:48:13]  <lburgazzoli>   yes it depends what freedom we want
[10:48:24]  <chirino_m> and should this modules created by dev be 1 per integration or can 1 be shared by multiple integrations
[10:48:37]  <lburgazzoli>   I guess the second
[10:48:49]  <lburgazzoli>   if it is a spring boot component/auto conf
[10:48:50]  <chirino_m> yeah devs are super lazy hand hate repeating
[10:48:54]  <lburgazzoli>   it may have its own set of properties
[10:49:03]  <lburgazzoli>   we can get the json
[10:49:07]  <lburgazzoli>   from the jar
[10:49:20]  <lburgazzoli>   and use it to show to the citized what options it can configure
[10:50:11]  <lburgazzoli>   if it write routes, they can be loaded by camel as usual
[10:50:19]  <lburgazzoli>   we only need to grab the bean name
[10:50:22]  <chirino_m> so I would love to see a POC where, you demo a 'dev user' project.  then manually (to avoid doing too much work in syndesis) update one of the generated projects to add the module dep.
[10:50:53]  <chirino_m> to show what those dev projects would look like and what types of enhancements are possible.
[10:52:17]  <lburgazzoli>   I think what could be added are processor or global objects
[10:52:31]  <lburgazzoli>   it may be hard to hook into a specifi step and add some bits
[10:52:32]  <chirino_m> we could add routes too right?
[10:52:36]  <lburgazzoli>   yes
[10:52:47]  <chirino_m> any route policies?
[10:52:48]  <lburgazzoli>   well
[10:52:56]  <lburgazzoli>   with factory
[10:53:02]  <lburgazzoli>   with route policy factory
[10:53:09]  <lburgazzoli>   it may be easy
[10:53:26]  <lburgazzoli>   otherwhise we need ot eventually modify the steps
[10:53:42]  <chirino_m> so if we create from(direct:...) then I guess we need to have the UI somehow know about those
[10:53:49]  <chirino_m> so we can make them callable sub routes.
[10:53:56]  <lburgazzoli>   yes
[10:54:02]  <lburgazzoli>   if the developer uses xml
[10:54:05]  <lburgazzoli>   it may be simple ...
[10:54:16]  <chirino_m> I think that would be an ok constraint
[10:54:43]  <lburgazzoli>   otherwhise we need to spin a fake process
[10:54:48]  <lburgazzoli>   to collect spring beans
[10:55:04]  <lburgazzoli>   and write a json/xml/yam to describe the content
[10:55:18]  <lburgazzoli>   or a user need to add a specific annotation
[10:55:21]  <lburgazzoli>   to expose it
[10:55:29]  <lburgazzoli>   so we can kick in an annotation processor
[10:55:36]  <chirino_m> on I think xml is a better choice
[10:55:37]  <chirino_m> :)
[10:55:39]  <chirino_m> keep it simple
[10:55:48]  <lburgazzoli>   yes
[10:56:01]  <lburgazzoli>   but you kno, if I could choose I'd go with java ...
[10:56:05]  <chirino_m> what if they are creating dynamic routes ;)
[10:56:11]  <chirino_m> java could really screw with us
[10:56:18]  <chirino_m> Naturally
[10:56:43]  <lburgazzoli>   yesh but with dinamic routes it is a pain also for xml
[10:56:56]  <lburgazzoli>   at least to choose it
[10:57:00]  <chirino_m> I think I'll create an issue and copy this chat into it...
[10:57:06]  <lburgazzoli>   :)
[10:57:16]  <chirino_m> Just so other folks see where we are going
rhuss commented 6 years ago

Superseded by #125