Thai.
I got your point when looking at the source code.
index 1843248..582ae82 100644
--- a/flume-core/src/main/java/com/cloudera/flume/conf/SourceFactory.java
+++ b/flume-core/src/main/java/com/cloudera/flume/conf/SourceFactory.java
...
@@ -33,10 +35,20 @@ abstract public class SourceFactory {
return build(new Context(), argv);
}
+ @Deprecated
public abstract EventSource build(Context ctx, String... argv);
+
+ public EventSource create(Context ctx, Object... argv) {
+ return build(ctx, toStrings(argv));
+ }
};
It's about deprecating an abstract method. I'm not quite sure the best
practice to deprecate an abstract method, maybe it should get concreted
(by an empty body) in flume?
Since the build() method is still abstract, right now (for 0.9,4) you
still have to override it in your client code, and ignore the deprecate
warning. Another reason is that I didn't see the create() method really
gets called in the source code.
-mingjie
On 09/27/2011 08:02 PM, Bao Thai Ngo wrote:
Mingjie,
Thanks for the reply.
I did override build() instead of create() but flume gave out the error
as I said in previous email (WARN
com.cloudera.flume.conf.__FlumeBuilder: Deprecated syntax: Expected a
format spec but instead had a (String) raw)
I then overrided create() according to the information Jonathan Hsieh
indicated at
https://groups.google.com/a/cloudera.org/group/flume-user/browse_thread/thread/19b3c9ebb21e4b06
any suggestions?
~Thai
On Wed, Sep 28, 2011 at 2:00 AM, Mingjie Lai <mjla...@gmail.com
<mailto:mjla...@gmail.com>> wrote:
Thai.
I checked out the 0.9.4-branch from
git://github.com/cloudera/__flume.git
<http://github.com/cloudera/flume.git>, but didn't see the problem.
In the source code, you should override build() instead of create()
here.
-mingjie
On 09/27/2011 03:59 AM, Bao Thai Ngo wrote:
any thought?
On Wed, Sep 21, 2011 at 4:19 PM, Bao Thai Ngo
<baothai...@gmail.com <mailto:baothai...@gmail.com>
<mailto:baothai...@gmail.com <mailto:baothai...@gmail.com>>> wrote:
I'd also like to keep you informed that when compiling FLume
Helloworld (modified according to some changes in version
0.9.4):
------------------------------__----
public static SinkDecoBuilder builder() {
return new SinkDecoBuilder() {
// construct a new parameterized decorator
@Override
public EventSinkDecorator<EventSink> create(Context
context,Object... argv) {
Preconditions.checkArgument(__argv.length == 0,"usage:
helloWorldDecorator");
return new HelloWorldDecorator<EventSink>__(null);
}
};
}
-----------------------
I get the following error:
[javac]
/usr/lib/flume/plugins/__helloworld/src/__HelloWorldDecorator.java:34:
<anonymous helloworld.__HelloWorldDecorator$1> is not abstract and
does not override abstract method
build(com.cloudera.flume.conf.__Context,java.lang.String...) in
com.cloudera.flume.conf.__SinkFactory.SinkDecoBuilder
[javac] return new SinkDecoBuilder() {
Was I missing something?
~Thai
On Wed, Sep 21, 2011 at 3:41 PM, Bao Thai Ngo
<baothai...@gmail.com <mailto:baothai...@gmail.com>
<mailto:baothai...@gmail.com <mailto:baothai...@gmail.com>>> wrote:
Hello list,
After updating to Flume v0.9.4-cdh3u1, I do meet this error:
WARN com.cloudera.flume.conf.__FlumeBuilder: Deprecated
syntax:
Expected a format spec but instead had a (String) raw
As a result, collector does not save events on storage
backend
Before the updating, my plug-ins worked completely well.
Below
is my typical config:
exec config node1 test
'tail("/path/to/test.txt",__startFromEnd="true")'
'{deco_modiy_event_body()=>__autoDFOChain}'
Any thoughts?
Thanks,
~Thai
On Sat, Sep 10, 2011 at 4:14 AM, Jeff Hansen
<dsche...@gmail.com <mailto:dsche...@gmail.com>
<mailto:dsche...@gmail.com <mailto:dsche...@gmail.com>>> wrote:
Sorry, I should have also mentioned that the output
itself
is coming
out in the raw format (consistent with the xml
config rather
than the
runtime config)
On Fri, Sep 9, 2011 at 4:10 PM, Jeff Hansen
<dsche...@gmail.com <mailto:dsche...@gmail.com>
<mailto:dsche...@gmail.com <mailto:dsche...@gmail.com>>> wrote:
> When I configure a collectorSink to use a format
different from the
> default specified in the flume-conf.xml file, it
continues to use the
> default. I get the following error
>
> 2011-09-09 16:02:29,059 [Roll-TriggerThread-0] WARN
conf.FlumeBuilder:
> Deprecated syntax: Expected a format spec but instead had
a (String)
> raw
>
> even though I'm using the following combination of
configurations. Is
> the xml file configuration supposed to supercede that of
the runtime
> configuration?
>
> I'm running version "Flume 0.9.4-cdh3u1"
>
> Here's the complete startup script I'm using:
>
> #!/bin/sh
> gnome-terminal -e "flume master"
> sleep 10
> flume shell -c localhost -e "exec config agent
> 'tail(\"/var/log/apache2/__access.log\")' '[console,
>
collectorSink(\"hdfs://__localhost/flume/avro/\",\"log\__",60000,avrojson)]'"
> gnome-terminal -e "flume node -n agent"
>
> Here's the appropriate entry from my flume-conf.xml file:
> <property>
> <name>flume.collector.output.__format</name>
> <value>raw</value>
> <description>The output format for the data written by a
Flume
> collector node. There are several formats available:
> syslog - outputs events in a syslog-like format
> log4j - outputs events in a pattern similar to
Hadoop's log4j pattern
> raw - Event body only. This is most similar to
copying a file but
> does not preserve any uniqifying metadata like
host/timestamp/nanos.
> avro - Avro Native file format. Default currently
is uncompressed.
> avrojson - this outputs data as json encoded by avro
> avrodata - this outputs data as a avro binary
encoded data
> debug - used only for debugging
> </description>
> </property>
>