protected Class<?> checkDeclaredApplicationClassAsServlet(
      JBossWebMetaData webData, ClassLoader classLoader) throws DeploymentUnitProcessingException {
    if (webData.getServlets() == null) return null;

    for (ServletMetaData servlet : webData.getServlets()) {
      String servletClass = servlet.getServletClass();
      if (servletClass == null) continue;
      Class<?> clazz = null;
      try {
        clazz = classLoader.loadClass(servletClass);
      } catch (ClassNotFoundException e) {
        throw new DeploymentUnitProcessingException(e);
      }
      if (Application.class.isAssignableFrom(clazz)) {
        servlet.setServletClass(HttpServlet30Dispatcher.class.getName());
        servlet.setAsyncSupported(true);
        ParamValueMetaData param = new ParamValueMetaData();
        param.setParamName("javax.ws.rs.Application");
        param.setParamValue(servletClass);
        List<ParamValueMetaData> params = servlet.getInitParam();
        if (params == null) {
          params = new ArrayList<ParamValueMetaData>();
          servlet.setInitParam(params);
        }
        params.add(param);

        return clazz;
      }
    }
    return null;
  }
 public static void setContextParameter(JBossWebMetaData webdata, String name, String value) {
   ParamValueMetaData param = new ParamValueMetaData();
   param.setParamName(name);
   param.setParamValue(value);
   List<ParamValueMetaData> params = webdata.getContextParams();
   if (params == null) {
     params = new ArrayList<ParamValueMetaData>();
     webdata.setContextParams(params);
   }
   params.add(param);
 }
 protected void setFilterInitParam(FilterMetaData filter, String name, String value) {
   ParamValueMetaData param = new ParamValueMetaData();
   param.setParamName(name);
   param.setParamValue(value);
   List<ParamValueMetaData> params = filter.getInitParam();
   if (params == null) {
     params = new ArrayList<ParamValueMetaData>();
     filter.setInitParam(params);
   }
   params.add(param);
 }
  private void addJSONData(String json, WarMetaData warMetaData) {
    JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
    if (webMetaData == null) {
      webMetaData = new JBossWebMetaData();
      warMetaData.setMergedJBossWebMetaData(webMetaData);
    }

    List<ParamValueMetaData> contextParams = webMetaData.getContextParams();
    if (contextParams == null) {
      contextParams = new ArrayList<ParamValueMetaData>();
    }

    ParamValueMetaData param = new ParamValueMetaData();
    param.setParamName(KeycloakAdapterConfigDeploymentProcessor.AUTH_DATA_PARAM_NAME);
    param.setParamValue(json);
    contextParams.add(param);

    webMetaData.setContextParams(contextParams);
  }