ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lewis John Mcgibbney <lewis.mcgibb...@gmail.com>
Subject Re: Correct configuration for reading a list into a Java class
Date Tue, 04 Dec 2012 18:09:08 GMT
Hi,

Thanks so much for the heads up on this. I'll be getting back to it
shortly. Much appreciated, I'll be back on list to give the update.

Best

Lewis

On Tue, Dec 4, 2012 at 4:37 PM, Scot P. Floess <sfloess@nc.rr.com> wrote:
>
> 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
>



-- 
Lewis

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


Mime
View raw message