[27/50] [abbrv] incubator-geode git commit: GEODE-288: move admin packages to internal
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6c305f8/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/AdminDistributedSystemImpl.java -- diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/AdminDistributedSystemImpl.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/AdminDistributedSystemImpl.java new file mode 100755 index 000..ef0012f --- /dev/null +++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/AdminDistributedSystemImpl.java @@ -0,0 +1,2418 @@ +/* + * 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.internal.admin.api.impl; + +import org.apache.geode.CancelException; +import org.apache.geode.SystemFailure; +import org.apache.geode.internal.admin.api.AdminException; +import org.apache.geode.internal.admin.api.Alert; +import org.apache.geode.internal.admin.api.AlertLevel; +import org.apache.geode.internal.admin.api.AlertListener; +import org.apache.geode.cache.persistence.PersistentID; +import org.apache.geode.distributed.DistributedMember; +import org.apache.geode.distributed.FutureCancelledException; +import org.apache.geode.distributed.internal.*; +import org.apache.geode.distributed.internal.membership.InternalDistributedMember; +import org.apache.geode.internal.Assert; +import org.apache.geode.internal.Banner; +import org.apache.geode.internal.admin.*; +import org.apache.geode.internal.admin.api.AdminDistributedSystem; +import org.apache.geode.internal.admin.api.BackupStatus; +import org.apache.geode.internal.admin.api.CacheServer; +import org.apache.geode.internal.admin.api.CacheServerConfig; +import org.apache.geode.internal.admin.api.CacheVm; +import org.apache.geode.internal.admin.api.ConfigurationParameter; +import org.apache.geode.internal.admin.api.DistributedSystemConfig; +import org.apache.geode.internal.admin.api.DistributionLocator; +import org.apache.geode.internal.admin.api.DistributionLocatorConfig; +import org.apache.geode.internal.admin.api.GemFireHealth; +import org.apache.geode.internal.admin.api.ManagedEntity; +import org.apache.geode.internal.admin.api.ManagedEntityConfig; +import org.apache.geode.internal.admin.api.OperationCancelledException; +import org.apache.geode.internal.admin.api.RuntimeAdminException; +import org.apache.geode.internal.admin.api.SystemMember; +import org.apache.geode.internal.admin.api.SystemMemberCacheListener; +import org.apache.geode.internal.admin.api.SystemMembershipEvent; +import org.apache.geode.internal.admin.api.SystemMembershipListener; +import org.apache.geode.internal.admin.remote.*; +import org.apache.geode.internal.cache.persistence.PersistentMemberPattern; +import org.apache.geode.internal.i18n.LocalizedStrings; +import org.apache.geode.internal.logging.InternalLogWriter; +import org.apache.geode.internal.logging.LogService; +import org.apache.geode.internal.logging.LogWriterFactory; +import org.apache.geode.internal.logging.log4j.LocalizedMessage; +import org.apache.geode.internal.logging.log4j.LogMarker; +import org.apache.geode.internal.logging.log4j.LogWriterAppender; +import org.apache.geode.internal.logging.log4j.LogWriterAppenders; +import org.apache.geode.internal.util.concurrent.FutureResult; +import org.apache.logging.log4j.Logger; + +import java.io.File; +import java.io.IOException; +import java.net.InetAddress; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.*; + +import static org.apache.geode.distributed.ConfigurationProperties.*; + +/** + * Represents a GemFire distributed system for remote administration/management. + * + * @since GemFire 3.5 + */ +public class AdminDistributedSystemImpl +implements AdminDistributedSystem, org.apache.geode.internal.admin.JoinLeaveListener, +org.apache.geode.internal.admin.AlertListener, + org.apache.geode.distributed.internal.InternalDistributedSystem.DisconnectListener { + + private static final Logger logger = LogService.getLogger(); + + /** String identity of this distributed system */ + private String id; + + /** Latest alert broadcast by any system members */ + private Alert
[27/50] [abbrv] incubator-geode git commit: GEODE-288: move admin packages to internal
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6bb27bf1/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreHelper.java -- diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreHelper.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreHelper.java new file mode 100644 index 000..bf2d484 --- /dev/null +++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreHelper.java @@ -0,0 +1,74 @@ +/* + * 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.internal.admin.api.impl; + +import java.io.File; +import java.util.Map; +import java.util.Set; + +import org.apache.geode.cache.persistence.PersistentID; +import org.apache.geode.distributed.DistributedLockService; +import org.apache.geode.distributed.DistributedMember; +import org.apache.geode.distributed.internal.DM; +import org.apache.geode.internal.Assert; + +public class BackupDataStoreHelper { + + public static String LOCK_SERVICE_NAME = BackupDataStoreHelper.class.getSimpleName(); + + private static String LOCK_NAME = LOCK_SERVICE_NAME + "_token"; + + private static Object LOCK_SYNC = new Object(); + + @SuppressWarnings("rawtypes") + public static BackupDataStoreResult backupAllMembers(DM dm, Set recipients, File targetDir, + File baselineDir) { +FlushToDiskRequest.send(dm, recipients); + +boolean abort = true; +MapsuccessfulMembers; +Map existingDataStores; +try { + existingDataStores = PrepareBackupRequest.send(dm, recipients); + abort = false; +} finally { + successfulMembers = FinishBackupRequest.send(dm, recipients, targetDir, baselineDir, abort); +} +return new BackupDataStoreResult(existingDataStores, successfulMembers); + } + + private static DistributedLockService getLockService(DM dm) { +DistributedLockService dls = DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME); +if (dls == null) { + synchronized (LOCK_SYNC) { +dls = DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME); +if (dls == null) { + // Create the DistributedLockService + dls = DistributedLockService.create(LOCK_SERVICE_NAME, dm.getSystem()); +} + } +} +Assert.assertTrue(dls != null); +return dls; + } + + public static boolean obtainLock(DM dm) { +return getLockService(dm).lock(LOCK_NAME, 0, -1); + } + + public static void releaseLock(DM dm) { +getLockService(dm).unlock(LOCK_NAME); + } +} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/6bb27bf1/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreResult.java -- diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreResult.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreResult.java new file mode 100644 index 000..b61e5c8 --- /dev/null +++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/BackupDataStoreResult.java @@ -0,0 +1,48 @@ +/* + * 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.internal.admin.api.impl; + +import java.util.Map; +import java.util.Set; + +import
[27/50] [abbrv] incubator-geode git commit: GEODE-288: move admin packages to internal
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/20a32286/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthConfigImpl.java -- diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthConfigImpl.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthConfigImpl.java new file mode 100644 index 000..d38d5cb --- /dev/null +++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthConfigImpl.java @@ -0,0 +1,53 @@ +/* + * 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.internal.admin.api.impl; + +import org.apache.geode.internal.admin.api.DistributedSystemHealthConfig; + +/** + * The implementation of DistributedSystemHealthConfig. Note that because it never + * leaves the management VM, it is not Serializable and is not part of the + * {@link GemFireHealthConfigImpl} class hierarchy. + * + * + * @since GemFire 3.5 + */ +public class DistributedSystemHealthConfigImpl implements DistributedSystemHealthConfig { + + /** + * The maximum number of application members that can unexceptedly leave a healthy the distributed + * system. + */ + private long maxDepartedApplications = DEFAULT_MAX_DEPARTED_APPLICATIONS; + + // Constructors // + + /** + * Creates a new DistributedSystemHealthConfigImpl with the default configuration. + */ + protected DistributedSystemHealthConfigImpl() { + + } + + / Instance Methods / + + public long getMaxDepartedApplications() { +return this.maxDepartedApplications; + } + + public void setMaxDepartedApplications(long maxDepartedApplications) { +this.maxDepartedApplications = maxDepartedApplications; + } +} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/20a32286/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthEvaluator.java -- diff --git a/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthEvaluator.java b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthEvaluator.java new file mode 100644 index 000..5087933 --- /dev/null +++ b/geode-core/src/main/java/org/apache/geode/internal/admin/api/impl/DistributedSystemHealthEvaluator.java @@ -0,0 +1,167 @@ +/* + * 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.internal.admin.api.impl; + +import org.apache.geode.internal.admin.api.DistributedSystemHealthConfig; +import org.apache.geode.distributed.internal.DM; +import org.apache.geode.distributed.internal.DistributionConfig; +import org.apache.geode.distributed.internal.DistributionManager; +import org.apache.geode.distributed.internal.MembershipListener; +import org.apache.geode.distributed.internal.membership.InternalDistributedMember; +import org.apache.geode.internal.i18n.LocalizedStrings; + +import java.util.List; +import java.util.Set; + +/** + * Contains the logic for evaluating the health of an entire GemFire distributed system according to + * the thresholds provided in a {@link DistributedSystemHealthConfig}. + * + * + * + * Note that unlike other evaluators, the DistributedSystemHealthEvaluator