Hi Eric

I think it is not the proposed solution which might not be ideal but rather
the side-effect of exposing a complex object model pretty much one to one to
the outside world. Going forward, you might want to experiment with
introducing another root resource class into your application which will
introduce a simple model on top of the internal complex model which is more
difficult  to control.

That said, if you add a custom XMLStreamReader then you should be able to
use it to deal with the changes to the model. At the moment just try a fixed
namespace, but nothing will prevent you from enhancing the reader such that
it mantains a map of namespaces, changes names, etc... In DOSGI, you can
have a custom configurable JAXRS provider registered as an OSGI service, ex,
as MessageBodyWriter. So you'll be able to configure it from the activator,
ConfigAdmin, etc. And you'll be able to isolate your CXF deps to that bundle
dealing with the registration of the provider and move them away from your
main app bundle

Sergey

On Sat, Oct 2, 2010 at 2:57 AM, Kampf, Eric <eric.ka...@kronos.com> wrote:

>  Hmmm.  If I understand this correctly (and I may not), this would work
> but it might not be maintainable.  Here’s why:  From what I’ve seen of
> Aegis, the namespace mappings are specified on a per-object basis.  The
> objects I am dealing with a fairly complex (i.e. many layers of nested
> objects) and they are maintained by other developers.  The first object
> change that did not have a corresponding Aegis config change might break the
> service.
>
>
>
> In any case I’ll still give this a try.  Hopefully I will find a magic
> switch in Aegis that simplifies the overriding of namespaces.
>
>
>
> I’ll let you know how it goes.
>
>
>
> Thanks.
>
>
>
> -Eric
>
>
>
> *From:* Sergey Beryozkin [mailto:sberyoz...@gmail.com]
> *Sent:* Friday, October 01, 2010 4:20 PM
> *To:* users@cxf.apache.org
> *Cc:* Kampf, Eric
> *Subject:* Re: Aegis Binding without namespaces
>
>
>
> Yes, this should work, override a createReader method in the provider and
> return a custom reader, here's a basic example :
>
>
> http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomXmlStreamReader.java
>
> cheers, Sergey
>
>  On Fri, Oct 1, 2010 at 8:52 PM, Daniel Kulp <dk...@apache.org> wrote:
>
> On Friday 01 October 2010 2:28:34 pm Kampf, Eric wrote:
> > Sergey,
> >
> > I implemented your suggestion and it worked for outgoing data.
> > Unfortunately incoming data is an issue.  Aegis still requires the
> > namespace information to be able to unmarshal the XML.
> >
> > So what I am really looking for is a way to entirely disable namespace
> > mapping in the binding.  I realize it is not directly supported, but
> > perhaps there is some way to "trick" the binding?  Any suggestions?
>
> Is it possible to do the reverse on the way in?  Wrapper the
> XMLStreamReader
> with one that always returns a preconfigured namespace for all the calls
> the
> pull a namespace?
>
> Dan
>
>
>
> >
> > Thanks again for all your help to this point.
> >
> > -Eric
> >
> > -----Original Message-----
> > From: Sergey Beryozkin [mailto:sberyoz...@gmail.com]
> > Sent: Wednesday, September 29, 2010 5:45 AM
> > To: users@cxf.apache.org
> > Subject: Re: Aegis Binding without namespaces
> >
> > Hi Eric
> >
> > the way you can do it is as follows.
> >
> > Extend AegisElementProvider [1]  and override its createStreamWriter
> method
> > and create a custom writer, see [2] for an example, just pass to it the
> > writer instance AegisElementProvider creates.
> >
> > You just probably need to override writeNamespace(...) with a no-op
> > implementation and writeStartElement and block the namespaces.
> >
> > I believe you work with DOSGI. In that case, do not use
> > org.apache.cxf.rs.databindng property but rather an
> > "org.apache.cxf.rs.providers" and list the full name of your custom
> > provider.
> >
> > hope it helps, Sergey
> >
> > [1]
> >
> http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/o
> > rg/apache/cxf/jaxrs/provider/AegisElementProvider.java [2]
> >
> http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/
> > apache/cxf/systest/jaxrs/CustomXmlStreamWriter.java
> >
> > On Wed, Sep 29, 2010 at 2:15 AM, Kampf, Eric <eric.ka...@kronos.com>
> wrote:
> > > Yes the reason for this is that our primary clients are mobile devices,
> > > some of which have very limited XML parsing capabilities.  REST seems
> to
> > > emphasize simplicity and namespace handling is not always simple.  SOAP
> > > is a little too 2009 for my taste.  :-)
> > >
> > > -----Original Message-----
> > > From: Benson Margulies [mailto:bimargul...@gmail.com]
> > > Sent: Tuesday, September 28, 2010 9:09 PM
> > > To: users@cxf.apache.org
> > > Subject: Re: Aegis Binding without namespaces
> > >
> > > It's a big problem. The mapping of packages to namespaces avoids
> > > collisions. If you don't want namespaces, then you have to find
> > > another solution.
> > >
> > > I personally find no-namespace XML to be entirely too 1999 for my
> > > taste, but I imagine that you have a good reason for it.
> > >
> > > On Tue, Sep 28, 2010 at 4:49 PM, Daniel Kulp <dk...@apache.org> wrote:
> > > > I honestly don't think anyone has looked at this at all.   If it's
> > >
> > > something
> > >
> > > > you need, you'll likely have to work on it and submit patches.
> > > >
> > > > Dan
> > > >
> > > > On Tuesday 28 September 2010 4:26:35 pm Kampf, Eric wrote:
> > > >> Hello,
> > > >>
> > > >> I would like to use CXF's Aegis data binding for a REST service (I
> > > >> have multiple reasons for preferring Aegis over JAXB...).  The
> > > >> biggest impediment I face however is the presence of namespaces on
> > > >> all elements. This will be a hardship for most of our clients.
> > > >>
> > > >> I see that this topic came up a couple of years ago on this list:
> > > >>
> http://www.mail-archive.com/cxf-u...@incubator.apache.org/msg04683.htm
> > > >> l
> > >
> > > .
> > >
> > > >> It even resulted in the creation of a JIRA issue which is still
> listed
> > >
> > > as
> > >
> > > >> open:
> > >
> https://issues.apache.org/jira/browse/CXF-1291?page=com.atlassian.jira.pl
> > > u
> > >
> > > >> gin.system.issuetabpanels:comment-tabpanel.
> > > >>
> > > >> Does anyone know if there is a solution for this?  Our clients are
> > >
> > > simply
> > >
> > > >> not going to be able to use namespaces.  Is there any hope of
> > >
> > > configuring
> > >
> > > >> Aegis to function without namespaces?
> > > >>
> > > >> Thanks.
> > > >>
> > > >> -Eric
> > > >
> > > > --
> > > > Daniel Kulp
> > > > dk...@apache.org
> > > > http://dankulp.com/blog
>
> --
>
> Daniel Kulp
> dk...@apache.org
> http://dankulp.com/blog
>
>
>

Reply via email to