http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/LogManager.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/LogManager.as b/attic/apps/ds-console/console/containers/LogManager.as new file mode 100755 index 0000000..3d47957 --- /dev/null +++ b/attic/apps/ds-console/console/containers/LogManager.as @@ -0,0 +1,189 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + import console.ConsoleManager; + import flash.events.Event; + import mx.controls.ComboBox; + import console.events.ManagementOperationInvokeEvent; + import mx.events.ListEvent; + import flash.events.MouseEvent; + import mx.collections.ArrayCollection; + + public class LogManager extends UpdateListener + { + private var _manager:ConsoleManager; + private var _logMBean:String; + private var _logTree:Array; + private var display:LogManagerDisplay; + + public static var targetLevels:Array = new Array( + {label:"NONE", value:"2000"}, + {label:"FATAL", value:"1000"}, + {label:"ERROR", value:"8"}, + {label:"WARN", value:"6"}, + {label:"INFO", value:"4"}, + {label:"DEBUG", value:"2"}, + {label:"ALL", value:"0"} + ); + + public function LogManager():void + { + super(); + + display = new LogManagerDisplay; + this.addChild(display); + + this.label = "Log Manager"; + + _manager = ConsoleManager.getInstance(); + _manager.registerListener(this, []); + + // On selecting a log target, invoke 'getTargetFilters' to populate the table of filters + display.logTargetSelect.addEventListener(ListEvent.CHANGE, selectLogTarget); + display.logTargetLevel.dataProvider = targetLevels; + + // Handler for removing a target + display.deleteCategory.addEventListener(MouseEvent.CLICK, + function(e:Event):void { + + _manager.invokeOperation( + + new ManagementOperationInvokeEvent(_logMBean, + "removeFilterForTarget", + [display.logTargetSelect.selectedItem, display.currentCategories.selectedItem], + ["java.lang.String", "java.lang.String"]), + + function (e:Event):void { display.logTargetSelect.dispatchEvent( + new Event(ListEvent.CHANGE)); } ); + } + ); + + // Handler for adding a target + display.addFilterButton.addEventListener(MouseEvent.CLICK, + function(e:Event):void { + + _manager.invokeOperation( + + new ManagementOperationInvokeEvent(_logMBean, + "addFilterForTarget", + [display.logTargetSelect.selectedItem, display.addFilterTextInput.text], + ["java.lang.String", "java.lang.String"]), + // Simple callback function to refresh the Log View + function (e:Event):void { + display.logTargetSelect.dispatchEvent(new Event(ListEvent.CHANGE)); + display.addFilterTextInput.text = ""; + } + ); + } + ); + + // Handler for adding a target + display.addCommonFilterButton.addEventListener(MouseEvent.CLICK, + function(e:Event):void { + + _manager.invokeOperation( + + new ManagementOperationInvokeEvent(_logMBean, + "addFilterForTarget", + [display.logTargetSelect.selectedItem, display.commonCategories.selectedItem], + ["java.lang.String", "java.lang.String"]), + // Simple callback function to refresh the Log View + function (e:Event):void { + display.logTargetSelect.dispatchEvent(new Event(ListEvent.CHANGE)); + display.addFilterTextInput.text = ""; + } + ); + } + ); + + // Handler for changing the target's level + display.logTargetLevel.addEventListener(ListEvent.CHANGE, function(e:Event):void + { + _manager.invokeOperation( + + new ManagementOperationInvokeEvent(_logMBean, + "changeTargetLevel", + [display.logTargetSelect.selectedItem, display.logTargetLevel.selectedItem.value], + ["java.lang.String", "java.lang.String"]), + new Function + ); + } + ); + + } + + public override function mbeanModelUpdate(model:Object):void + { + _logTree = _manager.getChildTree("Log"); + if (_logTree != null && _logTree.length != 0) + { + _logMBean = _logTree[0]["objectName"]["canonicalName"]; + // Get the targets for the current application + _manager.getAttributes(_logMBean, ["Targets"], this, updateTargets); + _manager.getAttributes(_logMBean, ["Categories"], this, updateCommonCats); + } + } + + public override function appChanged(s:String):void + { + mbeanModelUpdate(null); + } + + public function updateCommonCats(e:Event):void + { + display.commonCategories.dataProvider = (e["result"] as Array)[0].value; + display.commonCategories.selectedIndex = 0; + display.commonCategories.dispatchEvent(new Event(ListEvent.CHANGE)); + } + + public function updateTargets(e:Event):void + { + var logTargets:Array = (e["result"] as Array)[0].value; + display.logTargetSelect.dataProvider = logTargets; + display.logTargetSelect.selectedIndex = 0; + display.logTargetSelect.dispatchEvent(new Event(ListEvent.CHANGE)); + } + + public function updateFilters(e:Event):void + { + display.currentCategories.dataProvider = e["result"] as Array; + } + + public function selectLogTarget(e:Event):void + { + _manager.invokeOperation(new ManagementOperationInvokeEvent(_logMBean, + "getTargetFilters", [display.logTargetSelect.selectedItem], ["java.lang.String"]), + updateFilters); + _manager.invokeOperation(new ManagementOperationInvokeEvent(_logMBean, + "getTargetLevel", [display.logTargetSelect.selectedItem], ["java.lang.String"]), + handleGetTargetLevel); + } + + public function handleGetTargetLevel(e:Event):void + { + var currentLevelInt:String = e["message"]["body"]; + for (var i:int = 0; i < targetLevels.length; i++) + { + if (targetLevels[i].value == currentLevelInt) + display.logTargetLevel.selectedIndex = i; + } + } + } +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/LogManagerDisplay.mxml ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/LogManagerDisplay.mxml b/attic/apps/ds-console/console/containers/LogManagerDisplay.mxml new file mode 100755 index 0000000..40e1f6e --- /dev/null +++ b/attic/apps/ds-console/console/containers/LogManagerDisplay.mxml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + 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. + +--> +<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"> + <mx:HBox width="100%" height="100%"> + <mx:Form> + <mx:FormItem label="Log Target:"> + <mx:ComboBox id="logTargetSelect" /> + </mx:FormItem> + <mx:FormItem label="Target Level:"> + <mx:ComboBox id="logTargetLevel"></mx:ComboBox> + </mx:FormItem> + <mx:HRule width="100%"/> + <mx:FormItem label="Add a Custom Category"> + <mx:TextInput id="addFilterTextInput" /> + </mx:FormItem> + <mx:FormItem> + <mx:Button label="Add Category" id="addFilterButton" /> + </mx:FormItem> + </mx:Form> + <mx:VBox width="100%"> + <mx:DataGrid id="currentCategories" width="100%"> + <mx:columns> + <mx:DataGridColumn headerText="Current Categories" dataField="filters" /> + </mx:columns> + </mx:DataGrid> + <mx:Button label="Remove Category" id="deleteCategory" /> + </mx:VBox> + <mx:VBox width="100%"> + <mx:DataGrid id="commonCategories" width="100%"> + <mx:columns> + <mx:DataGridColumn headerText="Common Categories" dataField="common"/> + </mx:columns> + </mx:DataGrid> + <mx:Button label="Add Category" id="addCommonFilterButton" /> + </mx:VBox> + </mx:HBox> +</mx:VBox> http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/Operation.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/Operation.as b/attic/apps/ds-console/console/containers/Operation.as new file mode 100755 index 0000000..3a10448 --- /dev/null +++ b/attic/apps/ds-console/console/containers/Operation.as @@ -0,0 +1,169 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + +import flash.events.MouseEvent; +import mx.containers.HBox; +import mx.controls.Button; +import mx.controls.Label; +import mx.controls.TextInput; +import mx.messaging.management.MBeanOperationInfo; +import mx.messaging.management.MBeanParameterInfo; + +/** + * The Operation container is an HBox that renders UI to invoke an operation on + * an MBean. When the operationInfo property of an Operation is set, the current + * UI for the Operation is torn down, and new UI is rendered based on the new + * MBeanOperationInfo metadata provided. + * <p> + * This container/control should not be instantiated directly. A parent OperationSet + * container will create nested Operations based on its MBean metadata. + */ +public class Operation extends HBox +{ + //-------------------------------------------------------------------------- + // + // Constructor + // + //-------------------------------------------------------------------------- + + /** + * @private + * Constructor. + */ + public function Operation(wrapper:OperationSet) + { + super(); + + _wrapper = wrapper; + _values = []; + _signature = []; + } + + /** + * @private + * The parent container. + */ + private var _wrapper:OperationSet; + + /** + * @private + * Array to store references to controls for each argument. + */ + private var _values:Array; + + /** + * @private + * Array to store the type signature for this operation. + */ + private var _signature:Array; + + //---------------------------------- + // MBeanOperationInfo + //---------------------------------- + + /** + * @private + * Storage for the operation info. + */ + private var _operationInfo:MBeanOperationInfo; + + /** + * MBean operation metadata that drives the UI for this component. + */ + public function get operationInfo():MBeanOperationInfo + { + return _operationInfo; + } + + public function set operationInfo(value:MBeanOperationInfo):void + { + var i:int; + + _operationInfo = value; + // Remove any existing children and refs to argument values. + _values.splice(0); + _signature.splice(0); + for (i = numChildren - 1; i >= 0; --i) + { + removeChildAt(i); + } + + // Build UI for this operation. + var opName:Button = new Button(); + opName.label = value.name; + opName.addEventListener("click", invokeOperation); + addChild(opName); + + var openParen:Label = new Label(); + openParen.text = " ("; + addChild(openParen); + + var comma:Label = new Label(); + comma.text = ", "; + var paramName:String; + var n:int = value.signature.length; + for (i = 0; i < n; ++i) + { + var pName:Label = new Label(); + paramName = value.signature[i].name; + if (paramName.length > 0) + { + pName.text = paramName; + } + else + { + pName.text = "p" + (i + 1); + } + addChild(pName); + var pValue:TextInput = new TextInput(); + addChild(pValue); + _values[i] = pValue; + _signature[i] = value.signature[i].type; + if (i != (n - 1)) + { + addChild(comma); + } + } + + var closeParen:Label = new Label(); + closeParen.text = " ) "; + addChild(closeParen); + } + + /** + * @private + * Calls back into the parent OperationSet to dispatch an + * event for this operation invocation request. + */ + private function invokeOperation(e:MouseEvent):void + { + var argsToPass:Array = []; + var n:int = _values.length; + for (var i:int = 0; i < n; ++i) + { + argsToPass.push(_values[i].text); + } + _wrapper.dispatchInvokeEvent(_operationInfo.name, argsToPass, _signature); + } +} + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/OperationSet.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/OperationSet.as b/attic/apps/ds-console/console/containers/OperationSet.as new file mode 100755 index 0000000..f3f537a --- /dev/null +++ b/attic/apps/ds-console/console/containers/OperationSet.as @@ -0,0 +1,149 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + +import console.events.ManagementOperationInvokeEvent; + +import mx.containers.*; +import mx.messaging.management.MBeanInfo; + +//-------------------------------------- +// Events +//-------------------------------------- + +/** + * Broadcast when a request has been made to invoke an Operation within this OperationSet. + */ +[Event(name="invoke", type="console.events.ManagementOperationInvokeEvent")] + +/** + * The OperationSet is a VBox containing an Operation for each operation exposed by a + * MBean. When the mbeanInfo property is set, the current UI of the OperationSet is torn + * down and new UI is built based upon the MBeanInfo metadata provided. + * + * <p><b>MXML Syntax</b></p> + * + * <p>The <code><mx:OperationSet></code> tag inherits all the properties + * of its parent classes and adds the following properties:</p> + * + * <p> + * <pre> + * <mx:Button + * mbeanInfo="<i>No default</i>." + * /> + * </pre> + * </p> + */ +public class OperationSet extends VBox +{ + //-------------------------------------------------------------------------- + // + // Constructor + // + //-------------------------------------------------------------------------- + + /** + * @private + * Constructor. + */ + public function OperationSet() + { + super(); + } + + + + + //---------------------------------- + // MBeanOperationInfo + //---------------------------------- + + private var _mbeanName:String; + public function set mbeanName(name:String):void + { + _mbeanName = name; + } + + /** + * @private + * Storage for the Mbean info. + */ + private var _mbeanInfo:MBeanInfo; + + /** + * MBean metadata to drive the UI for this component. + */ + public function get mbeanInfo():MBeanInfo + { + return _mbeanInfo; + } + + + private var _tabnav:TabNavigator; + public function set tabnav(p:TabNavigator):void + { + _tabnav = p; + } + + public function set mbeanInfo(value:MBeanInfo):void + { + var i:int; + + _mbeanInfo = value; + // Remove any existing children. + for (i = numChildren - 1; i >= 0; --i) + { + removeChildAt(i); + } + if (value != null) + { + var n:int = value.operations.length; + + // If there are no operations for this MBean, disable the Operations tab. + if (n == 0) + _tabnav.getTabAt(1).enabled = false; + + // Otherwise, build UI for the set of operations exposed by this MBean. + else + { + _tabnav.getTabAt(1).enabled = true; + for (i = 0; i < n; ++i) + { + var op:Operation = new Operation(this); + addChild(op); + op.operationInfo = value.operations[i]; + } + } + } + } + + /** + * Raises an operation invoke event for a nested Operation. + */ + public function dispatchInvokeEvent(name:String, values:Array, signature:Array):void + { + var event:ManagementOperationInvokeEvent = new ManagementOperationInvokeEvent(_mbeanName, name, values, signature); + dispatchEvent(event); + } + +} + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/PollableAttributeChart.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/PollableAttributeChart.as b/attic/apps/ds-console/console/containers/PollableAttributeChart.as new file mode 100755 index 0000000..a8dac5a --- /dev/null +++ b/attic/apps/ds-console/console/containers/PollableAttributeChart.as @@ -0,0 +1,42 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + import mx.charts.LineChart; + import mx.charts.series.LineSeries; + + public class PollableAttributeChart extends LineChart + { + function PollableAttributeChart(provider:Object):void + { + super(); + + dataProvider = provider; + this.percentHeight = 100; + this.percentWidth = 100; + + var series:LineSeries = new LineSeries; + series.dataProvider = provider; + series.yField = "value"; + this.addChild(series); + + initialize(); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/ServerManager.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/ServerManager.as b/attic/apps/ds-console/console/containers/ServerManager.as new file mode 100755 index 0000000..f0ba870 --- /dev/null +++ b/attic/apps/ds-console/console/containers/ServerManager.as @@ -0,0 +1,138 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + import console.ConsoleManager; + import mx.collections.ArrayCollection; + import mx.events.ListEvent; + import flash.events.Event; + import mx.charts.LineChart; + import mx.charts.series.LineSeries; + import mx.utils.ObjectProxy; + import flash.utils.setInterval; + import mx.collections.ICollectionView; + import console.data.Bindable3DHashMap; + import flash.events.TextEvent; + import console.events.ManagementOperationInvokeEvent; + import mx.controls.DataGrid; + import mx.events.DataGridEvent; + import mx.events.FlexEvent; + + public class ServerManager extends UpdateListener + { + private var _manager:ConsoleManager; + private var display:ServerManagerDisplay; + private var dataCache:Bindable3DHashMap; + private var pollableAttributes:Object; + private var visibleTypes:Array; + + public function ServerManager():void + { + super(); + display = new ServerManagerDisplay; + this.addChild(display); + + this.label = "Server Management"; + display.scalarProperties.addEventListener(ListEvent.CHANGE, selectedScalar); + display.pollableProperties.addEventListener(ListEvent.CHANGE, selectedPollable); + _manager = ConsoleManager.getInstance(); + _manager.registerListener(this, [{type: ConsoleManager.GENERAL_OPERATION, poll: false}, + {type: ConsoleManager.GENERAL_SERVER, poll: false}, + {type: ConsoleManager.GENERAL_POLLABLE, poll: true}]); + setupDataCache(); + } + + public override function dataUpdate(type:int, data:Object):void + { + var dataArray:ArrayCollection = new ArrayCollection; + + for (var name:String in data) + { + + var propertyArrayForMBean:Array = data[name]; + + for (var i:int = 0; i < propertyArrayForMBean.length; i++) + { + dataCache.update(String(type), propertyArrayForMBean[i].name, propertyArrayForMBean[i].value); + } + } + + if (type == ConsoleManager.GENERAL_POLLABLE) + pollableAttributes = data; + } + + private function setupDataCache():void + { + dataCache = new Bindable3DHashMap(); + dataCache.update(String(ConsoleManager.GENERAL_OPERATION),null,null); + dataCache.update(String(ConsoleManager.GENERAL_POLLABLE),null,null); + dataCache.update(String(ConsoleManager.GENERAL_SERVER),null,null); + + display.scalarProperties.dataProvider = dataCache.getBindableKeyArray(String(ConsoleManager.GENERAL_SERVER)); + display.pollableProperties.dataProvider = dataCache.getBindableKeyArray(String(ConsoleManager.GENERAL_POLLABLE)); + } + + private function invokeOp(mbean:String, operation:String, value:String):void + { + _manager.invokeOperation( + new ManagementOperationInvokeEvent(mbean, operation, [value], ["java.lang.String"]), + function (e:Event):void { + + } + ); + } + + private function selectedScalar(e:Event):void + { + // It's possible that the data has changed since it was clicked because of polling + // if the selected item is null, then return. + // TODO: Handle this more gracefully. + if (display.scalarProperties.selectedItem == -1) return; + + var attr:String = display.scalarProperties.selectedItem.propertyName; + var mbean:String = display.scalarProperties.selectedItem.mbeanName; + display.selectedProperty.text = attr; + display.pollableProperties.selectedIndex = -1; + } + + private function selectedPollable(e:Event):void + { + // It's possible that the data has changed since it was clicked because of polling + // if the selected item is null, then return. + // TODO: Handle this more gracefully. + if (display.pollableProperties.selectedItem == null) return; + + var attr:String = display.pollableProperties.selectedItem.Property + display.selectedProperty.text = attr; + + display.attrgraph.dataProvider = dataCache.getBindableDataArray(String(ConsoleManager.GENERAL_POLLABLE), attr); + display.attrgraphSeries.dataProvider = dataCache.getBindableDataArray(String(ConsoleManager.GENERAL_POLLABLE), attr); + display.scalarProperties.selectedIndex = -1; + } + + public override function appChanged(s:String):void + { + display.attrgraph.dataProvider = null; + display.attrgraphSeries.dataProvider = null; + display.selectedProperty.text = "None"; + setupDataCache(); + _manager.updateData(this); + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/ServerManagerDisplay.mxml ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/ServerManagerDisplay.mxml b/attic/apps/ds-console/console/containers/ServerManagerDisplay.mxml new file mode 100755 index 0000000..4161a3b --- /dev/null +++ b/attic/apps/ds-console/console/containers/ServerManagerDisplay.mxml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + + 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. + +--> +<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"> + <mx:HDividedBox width="100%" height="100%"> + <mx:VBox height="100%" width="400"> + <mx:DataGrid id="scalarProperties" width="100%"> + <mx:columns> + <mx:DataGridColumn dataField="mbeanName" visible="false" /> + <mx:DataGridColumn headerText="Scalar Property" dataField="Property" /> + <mx:DataGridColumn headerText="Value" dataField="Value" /> + </mx:columns> + </mx:DataGrid> + <mx:DataGrid id="pollableProperties" width="100%"> + <mx:columns> + <mx:DataGridColumn dataField="mbeanName" visible="false" /> + <mx:DataGridColumn headerText="Graphable Property" dataField="Property" /> + <mx:DataGridColumn headerText="Value" dataField="Value" /> + </mx:columns> + </mx:DataGrid> + </mx:VBox> + <mx:VDividedBox height="100%"> + <mx:HBox> + <mx:Label text="Selected Attribute" /> + <mx:Text id="selectedProperty" /> + </mx:HBox> + <mx:LineChart id="attrgraph" width="100%" height="100%"> + <mx:verticalAxis> + <mx:LinearAxis id="attrgraphAxis" baseAtZero="false" /> + </mx:verticalAxis> + <mx:series> + <mx:LineSeries id="attrgraphSeries" yField="Value" /> + </mx:series> + </mx:LineChart> + </mx:VDividedBox> + </mx:HDividedBox> + +</mx:Panel> http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/UpdateListener.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/UpdateListener.as b/attic/apps/ds-console/console/containers/UpdateListener.as new file mode 100755 index 0000000..ae30465 --- /dev/null +++ b/attic/apps/ds-console/console/containers/UpdateListener.as @@ -0,0 +1,109 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + import mx.containers.Canvas; + import console.data.Bindable3DHashMap; + import mx.collections.ArrayCollection; + import mx.messaging.management.ObjectName; + + public class UpdateListener extends Canvas + { + protected var _name:String; + protected var _model:Object; + + /** + * Invoked when the names of the mbeans are retrieved from the server. + */ + public function mbeanModelUpdate(mbeanModel:Object):void + { + + } + + /** + * Invoked when the data for a given type is updated if the implementing class + * is registered with the ConsoleManager for the type, and if the implementing class + * is set to active in the ConsoleManager. + */ + public function dataUpdate(type:int, data:Object):void + { + + } + + /** + * Invoked when the selected application has changed. An implementing class might + * want to clear any data it is holding onto since the data will be belonging to + * objects in an application's MBeans that are no longer being queried. + */ + public function appChanged(s:String):void + { + + } + + /** + * If the container only wishes to query a select number of MBeans upon dataUpdate, they should be + * visible in a map keyed on the display type containing arrays of the MBean names. + * + * If a null value, or any object that the ConsoleManager can't parse, then all + * MBeans for all active types are returned upon dataUpdate. + */ + public function get specificMBeansMap():Object + { + return null; + } + + protected function traverseTreeForObject(node:Object, searchType:String = null, searchObject:String = null):Object + { + if (node == null) + { + return null; + } + else if (node.hasOwnProperty("type")) + { + // Node is a container of objects of 'type' + if (searchType != null) + { + if (node.type == searchObject) + return node; + } + } + else if (node.hasOwnProperty("objectName")) + { + // Node is a specific object, an instance of parent 'type' + if (searchObject != null) + { + if ((node.objectName as ObjectName).getKeyProperty("id") == searchObject) + return node; + } + } + + // recur + if (node.hasOwnProperty("children") && (node.children is Array)) + { + for each (var child:Object in (node.children as Array)) + { + traverseTreeForObject(child, searchType, searchObject); + } + } + + // not found + return null; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/containers/UpdateManager.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/containers/UpdateManager.as b/attic/apps/ds-console/console/containers/UpdateManager.as new file mode 100755 index 0000000..2883c59 --- /dev/null +++ b/attic/apps/ds-console/console/containers/UpdateManager.as @@ -0,0 +1,28 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.containers +{ + public interface UpdateManager + { + function registerListener(listner:UpdateListener, types:Array):void; + function unregisterListener(listner:UpdateListener):void; + function activateListener(listener:UpdateListener):void; + function deactivateListener(listener:UpdateListener):void; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/data/Bindable3DHashMap.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/data/Bindable3DHashMap.as b/attic/apps/ds-console/console/data/Bindable3DHashMap.as new file mode 100755 index 0000000..d7b056f --- /dev/null +++ b/attic/apps/ds-console/console/data/Bindable3DHashMap.as @@ -0,0 +1,110 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.data +{ + import mx.collections.ArrayCollection; + import mx.utils.ObjectProxy; + import flash.events.Event; + import mx.events.PropertyChangeEvent; + import mx.events.CollectionEvent; + import mx.controls.listClasses.ListBase; + + public class Bindable3DHashMap + { + public var objects:ObjectProxy; + public var objectsForKeyArray:ObjectProxy; + + public function Bindable3DHashMap() + { + objects = new ObjectProxy; + objectsForKeyArray = new ObjectProxy; + } + + public function updateNoPollable(object:String, key:String, value:*):void + { + if (!objectsForKeyArray.hasOwnProperty(object)) + objectsForKeyArray[object] = new ArrayCollection; + + if (!key) + return; + + var keysForKeyArray:ArrayCollection = objectsForKeyArray[object] as ArrayCollection; + + var foundKey:Boolean = false; + for (var i:int = 0; i < keysForKeyArray.length; i++) + { + if ((keysForKeyArray[i].hasOwnProperty("Property")) && (keysForKeyArray[i]["Property"] == key)) + { + keysForKeyArray[i]["Value"] = value; + foundKey = true; + break; + } + } + + if (!foundKey) + keysForKeyArray.addItem({Property: key, Value:value}); + + keysForKeyArray.dispatchEvent(new CollectionEvent(CollectionEvent.COLLECTION_CHANGE)); + } + + public function update(object:String, key:String, value:*):void + { + if (!objects.hasOwnProperty(object)) + { + objects[object] = new ObjectProxy; + } + + if (!key) + return; + + var keys:ObjectProxy = objects[object] as ObjectProxy; + + if (!keys.hasOwnProperty(key)) + keys[key] = new ArrayCollection; + + (keys[key] as ArrayCollection).addItem({Name: key, Value: value}); + (keys[key] as ArrayCollection).dispatchEvent(new CollectionEvent(CollectionEvent.COLLECTION_CHANGE)); + + updateNoPollable(object, key, value); + } + + public function getBindableKeyArray(object:String):ArrayCollection + { + if (!objectsForKeyArray.hasOwnProperty(object)) + objectsForKeyArray[object] = new ArrayCollection; + + return (objectsForKeyArray[object] as ArrayCollection); + } + + public function getBindableDataArray(object:String, key:String):ArrayCollection + { + if (!objects.hasOwnProperty(object)) + objects[object] = new ObjectProxy; + + var keys:ObjectProxy = objects[object] as ObjectProxy; + return keys[key] as ArrayCollection; + } + + public function clearData():void + { + objects = new ObjectProxy; + objectsForKeyArray = new ObjectProxy; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/ds-console/console/events/ManagementOperationInvokeEvent.as ---------------------------------------------------------------------- diff --git a/attic/apps/ds-console/console/events/ManagementOperationInvokeEvent.as b/attic/apps/ds-console/console/events/ManagementOperationInvokeEvent.as new file mode 100755 index 0000000..548c1c9 --- /dev/null +++ b/attic/apps/ds-console/console/events/ManagementOperationInvokeEvent.as @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 console.events +{ + +import flash.events.Event; + +/** + * Used to request that an MBean operation be invoked. + */ +public class ManagementOperationInvokeEvent extends Event +{ + /** + * Constructs an instance of this event with the specified type, target, + * and message. + */ + public function ManagementOperationInvokeEvent(mbean:String, name:String, values:Array, signature:Array) + { + super(INVOKE, false, false); + _mbean = mbean; + _name = name; + _values = values; + _signature = signature; + } + + /** + * The mbean of the operation to invoke. + */ + public function get mbean():String + { + return _mbean; + } + + /** + * The name of the operation to invoke. + */ + public function get name():String + { + return _name; + } + + /** + * The argument values for the operation. + */ + public function get values():Array + { + return _values; + } + + /** + * The type signature for operation arguments. + */ + public function get signature():Array + { + return _signature; + } + + /** + * Because this event can be re-dispatched we have to implement clone to + * return the appropriate type, otherwise we will get just the standard + * event type. + * + * @return Clone of this <code>ManagementOperationInvokeEvent</code> + */ + override public function clone():Event + { + return new ManagementOperationInvokeEvent(_mbean, _name, _values, _signature); + } + + /** + * The event type. + */ + public static const INVOKE:String = "invoke"; + + // private members + private var _name:String; + private var _values:Array; + private var _signature:Array; + private var _mbean:String; +} + +} http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/README.txt ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/README.txt b/attic/apps/samples-spring/README.txt new file mode 100755 index 0000000..714815e --- /dev/null +++ b/attic/apps/samples-spring/README.txt @@ -0,0 +1,5 @@ +All of the files contained in this directory and any subdirectories are +considered "Sample Code" under the terms of the end user license agreement +that accompanies this product. Please consult such end user license agreement +for details about your rights with respect to such files. + http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/classes/commons-logging.properties ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/classes/commons-logging.properties b/attic/apps/samples-spring/WEB-INF/classes/commons-logging.properties new file mode 100755 index 0000000..b8a3e1f --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/classes/commons-logging.properties @@ -0,0 +1,19 @@ +# 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. + +# suppress logging for 3rd-party libraries using commons-logging +# Flex logging is not configured here. It is configured through in the logging section of flex-config.xml +org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl +org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/flex-servlet.xml ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/flex-servlet.xml b/attic/apps/samples-spring/WEB-INF/flex-servlet.xml new file mode 100755 index 0000000..5f2addc --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/flex-servlet.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:flex="http://www.springframework.org/schema/flex" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-3.0.xsd + http://www.springframework.org/schema/flex + http://www.springframework.org/schema/flex/spring-flex-1.5.xsd"> + + <flex:message-broker> + <flex:message-service + default-channels="my-streaming-amf,my-longpolling-amf,my-polling-amf" /> + <flex:secured /> + </flex:message-broker> + + <!-- Expose the productService bean for BlazeDS remoting --> + <flex:remoting-destination ref="productService" /> + + <!-- Expose the contactService bean for BlazeDS remoting --> + <flex:remoting-destination ref="contactService" /> + + <!-- Expose the securedProductService bean for BlazeDS remoting --> + <flex:remoting-destination ref="securedProductService" /> + + <!-- Helper for getting the currently authenticated user --> + <bean id="securityHelper" class="org.springframework.flex.samples.secured.Security3Helper"> + <flex:remoting-destination/> + </bean> + + <!-- Messaging destinations --> + <flex:message-destination id="chat" /> + <flex:message-destination id="simple-feed" /> + <flex:message-destination id="market-feed" allow-subtopics="true" subtopic-separator="." /> + + <!-- MessageTemplate makes it easy to publish messages --> + <bean id="defaultMessageTemplate" class="org.springframework.flex.messaging.MessageTemplate" /> + + <!-- Pojo used to start and stop the data feed that pushes data in the 'simple-feed' destination --> + <bean id="simpleFeedStarter" class="org.springframework.flex.samples.simplefeed.SimpleFeed"> + <constructor-arg ref="defaultMessageTemplate" /> + <flex:remoting-destination /> + </bean> + + <!-- Pojo used to start and stop the data feed that pushes data in the 'market-feed' destination --> + <bean id="marketFeedStarter" class="org.springframework.flex.samples.marketfeed.MarketFeed"> + <constructor-arg ref="defaultMessageTemplate" /> + <constructor-arg value="stocklist.xml" /> + <flex:remoting-destination /> + </bean> + +</beans> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/flex-src/chat/.actionScriptProperties ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/flex-src/chat/.actionScriptProperties b/attic/apps/samples-spring/WEB-INF/flex-src/chat/.actionScriptProperties new file mode 100755 index 0000000..07c42ee --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/flex-src/chat/.actionScriptProperties @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- + + 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. + +--> +<actionScriptProperties mainApplicationPath="chat.mxml" projectUUID="46e6c4ea-bda5-466a-9d9a-a020928ae0f8" version="6"> + <compiler additionalCompilerArguments="-locale en_US" autoRSLOrdering="true" copyDependentFiles="true" fteInMXComponents="false" generateAccessible="true" htmlExpressInstall="true" htmlGenerate="true" htmlHistoryManagement="true" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin-debug" sourceFolderPath="src" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" verifyDigests="true" warn="true"> + <compilerSourcePath/> + <libraryPath defaultLinkType="0"> + <libraryPathEntry kind="4" path=""> + <excludedEntries> + <libraryPathEntry kind="3" linkType="1" path="${PROJECT_FRAMEWORKS}/libs/flex.swc" useDefaultLinkType="false"/> + </excludedEntries> + </libraryPathEntry> + <libraryPathEntry kind="1" linkType="1" path="libs"/> + </libraryPath> + <sourceAttachmentPath/> + </compiler> + <applications> + <application path="chat.mxml"/> + </applications> + <modules/> + <buildCSSFiles/> +</actionScriptProperties> http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/flex-src/chat/.flexProperties ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/flex-src/chat/.flexProperties b/attic/apps/samples-spring/WEB-INF/flex-src/chat/.flexProperties new file mode 100755 index 0000000..afc8269 --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/flex-src/chat/.flexProperties @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- + + 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. + +--> +<flexProperties enableServiceManager="false" flexServerFeatures="0" flexServerType="0" toolCompile="true" useServerFlexSDK="false" version="2"/> http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/flex-src/chat/.project ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/flex-src/chat/.project b/attic/apps/samples-spring/WEB-INF/flex-src/chat/.project new file mode 100755 index 0000000..648b1c7 --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/flex-src/chat/.project @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + 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. + +--> +<projectDescription> + <name>chat</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>com.adobe.flexbuilder.project.flexbuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>com.adobe.flexbuilder.project.flexnature</nature> + <nature>com.adobe.flexbuilder.project.actionscriptnature</nature> + </natures> +</projectDescription> http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/flex-src/chat/build.xml ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/flex-src/chat/build.xml b/attic/apps/samples-spring/WEB-INF/flex-src/chat/build.xml new file mode 100755 index 0000000..22a305f --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/flex-src/chat/build.xml @@ -0,0 +1,76 @@ +<?xml version="1.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. + +--> +<project name="samples-spring.war/build.xml" default="main" basedir="../../../../../"> + + <property environment="env" /> + <property file="${basedir}/build.properties"/> + <property name="samples-spring.war" value="${basedir}/apps/samples-spring"/> + <property name="context.root" value="samples-spring" /> + <property name="application.name" value="chat" /> + <property name="application.file" value="chat" /> + <property name="application.bin.dir" value="${samples-spring.war}/chat" /> + <property name="application.src.dir" value="${samples-spring.war}/WEB-INF/flex-src/chat/src" /> + + <target name="main" depends="clean,compile-swf" /> + + <target name="compile-swf"> + + <taskdef resource="flexTasks.tasks" classpath="${basedir}/ant/lib/flexTasks.jar" /> + + <property name="FLEX_HOME" value="${basedir}"/> + + <mxmlc file="${application.src.dir}/${application.file}.mxml" + output="${application.bin.dir}/${application.file}.swf" + actionscript-file-encoding="UTF-8" + keep-generated-actionscript="false" + incremental="false" + services="${samples-spring.war}/WEB-INF/flex/services-config.xml" + context-root="${context.root}" + locale="en_US"> + <load-config filename="${basedir}/frameworks/flex-config.xml"/> + <license product="flexbuilder3" serial-number="${env.fb3_license}"/> + <source-path path-element="${basedir}/frameworks"/> + <external-library-path/> + <metadata> + <publisher name="${manifest.Implementation-Vendor}" /> + <creator name="${manifest.Implementation-Vendor}" /> + </metadata> + </mxmlc> + + <html-wrapper title="${application.name}" + height="100%" + width="100%" + application="app" + swf="${application.file}" + version-major="10" + version-minor="0" + version-revision="0" + output="${application.bin.dir}"/> + + </target> + + <target name="clean" description="--> Removes jars and classes"> + <delete quiet="true" includeemptydirs="true"> + <fileset dir="${application.bin.dir}" includes="*.swf,index.html"/> + <fileset dir="${application.bin.dir}/history" /> + </delete> + </target> + +</project> http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/75229759/attic/apps/samples-spring/WEB-INF/flex-src/chat/html-template/history/history.css ---------------------------------------------------------------------- diff --git a/attic/apps/samples-spring/WEB-INF/flex-src/chat/html-template/history/history.css b/attic/apps/samples-spring/WEB-INF/flex-src/chat/html-template/history/history.css new file mode 100755 index 0000000..8716330 --- /dev/null +++ b/attic/apps/samples-spring/WEB-INF/flex-src/chat/html-template/history/history.css @@ -0,0 +1,22 @@ +/* + * 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. + */ +/* This CSS stylesheet defines styles used by required elements in a flex application page that supports browser history */ + +#ie_historyFrame { width: 0px; height: 0px; display:none } +#firefox_anchorDiv { width: 0px; height: 0px; display:none } +#safari_formDiv { width: 0px; height: 0px; display:none } +#safari_rememberDiv { width: 0px; height: 0px; display:none }
