Re: Updating DataMap through ROP client

From: Andrey Razumovsky (razumovsky.andre..mail.com)
Date: Tue Feb 17 2009 - 15:01:12 EST

  • Next message: Andrey Razumovsky: "Boolean comparison in expressions?"

    Hi again,

    I've done some surfing through the code. Probably this information will be
    useful for you:
    Cayenne-Hessian classes do not have their own Configuration instance, but
    they do have their own EntityResolver instance, which is created using
    EntityResolver.getClientEntityResolver(). This object is created once, so I
    assume you should modify it as well after you modified server
    EntityResolver, e.g.

    resolver.getClientEntityResolver().setDataMaps(new ArrayList<DataMap>());
    for (DataMap map : resolver.getDataMaps()) {
                        DataMap clientMap = map.getClientDataMap(resolver);

                            if (clientMap != null) {

    resolver.getClientEntityResolver().addDataMap(clientMap);
                            }
                        }

    Hope this helps!

    2009/2/17 Zissis Trabaris <z.trabari..nsysware.com>

    > The ROP server is controlled by an instance of HessianServlet. I have
    > tried to run Configuration.getSharedConfiguration() to get the map from
    > the server and then clear the EntityResolver that way but it seems like
    > the HessianServlet has its own version of the Configuration instance
    > therefore its EntityResolver does not get cleared. The reason I must
    > modify the Maps from the ROP client is that our application is
    > distributed over the Web and has an MDA modeling component that allows
    > our business users to modify the application at runtime. By doing so,
    > they can create new tables or modify existing tables. Once they have
    > finished modeling, they need the capability to synchronize Cayenne with
    > the new models right from their ROP client in order for everyone else to
    > use the changes. The client application must work through firewalls and
    > HTTP proxies so I am forced to code everything in the ROP client layer.
    > If I knew how to get access to HessianServlet's instance of the
    > Configuration instance on the server side I could clear the
    > EntityResolver and everything would work perfectly.
    >
    > Zissis Trabaris * Chief Technology Officer * INSYSWARE * 3235 West River
    > Road, Grand Island, New York, 14072, USA
    > Mobile (716) 930-5654 * Office (518) 636-4118 * Fax (716) 625-1305 *
    > z.trabari..nsysware.com * www.insysware.com
    >
    > CONFIDENTIALITY: This email (including any attachments) may contain
    > confidential, proprietary and privileged information, and unauthorized
    > disclosure or use is prohibited. If you received this email in error,
    > please notify the sender and delete this email from your system. Thank
    > you.
    >
    >
    > -----Original Message-----
    > From: Andrey Razumovsky [mailto:razumovsky.andre..mail.com]
    > Sent: Tuesday, February 17, 2009 12:21 PM
    > To: use..ayenne.apache.org
    > Subject: Re: Updating DataMap through ROP client
    >
    > The most common case to fetch Configuration instance in server is via
    > Configuration.getSharedConfiguration(). But I still don't understand why
    > you
    > don't want to apply all changes on server side. This way, in theory, no
    > reloading will be required on server (except cache cleaning).
    >
    > 2009/2/17 Zissis Trabaris <z.trabari..nsysware.com>
    >
    > > I can clear the EntityResolver on the client side but since I don't
    > know
    > > how to get to the Configuration instance on the server side I can't
    > > re-load the maps. Without re-loading the maps on the server side, I
    > will
    > > always get an entity not found exception when I try to use a newly
    > added
    > > ObjEntity.
    > >
    > > Zissis Trabaris * Chief Technology Officer * INSYSWARE * 3235 West
    > River
    > > Road, Grand Island, New York, 14072, USA
    > > Mobile (716) 930-5654 * Office (518) 636-4118 * Fax (716) 625-1305 *
    > > z.trabari..nsysware.com * www.insysware.com
    > >
    > > CONFIDENTIALITY: This email (including any attachments) may contain
    > > confidential, proprietary and privileged information, and unauthorized
    > > disclosure or use is prohibited. If you received this email in error,
    > > please notify the sender and delete this email from your system. Thank
    > > you.
    > >
    > >
    > > -----Original Message-----
    > > From: Andrey Razumovsky [mailto:razumovsky.andre..mail.com]
    > > Sent: Monday, February 16, 2009 3:15 PM
    > > To: use..ayenne.apache.org
    > > Subject: Re: Updating DataMap through ROP client
    > >
    > > I don't know details of Hessian, but I don't think HessianServlet
    > caches
    > > any
    > > data. Have you tried simply clearing client context's cache?
    > >
    > > 2009/2/16 Zissis Trabaris <z.trabari..nsysware.com>
    > >
    > > > I have solved the DataMap problem with the following: I have created
    > > an
    > > > HTTP back-channel that send the map xmls to the client. The client
    > > then
    > > > creates a new Configuration instance, modifies the data maps,
    > > serializes
    > > > the results to XML, sends them to the server and the server saves
    > them
    > > > to disk. The remaining problems to solve are the following:
    > > >
    > > > 1) I need to somehow refresh the configuration instances that are in
    > > > memory for the HessianServlet.
    > > > 2) Once refreshed, I need to somehow clear the object caches of the
    > > > HessianServlet.
    > > >
    > > > All of this without dropping any connections that the HessianServlet
    > > is
    > > > servicing.
    > > >
    > > > Zissis Trabaris * Chief Technology Officer * INSYSWARE * 3235 West
    > > River
    > > > Road, Grand Island, New York, 14072, USA
    > > > Mobile (716) 930-5654 * Office (518) 636-4118 * Fax (716) 625-1305 *
    > > > z.trabari..nsysware.com * www.insysware.com
    > > >
    > > > CONFIDENTIALITY: This email (including any attachments) may contain
    > > > confidential, proprietary and privileged information, and
    > unauthorized
    > > > disclosure or use is prohibited. If you received this email in
    > error,
    > > > please notify the sender and delete this email from your system.
    > Thank
    > > > you.
    > > >
    > > >
    > > > -----Original Message-----
    > > > From: Andrey Razumovsky [mailto:razumovsky.andre..mail.com]
    > > > Sent: Sunday, February 15, 2009 1:10 PM
    > > > To: use..ayenne.apache.org
    > > > Subject: Re: Updating DataMap through ROP client
    > > >
    > > > Hi Zissis,
    > > >
    > > > DbEntities are not being sent to client (and DataMap is sent
    > trimmed).
    > > > So I
    > > > don't think you can perform DataMap changes from client. What I
    > would
    > > > try to
    > > > do is to write a custom query which performs your operations and the
    > > > fire it
    > > > from the client. I'm not sure this will work though.
    > > >
    > > > Regards,
    > > > Andrey
    > > >
    > > > 2009/2/15 Zissis Trabaris <z.trabari..nsysware.com>
    > > >
    > > > > We have an ROP client that acts as a modeler for our runtime
    > > > > application. Is there any way to modify a DataMap via an ROP
    > client
    > > > > layer, synchronize the DB schema like I would do using
    > > > > ExecutingMergerContext at the server layer and then clear the
    > server
    > > > and
    > > > > client object caches without dropping the ROP connection?
    > > > >
    > > > >
    > > > >
    > > > > Zissis Trabaris * Chief Technology Officer * INSYSWARE * 3235 West
    > > > River
    > > > > Road, Grand Island, New York, 14072, USA
    > > > > Mobile (716) 930-5654 * Office (518) 636-4118 * Fax (716) 625-1305
    > *
    > > > > z.trabari..nsysware.com
    > > > <mailto:%20%20z.trabari..nsysware.com<20%2520z.trabaris@insysware.com>
    > <20%2520z.trabari..nsysware.com <20%252520z.trabaris@insysware.com>>
    > > <20%2520z.trabari..nsysware.com <20%252520z.trabaris@insysware.com> <
    > 20%252520z.trabari..nsysware.com <20%25252520z.trabaris@insysware.com>>><
    > > > 20%2520z.trabari..nsysware.com <20%252520z.trabaris@insysware.com> <
    > 20%252520z.trabari..nsysware.com <20%25252520z.trabaris@insysware.com>>
    > <
    > > 20%252520z.trabari..nsysware.com <20%25252520z.trabaris@insysware.com>
    > <20%25252520z.trabari..nsysware.com<20%2525252520z.trabaris@insysware.com>
    > >>>>
    > > > > *
    > > > > www.insysware.com <http://www.insysware.com/>
    > > > >
    > > > > ________________________________
    > > > >
    > > > > CONFIDENTIALITY: This email (including any attachments) may
    > contain
    > > > > confidential, proprietary and privileged information, and
    > > unauthorized
    > > > > disclosure or use is prohibited. If you received this email in
    > > error,
    > > > > please notify the sender and delete this email from your system.
    > > Thank
    > > > > you.
    > > > >
    > > > >
    > > > >
    > > > >
    > > >
    > >
    >



    This archive was generated by hypermail 2.0.0 : Tue Feb 17 2009 - 15:01:58 EST