abdera-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James M Snell <jasn...@gmail.com>
Subject Re: creating a writer
Date Mon, 12 May 2008 15:37:50 GMT
Checked in.

- James

David Calavera wrote:
> Hi, I've created a ticket into the jira and I've submited a patch:
> 
>     https://issues.apache.org/jira/browse/ABDERA-156
> 
> On Fri, May 9, 2008 at 10:01 PM, Vasudeva Nori <vasunori@gmail.com> wrote:
> 
>> I would like to propose a couple of changes/additions to the mechanism of
>> writing custom writers (& parsers) in abdera.
>>
>> Right now, Custom writers are to be declared in
>> META-INF/services/org.apache.abdera.writer.NamedWriter file
>> I was looking for a way to dynamically bind a "new writer" I have at
>> runtime, because in the system I am working with, there is no way to
>> statically enumerate the writers in a file.
>> Turns out it is not difficult at all. AbderaConfiguration has
>> addNamedWriters(NamedWriter) method that can be used to do this.
>>
>> so, here is my proposal: why not make this method part of the Configuration
>> interface.
>> Is there a strong reason to not do this?
>>
>> right now, code to add NamedWriter at runtime looks like this
>>    JSONWriter jsonWriter = new JSONWriter();
>>    Configuration config = getAbdera().getConfiguration();
>>    if (config instanceof AbderaConfiguration) {
>>      ((AbderaConfiguration)config).addNamedWriter(jsonWriter);
>>    }
>>
>> instead, I would like to remove the cast to AbderaConfiguration and make it
>> cleaner.
> 
> 
> instead of remove the cast, I've added the add method to the Configuration
> interface, so you can write this:
> 
>     getAbdera().getConfiguration().addNamedWriter(jsonWriter);
> 
> 
>>
>> and, BTW, I noticed there is no error handling in AbderaConfiguration.java
>> to make sure a writer for "name1" doesn't already exist before adding it to
>> "Map<String,NamedWriter> writers" struct.
>> have to submit a patch for it one of these days to fix this. unless James
>> or
>> someone else gets to it sooner :)
> 
> 
> I've added this check to all "add" methods, so if the NamedParser,
> NamedWriter, ExtensionFactory or StreamWriter already exist the
> configuration class shows a warning.
> 
> 
>>
>> thanks
>>
>> On Sat, May 3, 2008 at 2:38 AM, David Calavera <david.calavera@gmail.com>
>> wrote:
>>
>>> Yep, you can look at the custom writers section into the wiki:
>>>
>>> http://cwiki.apache.org/confluence/display/ABDERA/Custom+Writers
>>>
>>> On Sat, May 3, 2008 at 8:20 AM, Vasudeva Nori <vasunori@gmail.com>
>> wrote:
>>>> The following code fragment on Abdera's Extension web page shows a
>>> "json":
>>>> writer.
>>>> writer json = abdera.getWriterFactory().getWriter("json");
>>>> entry.writeTo(json, System.out);
>>>>
>>>> is it possible to create a writer for "foo_format" and do the following
>>>>
>>>> Writer json = abdera.getWriterFactory().getWriter("foo_format");
>>>> entry.writeTo(json, System.out);
>>>> If so, how does one "associate" foo_format writer to "foo_format"? any
>>>> pointer to doing this in abdera would be great.
>>>>
>>>> thanks
>>>>
>>>
>>>
>>> --
>>> David Calavera
>>> http://www.thinkincode.net
>>>
> 
> 
> 

Mime
View raw message