manifoldcf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Wright <daddy...@gmail.com>
Subject Re: [Io Activity] Doing an update inside a delete document
Date Mon, 07 Jul 2014 11:29:23 GMT
Hi Alessandro,

Based on your description, it would seem to me that having multiple output
connections per pipeline would meet your design goals without any
additional framework changes.  Since that was added in trunk and will be
available in 1.7, I am wondering what else you can tell us that might show
why that is not sufficient?

Karl


On Mon, Jul 7, 2014 at 6:43 AM, Alessandro Benedetti <
benedetti.alex85@gmail.com> wrote:

> As I told you before :
> I have a custom Ouput Connector.
> This custom Output Connector ha a collection of OutputConnectors inside.
> So simply when I have a deleteDocument, I have to do my logic and send some
> addOrUpdateDocument and deleteDocument to the OutputConnectors from the
> collection .
>
> But the deleteDocument and addOrUpdate have incompatible signatures, so due
> to this I can not elegantly call the addOrUpdate.
> The main problem is the discordance of IOActivities between what i have in
> my removeDocument and what I have in removeDocument and
> addOrReplaceDocument for the generic baseOutputConnector.
>
> So ideally what I need it to build and IOutputAddActivity from the
> IOutputRemoveActivity in the proper way.
>
> Thank you again for your attention
>
>
>
> 2014-07-07 11:04 GMT+01:00 Karl Wright <daddywri@gmail.com>:
>
> > Hi Alessandro,
> >
> > As stated I don't have a good answer for you.  If you tell me more
> broadly
> > what you are trying to do I may be able to propose something better.
> >
> > Karl
> >
> >
> >
> > On Mon, Jul 7, 2014 at 5:33 AM, Alessandro Benedetti <
> > benedetti.alex85@gmail.com> wrote:
> >
> > > Hi Karl,
> > >  thank you for the support but your solution is not possible, because
> my
> > > case is the following :
> > >
> > > *Custom Output Connector*
> > > removeDocument is calling the addOrReplaceDocument method in a generic
> > > BaseOutputConnector.
> > > addOrReplaceDocument is calling the the addOrReplaceDocument method in
> a
> > > generic BaseOutputConnector.
> > >
> > > So in this scenario the only way to follow your strategy should be to
> > > create in the BaseOutputConnector and in all the implementations the
> new
> > > method accepting the "in common" ancestor for the activity Class.
> > >
> > > But i don't want to do this, because I don't want to hack the other
> > > Manifold code ...
> > >
> > > So I know that the hierarchy of activities is quite coupled with the
> > > function they are tracking.
> > > Which can be the most elegant solution karl in your opinion to satisfy
> > this
> > > requirement ?
> > >
> > > Right now in the removeDocument I use a EmptyOutputAddActivity
> implements
> > > IOutputAddActivity ( custom class)
> > > But would be great to achieve the same using some standard manifold
> > > structure.
> > >
> > > Cheers
> > >
> > >
> > >
> > >
> > >
> > > 2014-07-02 11:31 GMT+01:00 Karl Wright <daddywri@gmail.com>:
> > >
> > > > Hi Alessandro,
> > > >
> > > > You cannot just cast because there are different services in each
> > > > interface.  However, they are derived from common interfaces.  For
> > > example,
> > > >
> > > > public interface IOutputAddActivity extends
> > > > IOutputQualifyActivity,IOutputHistoryActivity,IOutputCheckActivity
> > > >
> > > > public interface IOutputRemoveActivity extends IOutputHistoryActivity
> > > >
> > > >
> > > > The only one in common is IOutputHistoryActivity, so as long as your
> > > > addOrReplace method is calling IOutputHistoryActivity methods only,
> you
> > > can
> > > > write a second method that accepts just IOutputHistoryActivity and
> call
> > > > that from addOrReplace AND from deleteDocument.
> > > >
> > > > Karl
> > > >
> > > >
> > > > On Wed, Jul 2, 2014 at 6:13 AM, Alessandro Benedetti <
> > > > benedetti.alex85@gmail.com> wrote:
> > > >
> > > > > 2014-07-02 11:04 GMT+01:00 Karl Wright <daddywri@gmail.com>:
> > > > >
> > > > > > Hi Alessandro,
> > > > > >
> > > > > > The "activities" metaphor is simply to make available appropriate
> > > > > framework
> > > > > > services to specific connector methods.  The metaphor is good
for
> > > > > > ManifoldCF because it allows services to be added in new releases
> > > > without
> > > > > > upsetting backwards compatibility etc.
> > > > > >
> > > > > > If you have a "deleteDocument" implementation that is trying
to
> > call
> > > an
> > > > > > "addOrReplaceDocument" method, this can *only* work if the
> services
> > > you
> > > > > are
> > > > > > using in the addOrReplaceDocument method do not include any
of
> > those
> > > > that
> > > > > > are not in IOutputDeleteActivity.  If that is the case, you
> should
> > be
> > > > > able
> > > > > > to write a common method which accepts the appropriate common
> > parent
> > > > > > interface of IOutputAddActivity and IOutputDeleteActivity. 
If
> not,
> > > you
> > > > > > will have to rethink how you are doing this.
> > > > > >
> > > > >
> > > > > Ok, assuming I don't want to include any further services.
> > > > > I have in the deleteDocument, the IOutputDeleteActivity but the
> > > > > addOrReplaceDocument is taking the IOutputAddActivity.
> > > > > Which is the proper way to instantiate IOutputAddActivity from
> > > > > the IOutputDeleteActivity ?
> > > > > Because they are different interfaces and i don't know exactly
> which
> > > > > implementation arrives there, should I do a hardcoded casting ?
> > > > > Or what else?
> > > > > Thank you very much for your time,
> > > > >
> > > > > Cheers
> > > > >
> > > > >
> > > > > >
> > > > > > Thanks,
> > > > > > Karl
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Wed, Jul 2, 2014 at 5:17 AM, Alessandro Benedetti <
> > > > > > benedetti.alex85@gmail.com> wrote:
> > > > > >
> > > > > > > Hi guys,
> > > > > > > I'm trying to implement a specific logic in a custom output
> > > connector
> > > > > > > where, under specific conditions, in the deleteDocument
method
> is
> > > > then
> > > > > > > called an AddOrUpdate method.
> > > > > > >
> > > > > > > This can happen when the deletion of a document  causes
the
> > update
> > > of
> > > > > > other
> > > > > > > documents already indexed.
> > > > > > > I know is a very specific use case, but let's see if there
is a
> > > > > solution
> > > > > > > ...
> > > > > > > So far no problem until I reach the Activities management
...
> > > > > > > I found the hierarchy of this objects really confusing,
with a
> > lot
> > > of
> > > > > > > interfaces and different inner classes sparse in the code.
> > > > > > >
> > > > > > > Furthermore it appears to be really hard to create an
> > > > > > *IOutputAddActivity*
> > > > > > > object where you have a IOutputDeleteActivity.
> > > > > > >
> > > > > > > What can be the best way to instantiate correctly an
> > > > > > > *IOutputAddActivity *inside
> > > > > > > the DeleteDocument method *?*
> > > > > > > Why this activities objects that seems a sort of
> logging/tracking
> > > > > feature
> > > > > > > is such coupled with the logic ?
> > > > > > >
> > > > > > > Thank's for the help
> > > > > > > --
> > > > > > > --------------------------
> > > > > > >
> > > > > > > Benedetti Alessandro
> > > > > > > Visiting card : http://about.me/alessandro_benedetti
> > > > > > >
> > > > > > > "Tyger, tyger burning bright
> > > > > > > In the forests of the night,
> > > > > > > What immortal hand or eye
> > > > > > > Could frame thy fearful symmetry?"
> > > > > > >
> > > > > > > William Blake - Songs of Experience -1794 England
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > --------------------------
> > > > >
> > > > > Benedetti Alessandro
> > > > > Visiting card : http://about.me/alessandro_benedetti
> > > > >
> > > > > "Tyger, tyger burning bright
> > > > > In the forests of the night,
> > > > > What immortal hand or eye
> > > > > Could frame thy fearful symmetry?"
> > > > >
> > > > > William Blake - Songs of Experience -1794 England
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > --------------------------
> > >
> > > Benedetti Alessandro
> > > Visiting card : http://about.me/alessandro_benedetti
> > >
> > > "Tyger, tyger burning bright
> > > In the forests of the night,
> > > What immortal hand or eye
> > > Could frame thy fearful symmetry?"
> > >
> > > William Blake - Songs of Experience -1794 England
> > >
> >
>
>
>
> --
> --------------------------
>
> Benedetti Alessandro
> Visiting card : http://about.me/alessandro_benedetti
>
> "Tyger, tyger burning bright
> In the forests of the night,
> What immortal hand or eye
> Could frame thy fearful symmetry?"
>
> William Blake - Songs of Experience -1794 England
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message