From 33821696cd6c54b4dad94e3f46aed56f55a16c28 Mon Sep 17 00:00:00 2001 From: Stephen Mallette Date: Wed, 5 Jul 2017 15:46:35 -0400 Subject: [PATCH 1/3] TINKERPOP-1706 Removed deprecated ScriptEngineCache and CoreImports --- CHANGELOG.asciidoc | 2 + docs/src/upgrade/release-3.3.x.asciidoc | 5 +- .../tinkerpop/gremlin/util/CoreImports.java | 292 ------------------ .../gremlin/util/ScriptEngineCache.java | 59 ---- .../gremlin/util/ScriptEngineCacheTest.java | 46 --- 5 files changed, 6 insertions(+), 398 deletions(-) delete mode 100644 gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java delete mode 100644 gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCache.java delete mode 100644 gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCacheTest.java diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index bfdd43d7a5a..1d8dde8b194 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -30,6 +30,8 @@ TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET) * Removed previously deprecated `ConnectiveP`, `AndP`, `OrP` constructors. * Removed previously deprecated `TraversalScriptFunction` class. * Removed previously deprecated `TraversalScriptHelper` class. +* Removed previously deprecated `ScriptEngineCache` class. +* Removed previously deprecated `CoreImports` class. * `gremlin.sh` and `gremln.bat` no longer support the option to pass a script as an argument for execution mode without using the `-i` option. * Graphite and Ganglia are no longer packaged with the Gremlin Server distribution. * `TransactionException` is no longer a class of `AbstractTransaction` and it extends `RuntimeException`. diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc index d729da870a0..a1ffc700c28 100644 --- a/docs/src/upgrade/release-3.3.x.asciidoc +++ b/docs/src/upgrade/release-3.3.x.asciidoc @@ -220,6 +220,8 @@ The following deprecated classes, methods or fields have been removed in this ve ** `org.apache.tinkerpop.gremlin.structure.io.Io.Builder#registry(IoRegistry)` ** `org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONMapper.Builder#embedTypes(boolean)` ** `org.apache.tinkerpop.gremlin.structure.Transaction.submit(Function)` +** `org.apache.tinkerpop.gremlin.util.CoreImports` +** `org.apache.tinkerpop.gremlin.util.ScriptEngineCache` * `gremlin-driver` ** `org.apache.tinkerpop.gremlin.driver.Cluster$Builder#reconnectIntialDelay(int)` ** `org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0(GryoMapper)` @@ -304,7 +306,8 @@ link:https://issues.apache.org/jira/browse/TINKERPOP-1612[TINKERPOP-1612], link:https://issues.apache.org/jira/browse/TINKERPOP-1622[TINKERPOP-1622], link:https://issues.apache.org/jira/browse/TINKERPOP-1651[TINKERPOP-1651], link:https://issues.apache.org/jira/browse/TINKERPOP-1694[TINKERPOP-1694], -link:https://issues.apache.org/jira/browse/TINKERPOP-1700[TINKERPOP-1700] +link:https://issues.apache.org/jira/browse/TINKERPOP-1700[TINKERPOP-1700], +link:https://issues.apache.org/jira/browse/TINKERPOP-1706[TINKERPOP-1706] Gremlin-server.sh and Init Scripts ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java deleted file mode 100644 index 1383fac2227..00000000000 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/CoreImports.java +++ /dev/null @@ -1,292 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF 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. - */ - -package org.apache.tinkerpop.gremlin.util; - -import org.apache.commons.configuration.BaseConfiguration; -import org.apache.commons.configuration.CombinedConfiguration; -import org.apache.commons.configuration.CompositeConfiguration; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationBuilder; -import org.apache.commons.configuration.ConfigurationUtils; -import org.apache.commons.configuration.FileConfiguration; -import org.apache.commons.configuration.HierarchicalConfiguration; -import org.apache.commons.configuration.MapConfiguration; -import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.commons.configuration.SubsetConfiguration; -import org.apache.commons.configuration.XMLConfiguration; -import org.apache.tinkerpop.gremlin.process.computer.Computer; -import org.apache.tinkerpop.gremlin.process.computer.ComputerResult; -import org.apache.tinkerpop.gremlin.process.computer.GraphComputer; -import org.apache.tinkerpop.gremlin.process.computer.Memory; -import org.apache.tinkerpop.gremlin.process.computer.VertexProgram; -import org.apache.tinkerpop.gremlin.process.computer.bulkdumping.BulkDumperVertexProgram; -import org.apache.tinkerpop.gremlin.process.computer.bulkloading.BulkLoader; -import org.apache.tinkerpop.gremlin.process.computer.bulkloading.BulkLoaderVertexProgram; -import org.apache.tinkerpop.gremlin.process.computer.bulkloading.IncrementalBulkLoader; -import org.apache.tinkerpop.gremlin.process.computer.bulkloading.OneTimeBulkLoader; -import org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.ClusterCountMapReduce; -import org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.ClusterPopulationMapReduce; -import org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.PeerPressureVertexProgram; -import org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankMapReduce; -import org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankVertexProgram; -import org.apache.tinkerpop.gremlin.process.computer.traversal.MemoryTraversalSideEffects; -import org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram; -import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy; -import org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy; -import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection; -import org.apache.tinkerpop.gremlin.process.remote.RemoteGraph; -import org.apache.tinkerpop.gremlin.process.traversal.Bindings; -import org.apache.tinkerpop.gremlin.process.traversal.Operator; -import org.apache.tinkerpop.gremlin.process.traversal.Order; -import org.apache.tinkerpop.gremlin.process.traversal.P; -import org.apache.tinkerpop.gremlin.process.traversal.Pop; -import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; -import org.apache.tinkerpop.gremlin.process.traversal.Scope; -import org.apache.tinkerpop.gremlin.process.traversal.Translator; -import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; -import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; -import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; -import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ConnectiveStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.EventStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.HaltedTraverserStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.MatchAlgorithmStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.ProfileStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.AdjacentToIncidentStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.FilterRankingStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IdentityRemovalStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IncidentToAdjacentStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.LazyBarrierStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.MatchPredicateStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.OrderLimitStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.PathProcessorStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.CountStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.LambdaRestrictionStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.StandardVerificationStrategy; -import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics; -import org.apache.tinkerpop.gremlin.structure.Column; -import org.apache.tinkerpop.gremlin.structure.Direction; -import org.apache.tinkerpop.gremlin.structure.Edge; -import org.apache.tinkerpop.gremlin.structure.Element; -import org.apache.tinkerpop.gremlin.structure.Graph; -import org.apache.tinkerpop.gremlin.structure.Property; -import org.apache.tinkerpop.gremlin.structure.T; -import org.apache.tinkerpop.gremlin.structure.Transaction; -import org.apache.tinkerpop.gremlin.structure.Vertex; -import org.apache.tinkerpop.gremlin.structure.VertexProperty; -import org.apache.tinkerpop.gremlin.structure.io.GraphReader; -import org.apache.tinkerpop.gremlin.structure.io.GraphWriter; -import org.apache.tinkerpop.gremlin.structure.io.Io; -import org.apache.tinkerpop.gremlin.structure.io.IoCore; -import org.apache.tinkerpop.gremlin.structure.io.Storage; -import org.apache.tinkerpop.gremlin.structure.util.ElementHelper; -import org.apache.tinkerpop.gremlin.structure.util.GraphFactory; -import org.apache.tinkerpop.gremlin.structure.util.empty.EmptyGraph; -import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils; -import org.javatuples.Pair; - -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Stream; - -/** - * @author Marko A. Rodriguez (http://markorodriguez.com) - * @deprecated As of release 3.2.4, replaced by {@link org.apache.tinkerpop.gremlin.jsr223.CoreImports}. - */ -public final class CoreImports { - - private final static Set CLASS_IMPORTS = new HashSet<>(); - private final static Set METHOD_IMPORTS = new HashSet<>(); - private final static Set ENUM_IMPORTS = new HashSet<>(); - - static { - ///////////// - // CLASSES // - ///////////// - - CLASS_IMPORTS.add(Edge.class); - CLASS_IMPORTS.add(Element.class); - CLASS_IMPORTS.add(Graph.class); - CLASS_IMPORTS.add(Property.class); - CLASS_IMPORTS.add(Transaction.class); - CLASS_IMPORTS.add(Vertex.class); - CLASS_IMPORTS.add(VertexProperty.class); - CLASS_IMPORTS.add(GraphFactory.class); - CLASS_IMPORTS.add(ElementHelper.class); - // tokens - CLASS_IMPORTS.add(SackFunctions.class); - CLASS_IMPORTS.add(SackFunctions.Barrier.class); - CLASS_IMPORTS.add(VertexProperty.Cardinality.class); - CLASS_IMPORTS.add(Column.class); - CLASS_IMPORTS.add(Direction.class); - CLASS_IMPORTS.add(Operator.class); - CLASS_IMPORTS.add(Order.class); - CLASS_IMPORTS.add(Pop.class); - CLASS_IMPORTS.add(Scope.class); - CLASS_IMPORTS.add(T.class); - CLASS_IMPORTS.add(TraversalOptionParent.class); - CLASS_IMPORTS.add(TraversalOptionParent.Pick.class); - CLASS_IMPORTS.add(P.class); - // remote - CLASS_IMPORTS.add(RemoteConnection.class); - CLASS_IMPORTS.add(RemoteGraph.class); - CLASS_IMPORTS.add(EmptyGraph.class); - // io - CLASS_IMPORTS.add(GraphReader.class); - CLASS_IMPORTS.add(GraphWriter.class); - CLASS_IMPORTS.add(Io.class); - CLASS_IMPORTS.add(IoCore.class); - CLASS_IMPORTS.add(Storage.class); - CLASS_IMPORTS.add(BaseConfiguration.class); - CLASS_IMPORTS.add(CombinedConfiguration.class); - CLASS_IMPORTS.add(CompositeConfiguration.class); - CLASS_IMPORTS.add(Configuration.class); - CLASS_IMPORTS.add(ConfigurationBuilder.class); - CLASS_IMPORTS.add(ConfigurationUtils.class); - CLASS_IMPORTS.add(FileConfiguration.class); - CLASS_IMPORTS.add(HierarchicalConfiguration.class); - CLASS_IMPORTS.add(MapConfiguration.class); - CLASS_IMPORTS.add(PropertiesConfiguration.class); - CLASS_IMPORTS.add(SubsetConfiguration.class); - CLASS_IMPORTS.add(XMLConfiguration.class); - // strategies - CLASS_IMPORTS.add(ConnectiveStrategy.class); - CLASS_IMPORTS.add(ElementIdStrategy.class); - CLASS_IMPORTS.add(EventStrategy.class); - CLASS_IMPORTS.add(HaltedTraverserStrategy.class); - CLASS_IMPORTS.add(PartitionStrategy.class); - CLASS_IMPORTS.add(SubgraphStrategy.class); - CLASS_IMPORTS.add(LazyBarrierStrategy.class); - CLASS_IMPORTS.add(MatchAlgorithmStrategy.class); - CLASS_IMPORTS.add(ProfileStrategy.class); - CLASS_IMPORTS.add(AdjacentToIncidentStrategy.class); - CLASS_IMPORTS.add(FilterRankingStrategy.class); - CLASS_IMPORTS.add(IdentityRemovalStrategy.class); - CLASS_IMPORTS.add(IncidentToAdjacentStrategy.class); - CLASS_IMPORTS.add(MatchPredicateStrategy.class); - CLASS_IMPORTS.add(OrderLimitStrategy.class); - CLASS_IMPORTS.add(PathProcessorStrategy.class); - CLASS_IMPORTS.add(CountStrategy.class); - CLASS_IMPORTS.add(ComputerVerificationStrategy.class); - CLASS_IMPORTS.add(LambdaRestrictionStrategy.class); - CLASS_IMPORTS.add(ReadOnlyStrategy.class); - CLASS_IMPORTS.add(StandardVerificationStrategy.class); - // graph traversal - CLASS_IMPORTS.add(__.class); - CLASS_IMPORTS.add(GraphTraversal.class); - CLASS_IMPORTS.add(GraphTraversalSource.class); - CLASS_IMPORTS.add(TraversalMetrics.class); - CLASS_IMPORTS.add(Translator.class); - CLASS_IMPORTS.add(Bindings.class); - // graph computer - CLASS_IMPORTS.add(Computer.class); - CLASS_IMPORTS.add(ComputerResult.class); - CLASS_IMPORTS.add(GraphComputer.class); - CLASS_IMPORTS.add(Memory.class); - CLASS_IMPORTS.add(VertexProgram.class); - CLASS_IMPORTS.add(BulkDumperVertexProgram.class); - CLASS_IMPORTS.add(BulkLoader.class); - CLASS_IMPORTS.add(BulkLoaderVertexProgram.class); - CLASS_IMPORTS.add(IncrementalBulkLoader.class); - CLASS_IMPORTS.add(OneTimeBulkLoader.class); - CLASS_IMPORTS.add(ClusterCountMapReduce.class); - CLASS_IMPORTS.add(ClusterPopulationMapReduce.class); - CLASS_IMPORTS.add(MemoryTraversalSideEffects.class); - CLASS_IMPORTS.add(PeerPressureVertexProgram.class); - CLASS_IMPORTS.add(PageRankMapReduce.class); - CLASS_IMPORTS.add(PageRankVertexProgram.class); - CLASS_IMPORTS.add(GraphFilterStrategy.class); - CLASS_IMPORTS.add(TraversalVertexProgram.class); - CLASS_IMPORTS.add(VertexProgramStrategy.class); - // utils - CLASS_IMPORTS.add(Gremlin.class); - CLASS_IMPORTS.add(IteratorUtils.class); - CLASS_IMPORTS.add(TimeUtil.class); - - ///////////// - // METHODS // - ///////////// - - uniqueMethods(IoCore.class).forEach(METHOD_IMPORTS::add); - uniqueMethods(P.class).forEach(METHOD_IMPORTS::add); - uniqueMethods(__.class).filter(m -> !m.getName().equals("__")).forEach(METHOD_IMPORTS::add); - uniqueMethods(Computer.class).forEach(METHOD_IMPORTS::add); - uniqueMethods(TimeUtil.class).forEach(METHOD_IMPORTS::add); - - /////////// - // ENUMS // - /////////// - - Collections.addAll(ENUM_IMPORTS, SackFunctions.Barrier.values()); - Collections.addAll(ENUM_IMPORTS, VertexProperty.Cardinality.values()); - Collections.addAll(ENUM_IMPORTS, Column.values()); - Collections.addAll(ENUM_IMPORTS, Direction.values()); - Collections.addAll(ENUM_IMPORTS, Operator.values()); - Collections.addAll(ENUM_IMPORTS, Order.values()); - Collections.addAll(ENUM_IMPORTS, Pop.values()); - Collections.addAll(ENUM_IMPORTS, Scope.values()); - Collections.addAll(ENUM_IMPORTS, T.values()); - Collections.addAll(ENUM_IMPORTS, TraversalOptionParent.Pick.values()); - } - - private CoreImports() { - // static methods only, do not instantiate class - } - - public static Set getClassImports() { - return Collections.unmodifiableSet(CLASS_IMPORTS); - } - - public static Set getMethodImports() { - return Collections.unmodifiableSet(METHOD_IMPORTS); - } - - public static Set getEnumImports() { - return Collections.unmodifiableSet(ENUM_IMPORTS); - } - - /** - * Filters to unique method names on each class. - */ - private static Stream uniqueMethods(final Class clazz) { - final Set unique = new HashSet<>(); - return Stream.of(clazz.getMethods()) - .filter(m -> Modifier.isStatic(m.getModifiers())) - .map(m -> Pair.with(generateMethodDescriptor(m), m)) - .filter(p -> { - final boolean exists = unique.contains(p.getValue0()); - if (!exists) unique.add(p.getValue0()); - return !exists; - }) - .map(Pair::getValue1); - } - - private static String generateMethodDescriptor(final Method m) { - return m.getDeclaringClass().getCanonicalName() + "." + m.getName(); - } -} diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCache.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCache.java deleted file mode 100644 index dc4aeb72c63..00000000000 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCache.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF 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. - */ -package org.apache.tinkerpop.gremlin.util; - -import org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngine; -import org.apache.tinkerpop.gremlin.jsr223.SingleGremlinScriptEngineManager; - -import javax.script.ScriptEngine; -import javax.script.ScriptEngineManager; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * A cache of standard {@code ScriptEngine} instances, instantiated by the standard {@code ScriptEngineManager}. - * These instances are NOT "Gremlin-enabled". See {@link SingleGremlinScriptEngineManager} for the analogous class - * that loads {@link GremlinScriptEngine} instances. - * - * @author Daniel Kuppitz (http://gremlin.guru) - * @author Stephen Mallette (http://stephen.genoprime.com) - * @deprecated As of release 3.2.4, replaced by {@link org.apache.tinkerpop.gremlin.jsr223.ScriptEngineCache}. - */ -@Deprecated -public final class ScriptEngineCache { - - private ScriptEngineCache() {} - - public final static String DEFAULT_SCRIPT_ENGINE = "gremlin-groovy"; - - private final static ScriptEngineManager SCRIPT_ENGINE_MANAGER = new ScriptEngineManager(); - private final static Map CACHED_ENGINES = new ConcurrentHashMap<>(); - - public static ScriptEngine get(final String engineName) { - return CACHED_ENGINES.compute(engineName, (key, engine) -> { - if (null == engine) { - engine = SCRIPT_ENGINE_MANAGER.getEngineByName(engineName); - if (null == engine) { - throw new IllegalArgumentException("There is no script engine with provided name: " + engineName); - } - } - return engine; - }); - } -} diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCacheTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCacheTest.java deleted file mode 100644 index d8306c872ce..00000000000 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/util/ScriptEngineCacheTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF 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. - */ -package org.apache.tinkerpop.gremlin.util; - -import org.apache.tinkerpop.gremlin.TestHelper; -import org.junit.Test; - -import static org.junit.Assert.assertSame; - -/** - * @author Stephen Mallette (http://stephen.genoprime.com) - */ -public class ScriptEngineCacheTest { - - @Test - public void shouldBeUtilityClass() throws Exception { - TestHelper.assertIsUtilityClass(ScriptEngineCache.class); - } - - @Test - public void shouldGetEngineFromCache() { - assertSame(ScriptEngineCache.get("nashorn"), ScriptEngineCache.get("nashorn")); - } - - @Test(expected = IllegalArgumentException.class) - public void shouldThrowWhenScripEngineDoesNotExist() { - ScriptEngineCache.get("junk-that-no-one-would-ever-call-a-script-engine-83939473298432"); - } - -} From d25487e21009bade2f39215aac64aa6740ba014a Mon Sep 17 00:00:00 2001 From: Stephen Mallette Date: Wed, 5 Jul 2017 16:26:05 -0400 Subject: [PATCH 2/3] TINKERPOP-1706 Removed access to CoreGremlinPlugin#INSTANCE previously deprecated --- CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.3.x.asciidoc | 1 + .../apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java | 6 +----- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 1d8dde8b194..bcb88750c8f 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -32,6 +32,7 @@ TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET) * Removed previously deprecated `TraversalScriptHelper` class. * Removed previously deprecated `ScriptEngineCache` class. * Removed previously deprecated `CoreImports` class. +* Removed access to previously deprecated `CoreGremlinPlugin#INSTANCE` field. * `gremlin.sh` and `gremln.bat` no longer support the option to pass a script as an argument for execution mode without using the `-i` option. * Graphite and Ganglia are no longer packaged with the Gremlin Server distribution. * `TransactionException` is no longer a class of `AbstractTransaction` and it extends `RuntimeException`. diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc index a1ffc700c28..4f174c6e45e 100644 --- a/docs/src/upgrade/release-3.3.x.asciidoc +++ b/docs/src/upgrade/release-3.3.x.asciidoc @@ -201,6 +201,7 @@ The following deprecated classes, methods or fields have been removed in this ve ** `org.apache.tinkerpop.gremlin.console.groovy.plugin.UtilitiesGremlinPlugin` * `gremlin-core` ** `org.apache.tinkerpop.gremlin.jsr223.CoreGremlinModule` +** `org.apache.tinkerpop.gremlin.jsr223.CoreGremlinPlugin#INSTANCE` ** `org.apache.tinkerpop.gremlin.jsr223.GremlinModule` ** `org.apache.tinkerpop.gremlin.jsr223.SingleGremlinScriptEngineManager#getInstance()` ** `org.apache.tinkerpop.gremlin.jsr223.GremlinScriptEngineManager#addModule(GremlinModule)` diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java index 8882e36d0a2..362e8f786a7 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreGremlinPlugin.java @@ -38,11 +38,7 @@ public final class CoreGremlinPlugin implements GremlinPlugin { private static final Customizer[] customizers = new Customizer[] {gremlinCore}; - /** - * @deprecated As of 3.2.4, replaced by {@link #instance()} as this field will later become private. - */ - @Deprecated - public static final CoreGremlinPlugin INSTANCE = new CoreGremlinPlugin(); + private static final CoreGremlinPlugin INSTANCE = new CoreGremlinPlugin(); private CoreGremlinPlugin() {} From d173af8a971b532b9c1e558503406d2bd2743dd8 Mon Sep 17 00:00:00 2001 From: Stephen Mallette Date: Wed, 5 Jul 2017 16:31:34 -0400 Subject: [PATCH 3/3] TINKERPOP-1706 Removed old GremlinJythonScriptEngine constructor. --- CHANGELOG.asciidoc | 1 + docs/src/upgrade/release-3.3.x.asciidoc | 2 ++ .../jsr223/GremlinJythonScriptEngine.java | 28 ------------------- 3 files changed, 3 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index bcb88750c8f..94499e3585b 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -32,6 +32,7 @@ TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET) * Removed previously deprecated `TraversalScriptHelper` class. * Removed previously deprecated `ScriptEngineCache` class. * Removed previously deprecated `CoreImports` class. +* Removed previously deprecated `GremlinJythonScriptEngine#()` constructor. * Removed access to previously deprecated `CoreGremlinPlugin#INSTANCE` field. * `gremlin.sh` and `gremln.bat` no longer support the option to pass a script as an argument for execution mode without using the `-i` option. * Graphite and Ganglia are no longer packaged with the Gremlin Server distribution. diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc index 4f174c6e45e..15911393b53 100644 --- a/docs/src/upgrade/release-3.3.x.asciidoc +++ b/docs/src/upgrade/release-3.3.x.asciidoc @@ -257,6 +257,8 @@ The following deprecated classes, methods or fields have been removed in this ve ** `org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.*` ** `org.apache.tinkerpop.gremlin.groovy.util.DependencyGrabber#deleteDependenciesFromPath(org.apache.tinkerpop.gremlin.groovy.plugin.Artifact)` ** `org.apache.tinkerpop.gremlin.groovy.util.DependencyGrabber#copyDependenciesToPath(org.apache.tinkerpop.gremlin.groovy.plugin.Artifact)` +* `gremlin-python` +** `org.apache.tinkerpop.gremlin.python.jsr223.GremlinJythonScriptEngine#()` * `gremlin-server` ** `org.apache.tinkerpop.gremlin.server.GremlinServer(ServerGremlinExecutor)` ** `org.apache.tinkerpop.gremlin.server.Settings#plugins` diff --git a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java index f6ada6e39a5..a58b82f72f0 100644 --- a/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java +++ b/gremlin-python/src/main/java/org/apache/tinkerpop/gremlin/python/jsr223/GremlinJythonScriptEngine.java @@ -50,34 +50,6 @@ public class GremlinJythonScriptEngine implements GremlinScriptEngine { private final PyScriptEngine pyScriptEngine; - /** - * @deprecated As of release 3.2.4, replaced by {@link #GremlinJythonScriptEngine(Customizer...)}. - */ - @Deprecated - public GremlinJythonScriptEngine() { - this.pyScriptEngine = (PyScriptEngine) new PyScriptEngineFactory().getScriptEngine(); - try { - // CoreImports - for (final Class x : CoreImports.getClassImports()) { - if (null == x.getDeclaringClass()) - this.pyScriptEngine.eval("from " + x.getPackage().getName() + " import " + x.getSimpleName()); - else - this.pyScriptEngine.eval("from " + x.getPackage().getName() + "." + x.getDeclaringClass().getSimpleName() + " import " + x.getSimpleName()); - } - for (final Method x : CoreImports.getMethodImports()) { - this.pyScriptEngine.eval(SymbolHelper.toPython(x.getName()) + " = " + x.getDeclaringClass().getSimpleName() + "." + x.getName()); - } - for (final Enum x : CoreImports.getEnumImports()) { - this.pyScriptEngine.eval(SymbolHelper.toPython(x.name()) + " = " + x.getDeclaringClass().getSimpleName() + "." + x.name()); - } - - loadSugar(); - - } catch (final ScriptException e) { - throw new IllegalStateException(e.getMessage(), e); - } - } - public GremlinJythonScriptEngine(final Customizer... customizers) { this.pyScriptEngine = (PyScriptEngine) new PyScriptEngineFactory().getScriptEngine(); final List listOfCustomizers = new ArrayList<>(Arrays.asList(customizers));