code: @Override
      protected void initQueue(T queue, QueueSpec spec) throws Exception {
          queue.setEphemeralDisabled(getDefaultEphemeralDisabled())
                  .setEphemeralMaxSize(getDefaultEphemeralMaxSize());
          Boolean ephemeralDisabled = spec.getField(QueueSpec.FIELD_EPHEMERAL_DISABLED,
                  Boolean.class);
          if (ephemeralDisabled != null) {
              queue.setEphemeralDisabled(ephemeralDisabled.booleanValue());
          }
          Integer maxEphemeralSize = spec.getField(QueueSpec.FIELD_EPHEMERAL_MAX_SIZE, Integer.class);
          if (maxEphemeralSize != null) {
              queue.setEphemeralMaxSize(maxEphemeralSize.intValue());
          }
  
          String storageDir = spec.getField(SPEC_FIELD_STORAGE_DIR);
          storageDir = StringUtils.isBlank(storageDir) ? defaultStorageDir : storageDir;
          if (!StringUtils.isBlank(storageDir)) {
              queue.setStorageDir(storageDir);
          }
  
          queue.setCfNameEphemeral(defaultCfNameEphemeral).setCfNameMetadata(defaultCfNameMetaData)
                  .setCfNameQueue(defaultCfNameQueue);
          String cfNameEphemeral = spec.getField(SPEC_FIELD_CF_EPHEMERAL);
          if (!StringUtils.isBlank(cfNameEphemeral)) {
              queue.setCfNameEphemeral(cfNameEphemeral);
          }
          String cfNameMetadata = spec.getField(SPEC_FIELD_CF_METADATA);
          if (!StringUtils.isBlank(cfNameMetadata)) {
              queue.setCfNameMetadata(cfNameMetadata);
          }
          String cfNameQueue = spec.getField(SPEC_FIELD_CF_QUEUE);
          if (!StringUtils.isBlank(cfNameQueue)) {
              queue.setCfNameQueue(cfNameQueue);
          }
  
          super.initQueue(queue, spec);
      }
docs: {@inheritDoc}
  
  @throws Exception