001    /**
002     *
003     * Licensed to the Apache Software Foundation (ASF) under one or more
004     * contributor license agreements.  See the NOTICE file distributed with
005     * this work for additional information regarding copyright ownership.
006     * The ASF licenses this file to You under the Apache License, Version 2.0
007     * (the "License"); you may not use this file except in compliance with
008     * 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     */
018    package org.apache.activemq.ra;
019    
020    import org.apache.activemq.RedeliveryPolicy;
021    
022    import javax.resource.spi.ResourceAdapter;
023    import javax.resource.spi.ActivationSpec;
024    import java.util.List;
025    
026    /**
027     * 
028     */
029    public interface MessageActivationSpec extends ActivationSpec {
030        boolean isValidUseRAManagedTransaction(List<String> errorMessages);
031    
032        boolean isValidNoLocal(List<String> errorMessages);
033    
034        boolean isValidMessageSelector(List<String> errorMessages);
035    
036        boolean isValidMaxSessions(List<String> errorMessages);
037    
038        boolean isValidMaxMessagesPerSessions(List<String> errorMessages);
039    
040        boolean isValidMaxMessagesPerBatch(List<String> errorMessages);
041    
042        boolean isValidEnableBatch(List<String> errorMessages);
043    
044        /**
045         * @see javax.resource.spi.ResourceAdapterAssociation#getResourceAdapter()
046         */
047        ResourceAdapter getResourceAdapter();
048    
049        /**
050         * @return Returns the destinationType.
051         */
052        String getDestinationType();
053    
054        String getPassword();
055    
056        String getUserName();
057    
058        /**
059         * @return Returns the messageSelector.
060         */
061        String getMessageSelector();
062    
063        /**
064         * @return Returns the noLocal.
065         */
066        String getNoLocal();
067    
068        String getAcknowledgeMode();
069    
070        String getClientId();
071    
072        String getDestination();
073    
074        String getSubscriptionDurability();
075    
076        String getSubscriptionName();
077    
078        boolean isValidSubscriptionName(List<String> errorMessages);
079    
080        boolean isValidClientId(List<String> errorMessages);
081    
082        boolean isDurableSubscription();
083    
084        boolean isValidSubscriptionDurability(List<String> errorMessages);
085    
086        boolean isValidAcknowledgeMode(List<String> errorMessages);
087    
088        boolean isValidDestinationType(List<String> errorMessages);
089    
090        boolean isValidDestination(List<String> errorMessages);
091    
092        boolean isEmpty(String value);
093    
094        int getAcknowledgeModeForSession();
095    
096        String getMaxMessagesPerSessions();
097    
098        String getMaxSessions();
099    
100        String getUseRAManagedTransaction();
101    
102        int getMaxMessagesPerSessionsIntValue();
103    
104        int getMaxSessionsIntValue();
105    
106        boolean isUseRAManagedTransactionEnabled();
107    
108        boolean getNoLocalBooleanValue();
109    
110        String getEnableBatch();
111    
112        boolean getEnableBatchBooleanValue();
113    
114        int getMaxMessagesPerBatchIntValue();
115    
116        String getMaxMessagesPerBatch();
117    
118        double getBackOffMultiplier();
119        
120        long getMaximumRedeliveryDelay();
121    
122        long getInitialRedeliveryDelay();
123    
124        int getMaximumRedeliveries();
125    
126        boolean isUseExponentialBackOff();
127    
128        RedeliveryPolicy redeliveryPolicy();
129    
130        RedeliveryPolicy lazyCreateRedeliveryPolicy();
131    }