Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2012, Red Hat, Inc., and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
 package org.jboss.as.host.controller.mgmt;
 
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.GROUP;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.IGNORED_RESOURCES;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.IGNORED_RESOURCE_TYPE;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.IGNORE_UNUSED_CONFIG;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.INITIAL_SERVER_GROUPS;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.MANAGEMENT_MAJOR_VERSION;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.MANAGEMENT_MICRO_VERSION;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.MANAGEMENT_MINOR_VERSION;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.NAME;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.NAMES;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.PRODUCT_NAME;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.PRODUCT_VERSION;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.RELEASE_CODENAME;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.RELEASE_VERSION;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SOCKET_BINDING_GROUP;
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.WILDCARD;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
Registration information provided by a slave Host Controller.

Author(s):
Brian Stansberry (c) 2012 Red Hat Inc.
 
 public class HostInfo implements TransformationTarget.IgnoredTransformationRegistry {

    
Create the metadata which gets send to the DC when registering.

Parameters:
hostInfo the local host info
productConfig the product config
ignoredResourceRegistry registry of ignored resources
Returns:
the host info
 
     public static ModelNode createLocalHostHostInfo(final LocalHostControllerInfo hostInfofinal ProductConfig productConfig,
                                              final IgnoredDomainResourceRegistry ignoredResourceRegistryfinal Resource hostModelResource) {
         final ModelNode info = new ModelNode();
         info.get().set(hostInfo.getLocalHostName());
         info.get().set(.);
         final String productName = productConfig.getProductName();
         final String productVersion = productConfig.getProductVersion();
         if(productName != null) {
             info.get().set(productName);
         }
         if(productVersion != null) {
             info.get().set(productVersion);
         }
         ModelNode ignoredModel = ignoredResourceRegistry.getIgnoredResourcesAsModel();
         if (ignoredModel.hasDefined()) {
            info.get().set(ignoredModel.require());
        }
        boolean ignoreUnaffectedServerGroups = hostInfo.isRemoteDomainControllerIgnoreUnaffectedConfiguration();
        IgnoredNonAffectedServerGroupsUtil.addCurrentServerGroupsToHostInfoModel(ignoreUnaffectedServerGroupshostModelResourceinfo);
        return info;
    }
    public static HostInfo fromModelNode(final ModelNode hostInfo) {
        return new HostInfo(hostInfo);
    }
    private final String hostName;
    private final String releaseVersion;
    private final String releaseCodeName;
    private final int managementMajorVersion;
    private final int managementMinorVersion;
    private final int managementMicroVersion;
    private final String productName;
    private final String productVersion;
    private final Long remoteConnectionId;
    private final Map<StringIgnoredTypeignoredResources;
    private final boolean ignoreUnaffectedConfig;
    private HostInfo(final ModelNode hostInfo) {
         = hostInfo.require().asString();
         = hostInfo.require().asString();
         = hostInfo.require().asString();
         = hostInfo.hasDefined() ? hostInfo.require().asString() : null;
         = hostInfo.hasDefined() ? hostInfo.require().asString() : null;
                ? hostInfo.get(.).asLong() : null;
        if (hostInfo.hasDefined()) {
             = new HashMap<StringIgnoredType>();
            for (Property prop : hostInfo.require().asPropertyList()) {
                String type = prop.getName();
                ModelNode model = prop.getValue();
                IgnoredType ignoredType = model.get().asBoolean(false) ? new IgnoredType() : new IgnoredType(model.get());
                .put(typeignoredType);
            }
        } else {
             = null;
        }
         = hostInfo.hasDefined() ? hostInfo.get().asBoolean() : false;
        final ConcurrentMap<StringServerConfigInfoserverConfigInfos = new ConcurrentHashMap<>();
        if () {
            ModelNode initialServerGroups = hostInfo.get();
            for (Property prop : initialServerGroups.asPropertyList()) {
                final List<ModelNodeservers = prop.getValue().asList();
                for (ModelNode server : servers) {
                    final String socketBindingGroupOverride = server.hasDefined() ? server.get().asString() : null;
                    final ServerConfigInfo serverConfigInfo = IgnoredNonAffectedServerGroupsUtil.createServerConfigInfo(prop.getName(), prop.getValue().get().asString(), socketBindingGroupOverride);
                    serverConfigInfos.put(serverConfigInfo.getName(), serverConfigInfo);
                }
            }
        }
        this. = serverConfigInfos;
    }
    public String getHostName() {
        return ;
    }
    public String getReleaseVersion() {
        return ;
    }
    public String getReleaseCodeName() {
        return ;
    }
    public int getManagementMajorVersion() {
        return ;
    }
    public int getManagementMinorVersion() {
        return ;
    }
    public int getManagementMicroVersion() {
        return ;
    }
    public String getProductName() {
        return ;
    }
    public String getProductVersion() {
        return ;
    }
    public Long getRemoteConnectionId() {
        return ;
    }
    public boolean isResourceTransformationIgnored(final PathAddress address) {
        //Resource transformation only happens on boot so the list from the slave is up to date
        if ( != null && address.size() > 0) {
            PathElement firstElement = address.getElement(0);
            IgnoredType ignoredType = .get(firstElement.getKey());
            if (ignoredType != null) {
                if (ignoredType.hasName(firstElement.getValue())) {
                    return true;
                }
            }
        }
        return false;
    }
    public boolean isIgnoreUnaffectedConfig() {
        return ;
    }
    @Override
    public boolean isOperationTransformationIgnored(PathAddress address) {
        // Currently the master receives no notification from slaves when changes are made
        // to the IgnoredResourceRegistry post-boot, so we can't ignore operation transformation
        return false;
    }
            return .values();
    }
    void updateSlaveServerConfigInfo(ServerConfigInfo serverInfo) {
        .put(serverInfo.getName(), serverInfo);
    }
    public String getPrettyProductName() {
        final String result;
        if( != null) {
            result = ProductConfig.getPrettyVersionString();
        } else {
            result = ProductConfig.getPrettyVersionString(null);
        }
        return result;
    }
    private static class IgnoredType {
        private final boolean wildcard;
        private final Set<Stringnames;
        private IgnoredType() {
             = true;
             = null;
        }
        private IgnoredType(ModelNode names) {
             = false;
            if (names.isDefined()) {
                this. = new HashSet<String>();
                for (ModelNode name : names.asList()) {
                    this..add(name.asString());
                }
            } else {
                this. = null;
            }
        }
        private boolean hasName(String name) {
            return  || ( != null && .contains(name));
        }
    }
New to GrepCode? Check out our FAQ X