ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scot P. Floess" <sflo...@nc.rr.com>
Subject RE: Correct configuration for reading a list into a Java class
Date Tue, 04 Dec 2012 16:37:56 GMT

OK - I get it now...

I think Lewis was onto the correct solution to begin with...

Lewis, the issue you had with the file not found I suspect has to do with 
the way you did your pathconvert.  I believe you will want to use the 
pathsep attribute of pathconvert and set it to space:

<pathconvert pathsep=" " ...>
   ...
</pathconvert>

And use the <arg value=""> child elements as you originally did

So

<java ...>
    <arg value="${yourPathConvertProperty}"/>
    ...
</java>

On Mon, 3 Dec 2012, Martin Gainty wrote:

>
> this is a bit overly complex so Im looking for any suggestions to slim down the code
 GoraCompiler main method will need an argument of Collection base class //args[1] list of
String arguments consisting of names of absolute path for each asvc//args[2] name of the schema
(schema  name)from asvc
> //args[3] name of the document (document name) from asvc
> //args[4] namespace see the prefix in the asvc and round back up to xlmns:name=namespace
to obtain namespace
> org.apache.gora.compiler.GoraCompiler contains a main method
>
> http://www.jarvana.com/jarvana/view/org/apache/gora/gora-core/0.1-incubating/gora-core-0.1-incubating-javadoc.jar!/org/apache/gora/compiler/GoraCompiler.html
public static void main(String []args)
> {
> //assuming args[1] is a collection of strings representing the names of the asvc filesArrayList<String>
array=args[1];
> //construct a Names objectorg.apache.avro.Schema.Names names=org.apache.avro.Schema.Names();
> String space=" "; while (array.iterator().hasNext() )
> {String name=(String)array.iterator().next(); org.apache.avro.Schema.Name schema_name=new
org.apache.avro.Schema.Name( name, space) ;
> org.apache.avro.Schema schema=names.put(schema_name, Schema schema)
> } // end loop //getting the schema is a bit of a challenge since we will be expected
to know both the schema_name and the document_name
> String schema_nm = args[2];
> String document_name=args[3]; String namespace=args[4];
> /** Create an enum schema. */
>  org.apache.avro.Schema  schema=org.apache.avro.Schema .createEnum(schema_nm,document_name,
namespace,(List<String>)array) ; //construct a JsonNode from the schema element called
"fields"  org.codehaus.jackson.JsonNode fieldsJsonNode = schema.get("fields");
> //call Schema parse method with JsonNode fieldsJsonNode and constructedNames argument
schema=org.apache.avro.Schema.parse(fieldsJsonNode, names) }
> http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.avro/avro/1.7.2/org/apache/avro/Schema.java/?v=source
>
> HTH
> Martin
> ______________________________________________
> Catherine Zeta Jones:...I didn't know Porsche made things like this.
> Sean Connery:........ they don't...
>
> > Date: Mon, 3 Dec 2012 16:28:27 +0000
>> Subject: Re: Correct configuration for reading a list into a Java class
>> From: lewis.mcgibbney@gmail.com
>> To: user@ant.apache.org
>>
>> Hi Martin,
>>
>> Yes, I need a List[] of avro schemas. I need to compile the lot.
>>
>> I am curious as to an Apache Ant problem or a GoraCompiler problem
>>
>> I have a spade and I am digging
>>
>> On Mon, Dec 3, 2012 at 4:06 PM, Martin Gainty <mgainty@hotmail.com> wrote:
>>>
>>> MG>GoraCompiler main method calls compileSchema with one input src and output
dest MG>nearest i can tell GoraCompiler compileSchema references one src file
>>>
>>> MG>http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.gora/gora-core/0.2.1/org/apache/gora/compiler/GoraCompiler.java/?v=source
>>>
>>> MG>this Factory.parse is expecting 1 file input to  parse method MG>http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.avro/avro/1.7.2/org/apache/avro/Schema.java/?v=source
MG>in order to parse a collection the op would need to tweak GoraCompiler to call compileSchema
and pass in a constructed JSONNode and Names as in
>>> MG>static Schema parse(JsonNode schema, Names names)  MG>where Names is
a LinkedHashMap MG>http://grepcode.com/file/repo1.maven.org/maven2/org.apache.avro/avro/1.7.2/org/apache/avro/Schema.java#Schema.Names
>>> MG>Lewis..does this conform to your understanding?
>>>
>>> Martin Gainty
>>>
>>> ______________________________________________
>>> Please do not alter or disrupt this transmission..Thank You
>>>
>>> > Date: Mon, 3 Dec 2012 08:44:24 -0500
>>>> From: sfloess@nc.rr.com
>>>> To: user@ant.apache.org
>>>> Subject: RE: Correct configuration for reading a list into a Java class
>>>>
>>>>
>>>> Lewis,
>>>>
>>>> By command line params, I mean what params does GoraCompiler require (can
>>>> I see examples as if you'd manually execute from command line)...
>>>>
>>>> On Mon, 3 Dec 2012, Scot P. Floess wrote:
>>>>
>>>>>
>>>>> Martin,
>>>>>
>>>>> I don't know the GoraCompiler at all.  Again, I was just guessing what
he
>>>>> might need to do :)
>>>>>
>>>>>
>>>>> Lewis,
>>>>>
>>>>> Can you provide either a doc link or some of the command line params
that you
>>>>> need?
>>>>>
>>>>>
>>>>>
>>>>> On Sun, 2 Dec 2012, Martin Gainty wrote:
>>>>>
>>>>>>
>>>>>> MG>scott do you know the default folder delimiter GoraCompiler
expectsMG>if
>>>>>> lewis implements the arg element with space delimiter in his  line
>>>>>> attribute as inMG><arg line="${goraavscfiles} ${src.dir}">MG>can
we assume
>>>>>> GoraCompiler should implement space delimiter for folders instead
of colon
>>>>>> (:)> Date: Sun, 2 Dec 2012 12:43:05 -0500
>>>>>>> From: sfloess@nc.rr.com
>>>>>>> To: lewis.mcgibbney@gmail.com
>>>>>>> CC: user@ant.apache.org
>>>>>>> Subject: Re: Correct configuration for reading a list into a
Java class
>>>>>>>
>>>>>>>
>>>>>>> I don't know the GoraCompiler nor any of its command line arguments...
>>>>>>>
>>>>>>> But have you tried the java <arg line=""> sub element?
 I don't know if it
>>>>>>> will help you but this may work:
>>>>>>>
>>>>>>> <java classname="org.apache.gora.compiler.GoraCompiler" fork="true">
>>>>>>>    <classpath refid="classpath"/>
>>>>>>>    <arg line="${goraavscfiles} ${src.dir}"/>
>>>>>>> </java>
>>>>>>>
>>>>>>> I did a minor bit of googling - but didn't quickly find the command
line
>>>>>>> options or I may have had a firmer "I think this will work" statement
:)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sat, 1 Dec 2012, Lewis John Mcgibbney wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> I've done a fiar bit of digging on this one on user@ archives
and
>>>>>>>> there have been various threads on the topic. I understand
that the
>>>>>>>> solution to reading in multiple files an executing them with
the java
>>>>>>>> element is a custom solution. The problem is pretty simple.
I have a
>>>>>>>> directory of avro schemas which I would like to pass to a
GoraCompiler
>>>>>>>> class to be compiled.
>>>>>>>>
>>>>>>>> So far I've got
>>>>>>>>
>>>>>>>> <!-- ======================================================
-->
>>>>>>>> <!-- Generate the Java files from the GORA schemas   
      -->
>>>>>>>> <!-- Will call this automatically later              
      -->
>>>>>>>> <!-- ======================================================
-->
>>>>>>>> <!-- map for the gora .avsc files contained in ./src/gora/
>>>>>>>>      so they can be passed as a list to the GoraCompiler
>>>>>>>>      via the generate-gora-src target                -->
>>>>>>>> <fileset dir="${gora.avsc.dir}" id="gora.avsc.files">
>>>>>>>>  <include name="*.avsc"/>
>>>>>>>> </fileset>
>>>>>>>> <pathconvert property="goraavscfiles" refid="gora.avsc.files">
>>>>>>>>  <map from="${goraavscdir}" to=""/>
>>>>>>>> </pathconvert>
>>>>>>>>
>>>>>>>> <target name="generate-gora-src"
>>>>>>>>  description="> generate the Java files from the Gora
schema(s) in
>>>>>>>> src/gora/*.avsc">
>>>>>>>>  <java classname="org.apache.gora.compiler.GoraCompiler"
fork="true">
>>>>>>>>   <classpath refid="classpath"/>
>>>>>>>>   <arg value="${goraavscfiles}"/>
>>>>>>>>   <arg value="${src.dir}"/>
>>>>>>>>  </java>
>>>>>>>> </target>
>>>>>>>>
>>>>>>>> When I execute I get
>>>>>>>>
>>>>>>>> generate-gora-src:
>>>>>>>>     [java] 12/12/01 16:22:09 INFO compiler.GoraCompiler:
Compiling
>>>>>>>> schema file:
>>>>>>>> /home/lewismc/ASF/2.x/src/gora/host.avsc:/home/lewismc/ASF/2.x/src/gora/webpage.avsc
>>>>>>>> to: ./src/java
>>>>>>>>     [java] Exception in thread "main" java.io.FileNotFoundException:
>>>>>>>> /home/lewismc/ASF/2.x/src/gora/host.avsc:/home/lewismc/ASF/2.x/src/gora/webpage.avsc
>>>>>>>> (No such file or directory)
>>>>>>>>     [java]       at java.io.FileInputStream.open(Native Method)
>>>>>>>>     [java]       at java.io.FileInputStream.<init>(FileInputStream.java:120)
>>>>>>>>     [java]       at
>>>>>>>> org.codehaus.jackson.JsonFactory.createJsonParser(JsonFactory.java:325)
>>>>>>>>     [java]       at org.apache.avro.Schema.parse(Schema.java:794)
>>>>>>>>     [java]       at
>>>>>>>> org.apache.gora.compiler.GoraCompiler.compileSchema(GoraCompiler.java:87)
>>>>>>>>     [java]       at
>>>>>>>> org.apache.gora.compiler.GoraCompiler.main(GoraCompiler.java:509)
>>>>>>>>     [java] Java Result: 1
>>>>>>>>
>>>>>>>> BUILD SUCCESSFUL
>>>>>>>> Total time: 6 seconds
>>>>>>>>
>>>>>>>> If someone could please help me to understand how to separate
the
>>>>>>>> files into the required File [] list then that would be great.
I
>>>>>>>> should make it clear that I've discovered pathconvert's pathsep
>>>>>>>> attribute but it still seems to be a string being passed
as oppose to
>>>>>>>> a separated list of files.
>>>>>>>> I should also note that making the target accept a single
explicit
>>>>>>>> file works perfectly, so I know my configuration is in the
way I'm
>>>>>>>> constructing the mappings.
>>>>>>>>
>>>>>>>> Thanks very much in advance
>>>>>>>>
>>>>>>>> Lewis
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Lewis
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>>>>>> For additional commands, e-mail: user-help@ant.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> Scot P. Floess             RHCT  (Certificate Number 605010084735240)
>>>>>>> Chief Architect FlossWare  http://sourceforge.net/projects/flossware
>>>>>>>                             http://flossware.sourceforge.net
>>>>>>>                             https://github.com/organizations/FlossWare
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>>>>> For additional commands, e-mail: user-help@ant.apache.org
>>>>>>>
>>>>>>
>>>>>
>>>>> Scot P. Floess             RHCT  (Certificate Number 605010084735240)
>>>>> Chief Architect FlossWare  http://sourceforge.net/projects/flossware
>>>>>                           http://flossware.sourceforge.net
>>>>>                           https://github.com/organizations/FlossWare
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>>> For additional commands, e-mail: user-help@ant.apache.org
>>>>>
>>>>>
>>>>
>>>> Scot P. Floess             RHCT  (Certificate Number 605010084735240)
>>>> Chief Architect FlossWare  http://sourceforge.net/projects/flossware
>>>>                             http://flossware.sourceforge.net
>>>>                             https://github.com/organizations/FlossWare
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>> For additional commands, e-mail: user-help@ant.apache.org
>>>>
>>>
>>
>>
>>
>> --
>> Lewis
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
>>
>

Scot P. Floess             RHCT  (Certificate Number 605010084735240)
Chief Architect FlossWare  http://sourceforge.net/projects/flossware
                            http://flossware.sourceforge.net
                            https://github.com/organizations/FlossWare

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message