Of course we do. It seems the landing page / detailed example is still not 
steering users towards the Javadoc which anyhow is not the best media to 
explain 'how to' (imho).
Transforming/extracting 'how to's from the unit tests could be the cheapest way 
to improve on this area. (As in: how do I integrate my own classes/packages? 
-or- how do I ensure scripts are readonly and don't modify data?).

On 2023/08/07 10:08:59 Gary Gregory wrote:
> Do we need better documentation on the site?
> 
> Gary
> 
> On Mon, Aug 7, 2023, 5:45 AM Henri Biestro <hen...@apache.org> wrote:
> 
> > Hi;
> > JEXL 3.3. has increased default security by restricting permissions to a
> > very narrow set of allowed classes. In your case, you need to allow JEXL to
> > introspect your package by configuring your permissions. Have a look at
> > JexlPermissions javadoc for more explanations.
> > On JEXL 3.3, with Java 17, If your test class resides in the 'org.example'
> > package, the following code does run without errors.
> > ...
> >       Map<String, Object> funcs = new HashMap<String, Object>();
> >       funcs.put("math", new MyMath());
> >       JexlPermissions permissions = JexlPermissions.parse("org.example.*");
> >       JexlEngine jexl = new
> > JexlBuilder().permissions(permissions).namespaces(funcs).create();
> >       JexlContext jc = new MapContext();
> >       jc.set("pi", Math.PI);
> >       JexlExpression e = jexl.createExpression("math:cos(pi)");
> >       Object result = e.evaluate(jc);
> >       System.out.println("Result: " + result);
> > ...
> >
> > Cheers
> >
> > On 2023/08/06 06:54:05 Aditya Kumar1 wrote:
> > > Hi,
> > >
> > > I was trying to expose my own functions using JEXL library. I am trying
> > the below example.
> > >
> > >
> > >     public static class MyMath {
> > >         public double cos(final double x) {
> > >             return Math.cos(x);
> > >         }
> > >     }
> > >
> > >     public static void testCustomFunction2() {
> > >
> > >         try {
> > >             Map<String, Object> funcs = new HashMap<String, Object>();
> > >             funcs.put("math", new MyMath());
> > >             JexlEngine jexl = new
> > JexlBuilder().namespaces(funcs).create();
> > >             JexlContext jc = new MapContext();
> > >             jc.set("pi", Math.PI);
> > >             JexlExpression e = jexl.createExpression("math:cos(pi)");
> > >             Object result = e.evaluate(jc);
> > >             System.out.println("Result: " + result);
> > >         }
> > >         catch (JexlException e) {
> > >             Throwable original = e.getCause();
> > >             System.out.println(e.getMessage());
> > >             original.printStackTrace();
> > >             //do something with the original
> > >         }
> > >     }
> > >
> > > which is given at below link:
> > >
> > https://commons.apache.org/proper/commons-jexl/apidocs/org/apache/commons/jexl3/package-summary.html#usage
> > >
> > > When I run the above code, I get below exception.
> > >
> > > org.example.Main.testCustomFunction2:93@1:9 unsolvable function/method
> > 'cos(Float)'
> > > Exception in thread "main" java.lang.NullPointerException
> > >        at org.example.Main.testCustomFunction2(Main.java:100)
> > >        at org.example.Main.main(Main.java:33)
> > >
> > > Can someone, please help me with this? I think, this is a supported way
> > to use custom functions or exposing my own/wrapper functions. I am using
> > Java 11 to run the above example.
> > >
> > > Thanks,
> > > Aditya
> > >
> > >
> > >
> > > —
> > > Aditya Kumar1
> > > Technology Architect
> > > Precisely.com
> > >
> > >  ATTENTION: -----The information contained in this message (including
> > any files transmitted with this message) may contain proprietary, trade
> > secret or other confidential and/or legally privileged information. Any
> > pricing information contained in this message or in any files transmitted
> > with this message is always confidential and cannot be shared with any
> > third parties without prior written approval from Precisely. This message
> > is intended to be read only by the individual or entity to whom it is
> > addressed or by their designee. If the reader of this message is not the
> > intended recipient, you are on notice that any use, disclosure, copying or
> > distribution of this message, in any form, is strictly prohibited. If you
> > have received this message in error, please immediately notify the sender
> > and/or Precisely and destroy all copies of this message in your possession,
> > custody or control.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> > For additional commands, e-mail: dev-h...@commons.apache.org
> >
> >
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to