public static RootRegionResponse create(DistributionManager dm,
      InternalDistributedMember recipient) {
    RootRegionResponse m = new RootRegionResponse();
    try {
      InternalCache cache = (InternalCache) CacheFactory.getInstance(dm.getSystem());
      final Collection roots;
      if (!Boolean.getBoolean(GeodeGlossary.GEMFIRE_PREFIX + "PRDebug")) {
        roots = cache.rootRegions();
      } else {
        roots = cache.rootRegions(true);
      }

      List regionNames = new ArrayList();
      List userAttributes = new ArrayList();
      for (Object root : roots) {
        Region r = (Region) root;
        regionNames.add(r.getName());
        userAttributes.add(CacheDisplay.getCachedObjectDisplay(r.getUserAttribute(),
            GemFireVM.LIGHTWEIGHT_CACHE_VALUE));
      }

      String[] temp = new String[0];
      m.regions = (String[]) regionNames.toArray(temp);
      m.userAttrs = (String[]) userAttributes.toArray(temp);

    } catch (CancelException ignore) {
      /* no cache yet */
    }

    m.setRecipient(recipient);
    return m;
  }
Returns a {@code RootRegionResponse} that will be returned to the specified recipient. The
message will contains a copy of the local manager's system config.
geode-core/src/main/java/org/apache/geode/internal/admin/remote/RootRegionResponse.java