blob: 57e9e1d38733b1684e4587b646b994855e9ec01f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.ignite.internal.managers.deployment;
import java.util.Map;
import java.util.UUID;
import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.DeploymentMode;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lang.IgnitePredicate;
import org.apache.ignite.lang.IgniteUuid;
/**
* Deployment metadata.
*/
class GridDeploymentMetadata {
/** Deployment mode. */
private DeploymentMode depMode;
/** */
private String alias;
/** */
private String clsName;
/** */
private String userVer;
/** */
private UUID sndNodeId;
/** */
private IgniteUuid clsLdrId;
/** Class loader. */
private ClassLoader clsLdr;
/** Master node participants. */
@GridToStringInclude
private Map<UUID, IgniteUuid> participants;
/** */
private ClassLoader parentLdr;
/** */
private boolean record;
/** */
private IgnitePredicate<ClusterNode> nodeFilter;
/**
*
*/
GridDeploymentMetadata() {
// Meta.
}
/**
* @param meta Meta to copy.
*/
GridDeploymentMetadata(GridDeploymentMetadata meta) {
assert meta != null;
depMode = meta.deploymentMode();
alias = meta.alias();
clsName = meta.className();
userVer = meta.userVersion();
sndNodeId = meta.senderNodeId();
clsLdr = meta.classLoader();
clsLdrId = meta.classLoaderId();
participants = meta.participants();
parentLdr = meta.parentLoader();
record = meta.record();
nodeFilter = meta.nodeFilter();
}
/**
* Gets property depMode.
*
* @return Property depMode.
*/
DeploymentMode deploymentMode() {
return depMode;
}
/**
* Sets property depMode.
*
* @param depMode Property depMode.
*/
void deploymentMode(DeploymentMode depMode) {
this.depMode = depMode;
}
/**
* Gets property alias.
*
* @return Property alias.
*/
String alias() {
return alias;
}
/**
* Sets property alias.
*
* @param alias Property alias.
*/
void alias(String alias) {
this.alias = alias;
}
/**
* Gets property clsName.
*
* @return Property clsName.
*/
String className() {
return clsName;
}
/**
* Sets property clsName.
*
* @param clsName Property clsName.
*/
void className(String clsName) {
this.clsName = clsName;
}
/**
* Gets property seqNum.
*
* @return Property seqNum.
*/
long sequenceNumber() {
return clsLdrId.localId();
}
/**
* Gets property userVer.
*
* @return Property userVer.
*/
String userVersion() {
return userVer;
}
/**
* Sets property userVer.
*
* @param userVer Property userVer.
*/
void userVersion(String userVer) {
this.userVer = userVer;
}
/**
* Gets property senderNodeId.
*
* @return Property senderNodeId.
*/
UUID senderNodeId() {
return sndNodeId;
}
/**
* Sets property senderNodeId.
*
* @param sndNodeId Property senderNodeId.
*/
void senderNodeId(UUID sndNodeId) {
this.sndNodeId = sndNodeId;
}
/**
* Gets property clsLdrId.
*
* @return Property clsLdrId.
*/
IgniteUuid classLoaderId() {
return clsLdrId;
}
/**
* Sets property clsLdrId.
*
* @param clsLdrId Property clsLdrId.
*/
void classLoaderId(IgniteUuid clsLdrId) {
this.clsLdrId = clsLdrId;
}
/**
* Gets parent loader.
*
* @return Parent loader.
*/
public ClassLoader parentLoader() {
return parentLdr;
}
/**
* Sets parent loader.
*
* @param parentLdr Parent loader.
*/
public void parentLoader(ClassLoader parentLdr) {
this.parentLdr = parentLdr;
}
/**
* Gets property record.
*
* @return Property record.
*/
boolean record() {
return record;
}
/**
* Sets property record.
*
* @param record Property record.
*/
void record(boolean record) {
this.record = record;
}
/**
* @return Node participants.
*/
public Map<UUID, IgniteUuid> participants() {
return participants;
}
/**
* @param participants Node participants.
*/
public void participants(Map<UUID, IgniteUuid> participants) {
this.participants = participants;
}
/**
* @return Class loader.
*/
public ClassLoader classLoader() {
return clsLdr;
}
/**
* @param clsLdr Class loader.
*/
public void classLoader(ClassLoader clsLdr) {
this.clsLdr = clsLdr;
}
/**
* @param nodeFilter Node filter.
*/
public void nodeFilter(IgnitePredicate<ClusterNode> nodeFilter) {
this.nodeFilter = nodeFilter;
}
/**
* @return Node filter.
*/
public IgnitePredicate<ClusterNode> nodeFilter() {
return nodeFilter;
}
/** {@inheritDoc} */
@Override public String toString() {
return S.toString(GridDeploymentMetadata.class, this, "seqNum", clsLdrId != null ? clsLdrId.localId() : "n/a");
}
}