API generation

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: API generation

Amit Rana
Hi Thomas,

Thanks to you patch, the API is now working fine. :-)
Finally after days and days of frustration, I get the result. Thanks a lot again.

Just as a reference, I want to clarify one thing for me. This should have worked without the patch but because my server is case sensitive, so that's why it was unable to find the files. Right ?
Thus, I should change my server settings in order to get this work without the patch. I went through the URL you gave to me about Tomcat settings and will try to see where this has been set.

thanks a ton again.

regards
Amit

thron7 wrote:
Amit Rana wrote:
  
The main thing is that why does calling "generate.py api" generate 
files in lowercase.

Tracing the "generate.py api", I found that eventually the 
"build-data" job of qooxdoo-0.8-sdk\component\apiviewer\api.json file 
is called which in turn runs the "api"  job on python generator. This 
generates all the data files (class files) in the custom/api/script 
folder (like qx.class.js etc).
Now, since I don't know much about python, so I cannot explore how 
this job runs internally by python and why does it generate files in 
lowercase instead of uppercase.

Now, I have 2 options:
1. Know the internal working and try to generate files in uppercase.
2. Understand how offline access is able to resolve case name and 
implement similar thing for server.
    

I think I found it! It has nothing to do with *reading* the files from 
disk (as I thought). It is the generator when *writing* the files to 
disk. You can easily test  the following patch: Locate the file 
tool\pylib\misc\filetool.py. Then change the lines:


    def normalize(filename):
        return os.path.normcase(os.path.normpath(filename))


to

    def normalize(filename):
        return os.path.normpath(filename)

This should do the trick :). Let me know if it works.



  
amit

P.S. : Pretty strange that only I faced this issue =-O
    

I believe it was a combination of factors. For one, our old tool chain 
on Windows was based on Cygwin, which produced mixed case file names 
alright. But when we switched to Python-only tools (with 0.8), it was 
possible to run the generator with native Python implementations. Now 
running *that* turned on a platform-dependend feature in Python that 
would convert the file names to all-lower case.
Now this alone wouldn't have sufficed. It took the additional piece of 
an application (a web server in your case) that was particular about 
character case, so Tomcat would distinguish "qx.class.js" from 
"qx.Class.js" (while most other Windows apps, including browsers, would 
not).

So it was your combination of tools that brought up the issue - good one :).

T.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Reply | Threaded
Open this post in threaded view
|

Re: API generation

thron7


Amit Rana wrote:
> Hi Thomas,
>
> Thanks to you patch, the API is now working fine. :-)
> Finally after days and days of frustration, I get the result. Thanks a
> lot again.
>
> Just as a reference, I want to clarify one thing for me. This should
> have worked without the patch but because my server is case sensitive,
> so that's why it was unable to find the files. Right ?

Yep, that's how I get it.

> Thus, I should change my server settings in order to get this work
> without the patch. I went through the URL you gave to me about Tomcat
> settings and will try to see where this has been set.

Yes, but mind the strong recommendation to *not* switch it to false on
Windows :).

T.

>
> thanks a ton again.
>
> regards
> Amit
>
> thron7 wrote:
>> Amit Rana wrote:
>>  
>>> The main thing is that why does calling "generate.py api" generate
>>> files in lowercase.
>>>
>>> Tracing the "generate.py api", I found that eventually the
>>> "build-data" job of qooxdoo-0.8-sdk\component\apiviewer\api.json file
>>> is called which in turn runs the "api"  job on python generator. This
>>> generates all the data files (class files) in the custom/api/script
>>> folder (like qx.class.js etc).
>>> Now, since I don't know much about python, so I cannot explore how
>>> this job runs internally by python and why does it generate files in
>>> lowercase instead of uppercase.
>>>
>>> Now, I have 2 options:
>>> 1. Know the internal working and try to generate files in uppercase.
>>> 2. Understand how offline access is able to resolve case name and
>>> implement similar thing for server.
>>>    
>>
>> I think I found it! It has nothing to do with *reading* the files from
>> disk (as I thought). It is the generator when *writing* the files to
>> disk. You can easily test  the following patch: Locate the file
>> tool\pylib\misc\filetool.py. Then change the lines:
>>
>>
>>     def normalize(filename):
>>         return os.path.normcase(os.path.normpath(filename))
>>
>>
>> to
>>
>>     def normalize(filename):
>>         return os.path.normpath(filename)
>>
>> This should do the trick :). Let me know if it works.
>>
>>
>>
>>  
>>> amit
>>>
>>> P.S. : Pretty strange that only I faced this issue =-O
>>>    
>>
>> I believe it was a combination of factors. For one, our old tool chain
>> on Windows was based on Cygwin, which produced mixed case file names
>> alright. But when we switched to Python-only tools (with 0.8), it was
>> possible to run the generator with native Python implementations. Now
>> running *that* turned on a platform-dependend feature in Python that
>> would convert the file names to all-lower case.
>> Now this alone wouldn't have sufficed. It took the additional piece of
>> an application (a web server in your case) that was particular about
>> character case, so Tomcat would distinguish "qx.class.js" from
>> "qx.Class.js" (while most other Windows apps, including browsers, would
>> not).
>>
>> So it was your combination of tools that brought up the issue - good one :).
>>
>> T.
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> ------------------------------------------------------------------------
>
> _______________________________________________
> qooxdoo-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>  

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
qooxdoo-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
12