001: /*
002: * Copyright 2005 Joe Walker
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.directwebremoting.jms;
017:
018: import javax.jms.ConnectionConsumer;
019:
020: /**
021: * This class tracks the parts of the JMS spec that DWR to not support.
022: * In some respects this is hugely over-engineered, we could simply inline all
023: * these methods and delete the class, however the advantage of this approach is
024: * that we can track what needs to be done to add support for some feature.
025: * @author Joe Walker [joe at getahead dot ltd dot uk]
026: */
027: public class Unsupported {
028: /**
029: * DWR does not support binary messages.
030: * It could by making use of the file download feature, however we need to
031: * bed things in a bit first
032: */
033: static UnsupportedOperationException noBinaryMessages() {
034: return new UnsupportedOperationException(PREFIX
035: + "Binary messages");
036: }
037:
038: /**
039: * DWR does not support manual acknowledgment.
040: * When DWR supports Gears properly then we might be able to add this
041: */
042: static UnsupportedOperationException noManualAcknowledgment() {
043: return new UnsupportedOperationException(PREFIX
044: + "Manual Acknowledgment");
045: }
046:
047: /**
048: * Publish of point to point messages aimed at browsers seems like a very
049: * broken concept. Maybe this will never be implemented.
050: */
051: static UnsupportedOperationException noPointToPoint() {
052: return new UnsupportedOperationException(PREFIX
053: + "Point to point messages");
054: }
055:
056: /**
057: * When DWR supports Gears properly then we might be able to add this
058: */
059: static UnsupportedOperationException noTransactions() {
060: return new UnsupportedOperationException(PREFIX
061: + "Point to point messages");
062: }
063:
064: /**
065: * We don't expire messages other than beyond the script session timeout
066: * which is not set at a message level
067: */
068: static UnsupportedOperationException noMessageExpiry() {
069: return new UnsupportedOperationException(PREFIX
070: + "Message expiry");
071: }
072:
073: /**
074: * DWR treats all messages fairly. Queue jumping is expected to be hard to
075: * implement
076: */
077: static UnsupportedOperationException noMessagePriority() {
078: return new UnsupportedOperationException(PREFIX
079: + "Message priority");
080: }
081:
082: /**
083: * {@link ConnectionConsumer}s are for high message load arenas
084: */
085: static UnsupportedOperationException noConnectionConsumers() {
086: return new UnsupportedOperationException(PREFIX
087: + "Message priority");
088: }
089:
090: /**
091: * Since it's not clear how we will map message properties to JSON messages,
092: * we are likely to ignore this in the short term
093: */
094: static UnsupportedOperationException noMessageSelectors() {
095: return new UnsupportedOperationException(PREFIX
096: + "Message Selectors");
097: }
098:
099: /**
100: * What do temporary topics (without names) mean in a disconnected system
101: * like with the web?
102: */
103: static UnsupportedOperationException noTemporaryTopic() {
104: return new UnsupportedOperationException(PREFIX
105: + "Temporary Topics");
106: }
107:
108: /**
109: * What do durable subscriptions mean in a disconnected system like with the
110: * web?
111: */
112: static UnsupportedOperationException noDurableSubscriptions() {
113: return new UnsupportedOperationException(PREFIX
114: + "Durable Subscriptions");
115: }
116:
117: /**
118: * Some prose to flesh out the reason
119: */
120: private static final String PREFIX = "Unsupported in this version of DWR: ";
121: }
|