Hi Chris,

On 03.03.2021 22:33, Christopher Schultz wrote:
> Rony,
>
> On 3/3/21 06:42, Rony G. Flatscher (Apache) wrote:
>> Hi Chris,
>>
>> On 02.03.2021 17:48, Christopher Schultz wrote:
>>> Rony,
>>>
>>> On 2/28/21 11:33, Rony G. Flatscher (Apache) wrote:
>>>> Leo,
>>>>
>>>> On 26.02.2021 01:52, leo wrote:
>>>>> On 25 Feb 2021, at 2:47, Rony G. Flatscher (Apache) wrote:
>>>>>
>>>>>> P.S.: Have tested my implementation with Nashorn on Java 8 and it works 
>>>>>> out of the box!
>>>>>> Still, you
>>>>>> would need to test the implementation thoroughly yourself (stability, 
>>>>>> performance, resources)
>>>>>> and
>>>>>> would be asked to come back with feedback on each of these qualities. So 
>>>>>> stay tuned, will
>>>>>> publish a
>>>>>> link to the implementation with a proper Nashorn/JavaScript sample war 
>>>>>> in this mail thread in a
>>>>>> few
>>>>>> days.
>>>>>
>>>>> How cool is this! Let me know when you it ready, please. Thanks a lot!
>>>>
>>>> O.K., had a few things I could finalize. Created two war files, 
>>>> "demoJavaScript.war" and
>>>> "demoRhino.war". The first got tested against Nashorn, the second - you 
>>>> guessed it ;) - against
>>>> Rhino (7.1.13). They are meant as little proof-of-concepts that should 
>>>> help you to get up and
>>>> running with them.
>>>>
>>>> Please note that the libraries are beta, though appear to be stable. Yet, 
>>>> there may be
>>>> errors/problems in them or there may be changes coming up.
>>>>
>>>> If you have feedback of any sorts, please come forward (stability, 
>>>> usability, performance,
>>>> resources, etc.).
>>>>
>>>> Basically you just need to go to [1] and get the two war-files (copy to 
>>>> $CATALINA_HOME/webapps)
>>>> plus
>>>> either javax.ScriptTagLibs.jar (for Tomcat 9 or earlier) or 
>>>> jakarta.ScriptTagLibs.jar (for Tomcat
>>>> 10) which you should copy to the shared directory at $CATALINA_HOME/lib 
>>>> and restart Tomcat to get
>>>> them recognized. If you want to test with Rhino you should follow the 
>>>> directions at [1] and
>>>> copy the
>>>> mentioned two rhino jar files to the shared library directory as well.
>>>>
>>>> In general you should take the time and look over that page at [1], I 
>>>> tried to remain as brief as
>>>> possible. :)
>>>>
>>>> Also please do not forget that the target audience of [1] has been so far 
>>>> the Rexx community
>>>> and my
>>>> BA students who learned programming using ooRexx in a semester and with 
>>>> that knowledge should now
>>>> become able to create little web sites for their own purposes and maybe 
>>>> with some experience for
>>>> small businesses/organizations given the information at [1] as a starting 
>>>> point.
>>>>
>>>> Of course, if there are any questions please do not hesitate and please 
>>>> ask them!
>>>
>>> Any source available?
>>
>> Sure, sorry forgot to point that out explicitly!
>>
>> You can get at it either in the ScriptTagLibs jar files from [1] (yes, in 
>> this case I have the
>> source and also the tld files in the jar for completeness as well) or from 
>> [2] with the appropriate
>> checkout strings given in the upper half.
>>
>> Also, the license is AL 2.0, of course (dual licensed with the CPL 1.0 
>> license in addition which the
>> ooRexx project uses).
>>
>> Please note: currently the state is beta, it is functional and appears to be 
>> stable.
>
> This is a pretty awesome effort. 
Thank you!
> Since you work at a university, perhaps some of your students would be 
> interested in working on
> the library itself and not just in being an end-user. Maybe CS students at 
> the same uni though not
> in your program. They could probably get credit for working on it, too.

Currently there are only BA students available, some of them with an interest 
in CS and rarely some
that have already good programming skills in Java when coming to my "business 
programming" classes.
That situation has been the main motivation for creating this tag library. 
Depending on feedback and
free time I will enhance/overhaul it.

>
>> A request: if you see something questionable, improvable or missing, please 
>> be so kind and let me
>> know!
>>
>> There is certainly room for improvements, especially through the eyes of an 
>> Tomcat/Servlet expert
>> like yourself! :) E.g., it would be nice to put the tld files into the jar 
>> and allow the JSPs to
>> refer to them without the need to copy them to WEB-INF as is possible with 
>> the STL ; if I knew how
>> to do that, I would do it as it improves usability (ran out of time to 
>> research that specific
>> feature).
>
> Just put your .tld files in META-INF/ in your JAR file and Tomcat should 
> detect them. You will
> need to put those files into the web application's WEB-INF/lib directory. (I 
> think... I can't
> remember if Tomcat checks CATALINA_BASE/lib/*.jar for TLD files or not.)

Thank you for these pointers. Took some time to experiment with it, but it did 
not work out, neither
in CATALINA_BASE/lib nor in WEB-INF/lib. The startup-log states in either case:

    04-Mar-2021 12:15:20.624 INFO [main] 
org.apache.jasper.servlet.TldScanner.scanJars At least one
    JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for 
this logger for a
    complete list of JARs that were scanned but no TLDs were found in them. 
Skipping unneeded JARs
    during scanning can improve startup time and JSP compilation time.

Going after the TldScanner documentation/information led me to its JavaDocs, 
but also to [1] which
seems to indicate that one could define them in web.xml but can only refer to 
its WEB-INF/lib location.

As the standard tag library can do it, I went after stl's META-INF directory 
where there are a few
pointers like a file "permittedTaglibs.tld" and other tld files. However, not 
having a conceptual
overview it is currently impossible to see which parts need play together how. 
It may be the case
that for some in the know it is probably an easy task. :)

As placing the script-jsr223.tld or/and script-bsf.tld files into WEB-INF is 
probably o.k., I will
just leave it for the time being. This way it works no matter where the taglib 
is located, in
CATALINA_HOME/lib or in WEB-INF/lib. My reference group, my business 
administration students, seem
to not have a problem with it, so I follow the KISS :) principle here too...

Personally I prefer CATALINA_HOME/lib especially during the transition from 
Java EE ("javax.") to
Jakarta EE ("jakarta.") for the next years: one single location where one 
copies either
"javax.ScriptTagLibs.jar" or "jakarta.ScriptTagLibs.jar" and all dependent JSPs 
work. It makes it
also simple to use Tomcat 9 or earlier for the time being and once changing to 
Tomcat 10 all the web
apps remain intact (no need to change anything) as there is a single shared 
taglib that needs to be
replaced.

---rony

[1] "jsp-config": 
<https://docs.oracle.com/cd/E14571_01/web.1111/e13712/web_xml.htm#i1071164>


Reply via email to