Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id C9353200BD0 for ; Tue, 15 Nov 2016 22:22:07 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id C7CFB160B15; Tue, 15 Nov 2016 21:22:07 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 75DAC160AF2 for ; Tue, 15 Nov 2016 22:22:05 +0100 (CET) Received: (qmail 54270 invoked by uid 500); 15 Nov 2016 21:22:04 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 54259 invoked by uid 99); 15 Nov 2016 21:22:04 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Nov 2016 21:22:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 041D3C799F for ; Tue, 15 Nov 2016 21:22:04 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -6.218 X-Spam-Level: X-Spam-Status: No, score=-6.218 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.999, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id X9qlW_qr2J_f for ; Tue, 15 Nov 2016 21:21:56 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 13DCA60E44 for ; Tue, 15 Nov 2016 21:21:40 +0000 (UTC) Received: (qmail 47817 invoked by uid 99); 15 Nov 2016 21:21:40 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Nov 2016 21:21:40 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 14590F173A; Tue, 15 Nov 2016 21:21:40 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: klund@apache.org To: commits@geode.incubator.apache.org Date: Tue, 15 Nov 2016 21:22:20 -0000 Message-Id: <67f18959f7454911b07c6b9c66d30238@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [42/50] [abbrv] incubator-geode git commit: GEODE-288: move admin packages to internal archived-at: Tue, 15 Nov 2016 21:22:07 -0000 http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/GemFireHealthImpl.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/GemFireHealthImpl.java b/geode-core/src/main/java/org/apache/geode/admin/internal/GemFireHealthImpl.java deleted file mode 100644 index efeee66..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/GemFireHealthImpl.java +++ /dev/null @@ -1,511 +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.geode.admin.internal; - -import org.apache.geode.CancelException; -import org.apache.geode.admin.*; -import org.apache.geode.internal.Assert; -import org.apache.geode.internal.admin.*; -import org.apache.geode.internal.i18n.LocalizedStrings; - -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.*; - -/** - * Provides the implementation of the GemFireHealth administration API. This class is - * responsible for {@linkplain GemFireVM#addHealthListener sending} the {@link GemFireHealthConfig}s - * to the remote member VM in which the health is calcualted. - * - * - * @since GemFire 3.5 - */ -public class GemFireHealthImpl implements GemFireHealth, JoinLeaveListener, HealthListener { - - /** The distributed system whose health is being monitored */ - private final GfManagerAgent agent; - - /** The default configuration for checking GemFire health */ - protected GemFireHealthConfig defaultConfig; - - /** - * Maps the name of a host to its GemFireHealthConfig. Note that the mappings are - * created lazily. - */ - private final Map hostConfigs; - - /** - * Maps the name of a host to all of the members (GemFireVMs) that run on that host. - */ - private final Map hostMembers; - - /** The members that are known to be in {@link #OKAY_HEALTH}. */ - private Collection okayHealth; - - /** The members that are known to be in {@link #POOR_HEALTH}. */ - private Collection poorHealth; - - /** The overall health of GemFire */ - private GemFireHealth.Health overallHealth; - - /** Is this GemFireHealthImpl closed? */ - private boolean isClosed; - - /** - * The configuration specifying how the health of the distributed system should be computed. - */ - protected volatile DistributedSystemHealthConfig dsHealthConfig; - - /** Monitors the health of the entire distributed system */ - private DistributedSystemHealthMonitor dsHealthMonitor = null; - - /** - * The distributed system whose health is monitored by this GemFireHealth. - */ - private final AdminDistributedSystem system; - - - /////////////////////// Constructors /////////////////////// - - /** - * Creates a new GemFireHealthImpl that monitors the health of member of the given - * distributed system. - */ - protected GemFireHealthImpl(GfManagerAgent agent, AdminDistributedSystem system) { - // agent.getDM().getLogger().info("Creating GemFireHealthImpl", - // new Exception("Stack trace")); - - this.agent = agent; - this.system = system; - - this.hostConfigs = new HashMap(); - this.hostMembers = new HashMap(); - this.okayHealth = new HashSet(); - this.poorHealth = new HashSet(); - this.overallHealth = GOOD_HEALTH; - this.isClosed = false; - - GemFireVM[] apps = this.agent.listApplications(); - for (int i = 0; i < apps.length; i++) { - GemFireVM member = apps[i]; - this.noteNewMember(member); - } - - agent.addJoinLeaveListener(this); - setDefaultGemFireHealthConfig(createGemFireHealthConfig(null)); - setDistributedSystemHealthConfig(createDistributedSystemHealthConfig()); - } - - @Override - public String toString() { - StringBuffer sb = new StringBuffer(); - sb.append("closed=" + isClosed); - sb.append("; hostMembers=" + hostMembers); - sb.append("; okayHealth=" + okayHealth); - sb.append("; poorHealth=" + poorHealth); - sb.append("; overallHealth=" + overallHealth); - sb.append("; diagnosis=" + getDiagnosis()); - return sb.toString(); - } - ////////////////////// Instance Methods ////////////////////// - - /** - * Returns the DistributedSystem whose health this GemFireHealth - * monitors. - */ - public AdminDistributedSystem getDistributedSystem() { - return this.system; - } - - /** - * A "template factory" method for creating a DistributedSystemHealthConfig. It can - * be overridden by subclasses to produce instances of different - * DistributedSystemHealthConfig implementations. - */ - protected DistributedSystemHealthConfig createDistributedSystemHealthConfig() { - - return new DistributedSystemHealthConfigImpl(); - } - - /** - * A "template factory" method for creating a GemFireHealthConfig. It can be - * overridden by subclasses to produce instances of different GemFireHealthConfig - * implementations. - * - * @param hostName The host whose health we are configuring - */ - protected GemFireHealthConfig createGemFireHealthConfig(String hostName) { - - return new GemFireHealthConfigImpl(hostName); - } - - /** - * Throws an {@link IllegalStateException} if this GemFireHealthImpl is closed. - */ - private void checkClosed() { - if (this.isClosed) { - throw new IllegalStateException( - LocalizedStrings.GemFireHealthImpl_CANNOT_ACCESS_A_CLOSED_GEMFIREHEALTH_INSTANCE - .toLocalizedString()); - } - } - - /** - * Returns the overall health of GemFire. Note that this method does not contact any of the member - * VMs. Instead, it relies on the members to alert it of changes in its health via a - * {@link HealthListener}. - */ - public GemFireHealth.Health getHealth() { - checkClosed(); - return this.overallHealth; - } - - /** - * Resets the overall health to be {@link #GOOD_HEALTH}. It also resets the health in the member - * VMs. - * - * @see GemFireVM#resetHealthStatus - */ - public void resetHealth() { - checkClosed(); - - this.overallHealth = GOOD_HEALTH; - this.okayHealth.clear(); - this.poorHealth.clear(); - - synchronized (this) { - for (Iterator iter = hostMembers.values().iterator(); iter.hasNext();) { - List members = (List) iter.next(); - for (Iterator iter2 = members.iterator(); iter2.hasNext();) { - GemFireVM member = (GemFireVM) iter2.next(); - member.resetHealthStatus(); - } - } - } - } - - /** - * Aggregates the diagnoses from all members of the distributed system. - */ - public String getDiagnosis() { - checkClosed(); - - StringBuffer sb = new StringBuffer(); - - synchronized (this) { - for (Iterator iter = hostMembers.values().iterator(); iter.hasNext();) { - List members = (List) iter.next(); - for (Iterator iter2 = members.iterator(); iter2.hasNext();) { - GemFireVM member = (GemFireVM) iter2.next(); - String[] diagnoses = member.getHealthDiagnosis(this.overallHealth); - for (int i = 0; i < diagnoses.length; i++) { - sb.append(diagnoses[i]).append("\n");; - } - } - } - } - - return sb.toString(); - } - - /** - * Starts a new {@link DistributedSystemHealthMonitor} - */ - public void setDistributedSystemHealthConfig(DistributedSystemHealthConfig config) { - synchronized (this.hostConfigs) { - // If too many threads are changing the health config, then we - // will might get an OutOfMemoryError trying to start a new - // health monitor thread. - - if (this.dsHealthMonitor != null) { - this.dsHealthMonitor.stop(); - } - - this.dsHealthConfig = config; - - DistributedSystemHealthEvaluator eval = - new DistributedSystemHealthEvaluator(config, this.agent.getDM()); - int interval = this.getDefaultGemFireHealthConfig().getHealthEvaluationInterval(); - this.dsHealthMonitor = new DistributedSystemHealthMonitor(eval, this, interval); - this.dsHealthMonitor.start(); - } - } - - public DistributedSystemHealthConfig getDistributedSystemHealthConfig() { - - checkClosed(); - return this.dsHealthConfig; - } - - public GemFireHealthConfig getDefaultGemFireHealthConfig() { - checkClosed(); - return this.defaultConfig; - } - - public void setDefaultGemFireHealthConfig(GemFireHealthConfig config) { - checkClosed(); - - if (config.getHostName() != null) { - throw new IllegalArgumentException( - LocalizedStrings.GemFireHealthImpl_THE_GEMFIREHEALTHCONFIG_FOR_FOR_0_CANNOT_SERVE_AS_THE_DEFAULT_HEALTH_CONFIG - .toLocalizedString(config.getHostName())); - } - - this.defaultConfig = config; - - synchronized (this) { - for (Iterator iter = this.hostMembers.entrySet().iterator(); iter.hasNext();) { - Map.Entry entry = (Map.Entry) iter.next(); - InetAddress hostIpAddress = (InetAddress) entry.getKey(); - List members = (List) entry.getValue(); - - GemFireHealthConfig hostConfig = (GemFireHealthConfig) hostConfigs.get(hostIpAddress); - if (hostConfig == null) { - hostConfig = config; - } - - for (Iterator iter2 = members.iterator(); iter2.hasNext();) { - GemFireVM member = (GemFireVM) iter2.next(); - Assert.assertTrue(member.getHost().equals(hostIpAddress)); - member.addHealthListener(this, hostConfig); - } - } - } - - // We only need to do this if the health monitoring interval has - // change. This is probably not the most efficient way of doing - // things. - if (this.dsHealthConfig != null) { - setDistributedSystemHealthConfig(this.dsHealthConfig); - } - } - - /** - * Returns the GemFireHealthConfig object for the given host name. - * - * @param hostName host name for which the GemFire Health Config is needed - * - * @throws IllegalArgumentException if host with given name could not be found - */ - public synchronized GemFireHealthConfig getGemFireHealthConfig(String hostName) { - - checkClosed(); - - InetAddress hostIpAddress = null; - try { - hostIpAddress = InetAddress.getByName(hostName); - } catch (UnknownHostException e) { - throw new IllegalArgumentException( - LocalizedStrings.GemFireHealthImpl_COULD_NOT_FIND_A_HOST_WITH_NAME_0 - .toLocalizedString(hostName), - e); - } - - GemFireHealthConfig config = (GemFireHealthConfig) this.hostConfigs.get(hostIpAddress); - if (config == null) { - config = createGemFireHealthConfig(hostName); - this.hostConfigs.put(hostIpAddress, config); - } - - return config; - } - - /** - * Sets the GemFireHealthConfig object for the given host name. - * - * @param hostName host name for which the GemFire Health Config is needed - * @param config GemFireHealthConfig object to set - * - * @throws IllegalArgumentException if (1) given host name & the host name in the given config do - * not match OR (2) host with given name could not be found OR (3) there are no GemFire - * components running on the given host - */ - public void setGemFireHealthConfig(String hostName, GemFireHealthConfig config) { - checkClosed(); - - synchronized (this) { - String configHost = config.getHostName(); - if (configHost == null || !configHost.equals(hostName)) { - StringBuffer sb = new StringBuffer(); - sb.append("The GemFireHealthConfig configures "); - if (configHost == null) { - sb.append("the default host "); - - } else { - sb.append("host \""); - sb.append(config.getHostName()); - sb.append("\" "); - } - sb.append("not \"" + hostName + "\""); - throw new IllegalArgumentException(sb.toString()); - } - InetAddress hostIpAddress = null; - try { - hostIpAddress = InetAddress.getByName(hostName); - } catch (UnknownHostException e) { - throw new IllegalArgumentException( - LocalizedStrings.GemFireHealthImpl_COULD_NOT_FIND_A_HOST_WITH_NAME_0 - .toLocalizedString(hostName), - e); - } - - List members = (List) this.hostMembers.get(hostIpAddress); - if (members == null || members.isEmpty()) { - throw new IllegalArgumentException( - LocalizedStrings.GemFireHealthImpl_THERE_ARE_NO_GEMFIRE_COMPONENTS_ON_HOST_0 - .toLocalizedString(hostName)); - } - - for (Iterator iter = members.iterator(); iter.hasNext();) { - GemFireVM member = (GemFireVM) iter.next(); - member.addHealthListener(this, config); - } - } - } - - /** - * Tells the members of the distributed system that we are no longer interested in monitoring - * their health. - * - * @see GemFireVM#removeHealthListener - */ - public void close() { - this.agent.removeJoinLeaveListener(this); - - synchronized (this) { - if (this.isClosed) { - return; - } - - this.isClosed = true; - - if (this.dsHealthMonitor != null) { - this.dsHealthMonitor.stop(); - this.dsHealthMonitor = null; - } - - try { - for (Iterator iter = hostMembers.values().iterator(); iter.hasNext();) { - List members = (List) iter.next(); - for (Iterator iter2 = members.iterator(); iter2.hasNext();) { - GemFireVM member = (GemFireVM) iter2.next(); - member.removeHealthListener(); - } - } - } catch (CancelException e) { - // if the DS is disconnected, stop trying to distribute to other members - } - - hostConfigs.clear(); - hostMembers.clear(); - okayHealth.clear(); - poorHealth.clear(); - } - } - - public boolean isClosed() { - return this.isClosed; - } - - /** - * Makes note of the newly-joined member - */ - private void noteNewMember(GemFireVM member) { - InetAddress hostIpAddress = member.getHost(); - List members = (List) this.hostMembers.get(hostIpAddress); - if (members == null) { - members = new ArrayList(); - this.hostMembers.put(hostIpAddress, members); - } - members.add(member); - - } - - public synchronized void nodeJoined(GfManagerAgent source, GemFireVM joined) { - noteNewMember(joined); - - InetAddress hostIpAddress = joined.getHost(); - - GemFireHealthConfig config = (GemFireHealthConfig) this.hostConfigs.get(hostIpAddress); - if (config == null) { - config = this.getDefaultGemFireHealthConfig(); - } - joined.addHealthListener(this, config); - } - - /** - * Makes note of the newly-left member - */ - public synchronized void nodeLeft(GfManagerAgent source, GemFireVM left) { - InetAddress hostIpAddress = left.getHost(); - List members = (List) this.hostMembers.get(hostIpAddress); - if (members != null) { - members.remove(left); - if (members.isEmpty()) { - // No more members on the host - this.hostConfigs.remove(hostIpAddress); - this.hostMembers.remove(hostIpAddress); - } - } - - this.okayHealth.remove(left); - this.poorHealth.remove(left); - - reevaluateHealth(); - } - - /** - * Does the same thing as {@link #nodeLeft} - */ - public void nodeCrashed(GfManagerAgent source, GemFireVM crashed) { - nodeLeft(source, crashed); - } - - /** - * Re-evaluates the overall health of GemFire - */ - private void reevaluateHealth() { - if (!this.poorHealth.isEmpty()) { - this.overallHealth = POOR_HEALTH; - - } else if (!this.okayHealth.isEmpty()) { - this.overallHealth = OKAY_HEALTH; - - } else { - this.overallHealth = GOOD_HEALTH; - } - } - - public void healthChanged(GemFireVM member, GemFireHealth.Health status) { - if (status == GOOD_HEALTH) { - this.okayHealth.remove(member); - this.poorHealth.remove(member); - - } else if (status == OKAY_HEALTH) { - this.okayHealth.add(member); - this.poorHealth.remove(member); - - } else if (status == POOR_HEALTH) { - this.okayHealth.remove(member); - this.poorHealth.add(member); - - } else { - Assert.assertTrue(false, "Unknown health code: " + status); - } - - reevaluateHealth(); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/InetAddressUtil.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/InetAddressUtil.java b/geode-core/src/main/java/org/apache/geode/admin/internal/InetAddressUtil.java deleted file mode 100755 index 17d1535..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/InetAddressUtil.java +++ /dev/null @@ -1,201 +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.geode.admin.internal; - -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.Enumeration; - -import org.apache.logging.log4j.Logger; - -import org.apache.geode.GemFireIOException; -import org.apache.geode.internal.Assert; -import org.apache.geode.internal.net.SocketCreator; -import org.apache.geode.internal.i18n.LocalizedStrings; -import org.apache.geode.internal.logging.LogService; - - -/** - * Provides static utilities for manipulating, validating, and converting InetAddresses and host - * strings. - * - * @since GemFire 3.5 - */ -@Deprecated -public class InetAddressUtil { - - private static final Logger logger = LogService.getLogger(); - - /** InetAddress instance representing the local host */ - public static final InetAddress LOCALHOST = createLocalHost(); - - public static final String LOOPBACK_ADDRESS = - SocketCreator.preferIPv6Addresses() ? "::1" : "127.0.0.1"; - - public static final InetAddress LOOPBACK = InetAddressUtil.toInetAddress(LOOPBACK_ADDRESS); - - /** Disallows InetAddressUtil instantiation. */ - private InetAddressUtil() {} - - /** - * Returns a string version of InetAddress which can be converted back to an InetAddress later. - * Essentially any leading slash is trimmed. - * - * @param val the InetAddress or String to return a formatted string of - * @return string version the InetAddress minus any leading slash - */ - public static String toString(Object val) { - if (val instanceof String) { - return trimLeadingSlash((String) val); - - } else if (val instanceof InetAddress) { - return ((InetAddress) val).getHostAddress(); - - } else { - return trimLeadingSlash(val.toString()); - } - } - - /** - * Converts the string host to an instance of InetAddress. Returns null if the string is empty. - * Fails Assertion if the conversion would result in java.lang.UnknownHostException. - *

- * Any leading slashes on host will be ignored. - * - * @param host string version the InetAddress - * @return the host converted to InetAddress instance - */ - public static InetAddress toInetAddress(String host) { - if (host == null || host.length() == 0) { - return null; - } - try { - if (host.indexOf("/") > -1) { - return InetAddress.getByName(host.substring(host.indexOf("/") + 1)); - } else { - return InetAddress.getByName(host); - } - } catch (java.net.UnknownHostException e) { - logStackTrace(e); - Assert.assertTrue(false, "Failed to get InetAddress: " + host); - return null; // will never happen since the Assert will fail - } - } - - /** - * Creates an InetAddress representing the local host. The checked exception - * java.lang.UnknownHostException is captured and results in an Assertion failure - * instead. - * - * @return InetAddress instance representing the local host - */ - public static InetAddress createLocalHost() { - try { - return SocketCreator.getLocalHost(); - } catch (java.net.UnknownHostException e) { - logStackTrace(e); - Assert.assertTrue(false, "Failed to get local host"); - return null; // will never happen - } - } - - /** - * Validates the host by making sure it can successfully be used to get an instance of - * InetAddress. If the host string is null, empty or would result in - * java.lang.UnknownHostException then null is returned. - *

- * Any leading slashes on host will be ignored. - * - * @param host string version the InetAddress - * @return the host converted to InetAddress instance - */ - public static String validateHost(String host) { - if (host == null || host.length() == 0) { - return null; - } - try { - InetAddress.getByName(trimLeadingSlash(host)); - return host; - } catch (java.net.UnknownHostException e) { - logStackTrace(e); - return null; - } - } - - /** Returns true if host matches the LOCALHOST. */ - public static boolean isLocalHost(Object host) { - if (host instanceof InetAddress) { - if (LOCALHOST.equals(host)) { - return true; - } else { - // InetAddress hostAddr = (InetAddress)host; - try { - Enumeration en = NetworkInterface.getNetworkInterfaces(); - while (en.hasMoreElements()) { - NetworkInterface i = (NetworkInterface) en.nextElement(); - for (Enumeration en2 = i.getInetAddresses(); en2.hasMoreElements();) { - InetAddress addr = (InetAddress) en2.nextElement(); - if (host.equals(addr)) { - return true; - } - } - } - return false; - } catch (SocketException e) { - throw new GemFireIOException( - LocalizedStrings.InetAddressUtil_UNABLE_TO_QUERY_NETWORK_INTERFACE - .toLocalizedString(), - e); - } - } - } else { - return isLocalHost(InetAddressUtil.toInetAddress(host.toString())); - } - } - - /** Returns true if host matches the LOOPBACK (127.0.0.1). */ - public static boolean isLoopback(Object host) { - if (host instanceof InetAddress) { - return LOOPBACK.equals(host); - } else { - return isLoopback(InetAddressUtil.toInetAddress(host.toString())); - } - } - - /** Returns a version of the value after removing any leading slashes */ - private static String trimLeadingSlash(String value) { - if (value == null) - return ""; - while (value.indexOf("/") > -1) { - value = value.substring(value.indexOf("/") + 1); - } - return value; - } - - /** - * Logs the stack trace for the given Throwable if logger is initialized else prints the stack - * trace using System.out. If logged the logs are logged at WARNING level. - * - * @param throwable Throwable to log stack trace for - */ - private static void logStackTrace(Throwable throwable) { - AdminDistributedSystemImpl adminDS = AdminDistributedSystemImpl.getConnectedInstance(); - - logger.warn(throwable.getMessage(), throwable); - } - -} - http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/InternalManagedEntity.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/InternalManagedEntity.java b/geode-core/src/main/java/org/apache/geode/admin/internal/InternalManagedEntity.java deleted file mode 100644 index 6211aea..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/InternalManagedEntity.java +++ /dev/null @@ -1,96 +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.geode.admin.internal; - -import org.apache.geode.admin.AdminDistributedSystem; -import org.apache.geode.admin.ManagedEntity; -import org.apache.geode.admin.ManagedEntityConfig; - -/** - * Provides internal-only functionality that is expected of all ManagedEntitys. This - * functionality is used by the {@link ManagedEntityController} to manage the entity. - * - * @since GemFire 4.0 - */ -public interface InternalManagedEntity extends ManagedEntity { - - /** The state of a managed entity is unknown. */ - public static final int UNKNOWN = 10; - - /** A managed entity is stopped */ - public static final int STOPPED = 11; - - /** A managed entity is stopping (being stopped) */ - public static final int STOPPING = 12; - - /** A managed entity is starting */ - public static final int STARTING = 13; - - /** A managed entity is running (is started) */ - public static final int RUNNING = 14; - - ////////////////////// Instance Methods ////////////////////// - - /** - * Returns the ManagedEntityConfig for this ManagedEntity. - */ - public ManagedEntityConfig getEntityConfig(); - - /** - * Returns a brief description (such as "locator") of this managed entity. - */ - public String getEntityType(); - - /** - * Returns the (local) command to execute in order to start this managed entity. The command - * includes the full path to the executable (include $GEMFIRE/bin) and any - * command-line arguments. It does not take the {@linkplain ManagedEntityConfig#getRemoteCommand - * remote command} into account. - */ - public String getStartCommand(); - - /** - * Returns the (local) command to execute in order to stop this managed entity. - */ - public String getStopCommand(); - - /** - * Returns the (local) command to execute in order to determine whether or not this managed entity - * is runing. - */ - public String getIsRunningCommand(); - - /** - * Returns a descriptive, one-word, unique id for a newly-created ManagedEntity. This - * ensures that we do not have collisions in the ids of entities. - */ - public String getNewId(); - - /** - * Returns the distributed system to which this managed entity belongs. - */ - public AdminDistributedSystem getDistributedSystem(); - - /** - * Sets the state of this managed entity and informs threads that are waiting for a state change. - * See bug 32455. - * - * @return The previous state of this managed entity. - * - * @see #RUNNING - */ - public int setState(int state); - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/LogCollator.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/LogCollator.java b/geode-core/src/main/java/org/apache/geode/admin/internal/LogCollator.java deleted file mode 100755 index 83aa440..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/LogCollator.java +++ /dev/null @@ -1,121 +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.geode.admin.internal; - -import org.apache.geode.internal.admin.GfManagerAgent; -import org.apache.geode.internal.admin.GemFireVM; -import org.apache.geode.internal.admin.ApplicationVM; -import org.apache.geode.internal.logging.MergeLogFiles; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -public class LogCollator { - - private GfManagerAgent system; - private List logTails; - - public LogCollator() {} - - public String collateLogs(GfManagerAgent system) { - try { - if (system == null) { - return ""; - } - this.system = system; - this.logTails = new ArrayList(); - gatherActiveLogs(); - gatherInactiveLogs(); - return mergeLogs(); - } finally { - this.system = null; - this.logTails = null; - } - } - - // ------------------------------------------------------------------------- - - private String mergeLogs() { - // combine logs... - InputStream[] logFiles = new InputStream[this.logTails.size()]; - String[] logFileNames = new String[logFiles.length]; - for (int i = 0; i < this.logTails.size(); i++) { - Loglet loglet = (Loglet) this.logTails.get(i); - logFiles[i] = new ByteArrayInputStream(loglet.tail.getBytes()); - logFileNames[i] = loglet.name; - } - - // delegate to MergeLogFiles... - StringWriter writer = new StringWriter(); - PrintWriter mergedLog = new PrintWriter(writer); - if (!MergeLogFiles.mergeLogFiles(logFiles, logFileNames, mergedLog)) { - return writer.toString(); - } else { - return ""; - } - } - - private void gatherActiveLogs() { - ApplicationVM[] runningsApps = this.system.listApplications(); - for (int i = 0; i < runningsApps.length; i++) { - addLogFrom(runningsApps[i]); - } - } - - private void gatherInactiveLogs() { - /* - * not yet supported.... if (useStopped) { LogViewHelper helper = new LogViewHelper(); for - * (Iterator iter = stoppedNodes.iterator(); iter.hasNext(); ) { Object adminEntity = - * iter.next(); helper.setAdminEntity(adminEntity); try { if (helper.logViewAvailable()) { - * String[] logs = helper.getSystemLogs(); addTail(allTails, logs, adminEntity.toString()); } } - * catch (Exception e) { Service.getService().reportSystemError(e); } } } - */ - } - - private void addLogFrom(GemFireVM vm) { - String name = null; - name = vm.toString(); - String[] logs = vm.getSystemLogs(); - addTail(name, logs); - } - - private void addTail(String logName, String[] logs) { - if (logs.length > 0) { - String tail = (logs.length > 1) ? logs[1] : logs[0]; - this.logTails.add(new Loglet(logName, tail)); - } - } - - /* - * public void setUseStoppedManagers(boolean useStopped) { this.useStopped = useStopped; } - */ - - private static class Loglet { - String name; - String tail; - - Loglet(String name, String tail) { - this.name = name; - this.tail = tail; - } - } - -} - http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigImpl.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigImpl.java b/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigImpl.java deleted file mode 100644 index fc41e5f..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigImpl.java +++ /dev/null @@ -1,256 +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.geode.admin.internal; - -// import org.apache.geode.admin.DistributedSystemConfig; -// import org.apache.geode.admin.ManagedEntity; -import org.apache.geode.admin.ManagedEntityConfig; -import org.apache.geode.internal.admin.GemFireVM; -import org.apache.geode.internal.i18n.LocalizedStrings; -import org.apache.geode.internal.GemFireVersion; -import org.apache.geode.internal.net.SocketCreator; - -import java.io.File; -import java.net.*; - -/** - * The abstract superclass of objects that configure a managed entity such as a GemFire cache server - * or a distribution locator. It contains configuration state and behavior common to all managed - * entities. - * - * @since GemFire 4.0 - */ -public abstract class ManagedEntityConfigImpl implements ManagedEntityConfig { - - /** The name of the host on which the managed entity runs */ - private String host; - - /** Directory in which the locator runs */ - private String workingDirectory; - - /** The directory in which GemFire is installed */ - private String productDirectory; - - /** Command used to launch locator on remote machine */ - private String remoteCommand; - - /** - * The managed entity configured by this object. - * - * @see #isReadOnly - */ - private InternalManagedEntity entity = null; - - ///////////////////// Static Methods ///////////////////// - - /** - * Returns the {@linkplain InetAddress#getCanonicalHostName canonical name} of the local machine. - */ - protected static String getLocalHostName() { - try { - return SocketCreator.getLocalHost().getCanonicalHostName(); - - } catch (UnknownHostException ex) { - IllegalStateException ex2 = new IllegalStateException( - LocalizedStrings.ManagedEntityConfigImpl_COULD_NOT_DETERMINE_LOCALHOST - .toLocalizedString()); - ex2.initCause(ex); - throw ex2; - } - } - - /** - * Returns the current working directory for this VM. - */ - private static File getCurrentWorkingDirectory() { - File cwd = new File(System.getProperty("user.dir")); - return cwd.getAbsoluteFile(); - } - - /** - * Returns the location of the GemFire product installation. This is determined by finding the - * location of the gemfire jar and working backwards. - */ - private static File getGemFireInstallation() { - URL url = GemFireVersion.getJarURL(); - if (url == null) { - throw new IllegalStateException( - LocalizedStrings.ManagedEntityConfigImpl_COULD_NOT_FIND_GEMFIREJAR.toLocalizedString()); - } - - File gemfireJar = new File(url.getPath()); - File lib = gemfireJar.getParentFile(); - File product = lib.getParentFile(); - - return product; - } - - ////////////////////// Constructors ////////////////////// - - /** - * Creates a ManagedEntityConfigImpl with the default configuration. - */ - protected ManagedEntityConfigImpl() { - this.host = getLocalHostName(); - this.workingDirectory = getCurrentWorkingDirectory().getAbsolutePath(); - this.productDirectory = getGemFireInstallation().getAbsolutePath(); - this.remoteCommand = null; // Delegate to AdminDistributedSystem - } - - /** - * Creates a new ManagedEntityConfigImpl based on the configuration of a running - * GemFireVM - */ - protected ManagedEntityConfigImpl(GemFireVM vm) { - this.host = SocketCreator.getHostName(vm.getHost()); - this.workingDirectory = vm.getWorkingDirectory().getAbsolutePath(); - this.productDirectory = vm.getGemFireDir().getAbsolutePath(); - this.remoteCommand = null; - } - - /** - * A copy constructor that creates a new ManagedEntityConfigImpl with the same - * configuration as another ManagedEntityConfig. - */ - protected ManagedEntityConfigImpl(ManagedEntityConfig other) { - this.host = other.getHost(); - this.workingDirectory = other.getWorkingDirectory(); - this.productDirectory = other.getProductDirectory(); - this.remoteCommand = other.getRemoteCommand(); - } - - //////////////////// Instance Methods //////////////////// - - /** - * Checks to see if this config object is "read only". If it is, then an - * {@link IllegalStateException} is thrown. It should be called by every setter method. - * - * @see #isReadOnly - */ - public void checkReadOnly() { - if (this.isReadOnly()) { - throw new IllegalStateException( - LocalizedStrings.ManagedEntityConfigImpl_THIS_CONFIGURATION_CANNOT_BE_MODIFIED_WHILE_ITS_MANAGED_ENTITY_IS_RUNNING - .toLocalizedString()); - } - } - - /** - * Returns whether or not this ManagedEntityConfigImpl is read-only (can be - * modified). - */ - protected boolean isReadOnly() { - return this.entity != null && this.entity.isRunning(); - } - - /** - * Sets the entity that is configured by this config object. Once the entity is running, the - * config object cannot be modified. - * - * @see #checkReadOnly - */ - public void setManagedEntity(InternalManagedEntity entity) { - this.entity = entity; - } - - /** - * Notifies any configuration listeners that this configuration has changed. - */ - protected abstract void configChanged(); - - public String getHost() { - return this.host; - } - - public void setHost(String host) { - checkReadOnly(); - this.host = host; - configChanged(); - } - - public String getWorkingDirectory() { - String dir = this.workingDirectory; - return dir; - } - - public void setWorkingDirectory(String workingDirectory) { - checkReadOnly(); - this.workingDirectory = workingDirectory; - configChanged(); - } - - public String getProductDirectory() { - return this.productDirectory; - } - - public void setProductDirectory(String productDirectory) { - checkReadOnly(); - this.productDirectory = productDirectory; - configChanged(); - } - - public String getRemoteCommand() { - return this.remoteCommand; - } - - public void setRemoteCommand(String remoteCommand) { - checkReadOnly(); - this.remoteCommand = remoteCommand; - configChanged(); - } - - /** - * Validates this configuration. - * - * @throws IllegalStateException If this config is not valid - */ - public void validate() { - if (InetAddressUtil.validateHost(this.host) == null) { - throw new IllegalStateException( - LocalizedStrings.ManagedEntityConfigImpl_INVALID_HOST_0.toLocalizedString(this.host)); - } - } - - @Override - public Object clone() throws CloneNotSupportedException { - // Since all fields are immutable objects, no deep cloning is - // necessary. - ManagedEntityConfigImpl clone = (ManagedEntityConfigImpl) super.clone(); - clone.entity = null; - return clone; - } - - @Override - public String toString() { - String className = this.getClass().getName(); - int index = className.lastIndexOf('.'); - className = className.substring(index + 1); - - StringBuffer sb = new StringBuffer(); - sb.append(className); - - sb.append(" host="); - sb.append(this.getHost()); - sb.append(" workingDirectory="); - sb.append(this.getWorkingDirectory()); - sb.append(" productDirectory="); - sb.append(this.getProductDirectory()); - sb.append(" remoteCommand=\""); - sb.append(this.getRemoteCommand()); - sb.append("\""); - - return sb.toString(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXml.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXml.java b/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXml.java deleted file mode 100644 index 4e5198e..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXml.java +++ /dev/null @@ -1,169 +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.geode.admin.internal; - -import org.apache.geode.distributed.ConfigurationProperties; -import org.apache.geode.internal.ClassPathLoader; -import org.apache.geode.internal.i18n.LocalizedStrings; -import org.xml.sax.*; - -import java.io.InputStream; - -/** - * The abstract superclass of classes that convert XML into a - * {@link org.apache.geode.admin.DistributedSystemConfig} and vice versa. It provides helper methods - * and constants. - * - * @since GemFire 4.0 - */ -abstract class ManagedEntityConfigXml implements EntityResolver, ErrorHandler { - - /** The location of the DTD file */ - protected static final String DTD_LOCATION = "/org/apache/geode/admin/doc-files/ds5_0.dtd"; - - /** The URL for the DTD */ - protected static final String SYSTEM_ID = "http://www.gemstone.com/dtd/ds5_0.dtd"; - - /** The public ID for the DTD */ - protected static final String PUBLIC_ID = - "-//GemStone Systems, Inc.//GemFire Distributed System 5.0//EN"; - - /** The name of the distributed-system element. */ - public static final String DISTRIBUTED_SYSTEM = "distributed-system"; - - /** The name of the id attribute. */ - public static final String ID = "id"; - - /** The name of the disable-tcp attribute. */ - public static final String DISABLE_TCP = "disable-tcp"; - - /** The name of the remote-command element. */ - public static final String REMOTE_COMMAND = "remote-command"; - - /** The name of the locators element. */ - public static final String LOCATORS = ConfigurationProperties.LOCATORS; - - /** The name of the ssl element. */ - public static final String SSL = "ssl"; - - /** The name of the cache-server element */ - public static final String CACHE_SERVER = "cache-server"; - - /** The name of the multicast element */ - public static final String MULTICAST = "multicast"; - - /** The name of the locator element */ - public static final String LOCATOR = "locator"; - - /** The name of the port attribute */ - public static final String PORT = "port"; - - /** The name of the address attribute */ - public static final String ADDRESS = "address"; - - /** The name of the host element. */ - public static final String HOST = "host"; - - /** The name of the working-directory element */ - public static final String WORKING_DIRECTORY = "working-directory"; - - /** The name of the product-directory element */ - public static final String PRODUCT_DIRECTORY = "product-directory"; - - /** The name of the protocols element */ - public static final String PROTOCOLS = "protocols"; - - /** The name of the ciphers element */ - public static final String CIPHERS = "ciphers"; - - /** The name of the property element */ - public static final String PROPERTY = "property"; - - /** Name of the authentication-required attribute */ - public static final String AUTHENTICATION_REQUIRED = "authentication-required"; - - /** The name of the key element */ - public static final String KEY = "key"; - - /** The name of the value element */ - public static final String VALUE = "value"; - - /** The name of the classpath element */ - public static final String CLASSPATH = "classpath"; - - /////////////////////// Instance Methods /////////////////////// - - /** - * Given a public id, attempt to resolve it to a DTD. Returns an InputSoure for the - * DTD. - */ - public InputSource resolveEntity(String publicId, String systemId) throws SAXException { - - if (publicId == null || systemId == null) { - throw new SAXException(LocalizedStrings.ManagedEntityConfigXml_PUBLIC_ID_0_SYSTEM_ID_1 - .toLocalizedString(new Object[] {publicId, systemId})); - } - - // Figure out the location for the publicId. - String location = DTD_LOCATION; - - InputSource result; - // if (location != null) (cannot be null) - { - InputStream stream = ClassPathLoader.getLatest().getResourceAsStream(getClass(), location); - if (stream != null) { - result = new InputSource(stream); - } else { - throw new SAXNotRecognizedException( - LocalizedStrings.ManagedEntityConfigXml_DTD_NOT_FOUND_0.toLocalizedString(location)); - } - - // } else { - // throw new - // SAXNotRecognizedException(LocalizedStrings.ManagedEntityConfigXml_COULD_NOT_FIND_DTD_FOR_0_1.toLocalizedString(new - // Object[] {publicId, systemId})); - } - - return result; - } - - /** - * Warnings are ignored - */ - public void warning(SAXParseException ex) throws SAXException { - - } - - /** - * Throws a {@link org.apache.geode.cache.CacheXmlException} - */ - public void error(SAXParseException ex) throws SAXException { - IllegalArgumentException ex2 = new IllegalArgumentException( - LocalizedStrings.ManagedEntityConfigXml_ERROR_WHILE_PARSING_XML.toLocalizedString()); - ex2.initCause(ex); - throw ex2; - } - - /** - * Throws a {@link org.apache.geode.cache.CacheXmlException} - */ - public void fatalError(SAXParseException ex) throws SAXException { - IllegalArgumentException ex2 = new IllegalArgumentException( - LocalizedStrings.ManagedEntityConfigXml_FATAL_ERROR_WHILE_PARSING_XML.toLocalizedString()); - ex2.initCause(ex); - throw ex2; - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlGenerator.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlGenerator.java b/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlGenerator.java deleted file mode 100644 index 80732cc..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlGenerator.java +++ /dev/null @@ -1,364 +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.geode.admin.internal; - -import org.apache.geode.admin.*; -import org.apache.geode.internal.Assert; -import org.apache.geode.internal.i18n.LocalizedStrings; - -import javax.xml.transform.*; -// import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.sax.SAXSource; -import javax.xml.transform.stream.StreamResult; -import org.xml.sax.*; -// import org.xml.sax.ext.*; -import org.xml.sax.helpers.AttributesImpl; -import java.io.*; -import java.util.*; - -/** - * Generates XML data that represents the managed entities in an - * AdminDistributedSystem. This class is used mainly for testing. - * - * @since GemFire 4.0 - */ -public class ManagedEntityConfigXmlGenerator extends ManagedEntityConfigXml implements XMLReader { - - /** An empty Attributes */ - private static Attributes EMPTY = new AttributesImpl(); - - ///////////////////////// Instance Fields //////////////////////// - - /** - * The AdminDistributedSystem for which we are generating XML - */ - private AdminDistributedSystem system; - - /** The content handler to which SAX events are generated */ - private ContentHandler handler; - - ///////////////////////// Static Methods //////////////////////// - - /** - * Generates an XML representation of all of the managed entities in the given - * AdminDistributedSystem. - */ - public static void generate(AdminDistributedSystem system, PrintWriter pw) { - (new ManagedEntityConfigXmlGenerator(system)).generate(pw); - } - - ///////////////////////// Constructors ////////////////////////// - - /** - * Creates a new generator for the given AdminDistributedSystem. - */ - private ManagedEntityConfigXmlGenerator(AdminDistributedSystem system) { - this.system = system; - } - - /////////////////////// Instance Methods /////////////////////// - - /** - * Generates XML and writes it to the given PrintWriter - */ - private void generate(PrintWriter pw) { - // Use JAXP's transformation API to turn SAX events into pretty - // XML text - try { - Source src = new SAXSource(this, new InputSource()); - Result res = new StreamResult(pw); - - TransformerFactory xFactory = TransformerFactory.newInstance(); - Transformer xform = xFactory.newTransformer(); - xform.setOutputProperty(OutputKeys.METHOD, "xml"); - xform.setOutputProperty(OutputKeys.INDENT, "yes"); - xform.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, SYSTEM_ID); - xform.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, PUBLIC_ID); - xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); - xform.transform(src, res); - pw.flush(); - - } catch (Exception ex) { - RuntimeException ex2 = new RuntimeException( - LocalizedStrings.ManagedEntityConfigXmlGenerator_EXCEPTION_THROWN_WHILE_GENERATING_XML - .toLocalizedString()); - ex2.initCause(ex); - throw ex2; - } - } - - /** - * Called by the transformer to parse the "input source". We ignore the input source and, instead, - * generate SAX events to the {@link #setContentHandler ContentHandler}. - */ - public void parse(InputSource input) throws SAXException { - Assert.assertTrue(this.handler != null); - - handler.startDocument(); - - AttributesImpl atts = new AttributesImpl(); - - atts.addAttribute("", "", ID, "", String.valueOf(this.system.getConfig().getSystemId())); - - handler.startElement("", DISTRIBUTED_SYSTEM, DISTRIBUTED_SYSTEM, atts); - - // Add generation methods here - try { - generateRemoteCommand(); - generateDiscovery(); - generateSSL(); - generateCacheServers(); - - } catch (AdminException ex) { - throw new SAXException( - LocalizedStrings.ManagedEntityConfigXmlGenerator_AN_ADMINEXCEPTION_WAS_THROWN_WHILE_GENERATING_XML - .toLocalizedString(), - ex); - } - - handler.endElement("", DISTRIBUTED_SYSTEM, DISTRIBUTED_SYSTEM); - handler.endDocument(); - } - - /** - * Generates XML for the remote command - */ - private void generateRemoteCommand() throws SAXException { - String remoteCommand = this.system.getRemoteCommand(); - - handler.startElement("", REMOTE_COMMAND, REMOTE_COMMAND, EMPTY); - - handler.characters(remoteCommand.toCharArray(), 0, remoteCommand.length()); - - handler.endElement("", REMOTE_COMMAND, REMOTE_COMMAND); - } - - /** - * Generates XML for locators in the distributed system - */ - private void generateDiscovery() throws SAXException { - handler.startElement("", LOCATORS, LOCATORS, EMPTY); - - generateLocators(); - - handler.endElement("", LOCATORS, LOCATORS); - } - - /** - * Generates XML for the distributed system's locators - */ - private void generateLocators() throws SAXException { - DistributionLocator[] locators = this.system.getDistributionLocators(); - for (int i = 0; i < locators.length; i++) { - generateLocator(locators[i].getConfig()); - } - } - - /** - * Generates XML for a locator - */ - private void generateLocator(DistributionLocatorConfig config) throws SAXException { - - AttributesImpl atts = new AttributesImpl(); - atts.addAttribute("", "", PORT, "", String.valueOf(config.getPort())); - - handler.startElement("", LOCATOR, LOCATOR, atts); - - generateEntityConfig(config); - - handler.endElement("", LOCATOR, LOCATOR); - } - - /** - * Generates XML for attributes common to all managed entities. - */ - private void generateEntityConfig(ManagedEntityConfig config) throws SAXException { - - String host = config.getHost(); - if (host != null) { - handler.startElement("", HOST, HOST, EMPTY); - handler.characters(host.toCharArray(), 0, host.length()); - handler.endElement("", HOST, HOST); - } - - String remoteCommand = config.getRemoteCommand(); - if (remoteCommand != null) { - handler.startElement("", REMOTE_COMMAND, REMOTE_COMMAND, EMPTY); - handler.characters(remoteCommand.toCharArray(), 0, remoteCommand.length()); - handler.endElement("", REMOTE_COMMAND, REMOTE_COMMAND); - } - - String workingDirectory = config.getWorkingDirectory(); - if (workingDirectory != null) { - handler.startElement("", WORKING_DIRECTORY, WORKING_DIRECTORY, EMPTY); - handler.characters(workingDirectory.toCharArray(), 0, workingDirectory.length()); - handler.endElement("", WORKING_DIRECTORY, WORKING_DIRECTORY); - } - - String productDirectory = config.getProductDirectory(); - if (productDirectory != null) { - handler.startElement("", PRODUCT_DIRECTORY, PRODUCT_DIRECTORY, EMPTY); - handler.characters(productDirectory.toCharArray(), 0, productDirectory.length()); - handler.endElement("", PRODUCT_DIRECTORY, PRODUCT_DIRECTORY); - } - } - - /** - * Generates XML for the SSL configuration of the distributed system. - */ - private void generateSSL() throws SAXException { - DistributedSystemConfig config = this.system.getConfig(); - - boolean sslEnabled = config.isSSLEnabled(); - if (!sslEnabled) { - return; - } - - AttributesImpl atts = new AttributesImpl(); - atts.addAttribute("", "", AUTHENTICATION_REQUIRED, "", - String.valueOf(config.isSSLAuthenticationRequired())); - - handler.startElement("", SSL, SSL, atts); - - String protocols = config.getSSLProtocols(); - if (protocols != null) { - handler.startElement("", PROTOCOLS, PROTOCOLS, EMPTY); - handler.characters(protocols.toCharArray(), 0, protocols.length()); - handler.endElement("", PROTOCOLS, PROTOCOLS); - } - - String ciphers = config.getSSLCiphers(); - if (ciphers != null) { - handler.startElement("", CIPHERS, CIPHERS, EMPTY); - handler.characters(ciphers.toCharArray(), 0, ciphers.length()); - handler.endElement("", CIPHERS, CIPHERS); - } - - Properties sslProps = config.getSSLProperties(); - for (Iterator iter = sslProps.entrySet().iterator(); iter.hasNext();) { - Map.Entry entry = (Map.Entry) iter.next(); - String key = (String) entry.getKey(); - String value = (String) entry.getValue(); - - handler.startElement("", PROPERTY, PROPERTY, EMPTY); - - handler.startElement("", KEY, KEY, EMPTY); - handler.characters(key.toCharArray(), 0, key.length()); - handler.endElement("", KEY, KEY); - - handler.startElement("", VALUE, VALUE, EMPTY); - handler.characters(value.toCharArray(), 0, value.length()); - handler.endElement("", VALUE, VALUE); - - handler.endElement("", PROPERTY, PROPERTY); - } - - handler.endElement("", SSL, SSL); - } - - /** - * Generates an XML representation of the CacheServers in the distributed system. - */ - private void generateCacheServers() throws SAXException, AdminException { - - CacheServer[] servers = this.system.getCacheServers(); - for (int i = 0; i < servers.length; i++) { - generateCacheServer(servers[i].getConfig()); - } - } - - /** - * Generates an XML representation of a CacheServerConfig. - */ - private void generateCacheServer(CacheServerConfig config) throws SAXException { - - handler.startElement("", CACHE_SERVER, CACHE_SERVER, EMPTY); - - generateEntityConfig(config); - - String classpath = config.getClassPath(); - if (classpath != null) { - handler.startElement("", CLASSPATH, CLASSPATH, EMPTY); - handler.characters(classpath.toCharArray(), 0, classpath.length()); - handler.endElement("", CLASSPATH, CLASSPATH); - } - - handler.endElement("", CACHE_SERVER, CACHE_SERVER); - } - - /** - * Keep track of the content handler for use during {@link #parse(String)}. - */ - public void setContentHandler(ContentHandler handler) { - this.handler = handler; - } - - public ContentHandler getContentHandler() { - return this.handler; - } - - public ErrorHandler getErrorHandler() { - return this; - } - - ////////// Inherited methods that don't do anything ////////// - - public boolean getFeature(String name) - throws SAXNotRecognizedException, SAXNotSupportedException { - return false; - } - - public void setFeature(String name, boolean value) - throws SAXNotRecognizedException, SAXNotSupportedException { - - } - - public Object getProperty(String name) - throws SAXNotRecognizedException, SAXNotSupportedException { - - return null; - } - - public void setProperty(String name, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException { - - } - - public void setEntityResolver(EntityResolver resolver) { - - } - - public EntityResolver getEntityResolver() { - return this; - } - - public void setDTDHandler(DTDHandler handler) { - - } - - public DTDHandler getDTDHandler() { - return null; - } - - public void setErrorHandler(ErrorHandler handler) { - - } - - public void parse(String systemId) throws IOException, SAXException { - - } - - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlParser.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlParser.java b/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlParser.java deleted file mode 100644 index 29b81f4..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlParser.java +++ /dev/null @@ -1,587 +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.geode.admin.internal; - -import org.apache.geode.admin.*; -import org.apache.geode.internal.Assert; -import org.apache.geode.internal.i18n.LocalizedStrings; - -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import org.xml.sax.*; -import org.xml.sax.helpers.DefaultHandler; -import java.io.*; -import java.util.*; - -/** - * Parses an XML file and configures a {@link DistributedSystemConfig} from it. - * - * @since GemFire 4.0 - */ -public class ManagedEntityConfigXmlParser extends ManagedEntityConfigXml implements ContentHandler { - - /** The DistributedSystemConfig to be configured */ - private DistributedSystemConfig config; - - /** The stack of intermediate values used while parsing */ - private Stack stack = new Stack(); - - ////////////////////// Static Methods ////////////////////// - - /** - * Parses XML data and from it configures a DistributedSystemConfig. - * - * @throws AdminXmlException If an error is encountered while parsing the XML - */ - public static void parse(InputStream is, DistributedSystemConfig config) { - ManagedEntityConfigXmlParser handler = new ManagedEntityConfigXmlParser(); - handler.config = config; - - try { - SAXParserFactory factory = SAXParserFactory.newInstance(); - factory.setValidating(true); - SAXParser parser = factory.newSAXParser(); - parser.parse(is, new DefaultHandlerDelegate(handler)); - - } catch (Exception ex) { - if (ex instanceof AdminXmlException) { - throw (AdminXmlException) ex; - - } else if (ex.getCause() instanceof AdminXmlException) { - throw (AdminXmlException) ex.getCause(); - - } else if (ex instanceof SAXException) { - // Silly JDK 1.4.2 XML parser wraps RunTime exceptions in a - // SAXException. Pshaw! - - SAXException sax = (SAXException) ex; - Exception cause = sax.getException(); - if (cause instanceof AdminXmlException) { - throw (AdminXmlException) cause; - } - } - - throw new AdminXmlException( - LocalizedStrings.ManagedEntityConfigXmlParser_WHILE_PARSING_XML.toLocalizedString(), ex); - } - } - - /** - * Helper method for parsing an integer - * - * @throws org.apache.geode.cache.CacheXmlException If s is a malformed integer - */ - private static int parseInt(String s) { - try { - return Integer.parseInt(s); - - } catch (NumberFormatException ex) { - throw new AdminXmlException( - LocalizedStrings.ManagedEntityConfigXmlParser_MALFORMED_INTEGER_0.toLocalizedString(s), - ex); - } - } - - ////////////////////// Instance Methods ////////////////////// - - // if (this.system.isMcastEnabled()) { - // generateMulticast(); - // } - - public void startElement(String namespaceURI, String localName, String qName, Attributes atts) - throws SAXException { - - if (qName.equals(DISTRIBUTED_SYSTEM)) { - startDistributedSystem(atts); - - } else if (qName.equals(REMOTE_COMMAND)) { - startRemoteCommand(atts); - - } else if (qName.equals(LOCATORS)) { - startLocators(atts); - - } else if (qName.equals(MULTICAST)) { - startMulticast(atts); - - } else if (qName.equals(LOCATOR)) { - startLocator(atts); - - } else if (qName.equals(HOST)) { - startHost(atts); - - } else if (qName.equals(WORKING_DIRECTORY)) { - startWorkingDirectory(atts); - - } else if (qName.equals(PRODUCT_DIRECTORY)) { - startProductDirectory(atts); - - } else if (qName.equals(SSL)) { - startSSL(atts); - - } else if (qName.equals(PROTOCOLS)) { - startProtocols(atts); - - } else if (qName.equals(CIPHERS)) { - startCiphers(atts); - - } else if (qName.equals(PROPERTY)) { - startProperty(atts); - - } else if (qName.equals(KEY)) { - startKey(atts); - - } else if (qName.equals(VALUE)) { - startValue(atts); - - } else if (qName.equals(CACHE_SERVER)) { - startCacheServer(atts); - - } else if (qName.equals(CLASSPATH)) { - startClassPath(atts); - - } else { - throw new AdminXmlException( - LocalizedStrings.ManagedEntityConfigXmlParser_UNKNOWN_XML_ELEMENT_0 - .toLocalizedString(qName)); - } - } - - public void endElement(String namespaceURI, String localName, String qName) throws SAXException { - - if (qName.equals(DISTRIBUTED_SYSTEM)) { - endDistributedSystem(); - - } else if (qName.equals(REMOTE_COMMAND)) { - endRemoteCommand(); - - } else if (qName.equals(LOCATORS)) { - endLocators(); - - } else if (qName.equals(MULTICAST)) { - endMulticast(); - - } else if (qName.equals(LOCATOR)) { - endLocator(); - - } else if (qName.equals(HOST)) { - endHost(); - - } else if (qName.equals(WORKING_DIRECTORY)) { - endWorkingDirectory(); - - } else if (qName.equals(PRODUCT_DIRECTORY)) { - endProductDirectory(); - - } else if (qName.equals(SSL)) { - endSSL(); - - } else if (qName.equals(PROTOCOLS)) { - endProtocols(); - - } else if (qName.equals(CIPHERS)) { - endCiphers(); - - } else if (qName.equals(PROPERTY)) { - endProperty(); - - } else if (qName.equals(KEY)) { - endKey(); - - } else if (qName.equals(VALUE)) { - endValue(); - - } else if (qName.equals(CACHE_SERVER)) { - endCacheServer(); - - } else if (qName.equals(CLASSPATH)) { - endClassPath(); - - } else { - throw new AdminXmlException( - LocalizedStrings.ManagedEntityConfigXmlParser_UNKNOWN_XML_ELEMENT_0 - .toLocalizedString(qName)); - } - } - - /** - * When a distributed-system element is encountered, we push the - * DistributedSystemConfig on the stack. - */ - private void startDistributedSystem(Attributes atts) { - Assert.assertTrue(stack.isEmpty()); - - String id = atts.getValue(ID); - if (id != null) { - this.config.setSystemId(id); - } - - String disable_tcp = atts.getValue(DISABLE_TCP); - if (disable_tcp != null) { - this.config.setDisableTcp(DISABLE_TCP.equalsIgnoreCase("true")); - } - - stack.push(this.config); - } - - /** - * When a distributed-system element is finished - */ - private void endDistributedSystem() { - - } - - /** - * When a multicast is first encountered, get the - * DistributedSystemConfig off of the top of the stack and set its multicast config - * appropriately. - */ - private void startMulticast(Attributes atts) { - DistributedSystemConfig config = (DistributedSystemConfig) stack.peek(); - - String port = atts.getValue(PORT); - config.setMcastPort(parseInt(port)); - - String address = atts.getValue(ADDRESS); - if (address != null) { - config.setMcastAddress(address); - } - } - - private void endMulticast() { - - } - - /** - * Starts a remote-command element. The item on top of the stack may be a - * DistributedSystemConfig or it might be a ManagedEntityConfig. - */ - private void startRemoteCommand(Attributes atts) { - - } - - /** - * Ends a remote-command element. Pop the command off the top of the stack and set it - * on the DistributedSystemConfig or it might be a ManagedEntityConfig - * on top of the stack. - */ - private void endRemoteCommand() { - String remoteCommand = popString(); - Object top = stack.peek(); - Assert.assertTrue(top != null); - - if (top instanceof DistributedSystemConfig) { - ((DistributedSystemConfig) top).setRemoteCommand(remoteCommand); - - } else if (top instanceof ManagedEntityConfig) { - ((ManagedEntityConfig) top).setRemoteCommand(remoteCommand); - - } else { - String s = "Did not expect a " + top.getClass().getName() + " on top of the stack"; - Assert.assertTrue(false, s); - } - } - - private void startLocators(Attributes atts) { - - } - - private void endLocators() { - - } - - private void startLocator(Attributes atts) { - String port = atts.getValue(PORT); - - DistributedSystemConfig system = (DistributedSystemConfig) stack.peek(); - system.setMcastPort(0); - - DistributionLocatorConfig config = system.createDistributionLocatorConfig(); - - config.setPort(parseInt(port)); - - stack.push(config); - } - - private void endLocator() { - Object o = stack.pop(); - Assert.assertTrue(o instanceof DistributionLocatorConfig); - } - - private void startHost(Attributes atts) { - - } - - /** - * We assume that there is a ManagedEntityConfig on top of the stack. - */ - private void endHost() { - String host = popString(); - ManagedEntityConfig config = (ManagedEntityConfig) stack.peek(); - config.setHost(host); - } - - private void startWorkingDirectory(Attributes atts) { - - } - - private void endWorkingDirectory() { - String workingDirectory = popString(); - ManagedEntityConfig config = (ManagedEntityConfig) stack.peek(); - config.setWorkingDirectory(workingDirectory); - } - - private void startProductDirectory(Attributes atts) { - - } - - private void endProductDirectory() { - String productDirectory = popString(); - ManagedEntityConfig config = (ManagedEntityConfig) stack.peek(); - config.setProductDirectory(productDirectory); - } - - private void startSSL(Attributes atts) { - DistributedSystemConfig config = (DistributedSystemConfig) stack.peek(); - config.setSSLEnabled(true); - - String authenticationRequired = atts.getValue(AUTHENTICATION_REQUIRED); - config.setSSLAuthenticationRequired(Boolean.valueOf(authenticationRequired).booleanValue()); - } - - private void endSSL() { - - } - - private void startProtocols(Attributes atts) { - - } - - private void endProtocols() { - String protocols = popString(); - DistributedSystemConfig config = (DistributedSystemConfig) stack.peek(); - config.setSSLProtocols(protocols); - } - - private void startCiphers(Attributes atts) { - - } - - private void endCiphers() { - String ciphers = popString(); - DistributedSystemConfig config = (DistributedSystemConfig) stack.peek(); - config.setSSLCiphers(ciphers); - } - - private void startProperty(Attributes atts) { - - } - - private void endProperty() { - String value = popString(); - String key = popString(); - DistributedSystemConfig config = (DistributedSystemConfig) stack.peek(); - config.addSSLProperty(key, value); - } - - private void startKey(Attributes atts) { - - } - - private void endKey() { - String key = popString(); - stack.push(key); - } - - private void startValue(Attributes atts) { - - } - - private void endValue() { - String value = popString(); - stack.push(value); - } - - private void startCacheServer(Attributes atts) { - DistributedSystemConfig config = (DistributedSystemConfig) stack.peek(); - CacheServerConfig server = config.createCacheServerConfig(); - stack.push(server); - } - - private void endCacheServer() { - /* CacheServerConfig server = (CacheServerConfig) */ stack.pop(); - } - - private void startClassPath(Attributes atts) { - - } - - private void endClassPath() { - String classpath = popString(); - CacheServerConfig server = (CacheServerConfig) stack.peek(); - server.setClassPath(classpath); - } - - /** - * Pops a String off of the stack. - */ - private String popString() { - Object o = stack.pop(); - - if (o instanceof StringBuffer) { - StringBuffer sb = (StringBuffer) o; - return sb.toString(); - - } else { - return (String) o; - } - } - - /** - * Long strings in XML files may generate multiple characters callbacks. Coalesce - * multiple callbacks into one big string by using a StringBuffer. See bug 32122. - */ - public void characters(char[] ch, int start, int length) throws SAXException { - - Object top = stack.peek(); - - StringBuffer sb; - if (top instanceof StringBuffer) { - sb = (StringBuffer) top; - - } else { - sb = new StringBuffer(); - stack.push(sb); - } - - sb.append(ch, start, length); - } - - ////////// Inherited methods that don't do anything ////////// - - public void setDocumentLocator(Locator locator) {} - - public void startDocument() throws SAXException {} - - public void endDocument() throws SAXException {} - - public void startPrefixMapping(String prefix, String uri) throws SAXException {} - - public void endPrefixMapping(String prefix) throws SAXException {} - - public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {} - - public void processingInstruction(String target, String data) throws SAXException {} - - public void skippedEntity(String name) throws SAXException {} - - /////////////////////// Inner Classes /////////////////////// - - /** - * Class that delegates all of the methods of a {@link DefaultHandler} to a - * {@link ManagedEntityConfigXmlParser} that implements all of the methods of - * DefaultHandler, but is not a DefaultHandler. - */ - static class DefaultHandlerDelegate extends DefaultHandler { - /** - * The ManagedEntityConfigXmlParser that does the real work - */ - private ManagedEntityConfigXmlParser handler; - - /** - * Creates a new DefaultHandlerDelegate that delegates to the given - * ManagedEntityConfigXmlParser. - */ - public DefaultHandlerDelegate(ManagedEntityConfigXmlParser handler) { - this.handler = handler; - } - - @Override - public InputSource resolveEntity(String publicId, String systemId) throws SAXException { - return handler.resolveEntity(publicId, systemId); - } - - @Override - public void setDocumentLocator(Locator locator) { - handler.setDocumentLocator(locator); - } - - @Override - public void startDocument() throws SAXException { - handler.startDocument(); - } - - @Override - public void endDocument() throws SAXException { - handler.endDocument(); - } - - @Override - public void startPrefixMapping(String prefix, String uri) throws SAXException { - handler.startPrefixMapping(prefix, uri); - } - - @Override - public void endPrefixMapping(String prefix) throws SAXException { - handler.endPrefixMapping(prefix); - } - - @Override - public void startElement(String uri, String localName, String qName, Attributes attributes) - throws SAXException { - handler.startElement(uri, localName, qName, attributes); - } - - @Override - public void endElement(String uri, String localName, String qName) throws SAXException { - handler.endElement(uri, localName, qName); - } - - @Override - public void characters(char[] ch, int start, int length) throws SAXException { - handler.characters(ch, start, length); - } - - @Override - public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { - handler.ignorableWhitespace(ch, start, length); - } - - @Override - public void processingInstruction(String target, String data) throws SAXException { - handler.processingInstruction(target, data); - } - - @Override - public void skippedEntity(String name) throws SAXException { - handler.skippedEntity(name); - } - - @Override - public void warning(SAXParseException e) throws SAXException { - handler.warning(e); - } - - @Override - public void error(SAXParseException e) throws SAXException { - handler.error(e); - } - - @Override - public void fatalError(SAXParseException e) throws SAXException { - handler.fatalError(e); - } - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityController.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityController.java b/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityController.java deleted file mode 100644 index 77a3998..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityController.java +++ /dev/null @@ -1,66 +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.geode.admin.internal; - -import org.apache.geode.admin.DistributedSystemConfig; -import org.apache.geode.admin.ManagedEntity; -import org.apache.geode.admin.ManagedEntityConfig; - -/** - * Defines the actual administration (starting, stopping, etc.) of GemFire {@link ManagedEntity}s. - * - */ -interface ManagedEntityController { - /** - * Starts a managed entity. - */ - public void start(final InternalManagedEntity entity); - - /** - * Stops a managed entity. - */ - public void stop(final InternalManagedEntity entity); - - /** - * Returns whether or not a managed entity is running - */ - public boolean isRunning(InternalManagedEntity entity); - - /** - * Returns the contents of a locator's log file. Other APIs are used to get the log file of - * managed entities that are also system members. - */ - public String getLog(DistributionLocatorImpl locator); - - /** - * Returns the full path to the executable in $GEMFIRE/bin taking into account the - * {@linkplain ManagedEntityConfig#getProductDirectory product directory} and the platform's file - * separator. - * - *

- * - * Note: we should probably do a better job of determine whether or not the machine on which the - * entity runs is Windows or Linux. - * - * @param executable The name of the executable that resides in $GEMFIRE/bin. - */ - public String getProductExecutable(InternalManagedEntity entity, String executable); - - /** - * Builds optional SSL command-line arguments. Returns null if SSL is not enabled for the - * distributed system. - */ - public String buildSSLArguments(DistributedSystemConfig config); -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityControllerFactory.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityControllerFactory.java b/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityControllerFactory.java deleted file mode 100755 index faa67c5..0000000 --- a/geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityControllerFactory.java +++ /dev/null @@ -1,63 +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.geode.admin.internal; - -import org.apache.logging.log4j.Logger; - -import org.apache.geode.admin.AdminDistributedSystem; -import org.apache.geode.admin.ManagedEntity; -import org.apache.geode.internal.ClassPathLoader; -import org.apache.geode.internal.logging.LogService; -import org.apache.geode.internal.logging.log4j.LogMarker; - -/** - * Creates ManagedEntityController for administration (starting, stopping, etc.) of GemFire - * {@link ManagedEntity}s. - * - */ -public class ManagedEntityControllerFactory { - - private static final Logger logger = LogService.getLogger(); - - private static final String ENABLED_MANAGED_ENTITY_CONTROLLER_CLASS_NAME = - "org.apache.geode.admin.internal.EnabledManagedEntityController"; - - static ManagedEntityController createManagedEntityController( - final AdminDistributedSystem system) { - if (isEnabledManagedEntityController()) { - logger.info(LogMarker.CONFIG, - "Local and remote OS command invocations are enabled for the Admin API."); - return createEnabledManagedEntityController(system); - } else { - logger.info(LogMarker.CONFIG, - "Local and remote OS command invocations are disabled for the Admin API."); - return new DisabledManagedEntityController(); - } - } - - public static boolean isEnabledManagedEntityController() { - try { - ClassPathLoader.getLatest().forName(ENABLED_MANAGED_ENTITY_CONTROLLER_CLASS_NAME); - return true; - } catch (ClassNotFoundException e) { - return false; - } - } - - private static ManagedEntityController createEnabledManagedEntityController( - final AdminDistributedSystem system) { - return new EnabledManagedEntityController(system); - } -}