From cf88f9358014d8c9b295ee4f2cd22cdd408b33a2 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Mon, 9 Sep 2024 14:07:21 -0400 Subject: [PATCH 1/7] [TEST] Add a GPL snippet from mysql's CacheAdapter (GPL 2.0) --- .../main/java/mondrian/spi/CacheAdapter.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 mondrian/src/main/java/mondrian/spi/CacheAdapter.java diff --git a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java new file mode 100755 index 0000000000..300c6ea288 --- /dev/null +++ b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java @@ -0,0 +1,18 @@ + +package mondrian.spi; + +import java.util.Set; + +public interface CacheAdapter { + + V get(K key); + + void put(K key, V value); + + void invalidate(K key); + + void invalidateAll(Set keys); + + void invalidateAll(); + +} From 044a268771c6830d23e925651d5a215ff16ed06f Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Mon, 9 Sep 2024 14:14:18 -0400 Subject: [PATCH 2/7] [TEST] Add a GPL snippet from mysql's Messages (GPL 2.0) --- .../src/main/java/mondrian/spi/Messages.java | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 mondrian/src/main/java/mondrian/spi/Messages.java diff --git a/mondrian/src/main/java/mondrian/spi/Messages.java b/mondrian/src/main/java/mondrian/spi/Messages.java new file mode 100755 index 0000000000..bbe520bd6a --- /dev/null +++ b/mondrian/src/main/java/mondrian/spi/Messages.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. + * + * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.0, as published by + * the Free Software Foundation. + * + * This program is designed to work with certain software that is licensed under separate terms, as designated in a particular file or component or in + * included license documentation. The authors of MySQL hereby grant you an additional permission to link the program and your derivative works with the + * separately licensed software that they have either included with the program or referenced in the documentation. + * + * Without limiting anything contained in the foregoing, this file, which is part of MySQL Connector/J, is also subject to the Universal FOSS Exception, + * version 1.0, a copy of which can be found at http://oss.oracle.com/licenses/universal-foss-exception. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0, for more details. + * + * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package mondrian.spi; + +import java.text.MessageFormat; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * Support for localized messages. + */ +public class Messages { + + private static final String BUNDLE_NAME = "com.mysql.cj.LocalizedErrorMessages"; + + private static final ResourceBundle RESOURCE_BUNDLE; + private static final Object[] emptyObjectArray = {}; + + static { + ResourceBundle temp = null; + + // + // Overly-pedantic here, some appserver and JVM combos don't deal well with the no-args version, others don't deal well with the three-arg version, so + // we need to try both :( + // + + try { + temp = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault(), Messages.class.getClassLoader()); + } catch (Throwable t) { + try { + temp = ResourceBundle.getBundle(BUNDLE_NAME); + } catch (Throwable t2) { + RuntimeException rt = new RuntimeException("Can't load resource bundle due to underlying exception " + t.toString()); + rt.initCause(t2); + + throw rt; + } + } finally { + RESOURCE_BUNDLE = temp; + } + } + + /** + * Returns the localized message for the given message key + * + * @param key + * the message key + * @return The localized message for the key + */ + public static String getString(String key) { + return getString(key, emptyObjectArray); + } + + public static String getString(String key, Object[] args) { + if (RESOURCE_BUNDLE == null) { + throw new RuntimeException("Localized messages from resource bundle '" + BUNDLE_NAME + "' not loaded during initialization of driver."); + } + + try { + if (key == null) { + throw new IllegalArgumentException("Message key can not be null"); + } + + String message = RESOURCE_BUNDLE.getString(key); + + if (message == null) { + message = "Missing error message for key '" + key + "'"; + } + + return MessageFormat.format(message, args); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } + + /** + * Dis-allow construction ... + */ + private Messages() { + } + +} \ No newline at end of file From ddf7761b61749b6c20979092ef67c38efcc93490 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Mon, 9 Sep 2024 14:34:48 -0400 Subject: [PATCH 3/7] [TEST] Add a GPL snippet from mysql's Messages (GPL 2.0) --- .../src/main/java/mondrian/spi/Messages.java | 200 +++++++++--------- .../main/java/mondrian/spi/ProfilerEvent.java | 130 ++++++++++++ 2 files changed, 230 insertions(+), 100 deletions(-) create mode 100755 mondrian/src/main/java/mondrian/spi/ProfilerEvent.java diff --git a/mondrian/src/main/java/mondrian/spi/Messages.java b/mondrian/src/main/java/mondrian/spi/Messages.java index bbe520bd6a..57c8084411 100755 --- a/mondrian/src/main/java/mondrian/spi/Messages.java +++ b/mondrian/src/main/java/mondrian/spi/Messages.java @@ -1,101 +1,101 @@ -/* - * Copyright (c) 2002, 2024, Oracle and/or its affiliates. - * - * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.0, as published by - * the Free Software Foundation. - * - * This program is designed to work with certain software that is licensed under separate terms, as designated in a particular file or component or in - * included license documentation. The authors of MySQL hereby grant you an additional permission to link the program and your derivative works with the - * separately licensed software that they have either included with the program or referenced in the documentation. - * - * Without limiting anything contained in the foregoing, this file, which is part of MySQL Connector/J, is also subject to the Universal FOSS Exception, - * version 1.0, a copy of which can be found at http://oss.oracle.com/licenses/universal-foss-exception. - * - * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0, for more details. - * - * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -package mondrian.spi; - -import java.text.MessageFormat; -import java.util.Locale; -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -/** - * Support for localized messages. - */ -public class Messages { - - private static final String BUNDLE_NAME = "com.mysql.cj.LocalizedErrorMessages"; - - private static final ResourceBundle RESOURCE_BUNDLE; - private static final Object[] emptyObjectArray = {}; - - static { - ResourceBundle temp = null; - - // - // Overly-pedantic here, some appserver and JVM combos don't deal well with the no-args version, others don't deal well with the three-arg version, so - // we need to try both :( - // - - try { - temp = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault(), Messages.class.getClassLoader()); - } catch (Throwable t) { - try { - temp = ResourceBundle.getBundle(BUNDLE_NAME); - } catch (Throwable t2) { - RuntimeException rt = new RuntimeException("Can't load resource bundle due to underlying exception " + t.toString()); - rt.initCause(t2); - - throw rt; - } - } finally { - RESOURCE_BUNDLE = temp; - } - } - - /** - * Returns the localized message for the given message key - * - * @param key - * the message key - * @return The localized message for the key - */ - public static String getString(String key) { - return getString(key, emptyObjectArray); - } - - public static String getString(String key, Object[] args) { - if (RESOURCE_BUNDLE == null) { - throw new RuntimeException("Localized messages from resource bundle '" + BUNDLE_NAME + "' not loaded during initialization of driver."); - } - - try { - if (key == null) { - throw new IllegalArgumentException("Message key can not be null"); - } - - String message = RESOURCE_BUNDLE.getString(key); - - if (message == null) { - message = "Missing error message for key '" + key + "'"; - } - - return MessageFormat.format(message, args); - } catch (MissingResourceException e) { - return '!' + key + '!'; - } - } - - /** - * Dis-allow construction ... - */ - private Messages() { - } - +/* + * Copyright (c) 2002, 2024, Oracle and/or its affiliates. + * + * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.0, as published by + * the Free Software Foundation. + * + * This program is designed to work with certain software that is licensed under separate terms, as designated in a particular file or component or in + * included license documentation. The authors of MySQL hereby grant you an additional permission to link the program and your derivative works with the + * separately licensed software that they have either included with the program or referenced in the documentation. + * + * Without limiting anything contained in the foregoing, this file, which is part of MySQL Connector/J, is also subject to the Universal FOSS Exception, + * version 1.0, a copy of which can be found at http://oss.oracle.com/licenses/universal-foss-exception. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0, for more details. + * + * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +package mondrian.spi; + +import java.text.MessageFormat; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +/** + * Support for localized messages. + */ +public class Messages { + + private static final String BUNDLE_NAME = "com.mysql.cj.LocalizedErrorMessages"; + + private static final ResourceBundle RESOURCE_BUNDLE; + private static final Object[] emptyObjectArray = {}; + + static { + ResourceBundle temp = null; + + // + // Overly-pedantic here, some appserver and JVM combos don't deal well with the no-args version, others don't deal well with the three-arg version, so + // we need to try both :( + // + + try { + temp = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault(), Messages.class.getClassLoader()); + } catch (Throwable t) { + try { + temp = ResourceBundle.getBundle(BUNDLE_NAME); + } catch (Throwable t2) { + RuntimeException rt = new RuntimeException("Can't load resource bundle due to underlying exception " + t.toString()); + rt.initCause(t2); + + throw rt; + } + } finally { + RESOURCE_BUNDLE = temp; + } + } + + /** + * Returns the localized message for the given message key + * + * @param key + * the message key + * @return The localized message for the key + */ + public static String getString(String key) { + return getString(key, emptyObjectArray); + } + + public static String getString(String key, Object[] args) { + if (RESOURCE_BUNDLE == null) { + throw new RuntimeException("Localized messages from resource bundle '" + BUNDLE_NAME + "' not loaded during initialization of driver."); + } + + try { + if (key == null) { + throw new IllegalArgumentException("Message key can not be null"); + } + + String message = RESOURCE_BUNDLE.getString(key); + + if (message == null) { + message = "Missing error message for key '" + key + "'"; + } + + return MessageFormat.format(message, args); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } + + /** + * Dis-allow construction ... + */ + private Messages() { + } + } \ No newline at end of file diff --git a/mondrian/src/main/java/mondrian/spi/ProfilerEvent.java b/mondrian/src/main/java/mondrian/spi/ProfilerEvent.java new file mode 100755 index 0000000000..992bf57c6c --- /dev/null +++ b/mondrian/src/main/java/mondrian/spi/ProfilerEvent.java @@ -0,0 +1,130 @@ + +package mondrian.spi; + +public interface ProfilerEvent { + + /** + * Profiler event for usage advisor + */ + public static final byte TYPE_USAGE = 0; + + /** + * Profiler creating object type event + */ + public static final byte TYPE_OBJECT_CREATION = 1; + + /** + * Profiler event for prepared statements being prepared + */ + public static final byte TYPE_PREPARE = 2; + + /** + * Profiler event for a query being executed + */ + public static final byte TYPE_QUERY = 3; + + /** + * Profiler event for prepared statements being executed + */ + public static final byte TYPE_EXECUTE = 4; + + /** + * Profiler event for result sets being retrieved + */ + public static final byte TYPE_FETCH = 5; + + /** + * Profiler event for slow query + */ + public static final byte TYPE_SLOW_QUERY = 6; + + /** + * Not available value. + */ + public static final byte NA = -1; + + /** + * Returns the event type + * + * @return the event type + */ + byte getEventType(); + + /** + * Returns the host name the event occurred on. + * + * @return host name + */ + String getHostName(); + + /** + * Returns the database the event occurred on. + * + * @return the database in use + */ + String getDatabase(); + + /** + * Returns the id of the associated connection (-1 for none). + * + * @return the connection in use + */ + long getConnectionId(); + + /** + * Returns the id of the associated statement (-1 for none). + * + * @return the statement in use + */ + int getStatementId(); + + /** + * Returns the id of the associated result set (-1 for none). + * + * @return the result set in use + */ + int getResultSetId(); + + /** + * Returns the time (in System.currentTimeMillis() form) when this event was created. + * + * @return the time this event was created + */ + long getEventCreationTime(); + + /** + * Returns the duration of the event in milliseconds + * + * @return the duration of the event in milliseconds + */ + long getEventDuration(); + + /** + * Returns the units for getEventDuration() + * + * @return name of duration units + */ + String getDurationUnits(); + + /** + * Returns the description of where the event was created. + * + * @return a description of where this event was created. + */ + String getEventCreationPointAsString(); + + /** + * Returns the optional message for this event + * + * @return the message stored in this event + */ + String getMessage(); + + /** + * Creates a binary representation of this event. + * + * @return a binary representation of this event + */ + byte[] pack(); + +} \ No newline at end of file From a374b83cdcd218070110117a707c86bf20f3ad74 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Tue, 10 Sep 2024 17:00:16 -0400 Subject: [PATCH 4/7] [TEST] Random update --- mondrian/src/main/java/mondrian/spi/CacheAdapter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java index 300c6ea288..2bcc70c980 100755 --- a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java +++ b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java @@ -7,6 +7,7 @@ public interface CacheAdapter { V get(K key); + void put(K key, V value); void invalidate(K key); From 327faefd3e4747609b397dbd750d86368bf62356 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Mon, 23 Sep 2024 12:07:35 -0400 Subject: [PATCH 5/7] [TEST] Test threatrix pr review --- mondrian/src/main/java/mondrian/spi/CacheAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java index 2bcc70c980..3dfa2b6212 100755 --- a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java +++ b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java @@ -6,7 +6,6 @@ public interface CacheAdapter { V get(K key); - void put(K key, V value); From 05c12f819f0f227eedfe19dc07735353bc1b547a Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Tue, 24 Sep 2024 10:04:08 -0400 Subject: [PATCH 6/7] [TEST] Trigger build --- mondrian/src/main/java/mondrian/spi/CacheAdapter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java index 3dfa2b6212..2bcc70c980 100755 --- a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java +++ b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java @@ -6,6 +6,7 @@ public interface CacheAdapter { V get(K key); + void put(K key, V value); From be486d292384dca65a6dc3278188583c0b4702b1 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Tue, 24 Sep 2024 10:38:49 -0400 Subject: [PATCH 7/7] Update CacheAdapter.java --- mondrian/src/main/java/mondrian/spi/CacheAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java index 2bcc70c980..300c6ea288 100755 --- a/mondrian/src/main/java/mondrian/spi/CacheAdapter.java +++ b/mondrian/src/main/java/mondrian/spi/CacheAdapter.java @@ -7,7 +7,6 @@ public interface CacheAdapter { V get(K key); - void put(K key, V value); void invalidate(K key);