Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id BB50D200C80 for ; Mon, 17 Apr 2017 00:31:59 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id B9F1B160BB4; Sun, 16 Apr 2017 22:31:59 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 51B3C160BB3 for ; Mon, 17 Apr 2017 00:31:57 +0200 (CEST) Received: (qmail 81439 invoked by uid 500); 16 Apr 2017 22:31:56 -0000 Mailing-List: contact commits-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list commits@flex.apache.org Received: (qmail 78519 invoked by uid 99); 16 Apr 2017 22:31:53 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 16 Apr 2017 22:31:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 77E5ADFCA1; Sun, 16 Apr 2017 22:31:53 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: cdutz@apache.org To: commits@flex.apache.org Date: Sun, 16 Apr 2017 22:32:23 -0000 Message-Id: <0040e4b9918f45f285d7f24ec0d624ce@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [32/72] [abbrv] [partial] flex-blazeds git commit: - Major code scrub archived-at: Sun, 16 Apr 2017 22:31:59 -0000 http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/MessageException.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/MessageException.java b/core/src/flex/messaging/MessageException.java deleted file mode 100644 index f3b565a..0000000 --- a/core/src/flex/messaging/MessageException.java +++ /dev/null @@ -1,447 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -import java.util.Map; - -import flex.messaging.log.Log; -import flex.messaging.log.LogCategories; -import flex.messaging.log.LogEvent; -import flex.messaging.messages.ErrorMessage; -import flex.messaging.messages.Message; -import flex.messaging.util.ExceptionUtil; -import flex.messaging.util.PropertyStringResourceLoader; -import flex.messaging.util.ResourceLoader; -import flex.messaging.util.StringUtils; - -/** - * The MessageException class is the basic exception type used throughout - * the server. This class is extended to support more specific exception types. - */ -public class MessageException extends LocalizedException -{ - //-------------------------------------------------------------------------- - // - // Static Constants - // - //-------------------------------------------------------------------------- - - // Message exception code strings. - public static final String CODE_SERVER_RESOURCE_UNAVAILABLE = "Server.ResourceUnavailable"; - - - static final long serialVersionUID = 3310842114461162689L; - - //-------------------------------------------------------------------------- - // - // Constructors - // - //-------------------------------------------------------------------------- - - /** - * Default constructor. - */ - public MessageException() - { - } - - /** - * Construct a message specifying a ResourceLoader to be used to load localized strings. - * - * @param loader - */ - public MessageException(ResourceLoader loader) - { - super(loader); - } - - /** - * Constructor with a message. - * - * @param message The detailed message for the exception. - */ - public MessageException(String message) - { - setMessage(message); - } - - /** - * Constructs a new exception with the specified message and the Throwable as the root cause. - * - * @param message The detailed message for the exception. - * @param t The root cause of the exception. - */ - public MessageException(String message, Throwable t) - { - setMessage(message); - setRootCause(t); - } - - /** - * Constructs a new exception with the specified Throwable as the root cause. - * - * @param t The root cause of the exception. - */ - public MessageException(Throwable t) - { - String rootMessage = t.getMessage(); - if (rootMessage == null) - rootMessage = t.toString(); - setMessage(rootMessage); - setRootCause(t); - } - - //-------------------------------------------------------------------------- - // - // Properties - // - //-------------------------------------------------------------------------- - - //---------------------------------- - // code - //---------------------------------- - - - protected String code; - - /** - * Returns the code of the exception. - * - * @return Code of the exception. - */ - public String getCode() - { - return code; - } - - /** - * Sets the code of the exception. - * - * @param code Code of the exception. - */ - public void setCode(String code) - { - this.code = code; - } - - //---------------------------------- - // defaultLogMessageIntro - //---------------------------------- - - /** - * Returns the default initial text for use in the log output generated by logAtHingePoint(). - * - * @return the default initial text for use in the log output generated by logAtHingePoint(). - */ - public String getDefaultLogMessageIntro() - { - return "Error handling message: "; - } - - //---------------------------------- - // extendedData - //---------------------------------- - - - protected Map extendedData; - - /** - * Returns the extended data of the exception. - * - * @return The extended data of the exception. - */ - public Map getExtendedData() - { - return extendedData; - } - - /** - * Sets the extended data of the exception. - * - * @param extendedData The extended data of the exception. - */ - public void setExtendedData(Map extendedData) - { - this.extendedData = extendedData; - } - - //---------------------------------- - // errorMessage - //---------------------------------- - - - protected ErrorMessage errorMessage; - - /** - * Returns the error message of the exception. - * - * @return The error message of the exception. - */ - public ErrorMessage getErrorMessage() - { - if (errorMessage == null) - { - errorMessage = createErrorMessage(); - } - return errorMessage; - } - - /** - * Sets the error message of the exception. - * - * @param errorMessage The error message of the exception. - */ - public void setErrorMessage(ErrorMessage errorMessage) - { - this.errorMessage = errorMessage; - } - - //---------------------------------- - // logStackTraceEnabled - //---------------------------------- - - /** - * Indicates whether logging of this exception should include a full stack trace or not. - * Default is true. - * - * @see #logAtHingePoint(Message, ErrorMessage, String) - * @return true if the logging stack traces is enabled. - */ - public boolean isLogStackTraceEnabled() - { - return true; - } - - //---------------------------------- - // logged - //---------------------------------- - - protected boolean logged; - - /** - * Indicates whether this exception has already been logged - * by a call to logAtHingPoint(). - * Manual logging for an exception can use setLogged(true) - * to suppress any further automatic logging of the exception. - * - * @return true if the exception has been logged; otherwise false. - */ - public boolean isLogged() - { - return logged; - } - - /** - * Records whether this exception has been logged. - * - * @param value true if the exception has been logged; otherwise false. - */ - public void setLogged(boolean value) - { - logged = value; - } - - //---------------------------------- - // peferredLogLevel - //---------------------------------- - - /** - * Returns the preferred log level for this exception instance. - * The default value is LogEvent.ERROR. - * - * @see #logAtHingePoint(Message, ErrorMessage, String) - * @return the preffered log level. - */ - public short getPreferredLogLevel() - { - return LogEvent.ERROR; - } - - //---------------------------------- - // resourceLoader - //---------------------------------- - - /** - * Returns the ResourceLoader used to load localized strings. - * - * @return The ResourceLoader used to load localized strings. - */ - @Override protected ResourceLoader getResourceLoader() - { - if (resourceLoader == null) - { - try - { - MessageBroker broker = FlexContext.getMessageBroker(); - resourceLoader = broker != null? broker.getSystemSettings().getResourceLoader() - : new PropertyStringResourceLoader(); - } - catch (NoClassDefFoundError exception) // Could happen in client mode. - { - return new PropertyStringResourceLoader(); - } - } - - return resourceLoader; - } - - //---------------------------------- - // rootCauseErrorMessage - //---------------------------------- - - - public Object getRootCauseErrorMessage() - { - if (rootCause == null) - return null; - - // FIXME: serialize number field. - return rootCause instanceof MessageException? - ((MessageException)rootCause).createErrorMessage() : rootCause; - } - - //---------------------------------- - // statusCode - //---------------------------------- - - protected int statusCode; - - /** - * Returns the HTTP status code of the exception. - * - * @return The HTTP status code of the exception. - */ - public int getStatusCode() - { - return statusCode; - } - - /** - * Sets the HTTP status code of the exception. - * - * @param statusCode The HTTP status code of the exception. - */ - public void setStatusCode(int statusCode) - { - this.statusCode = statusCode; - } - - //-------------------------------------------------------------------------- - // - // Public Methods - // - //-------------------------------------------------------------------------- - - /** - * Creates an error message from the exception. - * - * @return The error message. - */ - public ErrorMessage createErrorMessage() - { - ErrorMessage msg = new ErrorMessage(); - msg.faultCode = code != null? code : "Server.Processing"; - msg.faultString = message; - msg.faultDetail = details; - msg.rootCause = getRootCauseErrorMessage(); - if (extendedData != null) - msg.extendedData = extendedData; - if (statusCode != 0) - msg.setHeader(Message.STATUS_CODE_HEADER, statusCode); - return msg; - } - - /** - * Invoked at hinge-points in server processing where catch-all exception logging is performed. - * This method uses isLogged() and setLogged() to avoid repeat logging - * of the same exception and uses getPreferredLogLevel() which may be - * overridden in subclasses to control the log level that the logging is output at. - * The underlying exception stack traces are also conditionally included in log output - * if the exception class allows it and this is determined by invoking isLogStackTraceEnabled() - * - * @param inboundMessage The inbound message that triggered an exception during processing. - * @param outboundMessage The outbound ErrorMessage, which may be null depending on whether it has been generated - * or not at the point this method is invoked. - * @param logMessageIntro The beginning text for the log message, which may be null; default value is returned by getDefaultLogMessageIntro(). - */ - public void logAtHingePoint(Message inboundMessage, ErrorMessage outboundMessage, String logMessageIntro) - { - if (!isLogged()) - { - setLogged(true); - - short preferredLevel = getPreferredLogLevel(); - // If the preferred level is less than the current Log level; return early. - if (preferredLevel < Log.getTargetLevel()) - return; - - // Construct core log output. - StringBuffer output = new StringBuffer(); - output.append((logMessageIntro != null) ? logMessageIntro : getDefaultLogMessageIntro()); - output.append(this.toString()); - output.append(StringUtils.NEWLINE); - output.append(" incomingMessage: "); - output.append(inboundMessage); - output.append(StringUtils.NEWLINE); - if (outboundMessage != null) - { - output.append(" errorReply: "); - output.append(outboundMessage); - output.append(StringUtils.NEWLINE); - } - if (isLogStackTraceEnabled()) - { - output.append(ExceptionUtil.exceptionFollowedByRootCausesToString(this)); - output.append(StringUtils.NEWLINE); - } - - switch (preferredLevel) - { - case LogEvent.FATAL: - { - Log.getLogger(LogCategories.MESSAGE_GENERAL).fatal(output.toString()); - break; - } - case LogEvent.ERROR: - { - Log.getLogger(LogCategories.MESSAGE_GENERAL).error(output.toString()); - break; - } - case LogEvent.WARN: - { - Log.getLogger(LogCategories.MESSAGE_GENERAL).warn(output.toString()); - break; - } - case LogEvent.INFO: - { - Log.getLogger(LogCategories.MESSAGE_GENERAL).info(output.toString()); - break; - } - case LogEvent.DEBUG: - { - Log.getLogger(LogCategories.MESSAGE_GENERAL).debug(output.toString()); - break; - } - default: - { - Log.getLogger(LogCategories.MESSAGE_GENERAL).fatal("Failed to log exception for handling message due to an invalid preferred log level: " + preferredLevel); - break; - } - } - } - } -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/MessageRoutedEvent.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/MessageRoutedEvent.java b/core/src/flex/messaging/MessageRoutedEvent.java deleted file mode 100644 index 397b261..0000000 --- a/core/src/flex/messaging/MessageRoutedEvent.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -import flex.messaging.messages.Message; - -import java.util.EventObject; - -/** - * - * This event indicates that the source message has been routed to the outbound message queues - * for all target clients. - * This can be used as the trigger for performing optimized IO to flush these queued messages to - * remote hosts over the network. - */ -public class MessageRoutedEvent extends EventObject -{ - /** - * - */ - private static final long serialVersionUID = -3063794416424805005L; - - /** - * Constructs a new MessageRoutedEvent using the supplied source Message. - * - * @param message The message that has been routed. - */ - public MessageRoutedEvent(Message message) - { - super(message); - } - - /** - * Returns the message that has been routed. - */ - public Message getMessage() - { - return (Message)getSource(); - } -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/MessageRoutedListener.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/MessageRoutedListener.java b/core/src/flex/messaging/MessageRoutedListener.java deleted file mode 100644 index bf9a171..0000000 --- a/core/src/flex/messaging/MessageRoutedListener.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -import java.util.EventListener; - -/** - * - * Provides notification for multicast message routing events to support optimized - * asynchronous IO to the target remote hosts. - */ -public interface MessageRoutedListener extends EventListener -{ - /** - * Invoked when a message has been routed to the outbound queues for all target - * clients. - * - * @param event The event containing the source message. - */ - void messageRouted(MessageRoutedEvent event); -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/MessageRoutedNotifier.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/MessageRoutedNotifier.java b/core/src/flex/messaging/MessageRoutedNotifier.java deleted file mode 100644 index f9aca87..0000000 --- a/core/src/flex/messaging/MessageRoutedNotifier.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -import flex.messaging.messages.Message; - -import java.util.ArrayList; - -/** - * - * Supports registration and notification of MessageRoutedListeners. - * An instance of this class is exposed by FlexContext while a message is - * being routed, and once routing of the message to the outbound messages queues for - * target clients and registered listeners are notified. - * This class performs no synchronization because it is only used within the context - * of a single Thread, and only during the routing of a single message. - */ -public class MessageRoutedNotifier -{ - //-------------------------------------------------------------------------- - // - // Constructor - // - //-------------------------------------------------------------------------- - - /** - * Constructs a MessageRoutedNotifier for the supplied source message. - * - * @param The source message being routed. - */ - public MessageRoutedNotifier(Message message) - { - this.message = message; - } - - //-------------------------------------------------------------------------- - // - // Variables - // - //-------------------------------------------------------------------------- - - /** - * The source message being routed. - */ - private final Message message; - - //-------------------------------------------------------------------------- - // - // Properties - // - //-------------------------------------------------------------------------- - - //---------------------------------- - // messageRoutedListeners - //---------------------------------- - - private ArrayList listeners; - - /** - * Adds a MessageRoutedListener. - */ - public void addMessageRoutedListener(MessageRoutedListener listener) - { - if (listener != null) - { - // Lazy-init only if necessary. - if (listeners == null) - listeners = new ArrayList(); - - // Add if absent. - if (!listeners.contains(listener)) - listeners.add(listener); - } - } - - /** - * Removes a MessageRoutedListener. - */ - public void removeMessageRoutedListener(MessageRoutedListener listener) - { - if ((listener != null) && (listeners != null)) - listeners.remove(listener); - } - - //-------------------------------------------------------------------------- - // - // Public Methods - // - //-------------------------------------------------------------------------- - - /** - * Notifies registered listeners of a routed message. - * - * @param message The message that has been routed. - */ - public void notifyMessageRouted() - { - if ((listeners != null) && !listeners.isEmpty()) - { - MessageRoutedEvent event = new MessageRoutedEvent(message); - int n = listeners.size(); - for (int i = 0; i < n; ++i) - ((MessageRoutedListener)listeners.get(i)).messageRouted(event); - } - } -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/Server.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/Server.java b/core/src/flex/messaging/Server.java deleted file mode 100644 index dd6bf25..0000000 --- a/core/src/flex/messaging/Server.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -/** - * The interface for a shared server instance that may be associated with a - * MessageBroker and used by endpoints. - */ -public interface Server extends FlexComponent -{ - /** - * Returns the id for the server. - * Endpoints can lookup server instances that have been associated with a MessageBroker using {@link MessageBroker#getServer(String)}. - */ - String getId(); - - /** - * Sets the id for the server. - */ - void setId(String value); -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/ServiceValidationListener.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/ServiceValidationListener.java b/core/src/flex/messaging/ServiceValidationListener.java deleted file mode 100644 index d7f24f8..0000000 --- a/core/src/flex/messaging/ServiceValidationListener.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -/** - * - */ -public interface ServiceValidationListener -{ - /** - * This method gets called before any other processing of the describeServices method. - * It allows a hook for external systems that need to update the service destinations at runtime. - */ - void validateServices(); - void validateDestination(String destination); -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/VersionInfo.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/VersionInfo.java b/core/src/flex/messaging/VersionInfo.java deleted file mode 100644 index 0d60e4d..0000000 --- a/core/src/flex/messaging/VersionInfo.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging; - -import flex.messaging.util.StringUtils; - - -/** - * Class representing the build version of Data Services. - */ -public class VersionInfo -{ - //Cache this info as it should not change during the time class is loaded - public static String BUILD_MESSAGE; - public static String BUILD_NUMBER_STRING; - public static String BUILD_TITLE; - public static long BUILD_NUMBER; - - private static final String LCDS_CLASS = "flex.data.DataService"; - - public static String buildMessage() - { - if (BUILD_MESSAGE == null) - { - try - { - //Ensure we've parsed build info - getBuild(); - - if (StringUtils.isEmpty(BUILD_NUMBER_STRING)) - { - BUILD_MESSAGE = BUILD_TITLE; - } - else - { - BUILD_MESSAGE = BUILD_TITLE + ": " + BUILD_NUMBER_STRING; - } - } - catch (Throwable t) - { - BUILD_MESSAGE = BUILD_TITLE +": information unavailable"; - } - } - - return BUILD_MESSAGE; - } - - public static long getBuildAsLong() - { - if (BUILD_NUMBER == 0) - { - getBuild(); - - if (BUILD_NUMBER_STRING != null && !BUILD_NUMBER_STRING.equals("")) - { - try - { - BUILD_NUMBER = Long.parseLong(BUILD_NUMBER_STRING); - } - catch (NumberFormatException nfe) - { - // ignore, just return 0 - } - } - } - - return BUILD_NUMBER; - } - - public static String getBuild() - { - if (BUILD_NUMBER_STRING == null) - { - Class classToUseForManifest; - - try - { - classToUseForManifest = Class.forName(LCDS_CLASS); - } - catch (ClassNotFoundException e) - { - classToUseForManifest = VersionInfo.class; - } - - try - { - BUILD_NUMBER_STRING = ""; - Package pack = classToUseForManifest.getPackage(); - BUILD_NUMBER_STRING = pack.getImplementationVersion(); - BUILD_TITLE = pack.getImplementationTitle(); - } - catch (Throwable t) - { - // ignore, just return empty string - } - } - - return BUILD_NUMBER_STRING; - } -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/client/AsyncPollHandler.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/client/AsyncPollHandler.java b/core/src/flex/messaging/client/AsyncPollHandler.java deleted file mode 100644 index 2817419..0000000 --- a/core/src/flex/messaging/client/AsyncPollHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging.client; - -/** - * Defines the interface to handle asynchronous poll results. - */ -public interface AsyncPollHandler -{ - /** - * Invoked by the FlexClient when an asynchronous poll result is available. - * - * @param flushResult The flush result containing messages to return in the poll response and - * an optional wait time before the client should issue its next poll. - */ - void asyncPollComplete(FlushResult flushResult); -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/client/EndpointPushHandler.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/client/EndpointPushHandler.java b/core/src/flex/messaging/client/EndpointPushHandler.java deleted file mode 100644 index 8e9c19e..0000000 --- a/core/src/flex/messaging/client/EndpointPushHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging.client; - -import java.util.List; - -import flex.messaging.MessageClient; -import flex.messaging.messages.Message; - -/** - * Defines the interface for a handler that may be registered by an endpoint with a FlexClient in order - * to push messages to a connected client. - */ -public interface EndpointPushHandler -{ - /** - * Invoked to shut down the handler. - * It may be invoked by the endpoint when the underlying connection it manages to the client closes, - * or by the FlexClient if it is invalidated. - * The implementation of this method should release any resources, and should not attempt to notify the - * client of an explicit disconnect. - * - * @see #close(boolean) - */ - void close(); - - /** - * Invoked to shut down the handler. - * It may be invoked by the endpoint when the underlying connection it manages to the client closes, - * or by the FlexClient if it is invalidated. - * The implementation of this method should release any resources, and may attempt to notify the client - * Channel that it has been disconnected in order to suppress automatic reconnect behavior. - * - * @param disconnectChannel True to attempt to notify the client of an explicit disconnect in order to - * suppress automatic reconnect behavior. - */ - void close(boolean disconnectChannel); - - /** - * Invoked by the FlexClient when it has messages to push to - * the client. - * - * @param messagesToPush The list of messages to push. - */ - void pushMessages(List messagesToPush); - - /** - * Invoked to notify the handler that the MessageClient subscription is using this handler. - * If subscriptions should be invalidated if the handler is closed, it should retain references to - * all registered MessageClient instances and invalidate them when it closes. - * - * @param messageClient The MessageClient subscription using this handler. - */ - void registerMessageClient(MessageClient messageClient); - - /** - * Invoked to notify the handler that a MessageClient subscription that was using it has - * been invalidated. - * If the handler is tracking the set of MessageClient instances that are using it, the handler should - * remove the instance from its set. - * - * @param messageClient The MessageClient subscription no longer using this handler. - */ - void unregisterMessageClient(MessageClient messageClient); -} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/8315f8fa/core/src/flex/messaging/client/EndpointPushNotifier.java ---------------------------------------------------------------------- diff --git a/core/src/flex/messaging/client/EndpointPushNotifier.java b/core/src/flex/messaging/client/EndpointPushNotifier.java deleted file mode 100644 index cd6db61..0000000 --- a/core/src/flex/messaging/client/EndpointPushNotifier.java +++ /dev/null @@ -1,461 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package flex.messaging.client; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; - -import flex.messaging.FlexContext; -import flex.messaging.FlexSession; -import flex.messaging.FlexSessionListener; -import flex.messaging.MessageClient; -import flex.messaging.MessageClientListener; -import flex.messaging.endpoints.BaseStreamingHTTPEndpoint; -import flex.messaging.endpoints.Endpoint; -import flex.messaging.log.Log; -import flex.messaging.log.LogCategories; -import flex.messaging.messages.AsyncMessage; -import flex.messaging.messages.CommandMessage; -import flex.messaging.util.TimeoutAbstractObject; -import flex.messaging.util.UUIDUtils; - -/** - * - * Instances of this class are used by endpoints that support streaming - * outbound data to connected clients when the client is not polling and - * the FlexSession representing the connection does not support push directly. - * This generally requires that the client and endpoint establish a separate, - * physical connection for pushed data that is part of a larger, logical - * connection/session. - *

- * When the endpoint establishes this physical streaming connection it will - * create an instance of this class, register it with the FlexClient and then - * wait on the public pushNeeded condition variable. - * When data arrives to push to the remote client, the FlexClient will queue it - * with this notifier instance and the waiting endpoint will be notified. - * The endpoint will retrieve the queued messages from the notifier instance and will - * stream them to the client and then go back into a wait state on the - * pushNeeded condition variable. - *

- * Note that this implementation is based upon Object.wait(); it is not a - * non-blocking implementation. - *

- */ -public class EndpointPushNotifier extends TimeoutAbstractObject implements EndpointPushHandler, FlexSessionListener, MessageClientListener -{ - //-------------------------------------------------------------------------- - // - // Constructor - // - //-------------------------------------------------------------------------- - - /** - * Constructs a PushNotifier instance. - * - * @param endpoint The endpoint that will use this notifier. - * @param flexClient The FlexClient that will use this notifier. - */ - public EndpointPushNotifier(Endpoint endpoint, FlexClient flexClient) - { - notifierId = UUIDUtils.createUUID(false /* doesn't need to be secure */); - this.endpoint = endpoint; - this.flexClient = flexClient; - flexClient.registerEndpointPushHandler(this, endpoint.getId()); - flexSession = FlexContext.getFlexSession(); - if (flexSession != null) - flexSession.addSessionDestroyedListener(this); - invalidateMessageClientOnStreamingClose = (endpoint instanceof BaseStreamingHTTPEndpoint)? - ((BaseStreamingHTTPEndpoint)endpoint).isInvalidateMessageClientOnStreamingClose() : false; - updateLastUse(); // Initialize last use timestamp to construct time. - } - - //-------------------------------------------------------------------------- - // - // Public Variables - // - //-------------------------------------------------------------------------- - - /** - * The condition variable that the endpoint waits on for pushed data to arrive. - */ - public final Object pushNeeded = new Object(); - - //-------------------------------------------------------------------------- - // - // Private Variables - // - //-------------------------------------------------------------------------- - - /** - * Flag indicating whether the notifier has been closed/shut down. - * This is used to signal a waiting endpoint that it should break out of its - * wait loop and close its streaming connection. - */ - private volatile boolean closed; - - /** - * Flag indicating that the notifier has started closing; used to allow only - * one thread to execute the close() logic and delay flipping closed to true - * to allow any final messages to be streamed to the client before the endpoint - * using the notifier breaks out of its wait/notify loop and terminates the - * streaming connection. - */ - private volatile boolean closing; - - /** - * The number of minutes a client can remain idle before the server - * times the notifier out. - */ - private int idleTimeoutMinutes; - - /** - * Whether to invalidate the message-client when the streaming connection is closed. - */ - private final boolean invalidateMessageClientOnStreamingClose; - - /** - * The endpoint that uses this notifier. - */ - private final Endpoint endpoint; - - /** - * The FlexClient this notifier is associated with. - */ - private final FlexClient flexClient; - - /** - * The FlexSession this notifier is associated with. - */ - private final FlexSession flexSession; - - /** - * Lock for instance-level synchronization. - */ - private final Object lock = new Object(); - - /** - * Log category used by the notifier. Initialized to ENDPOINT_GENERAL but - * endpoints using this notifier should set it to their own log categories. - */ - private String logCategory = LogCategories.ENDPOINT_GENERAL; - - /** - * Queue of messages that the FlexClient will populate and the endpoint will drain to - * stream to the client. - */ - private List messages; - - /** - * List of MessageClient subscriptions using this endpoint push notifier. - * When this notifier is closed, any associated subscriptions need to be invalidated. - */ - private final CopyOnWriteArrayList messageClients = new CopyOnWriteArrayList(); - - /** - * Unique identifier for this instance. - */ - private final String notifierId; - - //-------------------------------------------------------------------------- - // - // Public Methods - // - //-------------------------------------------------------------------------- - - /** - * Moves this notifier to a closed state, notifying any listeners, - * associated subscriptions and waiting endpoints. - * Does not attempt to notify the client Channel of the disconnect thereby allowing - * automatic reconnect processing to run. - */ - public void close() - { - close(false); - } - - /** - * Moves this notifier to a closed state, notifying any listeners, - * associated subscriptions and waiting endpoints. - * Attempts to notify the client Channel of an explicit disconnect, thereby suppressing - * automatic reconnect processing. - * - * @param disconnectChannel True to attempt to notify the client Channel of the disconnect - * and suppress automatic reconnect processing. - */ - public void close(boolean disconnectChannel) - { - synchronized (lock) - { - if (closed || closing) - return; - - closing = true; - } - - cancelTimeout(); - - if (flexSession != null) - flexSession.removeSessionDestroyedListener(this); - - // Shut down flow of further messages to this notifier. - flexClient.unregisterEndpointPushHandler(this, endpoint.getId()); - - // Push a disconnect command down to the client to suppress automatic reconnect. - if (disconnectChannel) - { - ArrayList list = new ArrayList(1); - CommandMessage disconnect = new CommandMessage(CommandMessage.DISCONNECT_OPERATION); - list.add(disconnect); - pushMessages(list); - } - - // Invalidate associated subscriptions; this doesn't attempt to notify the client. - // Any client subscriptions made over this endpoint will be automatically invalidated - // on the client when it receives its channel disconnect event. - if (invalidateMessageClientOnStreamingClose) - { - for (Iterator iter = messageClients.iterator() ; iter.hasNext();) - iter.next().invalidate(); - } - - // Move to final closed state; after this we need to notify one last time to stream - // any final messages to the client and allow the endpoint to shut down its streaming - // connection. - synchronized (lock) - { - closed = true; - closing = false; - } - synchronized (pushNeeded) - { - pushNeeded.notifyAll(); - } - } - - /** - * Returns any messages available to push to the client, and removes them - * from this notifier. - * Notified endpoints should invoke this method to retrieve messages, stream them - * to the client and then re-enter the wait state. - * This method acquires a lock on pushNeeded. - * - * @return The messages to push to the client. - */ - public List drainMessages() - { - synchronized (pushNeeded) - { - List messagesToPush = messages; - messages = null; - return messagesToPush; - } - } - - /** - * Returns whether the notifier has closed; used to break the endpoint's wait cycle. - * - * @return True if the notifier has closed; otherwise false. - */ - public boolean isClosed() - { - return closed; - } - - /** - * Returns the endpoint that is using this notifier. - * - * @return The endpoint using this notifier. - */ - public Endpoint getEndpoint() - { - return endpoint; - } - - /** - * Returns the idle timeout minutes used by the notifier. - * - * @return The idle timeout minutes used by the notifier. - */ - public int getIdleTimeoutMinutes() - { - return idleTimeoutMinutes; - } - - /** - * Sets the idle timeout minutes used by the notifier. - * - * @param idleTimeoutMinutes The idle timeout minutes used by the notifier. - */ - public void setIdleTimeoutMinutes(int idleTimeoutMinutes) - { - this.idleTimeoutMinutes = idleTimeoutMinutes; - } - - /** - * Returns the log category used by this notifier. - * - * @return The log category used by this notifier. - */ - public String getLogCategory() - { - return logCategory; - } - - /** - * Sets the log category used by this notifier. Endpoints using this notifier - * should set it to their own log categories. - * - * @param logCategory The log category for the notifier to use. - */ - public void setLogCategory(String logCategory) - { - this.logCategory = logCategory; - } - - /** - * Returns the unique id for this notifier. - * - * @return The unique id for this notifier. - */ - public String getNotifierId() - { - return notifierId; - } - - /** - * - * Implements TimeoutCapable. - * Determine the time, in milliseconds, that this object is allowed to idle - * before having its timeout method invoked. - */ - public long getTimeoutPeriod() - { - return (idleTimeoutMinutes * 60 * 1000); - } - - /** - * - */ - public void messageClientCreated(MessageClient messageClient) - { - // No-op. - } - - /** - * - */ - public void messageClientDestroyed(MessageClient messageClient) - { - unregisterMessageClient(messageClient); - } - - /** - * Used by FlexClient to push messages to the endpoint. - * This method will automatically notify a waiting endpoint, if one exists - * and it acquires a lock on pushNeeded. - * - * @param messages The messages to push to the client. - */ - public void pushMessages(List messagesToPush) - { - if (!messagesToPush.isEmpty()) - { - synchronized (pushNeeded) - { - // Push these straight on through; notify immediately. - if (messages == null) - messages = messagesToPush; - else - messages.addAll(messagesToPush); - - // If the notifier isn't closing, notify; otherwise just add and the close will - // notify once it completes. - if (!closing) - pushNeeded.notifyAll(); - } - } - } - - /** - * Registers a MessageClient subscription that depends on this notifier. - * - * @param messageClient A MessageClient that depends on this notifier. - */ - public void registerMessageClient(MessageClient messageClient) - { - if (messageClient != null) - { - if (messageClients.addIfAbsent(messageClient)) - messageClient.addMessageClientDestroyedListener(this); - } - } - - /** - * Handle session creation events. This handler is a no-op because the notifier - * is only concerned with its associated session's destruction. - * - * @param flexSession The newly created FlexSession. - */ - public void sessionCreated(FlexSession flexSession) - { - // No-op. - } - - /** - * Handle session destruction events. This will be invoked when the notifier's - * associated session is invalidated, and this will trigger the notifier to close. - * - * @param flexSession The FlexSession being invalidated. - */ - public void sessionDestroyed(FlexSession flexSession) - { - if (Log.isInfo()) - Log.getLogger(logCategory).info("Endpoint with id '" + endpoint.getId() + "' is closing" - + " a streaming connection for the FlexClient with id '" + flexClient.getId() + "'" - + " since its associated session has been destroyed."); - close(true /* disconnect client Channel */); - } - - /** - * - * Implements TimeoutCapable. - * Inform the object that it has timed out. - */ - public void timeout() - { - if (Log.isInfo()) - Log.getLogger(logCategory).info("Endpoint with id '" + endpoint.getId() + "' is timing out" - + " a streaming connection for the FlexClient with id '" + flexClient.getId() + "'"); - close(true /* disconnect client Channel */); - } - - /** - * Unregisters a MessageClient subscription that depended on this notifier. - * - * @param messageClient A MessageClient that depended on this notifier. - */ - public void unregisterMessageClient(MessageClient messageClient) - { - if (messageClient != null) - { - messageClient.removeMessageClientDestroyedListener(this); - messageClients.remove(messageClient); - } - } -} \ No newline at end of file