001/*
002 * Licensed to DuraSpace under one or more contributor license agreements.
003 * See the NOTICE file distributed with this work for additional information
004 * regarding copyright ownership.
005 *
006 * DuraSpace licenses this file to you under the Apache License,
007 * Version 2.0 (the "License"); you may not use this file except in
008 * compliance with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.fcrepo.http.commons.session;
019
020import static java.time.format.DateTimeFormatter.RFC_1123_DATE_TIME;
021import static org.fcrepo.kernel.api.FedoraTypes.FCR_TX;
022
023import java.time.ZoneId;
024import java.time.format.DateTimeFormatter;
025
026/**
027 * Constants related to transactions in HTTP requests
028 *
029 * @author bbpennel
030 */
031public class TransactionConstants {
032
033    /**
034     * Private constructor
035     */
036    private TransactionConstants() {
037    }
038
039    public static final String ATOMIC_ID_HEADER = "Atomic-ID";
040
041    public static final String ATOMIC_EXPIRES_HEADER = "Atomic-Expires";
042
043    public static final String TX_PREFIX = FCR_TX + "/";
044
045    public static final String TX_NS = "http://fedora.info/definitions/v4/transaction#";
046
047    public static final String TX_ENDPOINT_REL = TX_NS + "endpoint";
048
049    public static final String TX_COMMIT_REL = TX_NS + "commitEndpoint";
050
051    public static final DateTimeFormatter EXPIRES_RFC_1123_FORMATTER = RFC_1123_DATE_TIME.withZone(ZoneId.of("UTC"));
052}