Cleanup (4).
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/739c69d1 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/739c69d1 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/739c69d1 Branch: refs/heads/ignite-2649 Commit: 739c69d1373b8d08e9d67124c4701be5e7aef226 Parents: 4f45986 Author: vozerov-gridgain <voze...@gridgain.com> Authored: Wed Aug 24 16:59:44 2016 +0300 Committer: vozerov-gridgain <voze...@gridgain.com> Committed: Wed Aug 24 16:59:44 2016 +0300 ---------------------------------------------------------------------- .../org/apache/ignite/internal/IgnitionEx.java | 54 ++--------------- .../apache/ignite/internal/LocalGridName.java | 46 --------------- .../internal/binary/BinaryReaderExImpl.java | 12 +--- .../internal/binary/BinaryWriterExImpl.java | 12 +--- .../ignite/internal/util/IgniteUtils.java | 55 ++++++++++++++++- .../ignite/marshaller/MarshallerUtils.java | 62 ++++---------------- 6 files changed, 76 insertions(+), 165 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/739c69d1/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java index 63d0aec..05cbd45 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java @@ -166,13 +166,6 @@ public class IgnitionEx { private static final Collection<IgnitionListener> lsnrs = new GridConcurrentHashSet<>(4); /** */ - private static final ThreadLocal<LocalGridName> GRID_NAME_THREAD_LOC = new ThreadLocal<LocalGridName>() { - @Override protected LocalGridName initialValue() { - return new LocalGridNameImpl(); - } - }; - - /** */ private static ThreadLocal<Boolean> daemon = new ThreadLocal<Boolean>() { @Override protected Boolean initialValue() { return false; @@ -1286,22 +1279,21 @@ public class IgnitionEx { } /** - * Gets a name of the grid from thread local config, which is owner of current thread. An Exception is thrown if - * current thread is not an {@link IgniteThread}. + * Gets a name of the grid from thread local config, which is owner of current thread. * * @return Grid instance related to current thread * @throws IllegalArgumentException Thrown to indicate, that current thread is not an {@link IgniteThread}. */ public static IgniteKernal localIgnite() throws IllegalArgumentException { - final LocalGridName gridName = GRID_NAME_THREAD_LOC.get(); + String gridName = U.getCurrentIgniteName(); - if (gridName.isSet()) - return gridx(gridName.getGridName()); + if (U.isCurrentIgniteNameSet(gridName)) + return gridx(gridName); else if (Thread.currentThread() instanceof IgniteThread) return gridx(((IgniteThread)Thread.currentThread()).getGridName()); else throw new IllegalArgumentException("Ignite grid name thread local must be set or" + - " this method should be accessed under " + IgniteThread.class.getName()); + " this method should be accessed under " + IgniteThread.class.getName()); } /** @@ -1367,15 +1359,6 @@ public class IgnitionEx { } /** - * Get ignite config from thread local. - * - * @return Local grid name. - */ - public static LocalGridName gridNameThreadLocal() { - return GRID_NAME_THREAD_LOC.get(); - } - - /** * Start context encapsulates all starting parameters. */ private static final class GridStartContext { @@ -2542,31 +2525,4 @@ public class IgnitionEx { } } } - - /** - * - */ - private static class LocalGridNameImpl implements LocalGridName { - /** Indicates whether value is initial or not. */ - private boolean valSet; - - /** Grid name. */ - private String gridName; - - /** {@inheritDoc} */ - @Override public boolean isSet() { - return valSet; - } - - /** {@inheritDoc} */ - @Override public String getGridName() { - return gridName; - } - - /** {@inheritDoc} */ - @Override public void setGridName(final boolean set, final String gridName) { - this.valSet = set; - this.gridName = gridName; - } - } } http://git-wip-us.apache.org/repos/asf/ignite/blob/739c69d1/modules/core/src/main/java/org/apache/ignite/internal/LocalGridName.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/LocalGridName.java b/modules/core/src/main/java/org/apache/ignite/internal/LocalGridName.java deleted file mode 100644 index 276091b..0000000 --- a/modules/core/src/main/java/org/apache/ignite/internal/LocalGridName.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.ignite.internal; - -/** - * Container holds local grid name and has indicator - * that shows if value was initialized. - */ -public interface LocalGridName { - /** - * Indicates whether value was set. - * - * @return {@code True} if value was set. - */ - public boolean isSet(); - - /** - * Get grid name. - * - * @return Grid name. - */ - public String getGridName(); - - /** - * Set grid name and set flag. - * - * @param set {@code True} if value is not initial. - * @param gridName Grid name. - */ - public void setGridName(boolean set, String gridName); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/739c69d1/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java index 47df697..3481ca3 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryReaderExImpl.java @@ -33,9 +33,8 @@ import org.apache.ignite.binary.BinaryObject; import org.apache.ignite.binary.BinaryObjectException; import org.apache.ignite.binary.BinaryRawReader; import org.apache.ignite.binary.BinaryReader; -import org.apache.ignite.internal.LocalGridName; -import org.apache.ignite.internal.IgnitionEx; import org.apache.ignite.internal.binary.streams.BinaryInputStream; +import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.util.typedef.internal.SB; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -1422,18 +1421,13 @@ public class BinaryReaderExImpl implements BinaryReader, BinaryRawReaderEx, Bina * @throws BinaryObjectException If failed. */ @Nullable Object deserialize() throws BinaryObjectException { - final LocalGridName gridName = IgnitionEx.gridNameThreadLocal(); - - final String gridNameStr = gridName.getGridName(); - final boolean init = gridName.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(ctx.configuration().getGridName()); try { - gridName.setGridName(true, ctx.configuration().getGridName()); - return deserialize0(); } finally { - gridName.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/739c69d1/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java index 675b2d9..b3963d8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java @@ -33,10 +33,9 @@ import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.binary.BinaryObjectException; import org.apache.ignite.binary.BinaryRawWriter; import org.apache.ignite.binary.BinaryWriter; -import org.apache.ignite.internal.LocalGridName; -import org.apache.ignite.internal.IgnitionEx; import org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream; import org.apache.ignite.internal.binary.streams.BinaryOutputStream; +import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.marshaller.MarshallerUtils; import org.jetbrains.annotations.Nullable; @@ -141,18 +140,13 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje * @throws org.apache.ignite.binary.BinaryObjectException In case of error. */ void marshal(Object obj, boolean enableReplace) throws BinaryObjectException { - final LocalGridName gridName = IgnitionEx.gridNameThreadLocal(); - - final String gridNameStr = gridName.getGridName(); - final boolean init = gridName.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(ctx.configuration().getGridName()); try { - gridName.setGridName(true, ctx.configuration().getGridName()); - marshal0(obj, enableReplace); } finally { - gridName.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/739c69d1/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java index 08c9219..3ddc0f7 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java @@ -250,7 +250,7 @@ import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_MACS; /** * Collection of utility methods used throughout the system. */ -@SuppressWarnings({"UnusedReturnValue", "UnnecessaryFullyQualifiedName"}) +@SuppressWarnings({"UnusedReturnValue", "UnnecessaryFullyQualifiedName", "RedundantStringConstructorCall"}) public abstract class IgniteUtils { /** Unsafe. */ private static final Unsafe UNSAFE = GridUnsafe.unsafe(); @@ -489,6 +489,16 @@ public abstract class IgniteUtils { /** Object.toString() */ private static Method toStringMtd; + /** Empty local Ignite name. */ + private static final String CUR_IGNITE_NAME_EMPTY = new String(); + + /** Local Ignite name thread local. */ + private static ThreadLocal<String> LOC_IGNITE_NAME = new ThreadLocal<String>() { + @Override protected String initialValue() { + return CUR_IGNITE_NAME_EMPTY; + } + }; + /** * Initializes enterprise check. */ @@ -9555,4 +9565,47 @@ public abstract class IgniteUtils { public static boolean isToStringMethod(Method mtd) { return toStringMtd.equals(mtd); } + + /** + * Get current Ignite name. + * + * @return Current Ignite name. + */ + @Nullable public static String getCurrentIgniteName() { + return LOC_IGNITE_NAME.get(); + } + + /** + * Check if current Ignite name is set. + * + * @param name Name to check. + * @return {@code True} if set. + */ + @SuppressWarnings("StringEquality") + public static boolean isCurrentIgniteNameSet(@Nullable String name) { + return name != CUR_IGNITE_NAME_EMPTY; + } + + /** + * Set current Ignite name. + * + * @param newName New name. + * @return Old name. + */ + @Nullable public static String setCurrentIgniteName(@Nullable String newName) { + String oldName = LOC_IGNITE_NAME.get(); + + LOC_IGNITE_NAME.set(newName); + + return oldName; + } + + /** + * Restore current Ignite name. + * + * @param oldName Old name. + */ + public static void restoreCurrentIgniteName(@Nullable String oldName) { + LOC_IGNITE_NAME.set(oldName); + } } http://git-wip-us.apache.org/repos/asf/ignite/blob/739c69d1/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java b/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java index 6e2dab3..0775622 100644 --- a/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java +++ b/modules/core/src/main/java/org/apache/ignite/marshaller/MarshallerUtils.java @@ -19,8 +19,7 @@ package org.apache.ignite.marshaller; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.internal.GridKernalContext; -import org.apache.ignite.internal.IgnitionEx; -import org.apache.ignite.internal.LocalGridName; +import org.apache.ignite.internal.util.IgniteUtils; import org.jetbrains.annotations.Nullable; import java.io.InputStream; @@ -40,18 +39,13 @@ public class MarshallerUtils { * @throws IgniteCheckedException If failed. */ public static byte[] marshal(String name, Marshaller marsh, @Nullable Object obj) throws IgniteCheckedException { - LocalGridName gridNameTl = gridName(); - - String gridNameStr = gridNameTl.getGridName(); - boolean init = gridNameTl.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(name); try { - gridNameTl.setGridName(true, name); - return marsh.marshal(obj); } finally { - gridNameTl.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } @@ -66,18 +60,13 @@ public class MarshallerUtils { */ public static void marshal(String name, Marshaller marshaller, @Nullable Object obj, OutputStream out) throws IgniteCheckedException { - LocalGridName gridNameTl = gridName(); - - String gridNameStr = gridNameTl.getGridName(); - boolean init = gridNameTl.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(name); try { - gridNameTl.setGridName(true, name); - marshaller.marshal(obj, out); } finally { - gridNameTl.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } @@ -93,13 +82,6 @@ public class MarshallerUtils { return marshal(ctx.gridName(), ctx.config().getMarshaller(), obj); } - - - - - - - /** * Unmarshal object and set grid name thread local. * @@ -112,18 +94,13 @@ public class MarshallerUtils { */ public static <T> T unmarshal(String name, Marshaller marsh, byte[] arr, @Nullable ClassLoader ldr) throws IgniteCheckedException { - LocalGridName gridNameTl = gridName(); - - String gridNameStr = gridNameTl.getGridName(); - boolean init = gridNameTl.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(name); try { - gridNameTl.setGridName(true, name); - return marsh.unmarshal(arr, ldr); } finally { - gridNameTl.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } @@ -139,18 +116,13 @@ public class MarshallerUtils { */ public static <T> T unmarshal(String name, Marshaller marsh, InputStream in, @Nullable ClassLoader ldr) throws IgniteCheckedException { - LocalGridName gridNameTl = gridName(); - - String gridNameStr = gridNameTl.getGridName(); - boolean init = gridNameTl.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(name); try { - gridNameTl.setGridName(true, name); - return marsh.unmarshal(in, ldr); } finally { - gridNameTl.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } @@ -166,29 +138,17 @@ public class MarshallerUtils { */ public static <T> T marshalUnmarshal(String name, Marshaller marsh, T obj, @Nullable ClassLoader clsLdr) throws IgniteCheckedException { - LocalGridName gridNameTl = gridName(); - - String gridNameStr = gridNameTl.getGridName(); - boolean init = gridNameTl.isSet(); + String oldName = IgniteUtils.setCurrentIgniteName(name); try { - gridNameTl.setGridName(true, name); - return marsh.unmarshal(marsh.marshal(obj), clsLdr); } finally { - gridNameTl.setGridName(init, gridNameStr); + IgniteUtils.restoreCurrentIgniteName(oldName); } } /** - * @return Grid name thread local. - */ - private static LocalGridName gridName() { - return IgnitionEx.gridNameThreadLocal(); - } - - /** * Private constructor. */ private MarshallerUtils() {