Coverage Report - com.aurea.maven.plugins.sonic.sdm.container.impl.DefaultContainerMap
 
Classes in this File Line Coverage Branch Coverage Complexity
DefaultContainerMap
0%
0/52
0%
0/30
2.7
 
 1  
 package com.aurea.maven.plugins.sonic.sdm.container.impl;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.Map;
 5  
 import java.util.Properties;
 6  
 import java.util.Set;
 7  
 
 8  
 import com.aurea.maven.plugins.sonic.sdm.container.IContainerMap;
 9  
 import com.aurea.maven.plugins.sonic.sdm.container.IContainerSetting;
 10  
 import com.aurea.maven.plugins.sonic.sdm.container.IIncludePattern;
 11  
 
 12  
 /**
 13  
  *
 14  
  */
 15  0
 public class DefaultContainerMap implements IContainerMap {
 16  
 
 17  
   /**
 18  
    * @plexus.configuration
 19  
    */
 20  0
   private boolean useESBDefaultIncludes                      = true;
 21  
         
 22  
   /**
 23  
    * @plexus.configuration
 24  
    */
 25  0
   private boolean useMFDefaultIncludes                       = true;
 26  
   
 27  
   /**
 28  
    * @plexus.configuration
 29  
    */
 30  0
   private Set<IContainerSetting> esbContainerSettings       = null;
 31  
 
 32  
   /**
 33  
    * @plexus.configuration
 34  
    */
 35  0
   private Set<IContainerSetting> mfContainerSettings        = null;
 36  
 
 37  0
   private IContainerSetting       defaultESBContainerSetting = null;
 38  0
   private IContainerSetting       defaultMFContainerSetting  = null;
 39  
 
 40  
   /**
 41  
    * Whether to use the default includes for ESB containers. Set to false to disable ESB container generation for unmatched instances.
 42  
    * @return
 43  
    */
 44  
   public boolean isUseESBDefaultIncludes() {
 45  0
     return useESBDefaultIncludes;
 46  
   }
 47  
   
 48  
   /**
 49  
    * Whether to use the default includes for ESB containers. Set to false to disable MF container generation for unmatched ESB containers.
 50  
    * @return
 51  
    */
 52  
   public boolean isUseMFDefaultIncludes() {
 53  0
     return useMFDefaultIncludes;
 54  
   }
 55  
   
 56  
   /**
 57  
    * @return List&lt;IContainerSetting&gt;
 58  
    */
 59  
   public final Set<IContainerSetting> getESBContainerSettings() {
 60  
 
 61  0
     return esbContainerSettings;
 62  
   }
 63  
 
 64  
   /**
 65  
    * @return List&lt;IContainerSetting&gt;
 66  
    */
 67  
   public final Set<IContainerSetting> getMFContainerSettings() {
 68  
 
 69  0
     return mfContainerSettings;
 70  
   }
 71  
 
 72  
   /**
 73  
    * @return IContainerSetting
 74  
    */
 75  
   public final IContainerSetting getDefaultESBContainerSetting() {
 76  
 
 77  0
     if (defaultESBContainerSetting == null) {
 78  0
       defaultESBContainerSetting = getDefaultContainer(getESBContainerSettings());
 79  
     }
 80  0
     return defaultESBContainerSetting;
 81  
   }
 82  
 
 83  
   /**
 84  
    * @return IContainerSetting
 85  
    */
 86  
   public final IContainerSetting getDefaultMFContainerSetting() {
 87  
 
 88  0
     if (defaultMFContainerSetting == null) {
 89  0
       defaultMFContainerSetting = getDefaultContainer(getMFContainerSettings());
 90  
     }
 91  0
     return defaultMFContainerSetting;
 92  
   }
 93  
 
 94  
   /**
 95  
    * @param _key
 96  
    *          _key
 97  
    * @return Map&gt;String, Properties&lt;
 98  
    */
 99  
   public final Map<String, Properties> matchESBContainerSettings(final String _key) {
 100  
 
 101  0
     return matchContainerSettings(_key, getESBContainerSettings());
 102  
   }
 103  
 
 104  
   /**
 105  
    * @param _key
 106  
    *          _key
 107  
    * @return Map&gt;String, Properties&lt;
 108  
    */
 109  
   public final Map<String, Properties> matchMFContainerSettings(final String _key) {
 110  
 
 111  0
     return matchContainerSettings(_key, getMFContainerSettings());
 112  
   }
 113  
 
 114  
   /**
 115  
    * Get the DefaultContainerSetting that doesn't have include patterns defined.
 116  
    * 
 117  
    * @param _settings
 118  
    * @return
 119  
    */
 120  
   private IContainerSetting getDefaultContainer(final Set<IContainerSetting> _settings) {
 121  
 
 122  0
     if (_settings != null) {
 123  0
       for (IContainerSetting setting : _settings) {
 124  0
         if (setting.getIncludes() == null || setting.getIncludes().isEmpty()) {
 125  0
           return setting;
 126  0
         } else if (setting.getIncludes().size() == 1) {
 127  0
           if (setting.getIncludes().get(0).getPattern() == null) {
 128  0
             return setting;
 129  
           }
 130  
         }
 131  0
       }
 132  
     }
 133  0
     return null;
 134  
   }
 135  
 
 136  
   private Map<String, Properties> matchContainerSettings(final String _key, final Set<IContainerSetting> _containerSettings) {
 137  
 
 138  0
     Map<String, Properties> result = new HashMap<String, Properties>();
 139  
 
 140  0
     if (_containerSettings != null) {
 141  0
       for (IContainerSetting setting : _containerSettings) {
 142  0
         if (setting.getIncludes() != null) {
 143  0
           for (IIncludePattern pattern : setting.getIncludes()) {
 144  0
             if (_key == null || _key.matches(pattern.getPattern())) {
 145  0
               Properties props = pattern.getIncludeProperties();
 146  0
               result.put(setting.getName(), props != null ? props : new Properties());
 147  0
               Properties pro = (Properties) result.get(setting.getName());
 148  0
               pro.put("busConnection", setting.getBusConnection());
 149  0
               pro.put("routingHttpConnection", setting.getRoutingHttpConnection());
 150  0
               pro.put("enablePayloadCapture", setting.getEnablePayloadCapture());
 151  0
               pro.put("useForLookingGlass", setting.getUseForLookingGlass());
 152  0
               pro.put("useIntraContainerMessaging", setting.getUseIntraContainerMessaging());
 153  0
               pro.put("bootContainer", Boolean.toString(setting.isBootContainer()));
 154  0
               pro.put("backupContainer", setting.getBackupContainer());
 155  0
               pro.put("clone", Boolean.toString(setting.isClone()));
 156  0
               pro.put("Segment", setting.getSegment());
 157  0
               pro.put("containerParameterSet", setting.getContainerParameterSet());
 158  0
               pro.put("logDirectory", setting.getLogDirectory());
 159  0
               break;
 160  
             }
 161  0
           }
 162  
         }
 163  0
       }
 164  
     }
 165  0
     return result;
 166  
   }
 167  
 
 168  
 }