From ec8a11c4665b1b06d39e0938eae9c5b409479ef7 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Mon, 26 Nov 2018 16:33:05 -0800 Subject: [PATCH] Scripting: Add back joda to whitelist (#35915) Watcher still exposes some dates as joda DateTime objects. This commit adds back joda to the painless whitelist so they can still be accessed. closes #35913 --- .../elasticsearch/painless/spi/joda.time.txt | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/joda.time.txt diff --git a/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/joda.time.txt b/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/joda.time.txt new file mode 100644 index 0000000000000..3b2f379c38e51 --- /dev/null +++ b/modules/lang-painless/src/main/resources/org/elasticsearch/painless/spi/joda.time.txt @@ -0,0 +1,60 @@ +# +# Licensed to Elasticsearch under one or more contributor +# license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright +# ownership. Elasticsearch licenses this file to you under +# the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# +# Painless definition file. This defines the hierarchy of classes, +# what methods and fields they have, etc. +# + +# NOTE: this just minimal whitelisting of joda time, just to provide +# convenient access via the scripting API. classes are fully qualified to avoid +# any confusion with java.time + +class org.joda.time.ReadableInstant { + boolean equals(Object) + long getMillis() + int hashCode() + boolean isAfter(org.joda.time.ReadableInstant) + boolean isBefore(org.joda.time.ReadableInstant) + boolean isEqual(org.joda.time.ReadableInstant) + String toString() +} + +class org.joda.time.ReadableDateTime { + int getCenturyOfEra() + int getDayOfMonth() + int getDayOfWeek() + int getDayOfYear() + int getEra() + int getHourOfDay() + int getMillisOfDay() + int getMillisOfSecond() + int getMinuteOfDay() + int getMinuteOfHour() + int getMonthOfYear() + int getSecondOfDay() + int getSecondOfMinute() + int getWeekOfWeekyear() + int getWeekyear() + int getYear() + int getYearOfCentury() + int getYearOfEra() + String toString(String) + String toString(String,Locale) +}