private XStream configure(XStream x) {
    x.processAnnotations(PackageState.class);

    /* APPLICATION_VERSION */
    x.alias(
        StreamId.APPLICATION_VERSION.name(),
        AbstractSerializationTest.TestObjects.applicationVersion.getClass());
    PropertyDescriptor pd =
        SerializationAnnotationUtil.getStreamDescriptors(PackageState.class)
            .get(StreamId.APPLICATION_VERSION);
    x.registerLocalConverter(PackageState.class, pd.getName(), new ApplicationVersionConverter());

    /* DOMAIN_PROFILE_LIST */
    x.alias(
        StreamId.DOMAIN_PROFILE_LIST.name(),
        AbstractSerializationTest.TestObjects.domainProfileUris.getClass());
    pd =
        SerializationAnnotationUtil.getStreamDescriptors(PackageState.class)
            .get(StreamId.DOMAIN_PROFILE_LIST);
    x.registerLocalConverter(PackageState.class, pd.getName(), new DomainProfileUriListConverter());

    /* PACKAGE_METADATA */
    x.alias(
        StreamId.PACKAGE_METADATA.name(),
        AbstractSerializationTest.TestObjects.packageMetadata.getClass());
    pd =
        SerializationAnnotationUtil.getStreamDescriptors(PackageState.class)
            .get(StreamId.PACKAGE_METADATA);
    x.registerLocalConverter(PackageState.class, pd.getName(), new PackageMetadataConverter());

    /* PACKAGE_NAME */
    x.alias(
        StreamId.PACKAGE_NAME.name(), AbstractSerializationTest.TestObjects.packageName.getClass());
    pd =
        SerializationAnnotationUtil.getStreamDescriptors(PackageState.class)
            .get(StreamId.PACKAGE_NAME);
    x.registerLocalConverter(PackageState.class, pd.getName(), new PackageNameConverter());

    /* USER_SPECIFIED_PROPERTIES */
    x.alias(
        StreamId.USER_SPECIFIED_PROPERTIES.name(),
        AbstractSerializationTest.TestObjects.userProperties.getClass());
    pd =
        SerializationAnnotationUtil.getStreamDescriptors(PackageState.class)
            .get(StreamId.USER_SPECIFIED_PROPERTIES);
    x.registerLocalConverter(PackageState.class, pd.getName(), new UserPropertyConverter());

    return x;
  }
  protected XStream configure(final XStream xs) {
    assert xs != null;

    //        xs.registerConverter(new RepositoryBaseResourceConverter(xs.getMapper(), xs
    //            .getReflectionProvider()), XStream.PRIORITY_VERY_HIGH);
    //        xs.registerConverter(new RepositoryResourceResponseConverter(xs.getMapper(), xs
    //            .getReflectionProvider()), XStream.PRIORITY_VERY_HIGH); // strips the
    // class="class.name" attribute from data
    //
    //        xs.registerConverter(new ScheduledServiceBaseResourceConverter(xs.getMapper(), xs
    //            .getReflectionProvider()), XStream.PRIORITY_VERY_HIGH);
    //        xs.registerConverter(new ScheduledServicePropertyResourceConverter(xs.getMapper(), xs
    //            .getReflectionProvider()), XStream.PRIORITY_VERY_HIGH);
    //        xs.registerConverter(new ScheduledServiceResourceResponseConverter(xs.getMapper(), xs
    //            .getReflectionProvider()), XStream.PRIORITY_VERY_HIGH); // strips the
    // class="class.name" attribute from data

    //        // Maven POM
    //        xs.alias("project", Model.class);
    //        // Maven model
    //        xs.omitField(Model.class, "modelEncoding");
    //        xs.omitField(ModelBase.class, "modelEncoding");
    //        xs.omitField(Scm.class, "modelEncoding");

    // omitting modelEncoding
    //        xs.omitField(ErrorResponse.class, "modelEncoding");
    //        xs.omitField(ErrorMessage.class, "modelEncoding");
    xs.alias("nexus-error", ErrorResponse.class);
    xs.alias("error", ErrorMessage.class);
    xs.registerLocalConverter(
        ErrorResponse.class, "errors", new AliasingListConverter(ErrorMessage.class, "error"));

    //        xs.omitField(ContentListResourceResponse.class, "modelEncoding");
    //        xs.omitField(ContentListResource.class, "modelEncoding");
    xs.alias("content", ContentListResourceResponse.class);
    xs.alias("content-item", ContentListResource.class);
    xs.registerLocalConverter(
        ContentListResourceResponse.class,
        "data",
        new AliasingListConverter(ContentListResource.class, "content-item"));

    //        xs.omitField(RepositoryResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryBaseResource.class, "modelEncoding");
    //        xs.omitField(RepositoryResource.class, "modelEncoding");
    //        xs.omitField(RepositoryProxyResource.class, "modelEncoding");
    //        xs.omitField(RepositoryShadowResource.class, "modelEncoding");
    //        xs.omitField(RepositoryResourceRemoteStorage.class, "modelEncoding");
    xs.alias("repository", RepositoryResourceResponse.class);

    //        xs.omitField(RepositoryListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryListResource.class, "modelEncoding");
    xs.alias("repositories", RepositoryListResourceResponse.class);
    // xstream.alias( "repositories-item", RepositoryListResource.class);
    xs.registerLocalConverter(
        RepositoryListResourceResponse.class,
        "data",
        new AliasingListConverter(RepositoryListResource.class, "repositories-item"));

    xs.alias("repositoryTypes", NexusRepositoryTypeListResourceResponse.class);
    xs.registerLocalConverter(
        NexusRepositoryTypeListResourceResponse.class,
        "data",
        new AliasingListConverter(NexusRepositoryTypeListResource.class, "repositoryType"));

    //        xs.omitField(RepositoryStatusResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryStatusResource.class, "modelEncoding");
    xs.alias("repository-status", RepositoryStatusResourceResponse.class);

    //        xs.omitField(RepositoryStatusListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryStatusListResource.class, "modelEncoding");
    xs.alias("repository-status-list", RepositoryStatusListResourceResponse.class);
    // xstream.alias( "repository-status-list-item", RepositoryStatusListResource.class);
    xs.registerLocalConverter(
        RepositoryStatusListResourceResponse.class,
        "data",
        new AliasingListConverter(
            RepositoryStatusListResource.class, "repository-status-list-item"));

    //        xs.omitField(RepositoryMetaResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryMetaResource.class, "modelEncoding");
    xs.alias("repository-meta-data", RepositoryMetaResourceResponse.class);

    //        xs.omitField(RepositoryGroupListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryGroupListResource.class, "modelEncoding");
    xs.alias("repo-group-list", RepositoryGroupListResourceResponse.class);
    // xstream.alias( "repo-group-list-item", RepositoryGroupListResource.class);
    // xstream.alias( "repo-group-member", RepositoryGroupMemberRepository.class);
    xs.registerLocalConverter(
        RepositoryGroupListResource.class,
        "repositories",
        new AliasingListConverter(RepositoryGroupMemberRepository.class, "repo-group-member"));
    xs.registerLocalConverter(
        RepositoryGroupResource.class,
        "repositories",
        new AliasingListConverter(RepositoryGroupMemberRepository.class, "repo-group-member"));
    xs.registerLocalConverter(
        RepositoryGroupListResourceResponse.class,
        "data",
        new AliasingListConverter(RepositoryGroupListResource.class, "repo-group-list-item"));

    //        xs.omitField(RepositoryGroupResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryGroupResource.class, "modelEncoding");
    //        xs.omitField(RepositoryGroupMemberRepository.class, "modelEncoding");
    xs.alias("repo-group", RepositoryGroupResourceResponse.class);

    //        xs.omitField(RepositoryRouteListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryRouteListResource.class, "modelEncoding");
    xs.alias("repo-routes-list", RepositoryRouteListResourceResponse.class);
    // xstream.alias( "repo-routes-list-item", RepositoryRouteListResource.class);
    // xstream.alias( "repo-routes-member", RepositoryRouteMemberRepository.class);
    xs.registerLocalConverter(
        RepositoryRouteListResourceResponse.class,
        "data",
        new AliasingListConverter(RepositoryRouteListResource.class, "repo-routes-list-item"));
    xs.registerLocalConverter(
        RepositoryRouteListResource.class,
        "repositories",
        new AliasingListConverter(RepositoryRouteMemberRepository.class, "repo-routes-member"));

    //        xs.omitField(RepositoryRouteResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryRouteResource.class, "modelEncoding");
    //        xs.omitField(RepositoryRouteMemberRepository.class, "modelEncoding");
    xs.alias("repo-route", RepositoryRouteResourceResponse.class);
    xs.registerLocalConverter(
        RepositoryRouteResource.class,
        "repositories",
        new AliasingListConverter(RepositoryRouteMemberRepository.class, "repository"));

    //        xs.omitField(GlobalConfigurationListResourceResponse.class, "modelEncoding");
    //        xs.omitField(GlobalConfigurationListResource.class, "modelEncoding");
    xs.alias("global-settings-list", GlobalConfigurationListResourceResponse.class);
    // xstream.alias( "global-settings-list-item", GlobalConfigurationListResource.class);
    xs.registerLocalConverter(
        GlobalConfigurationListResourceResponse.class,
        "data",
        new AliasingListConverter(
            GlobalConfigurationListResource.class, "global-settings-list-item"));

    //        xs.omitField(GlobalConfigurationResourceResponse.class, "modelEncoding");
    //        xs.omitField(GlobalConfigurationResource.class, "modelEncoding");
    //        xs.omitField(RemoteConnectionSettings.class, "modelEncoding");
    //        xs.omitField(RemoteHttpProxySettings.class, "modelEncoding");
    //        xs.omitField(RestApiSettings.class, "modelEncoding");
    //        xs.omitField(AuthenticationSettings.class, "modelEncoding");
    //        xs.omitField(SmtpSettings.class, "modelEncoding");
    //        xs.omitField(ErrorReportingSettings.class, "modelEncoding");
    xs.alias("global-settings", GlobalConfigurationResourceResponse.class);

    //        xs.omitField(WastebasketResource.class, "modelEncoding");
    //        xs.omitField(WastebasketResourceResponse.class, "modelEncoding");
    xs.alias("wastebasket", WastebasketResourceResponse.class);

    //        xs.omitField(LogsListResourceResponse.class, "modelEncoding");
    //        xs.omitField(LogsListResource.class, "modelEncoding");
    xs.alias("logs-list", LogsListResourceResponse.class);
    // xstream.alias( "logs-list-item", LogsListResource.class);
    xs.registerLocalConverter(
        LogsListResourceResponse.class,
        "data",
        new AliasingListConverter(LogsListResource.class, "logs-list-item"));

    //        xs.omitField(ConfigurationsListResourceResponse.class, "modelEncoding");
    //        xs.omitField(ConfigurationsListResource.class, "modelEncoding");
    xs.alias("configs-list", ConfigurationsListResourceResponse.class);
    // xstream.alias( "configs-list-tem", ConfigurationsListResource.class);
    xs.registerLocalConverter(
        ConfigurationsListResourceResponse.class,
        "data",
        new AliasingListConverter(ConfigurationsListResource.class, "configs-list-tem"));

    //        xs.omitField(FeedListResourceResponse.class, "modelEncoding");
    //        xs.omitField(FeedListResource.class, "modelEncoding");
    xs.alias("feeds-list", FeedListResourceResponse.class);
    // xstream.alias( "feeds-list-item", FeedListResource.class);
    xs.registerLocalConverter(
        FeedListResourceResponse.class,
        "data",
        new AliasingListConverter(FeedListResource.class, "feeds-list-item"));

    //        xs.omitField(SearchResponse.class, "modelEncoding");
    xs.alias("search-results", SearchResponse.class);
    xs.registerLocalConverter(
        SearchResponse.class, "data", new AliasingListConverter(NexusArtifact.class, "artifact"));

    //        xs.omitField(NexusResponse.class, "modelEncoding");
    //        xs.omitField(NexusArtifact.class, "modelEncoding");
    xs.alias("artifact", NexusArtifact.class);

    //        xs.omitField(AuthenticationLoginResourceResponse.class, "modelEncoding");
    //        xs.omitField(AuthenticationLoginResource.class, "modelEncoding");
    //        xs.omitField(AuthenticationClientPermissions.class, "modelEncoding");
    //        xs.omitField(NexusAuthenticationClientPermissions.class, "modelEncoding");

    // Look at NexusAuthenticationLoginResourceConverter, we are only converting the
    // clientPermissions field
    xs.alias("authentication-login", AuthenticationLoginResourceResponse.class);

    xs.registerLocalConverter(
        AuthenticationClientPermissions.class,
        "permissions",
        new AliasingListConverter(ClientPermission.class, "permission"));

    //        xs.omitField(ClientPermission.class, "modelEncoding");

    //        xs.omitField(StatusResource.class, "modelEncoding");
    //        xs.omitField(StatusResourceResponse.class, "modelEncoding");
    //        xs.omitField(StatusConfigurationValidationResponse.class, "modelEncoding");
    xs.alias("status", StatusResourceResponse.class);
    xs.registerLocalConverter(
        StatusConfigurationValidationResponse.class,
        "validationErrors",
        new AliasingListConverter(String.class, "error"));
    xs.registerLocalConverter(
        StatusConfigurationValidationResponse.class,
        "validationWarnings",
        new AliasingListConverter(String.class, "warning"));

    //        xs.omitField(ScheduledServiceListResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceListResourceResponse.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceBaseResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServicePropertyResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceOnceResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceDailyResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceAdvancedResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceMonthlyResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceWeeklyResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceResourceResponse.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceTypeResourceResponse.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceTypeResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceTypePropertyResource.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceResourceStatus.class, "modelEncoding");
    //        xs.omitField(ScheduledServiceResourceStatusResponse.class, "modelEncoding");
    xs.alias("schedules-list", ScheduledServiceListResourceResponse.class);
    // xstream.alias( "schedules-list-item", ScheduledServiceListResource.class );
    xs.alias("scheduled-task", ScheduledServiceResourceResponse.class);
    // xstream.alias( "scheduled-task-property", ScheduledServicePropertyResource.class );
    xs.alias("schedule-types", ScheduledServiceTypeResourceResponse.class);
    xs.alias("schedule-type", ScheduledServiceTypeResource.class);
    // xstream.alias( "schedule-type-property", ScheduledServiceTypePropertyResource.class );
    xs.registerLocalConverter(
        ScheduledServiceBaseResource.class,
        "properties",
        new AliasingListConverter(
            ScheduledServicePropertyResource.class, "scheduled-task-property"));
    xs.registerLocalConverter(
        ScheduledServiceWeeklyResource.class,
        "recurringDay",
        new AliasingListConverter(String.class, "day"));
    xs.registerLocalConverter(
        ScheduledServiceTypeResourceResponse.class,
        "data",
        new AliasingListConverter(ScheduledServiceTypeResource.class, "schedule-type"));
    xs.registerLocalConverter(
        ScheduledServiceTypeResource.class,
        "properties",
        new AliasingListConverter(
            ScheduledServiceTypePropertyResource.class, "scheduled-task-property"));
    xs.registerLocalConverter(
        ScheduledServiceListResourceResponse.class,
        "data",
        new AliasingListConverter(ScheduledServiceListResource.class, "schedules-list-item"));

    //        xs.omitField(UserListResourceResponse.class, "modelEncoding");
    //        xs.omitField(UserResourceRequest.class, "modelEncoding");
    //        xs.omitField(UserResourceResponse.class, "modelEncoding");
    //        xs.omitField(UserResource.class, "modelEncoding");
    //        xs.omitField(UserForgotPasswordRequest.class, "modelEncoding");
    //        xs.omitField(UserForgotPasswordResource.class, "modelEncoding");
    //        xs.omitField(UserChangePasswordRequest.class, "modelEncoding");
    //        xs.omitField(UserChangePasswordResource.class, "modelEncoding");
    xs.alias("users-list", UserListResourceResponse.class);
    // xstream.alias( "users-list-item", UserResource.class );
    xs.alias("user-request", UserResourceRequest.class);
    xs.alias("user-response", UserResourceResponse.class);
    xs.alias("user-forgotpw", UserForgotPasswordRequest.class);
    xs.alias("user-changepw", UserChangePasswordRequest.class);
    xs.registerLocalConverter(
        UserResource.class, "roles", new AliasingListConverter(String.class, "role"));
    xs.registerLocalConverter(
        UserListResourceResponse.class,
        "data",
        new AliasingListConverter(UserResource.class, "users-list-item"));

    //        xs.omitField(RoleListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RoleResource.class, "modelEncoding");
    //        xs.omitField(RoleResourceRequest.class, "modelEncoding");
    //        xs.omitField(RoleResourceResponse.class, "modelEncoding");
    xs.alias("roles-list", RoleListResourceResponse.class);
    // xstream.alias( "roles-list-item", RoleResource.class );
    xs.alias("role-request", RoleResourceRequest.class);
    xs.alias("role-response", RoleResourceResponse.class);
    xs.registerLocalConverter(
        RoleListResourceResponse.class,
        "data",
        new AliasingListConverter(RoleResource.class, "roles-list-item"));
    xs.registerLocalConverter(
        RoleResource.class, "roles", new AliasingListConverter(String.class, "role"));
    xs.registerLocalConverter(
        RoleResource.class, "privileges", new AliasingListConverter(String.class, "privilege"));

    //        xs.omitField(PrivilegeResourceRequest.class, "modelEncoding");
    //        xs.omitField(PrivilegeResource.class, "modelEncoding");
    //        xs.omitField(PrivilegeStatusResource.class, "modelEncoding");
    //        xs.omitField(PrivilegeListResourceResponse.class, "modelEncoding");
    //        xs.omitField(PrivilegeStatusResourceResponse.class, "modelEncoding");
    //        xs.omitField(PrivilegeProperty.class, "modelEncoding");
    //        xs.omitField(PrivilegeTypeResource.class, "modelEncoding");
    //        xs.omitField(PrivilegeTypePropertyResource.class, "modelEncoding");
    //        xs.omitField(PrivilegeTypeResourceResponse.class, "modelEncoding");
    xs.alias("privilege-request", PrivilegeResourceRequest.class);
    xs.alias("privilege-list-response", PrivilegeListResourceResponse.class);
    xs.alias("privilege-status-response", PrivilegeStatusResourceResponse.class);
    xs.alias("privilege-type-response", PrivilegeTypeResourceResponse.class);
    xs.aliasField("methods", PrivilegeResource.class, "method");
    xs.registerLocalConverter(
        PrivilegeListResourceResponse.class,
        "data",
        new AliasingListConverter(PrivilegeStatusResource.class, "privilege-item"));
    xs.registerLocalConverter(
        PrivilegeResource.class, "method", new AliasingListConverter(String.class, "method"));
    xs.registerLocalConverter(
        PrivilegeStatusResource.class,
        "properties",
        new AliasingListConverter(PrivilegeProperty.class, "privilege-property"));
    xs.registerLocalConverter(
        PrivilegeTypeResourceResponse.class,
        "data",
        new AliasingListConverter(PrivilegeTypeResource.class, "privilege-type"));
    xs.registerLocalConverter(
        PrivilegeTypeResource.class,
        "properties",
        new AliasingListConverter(PrivilegeTypePropertyResource.class, "privilege-type-property"));

    //        xs.omitField(NFCResourceResponse.class, "modelEncoding");
    //        xs.omitField(NFCResource.class, "modelEncoding");
    //        xs.omitField(NFCRepositoryResource.class, "modelEncoding");
    xs.alias("nfc-info", NFCResourceResponse.class);
    // xstream.alias( "nfc-repo-info", NFCRepositoryResource.class );
    xs.registerLocalConverter(
        NFCResource.class,
        "nfcContents",
        new AliasingListConverter(NFCRepositoryResource.class, "nfc-repo-info"));
    xs.registerLocalConverter(
        NFCRepositoryResource.class, "nfcPaths", new AliasingListConverter(String.class, "path"));

    //        xs.omitField(RepositoryTargetListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryTargetListResource.class, "modelEncoding");
    //        xs.omitField(RepositoryTargetResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryTargetResource.class, "modelEncoding");
    xs.alias("repo-targets-list", RepositoryTargetListResourceResponse.class);
    // xstream.alias( "repo-targets-list-item", RepositoryTargetListResource.class );
    xs.alias("repo-target", RepositoryTargetResourceResponse.class);
    xs.registerLocalConverter(
        RepositoryTargetResource.class,
        "patterns",
        new AliasingListConverter(String.class, "pattern"));
    xs.registerLocalConverter(
        RepositoryTargetListResourceResponse.class,
        "data",
        new AliasingListConverter(RepositoryTargetListResource.class, "repo-targets-list-item"));

    //        xs.omitField(RepositoryContentClassListResourceResponse.class, "modelEncoding");
    //        xs.omitField(RepositoryContentClassListResource.class, "modelEncoding");
    xs.alias("repo-content-classes-list", RepositoryContentClassListResourceResponse.class);
    // xstream.alias( "repo-content-classes-list-item", RepositoryContentClassListResource.class );
    xs.registerLocalConverter(
        RepositoryContentClassListResourceResponse.class,
        "data",
        new AliasingListConverter(
            RepositoryContentClassListResource.class, "repo-content-classes-list-item"));

    //        xs.omitField(PlexusComponentListResourceResponse.class, "modelEncoding");
    //        xs.omitField(PlexusComponentListResource.class, "modelEncoding");
    xs.alias("components-list", PlexusComponentListResourceResponse.class);
    xs.alias("component", PlexusComponentListResource.class);
    xs.registerLocalConverter(
        PlexusComponentListResourceResponse.class,
        "data",
        new AliasingListConverter(PlexusComponentListResource.class, "component"));

    //        xs.omitField(UserToRoleResourceRequest.class, "modelEncoding");
    //        xs.omitField(UserToRoleResource.class, "modelEncoding");
    xs.alias("user-to-role", UserToRoleResourceRequest.class);
    xs.registerLocalConverter(
        UserToRoleResource.class, "roles", new AliasingListConverter(String.class, "role"));

    //        xs.omitField(PlexusUserResourceResponse.class, "modelEncoding");
    xs.alias("plexus-user", PlexusUserResourceResponse.class);
    //        xs.omitField(PlexusUserResource.class, "modelEncoding");
    xs.registerLocalConverter(
        PlexusUserResource.class,
        "roles",
        new AliasingListConverter(PlexusRoleResource.class, "plexus-role"));

    //        xs.omitField(PlexusRoleResource.class, "modelEncoding");
    xs.alias("plexus-role", PlexusRoleResource.class);

    //        xs.omitField(PlexusUserListResourceResponse.class, "modelEncoding");
    xs.alias("plexus-user-list", PlexusUserListResourceResponse.class);
    xs.registerLocalConverter(
        PlexusUserListResourceResponse.class,
        "data",
        new AliasingListConverter(PlexusUserResource.class, "plexus-user"));

    //        xs.omitField(ExternalRoleMappingResourceResponse.class, "modelEncoding");
    xs.alias("external-role-mapping", ExternalRoleMappingResourceResponse.class);
    xs.registerLocalConverter(
        ExternalRoleMappingResourceResponse.class,
        "data",
        new AliasingListConverter(ExternalRoleMappingResource.class, "mapping"));
    //        xs.omitField(ExternalRoleMappingResource.class, "modelEncoding");
    xs.alias("mapping", ExternalRoleMappingResource.class);
    xs.registerLocalConverter(
        ExternalRoleMappingResource.class,
        "mappedRoles",
        new AliasingListConverter(PlexusRoleResource.class, "plexus-role"));

    //        xs.omitField(PlexusRoleListResourceResponse.class, "modelEncoding");
    xs.alias("plexus-roles", PlexusRoleListResourceResponse.class);
    xs.registerLocalConverter(
        PlexusRoleListResourceResponse.class,
        "data",
        new AliasingListConverter(PlexusRoleResource.class, "plexus-role"));

    //        xs.omitField(PlexusUserSearchCriteriaResourceRequest.class, "modelEncoding");
    xs.alias("user-search", PlexusUserSearchCriteriaResourceRequest.class);
    //        xs.omitField(PlexusUserSearchCriteriaResource.class, "modelEncoding");

    //        xs.omitField(ErrorReportRequest.class, "modelEncoding");
    //        xs.omitField(ErrorReportRequestDTO.class, "modelEncoding");
    //        xs.omitField(ErrorReportResponse.class, "modelEncoding");
    //        xs.omitField(ErrorReportResponseDTO.class, "modelEncoding");

    xs.alias("error-report-request", ErrorReportRequest.class);
    xs.alias("error-report-response", ErrorReportResponse.class);

    //        xs.omitField(MirrorResourceListRequest.class, "modelEncoding");
    //        xs.omitField(MirrorResourceListResponse.class, "modelEncoding");
    //        xs.omitField(MirrorStatusResourceListResponse.class, "modelEncoding");
    //        xs.omitField(MirrorResource.class, "modelEncoding");
    //        xs.omitField(MirrorStatusResource.class, "modelEncoding");

    xs.alias("mirror-list-request", MirrorResourceListRequest.class);
    xs.alias("mirror-list-response", MirrorResourceListResponse.class);
    xs.alias("mirror-status-list-response", MirrorStatusResourceListResponse.class);

    xs.registerLocalConverter(
        MirrorResourceListRequest.class,
        "data",
        new AliasingListConverter(MirrorResource.class, "mirrorResource"));
    xs.registerLocalConverter(
        MirrorResourceListResponse.class,
        "data",
        new AliasingListConverter(MirrorResource.class, "mirrorResource"));
    xs.registerLocalConverter(
        MirrorStatusResourceListResponse.class,
        "data",
        new AliasingListConverter(MirrorStatusResource.class, "mirrorResource"));

    return xs;
  }