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.mcgibb...@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 <mgai...@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: sflo...@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: sflo...@nc.rr.com
To: lewis.mcgibb...@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-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@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-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@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-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@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-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org





--
Lewis

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@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-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to