12473 panels should probably be run in a sandbox
authorStephen Talley <stephen.talley@oracle.com>
Thu, 21 Oct 2010 16:28:55 -0400
changeset 591 7c5752b99fd6
parent 590 5721abaf37dd
child 592 a23a738f39a6
12473 panels should probably be run in a sandbox 17281 refactor o.o.o.util...*Finder classes
usr/src/Makefile.env
usr/src/java/Makefile
usr/src/java/build-common.xml
usr/src/java/java.policy.in
usr/src/java/util/org/opensolaris/os/vp/util/cli/CommandUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/HelpFormatter.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/UsageFormatter.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/ConflictingOptionsException.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/InvalidOptArgException.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/InvalidOptionException.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/MissingOptArgException.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/MissingOptionException.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/OptionUseExceededException.java
usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/UnexpectedOptArgException.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/ClassUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/DataSizeUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/Finder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/GnomeUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/IconFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/MessageFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/NetUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/ObjectCache.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/ResourceFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/Finder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/FindingClass.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/GnomeUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/HelpSetFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/IconFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/ItemFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/MessageFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/ObjectCache.java
usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/ResourceFinder.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/BreadCrumbs.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/BrowsableFilePanel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/DisablableTabTabbedPane.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/EditableTablePanel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/GUIUtil.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/HintTextField.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/InfoLabel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/ListSelector.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/ScaledIconPanel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/SettingsButtonBar.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/ThrowableCollapsiblePane.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/glass/BusyGlassPane.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/propinfo/EnabledPropInfo.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/propinfo/SizePropInfo.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/AnalogClock.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/CalendarBrowser.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/CenturyTableModel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/DecadeTableModel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/MillenniumTableModel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/MonthTableModel.java
usr/src/java/util/org/opensolaris/os/vp/util/swing/time/YearTableModel.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelClassLoader.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelDescriptorFactory.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelResourceManager.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PermissionParseException.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/RadLoginManager.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/App.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/AppInstance.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/AppProperties.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificateCollapsiblePane.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificateEditorPane.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificatePane.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/LoginDialog.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/LoginPane.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/SwingErrorPanelDescriptor.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/SwingPanelDescriptorFactory.java
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/panel.policy
usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/resources/Resources.properties
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/action/DefaultStructuredAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/control/Control.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/model/AbstractManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/model/AbstractPanelDescriptor.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/InstanceManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/InstanceStatistics.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyGroupManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyGroupsManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyValuePropInfo.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServiceManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServicePanelDescriptor.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServiceUtil.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/SmfManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/SmfUtil.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepNamePropInfo.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepStatePropInfo.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepTypePropInfo.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/FileManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/UnknownDepManagedObject.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/view/PanelIconUtil.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/AddManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/CloneManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/DeleteManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/EditManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/EnableManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/LaunchManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/MoveManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/PropertiesManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/UpdateManagedObjectAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/ChangeIndicatorTab.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/DebugObjectsTab.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/PanelFrameControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SwingControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SwingNavigationErrorHandler.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SystemTrayControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WindowControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WizardControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/model/ManagedObjectPropInfo.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/ClearServiceAction.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/ComponentList.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfDependenciesControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfDependenciesPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfLogControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfLogPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfPropertiesControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfPropertiesPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfStatusControl.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfStatusPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/timezone/TimeZoneModel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/timezone/TimeZonePanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/AuthPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ChangeIndicator.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ControlBreadCrumbs.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/FilterField.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/Health.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ListObjectsView.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/NavButtonPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsFilter.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsToolBar.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/PanelFrame.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/SearchFilter.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/TableObjectsView.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/TreeTableObjectsView.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/WizardPanel.java
usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/WizardStepPanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ApachePanelDescriptor.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CloneVirtualHostAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateMimeTypeAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateModuleAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateVirtualHostAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteMimeTypeAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteModuleAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteVirtualHostAction.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/GlobalControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/GlobalPanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MainControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MainListCellRenderer.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypeControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypePanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypes.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypesControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/Module.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModuleControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulePanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/Modules.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulesControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/NoMimeTypePanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/NoModulePanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHost.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostGeneralControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostGeneralPanel.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostSSLControl.java
usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostSSLPanel.java
usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/BrowserPanelDescriptor.java
usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/PanelControl.java
usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/PanelDialog.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmOptionsPanel.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmPanelDescriptor.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmSettingsPanel.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmSettingsTab.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreConfig.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreManagedObject.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoresPanel.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoresTab.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CustomCoreSchemeEditControl.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CustomCoreSchemeEditPanel.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/path/TokenComboBox.java
usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/path/TokenLabel.java
usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time1/client/swing/TimePanel.java
usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time1/client/swing/TimePanelDescriptor.java
usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanel.java
usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanelDescriptor.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPanel.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPolicyPropInfo.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPolicyUtil.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AddServiceAction.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallDefaultTab.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOpenPortsPanel.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOpenPortsTab.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOverrideTab.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallPanelDescriptor.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallSettingsPanel.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/GlobalControl.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/MainControl.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/MainListCellRenderer.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/OpenPortsTablePanel.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/PolicyTablePanel.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/RemoveServiceAction.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceEditControl.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceEditPanel.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceManagedObject.java
usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/TablePanel.java
usr/src/java/vpanels/panels/hypervisor/org/opensolaris/os/vp/panels/hypervisor/client/swing/HypervisorPanel.java
usr/src/java/vpanels/panels/hypervisor/org/opensolaris/os/vp/panels/hypervisor/client/swing/HypervisorPanelDescriptor.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/CommonManagedObject.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/GroupManagedObject.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/SharemgrPanelDescriptor.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/AccessPanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CommonGeneralControl.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CommonGeneralPanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CreateGroupAction.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CreateShareAction.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/DeleteShareAndGroupAction.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/GroupGeneralPanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/HintTextFieldOptionPropertySynchronizer.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/InheritanceButton.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/InheritancePanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/MainControl.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/MoveSharesAction.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/NfsProtocolOptionPropertyFactory.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/OptionsTableModel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/OptionsTableOverlay.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ProtocolPanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SecurityModePanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ShareGeneralPanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ShareProtocolPanel.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SwingGroupManagedObject.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SwingShareManagedObject.java
usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/common/SharemgrUtil.java
usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/GeneralControl.java
usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/MainControl.java
usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/SmfPanelDescriptor.java
usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/InstancesControl.java
usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/InstancesPanel.java
usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/STimePropInfo.java
usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/StatePropInfo.java
usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/SvcsPanelDescriptor.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleControl.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleModel.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocalePanel.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryControl.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryPanel.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdControl.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanel.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanelDescriptor.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/TimeZoneControl.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserControl.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserModel.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserPanel.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomeControl.java
usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomePanel.java
usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SmfMonitoredResource.java
usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonListControl.java
usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonListPanel.java
usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonPanelDescriptor.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPModel.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPObject.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPPanel.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/ServersModel.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeControl.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeModel.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeObject.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimePanel.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimePanelDescriptor.java
usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeZoneObject.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/AddUserAction.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/DeleteUserAction.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/HintTextPropertySynchronizer.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/MainControl.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserManagedObject.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrAdvancedControl.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrAdvancedPanel.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrBasicControl.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrBasicPanel.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrEmptyPanel.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrPanelDescriptor.java
usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrUtils.java
usr/src/pkg/manifests/system-management-visual-panels.mf
--- a/usr/src/Makefile.env	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/Makefile.env	Thu Oct 21 16:28:55 2010 -0400
@@ -37,8 +37,13 @@
 JAR_DIR = /usr/share/lib/java
 LIB_DIR = /usr/lib
 MFS_DIR = /lib/svc/manifest
+VP_DIR  = /usr/share/vpanels
+PROTO_BIN         = $(ROOT)/usr/bin
 
-PROTO_BIN         = $(ROOT)/usr/bin
+JAVA_POLICY     = $(VP_DIR)/java.policy
+VP_BIN_JAR      = $(VP_DIR)/vpanels-client.jar
+VP_BIN          = $(PROTO_BIN)/vp
+
 PROTO_DOC         = $(ROOT)/$(DOC_DIR)
 PROTO_ETC	  = $(ROOT)/etc
 PROTO_ETC_CACAO   = $(ROOT)/etc/cacao/instances/default/modules
@@ -56,6 +61,8 @@
 PROTO_PYTHON      = $(ROOT)/usr/lib/python2.6/vendor-packages
 PROTO_MDB         = $(ROOT)/usr/lib/mdb/proc
 PROTO_MAN         = $(ROOT)/usr/share/man
+PROTO_JAVA_POLICY = $(ROOT)/$(JAVA_POLICY)
+PROTO_VP_BIN      = $(PROTO_BIN)/vp
 
 ROOTHDRDIR        = $(ROOT)/usr/include
 
--- a/usr/src/java/Makefile	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/Makefile	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
 #
 
 #
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is subject to license terms.
+# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
 MSUBDIRS = scf vpanels
@@ -40,3 +39,28 @@
 sleeklock: util lib
 
 include Makefile.ant
+include ../Makefile.env
+include ../Makefile.targ
+
+JP = java.policy
+VP_SH = vp.sh
+CLEAN_FILES += $(VP_SH) $(JP)
+
+$(JP): $(JP).in
+	$(SED) 's#<VP_DIR>#$(VP_DIR)#g' $(JP).in > $@
+
+$(PROTO_JAVA_POLICY): $(JP)
+	$(CP) $(JP) $@
+
+$(VP_SH):
+	( \
+	echo '#!/bin/sh'; \
+	echo; \
+	echo 'exec java -Djava.security.policy=$(JAVA_POLICY) \'; \
+	echo '  -jar $(VP_BIN_JAR) "$$@"'; \
+	) > $@
+
+$(PROTO_VP_BIN): $(VP_SH)
+	$(CP) $(VP_SH) $@
+
+install: $(PROTO_JAVA_POLICY) $(PROTO_VP_BIN)
--- a/usr/src/java/build-common.xml	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/build-common.xml	Thu Oct 21 16:28:55 2010 -0400
@@ -19,8 +19,7 @@
 
   CDDL HEADER END
 
-  Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-  Use is subject to license terms.
+  Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
 -->
 
 <project name="commondef">
@@ -131,6 +130,7 @@
 					<!-- <include name="org/**/*.rng" /> -->
 					<include name="org/**/*.xsd" />
 					<include name="org/**/*.properties" />
+					<include name="org/**/panel.policy" />
 					<include name="org/**/help/**" />
 					<include name="org/**/images/**" />
 					<exclude name="org/**/images/**/*.xcf" />
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/java.policy.in	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,39 @@
+//
+// CDDL HEADER START
+//
+// The contents of this file are subject to the terms of the
+// Common Development and Distribution License (the "License").
+// You may not use this file except in compliance with the License.
+//
+// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+// or http://www.opensolaris.org/os/licensing.
+// See the License for the specific language governing permissions
+// and limitations under the License.
+//
+// When distributing Covered Code, include this CDDL HEADER in each
+// file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+// If applicable, add the following below this CDDL HEADER, with the
+// fields enclosed by brackets "[]" replaced with your own identifying
+// information: Portions Copyright [yyyy] [name of copyright owner]
+//
+// CDDL HEADER END
+//
+
+//
+// Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+//
+
+//
+// Establish the permissions granted to the core vp jar files when running as a
+// desktop app.
+//
+// Note that the method used to grant these permissions will differ when
+// vp is launched as, say, a webstart application.
+//
+// Permissions for individual panels are defined within the vp source
+// (panel.policy).
+//
+
+grant codeBase "file:<VP_DIR>/*" {
+    permission java.security.AllPermission;
+};
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/CommandUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/CommandUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli;
 
 import java.util.ArrayList;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.TextUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class CommandUtil {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/HelpFormatter.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/HelpFormatter.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli;
 
 import java.util.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.TextUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class HelpFormatter {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/UsageFormatter.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/UsageFormatter.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli;
 
 import java.util.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.TextUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UsageFormatter {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/ConflictingOptionsException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/ConflictingOptionsException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class ConflictingOptionsException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/InvalidOptArgException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/InvalidOptArgException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class InvalidOptArgException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/InvalidOptionException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/InvalidOptionException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class InvalidOptionException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/MissingOptArgException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/MissingOptArgException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class MissingOptArgException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/MissingOptionException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/MissingOptionException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class MissingOptionException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/OptionUseExceededException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/OptionUseExceededException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class OptionUseExceededException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/UnexpectedOptArgException.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/cli/exception/UnexpectedOptArgException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.cli.exception;
 
 import org.opensolaris.os.vp.util.cli.OptionMap;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UnexpectedOptArgException extends OptionException {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/ClassUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-public class ClassUtil {
-    //
-    // Inner classes
-    //
-
-    // A number of classes in the JDK return the current thread's class stack
-    // as a Class array, but none exposes this functionality publicly.  The
-    // closest is SecurityManager, whose getClassContext method has protected
-    // access.  Thus this hack.
-    //
-    // Note that java.lang.StackTraceElement is insufficient as it does not
-    // return the actual Class objects in the stack, which are necessary, for
-    // example, to retrieve each class's ClassLoader.
-    //
-    // An alternate approach would be to implement getClassContext() as a native
-    // method.
-    private static class MySecurityManager extends SecurityManager {
-	public Class[] getClassContext() {
-	    return super.getClassContext();
-	}
-    }
-
-    //
-    // Static data
-    //
-
-    private static final MySecurityManager sManager = new MySecurityManager();
-    private static final String className = ClassUtil.class.getName();
-
-    //
-    // Static methods
-    //
-
-    public static Class[] getClassContext() {
-	return sManager.getClassContext();
-    }
-
-    /**
-     * Gets the first class in the caller's stack (after this class) that does
-     * not have a NOT_CALLER field.
-     */
-    public static Class getCallerClass() {
-	Class[] stack = getClassContext();
-	int i = 0;
-
-	// Search stack for this class
-	for (; i < stack.length && !stack[i].getName().equals(className); i++);
-
-	// Then find the next class in the stack that is NOT this class
-	for (; i < stack.length && stack[i].getName().equals(className); i++);
-
-	// Then find the next class in the stack without the NOT_CALLER field
-	for (; i < stack.length; i++) {
-	    try {
-		stack[i].getDeclaredField("NOT_CALLER");
-	    } catch (NoSuchFieldException e) {
-		break;
-	    }
-	}
-
-	if (i < stack.length) {
-	    return stack[i];
-	}
-
-	return null;
-    }
-}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/DataSizeUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/DataSizeUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,13 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.misc;
 
 import java.text.DecimalFormat;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class DataSizeUtil {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/Finder.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-import java.net.URL;
-import javax.swing.ImageIcon;
-
-/**
- * The {@code Finder} class is a convenience class for finding message strings,
- * icons, and other resources from the default *{@code Finder} classes.
- */
-public class Finder {
-    //
-    // Static data
-    //
-
-    public static final MessageFinder mFinder = MessageFinder.getDefault();
-    public static final ResourceFinder rFinder = ResourceFinder.getDefault();
-    public static final IconFinder iFinder = IconFinder.getDefault();
-
-    // Flag to ClassUtil.getCallerClass
-    private static int NOT_CALLER;
-
-    //
-    // Static methods
-    //
-
-    public static String getString(ClassLoader loader, String pkg, String key,
-	Object... args) {
-	return mFinder.getString(loader, pkg, key, args);
-    }
-
-    public static String getStringFromPackage(
-	String pkg, String key, Object... args) {
-	return mFinder.getStringFromPackage(pkg, key, args);
-    }
-
-    public static String getString(String key, Object... args) {
-	return mFinder.getString(key, args);
-    }
-
-    public static URL getResource(ClassLoader loader, String pkg, String name) {
-	return rFinder.getResource(loader, pkg, name);
-    }
-
-    public static URL getResource(String pkg, String name) {
-	return rFinder.getResource(pkg, name);
-    }
-
-    public static URL getResource(String name) {
-	return rFinder.getResource(name);
-    }
-
-    public static ImageIcon getIcon(ClassLoader loader, String pkg, String name)
-    {
-	return iFinder.getIcon(loader, pkg, name);
-    }
-
-    public static ImageIcon getIcon(String pkg, String name) {
-	return iFinder.getIcon(pkg, name);
-    }
-
-    public static ImageIcon getIcon(String name) {
-	return iFinder.getIcon(name);
-    }
-}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/GnomeUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-import java.util.*;
-import javax.swing.*;
-
-public class GnomeUtil {
-    //
-    // Inner classes
-    //
-
-    public static interface GnomeIconProvider {
-	String getVersion();
-
-	String getIconFileName(String name, int height);
-
-	String getMimeIconFileName(String type, String subtype, int height);
-    }
-
-    //
-    // Static data
-    //
-
-    private static List<GnomeIconProvider> providers =
-	new ArrayList<GnomeIconProvider>();
-
-    private static List<GnomeIconProvider> roProviders =
-	Collections.unmodifiableList(providers);
-
-    static {
-	try {
-	    // providers.add(new GnomeIconProviderV2());
-	} catch (NoClassDefFoundError e) {
-	    // Java Gnome version 2 not installed or not in classpath
-	}
-    }
-
-    private static ObjectCache<String, Icon> cache =
-	new ObjectCache<String, Icon>();
-
-    //
-    // Static methods
-    //
-
-    /**
-     * Clear the cache of retrieved {@code Icon}s.
-     */
-    public void clearCache() {
-	synchronized (cache) {
-	    cache.clear();
-	}
-    }
-
-    /**
-     * Gets a Gnome {@code Icon} of the given name and height.
-     *
-     * @param	    name
-     *		    the name of the icon as known to Gnome (e.g. "gtk-cancel")
-     *
-     * @param	    height
-     *		    the preferred height of the icon
-     *
-     * @param	    force
-     *		    whether to resize the retrieved Gnome icon if is not the
-     *		    exact height
-     */
-    public static Icon getIcon(String name, int height, boolean force) {
-	String key = height + ":" + force + ":" + name;
-	Icon icon = cache.get(key);
-	if (icon == null) {
-	    String file = getIconFileName(name, height);
-	    icon = getIconFromFileName(file, height, force);
-	    cache.put(key, icon);
-	}
-	return icon;
-    }
-
-    public static String getIconFileName(String name, int height) {
-	for (GnomeIconProvider provider : providers) {
-	    String file = provider.getIconFileName(name, height);
-	    if (file != null) {
-		return file;
-	    }
-	}
-
-	return null;
-    }
-
-    public static List<GnomeIconProvider> getIconProviders() {
-	return roProviders;
-    }
-
-    /**
-     * Gets a Gnome MIME {@code Icon} of the given type, subtype, and height.
-     *
-     * @param	    type
-     *		    the type portion of the MIME type
-     *
-     * @param	    subtype
-     *		    the subtype portion of the MIME type
-     *
-     * @param	    height
-     *		    the preferred height of the icon
-     *
-     * @param	    force
-     *		    whether to resize the retrieved Gnome icon if is not the
-     *		    exact height
-     */
-    public static Icon getMimeIcon(String type, String subtype, int height,
-	boolean force) {
-
-	String key = height + ":" + force + ":" + type + "/" + subtype;
-	Icon icon = cache.get(key);
-	if (icon == null) {
-	    String file = getMimeIconFileName(type, subtype, height);
-	    icon = getIconFromFileName(file, height, force);
-	    cache.put(key, icon);
-	}
-	return icon;
-    }
-
-    public static String getMimeIconFileName(String type, String subtype,
-	int height) {
-
-	for (GnomeIconProvider provider : providers) {
-	    String file = provider.getMimeIconFileName(type, subtype, height);
-	    if (file != null) {
-		return file;
-	    }
-	}
-
-	return null;
-    }
-
-    //
-    // Private methods
-    //
-
-    private static Icon getIconFromFileName(String file, int height,
-	boolean force) {
-
-	Icon icon = null;
-	if (file != null) {
-	    icon = new ImageIcon(file);
-	    if (force) {
-		icon = IconUtil.ensureIconHeight(icon, height);
-	    }
-	}
-	return icon;
-    }
-}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/IconFinder.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-import java.net.URL;
-import java.util.*;
-import javax.swing.ImageIcon;
-
-public class IconFinder extends ResourceFinder {
-    //
-    // Static data
-    //
-
-    // Flag to ClassUtil.getCallerClass
-    private static int NOT_CALLER;
-
-    private static final IconFinder DEFAULT = new IconFinder();
-
-    //
-    // Instance data
-    //
-
-    private ObjectCache<String, ImageIcon> cache =
-	new ObjectCache<String, ImageIcon>();
-
-    //
-    // IconFinder methods
-    //
-
-    /**
-     * Clear the cache of retrieved {@code ImageIcon}s.
-     */
-    public void clearCache() {
-	synchronized (cache) {
-	    cache.clear();
-	}
-    }
-
-    /**
-     * Return an {@code ImageIcon} for the given resource name.  All packages
-     * in the hierarchy above the given package are searched, using the given
-     * {@code ClassLoader}.  See the class notes for details on the search
-     * algorithm.
-     *
-     * @param	    loader
-     *		    the {@code ClassLoader} to load the resource, or {@code
-     *		    null} to use the system {@code ClassLoader}
-     *
-     * @param	    pkg
-     *		    a point in the package hierarchy to search for the resource
-     *
-     * @param	    name
-     *		    the name of the resource
-     *
-     * @return	    a {@code URL} object, or {@code null} if no resource with
-     *		    this name is found
-     */
-    public ImageIcon getIcon(ClassLoader loader, String pkg, String name) {
-	URL url = getResource(loader, pkg, name);
-	return url == null ? null : getIcon(url);
-    }
-
-    /**
-     * Return an {@code ImageIcon} for the given resource name.  All packages in
-     * the hierarchy above the given package are searched, using the caller's
-     * {@code ClassLoader}.  See the class notes for details on the search
-     * algorithm.
-     *
-     * @param	    pkg
-     *		    a point in the package hierarchy to search for the resource
-     *
-     * @param	    name
-     *		    the name of the resource
-     *
-     * @return	    a {@code URL} object, or {@code null} if no resource with
-     *		    this name is found
-     */
-    public ImageIcon getIcon(String pkg, String name) {
-	URL url = getResource(pkg, name);
-	return url == null ? null : getIcon(url);
-    }
-
-    /**
-     * Return an {@code ImageIcon} for the given resource name.  All packages in
-     * the hierarchy above the calling class are searched, using the caller's
-     * {@code ClassLoader}.  See the class notes for details on the search
-     * algorithm.
-     *
-     * @param	    name
-     *		    the name of the resource
-     *
-     * @return	    a {@code URL} object, or {@code null} if no resource with
-     *		    this name is found
-     */
-    public ImageIcon getIcon(String name) {
-	URL url = getResource(name);
-	return url == null ? null : getIcon(url);
-    }
-
-    //
-    // Private methods
-    //
-
-    /**
-     * Retrieve from cache, or create, an {@code ImageIcon} for the given {@code
-     * URL}.
-     */
-    private ImageIcon getIcon(URL url) {
-	String key = url.toString();
-	ImageIcon icon = null;
-
-	synchronized (cache) {
-	    if (cache.containsKey(key)) {
-		// May be null
-		icon = cache.get(key);
-	    } else {
-		icon = new ImageIcon(url);
-		cache.put(key, icon);
-	    }
-	}
-
-	return icon;
-    }
-
-    //
-    // Static methods
-    //
-
-    /**
-     * Get the default {@code IconFinder} instance.
-     */
-    public static IconFinder getDefault() {
-	return DEFAULT;
-    }
-
-    /**
-     * Retrieve icons for the given resource strings.
-     */
-    public static List<ImageIcon> getIcons(String[] resources) {
-	List<ImageIcon> icons = new ArrayList<ImageIcon>();
-
-	for (String resource : resources) {
-	    ImageIcon icon = IconFinder.getDefault().getIcon(resource);
-	    if (icon != null) {
-		icons.add(icon);
-	    }
-	}
-
-	return icons;
-    }
-}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/MessageFinder.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-import java.text.MessageFormat;
-import java.util.*;
-
-public class MessageFinder {
-    //
-    // Static data
-    //
-
-    // Flag to ClassUtil.getCallerClass
-    private static int NOT_CALLER;
-
-    /**
-     * The default base name suffix ("{@code resources.Resources}") to append to
-     * package names when searching for a {@code ResourceBundle}.
-     */
-    public static final String DEFAULT_BASE_NAME_SUFFIX = "resources.Resources";
-
-    // Default instance
-    private static final MessageFinder DEFAULT = new MessageFinder();
-
-    //
-    // Instance data
-    //
-
-    // Additional paths to search for resource strings
-    private List<String> addlPaths = new ArrayList<String>();
-    private List<String> roAddlPaths = Collections.unmodifiableList(addlPaths);
-
-    private String baseNameSuffix = DEFAULT_BASE_NAME_SUFFIX;
-    private Locale locale;
-
-    //
-    // MessageFinder methods
-    //
-
-    /**
-     * Add a base path to search for {@code ResourceBundle}s.
-     *
-     * @param	    path
-     *		    a base path suitable for construction of a
-     *		    {@code ResourceBundle}
-     */
-    public void addSearchPath(String path) {
-	synchronized (addlPaths) {
-	    if (addlPaths.indexOf(path) == -1) {
-		addlPaths.add(path);
-	    }
-	}
-    }
-
-    /**
-     * Gets the additional paths to search for {@code ResourceBundle}s.
-     *
-     * @return	    an unmodifiable {@code List}
-     */
-    public List<String> getSearchPaths() {
-	return roAddlPaths;
-    }
-
-    /**
-     * Get the base name suffix that is appended to package names when searching
-     * for a {@code ResourceBundle}.
-     */
-    public String getBaseNameSuffix() {
-	return baseNameSuffix;
-    }
-
-    /**
-     * Gets the {@code Locale} used when retrieving {@code ResourceBundle}s.
-     * The default value is the {@code Locale} returned by {@code
-     * Locale.getDefault()}.
-     */
-    public Locale getLocale() {
-	return locale == null ? Locale.getDefault() : locale;
-    }
-
-    /**
-     * Return a parameterized localized string for the given key.  See the class
-     * notes for details on the search algorithm.
-     *
-     * @param	    loader
-     *		    the {@code ClassLoader} to load the resource, or {@code
-     *		    null} to use the system {@code ClassLoader}
-     *
-     * @param	    pkg
-     *		    a point in the package hierarchy to search for resources, or
-     *		    {@code null} to search only from the top
-     *
-     * @param	    key
-     *		    the identifying key in the {@code ResourceBundle}, which may
-     *		    contain an optional numerical suffix (.[0-9]+) that will be
-     *		    stripped off to form a backup key in case this key is not
-     *		    found
-     *
-     * @param	    args
-     *		    parameters to place into the localized string, per
-     *		    the {@code java.text.MessageFormat} class.
-     *
-     * @return	    a parameterized localized string for the given key, or
-     *		    {@code null} if no such resource is found
-     */
-    public String getString(ClassLoader loader, String pkg, String key,
-	Object... args) {
-
-	Locale locale = getLocale();
-	String suffix = getBaseNameSuffix();
-
-	List<String> paths = getSearchPathsFromPackage(pkg);
-	paths.addAll(getSearchPaths());
-
-	// If key ends with a numerical element, strip it off to form a backup
-	// key in case this key doesn't match
-	List<String> keys = new ArrayList<String>(2);
-	keys.add(key);
-	String altKey = key.replaceFirst("\\.\\d+$", "");
-	if (!altKey.equals(key)) {
-	    keys.add(altKey);
-	}
-
-	for (String path : paths) {
-	    String bundleName = path.isEmpty() ? suffix : (path + "." + suffix);
-
-	    try {
-		ResourceBundle bundle = ResourceBundle.getBundle(
-		    bundleName, locale, loader);
-
-		for (String k : keys) {
-		    try {
-			// Throws a MissingResourceException
-			String value = bundle.getString(k);
-
-			String[] groups = TextUtil.match(value,
-			    "^@forward:(((\\w+\\.)*\\w+):)?((\\w+\\.)*\\w+)");
-			if (groups != null) {
-			    String fPkg = groups[2] == null ? pkg : groups[2];
-			    String fKey = groups[4];
-			    return getString(loader, fPkg, fKey, args);
-			}
-
-			if (args != null) {
-			    value = MessageFormat.format(value, args);
-			}
-			return value;
-
-		    } catch (MissingResourceException ignore) {
-		    }
-		}
-
-	    // Thrown by getBundle
-	    } catch (MissingResourceException ignore) {
-	    }
-	}
-
-	// Track down missing/bad resources during development;
-	// vpanels.debug.messages is a system property containing a regular
-	// expression matching all keys that should NOT be reported when no
-	// message is found.
-	String regex = System.getProperty("vpanels.debug.messages");
-	if (regex != null && !key.matches(regex)) {
-	    System.err.printf("Returning null for key: %s\n", key);
-	    Thread.currentThread().dumpStack();
-	}
-
-	return null;
-    }
-
-    /**
-     * Return a parameterized localized string for the given key.  See the class
-     * notes for details on the search algorithm.
-     *
-     * @param	    pkg
-     *		    a point in the package hierarchy to search for resources
-     *
-     * @param	    key
-     *		    the identifying key in the {@code ResourceBundle}
-     *
-     * @param	    args
-     *		    parameters to place into the localized string, per
-     *		    the {@code java.text.MessageFormat} class.
-     *
-     * @return	    a parameterized localized string for the given key, or
-     *		    {@code null} if no such resource is found
-     */
-    public String getStringFromPackage(String pkg, String key, Object... args) {
-	Class caller = ClassUtil.getCallerClass();
-	return getString(caller.getClassLoader(), pkg, key, args);
-    }
-
-    /**
-     * Return a parameterized localized string for the given key.  All
-     * {@code ResourceBundle}s of the form {@code resources/Resources} in the
-     * package hierarchy above the calling class are searched.
-     *
-     * @param	    key
-     *		    the identifying key in the {@code ResourceBundle}
-     *
-     * @param	    args
-     *		    parameters to place into the localized string, per
-     *		    the {@code java.text.MessageFormat} class.
-     *
-     * @return	    a parameterized localized string for the given key, or
-     *		    {@code null} if no such resource is found
-     */
-    public String getString(String key, Object... args) {
-	Class caller = ClassUtil.getCallerClass();
-	String pkg = caller.getPackage().getName();
-	return getString(caller.getClassLoader(), pkg, key, args);
-    }
-
-    /**
-     * Set the base name suffix to append to package names when searching for a
-     * {@code ResourceBundle}.	The default value is identified by the {@link
-     * #DEFAULT_BASE_NAME_SUFFIX DEFAULT_BASE_NAME_SUFFIX} static field.
-     */
-    public void setBaseNameSuffix(String baseNameSuffix) {
-	this.baseNameSuffix = baseNameSuffix;
-    }
-
-    /**
-     * Sets the {@code Locale} used when retrieving {@code ResourceBundle}s.
-     *
-     * @param	    locale
-     *		    a {@code Locale} object, or {@code null} to use the
-     *		    default {@code Locale}
-     */
-    public void setLocale(Locale locale) {
-	this.locale = locale;
-    }
-
-    //
-    // Private methods
-    //
-
-    private List<String> getSearchPathsFromPackage(String pkg) {
-	if (pkg == null) {
-	    pkg = "";
-	}
-
-	List<String> paths = new ArrayList<String>();
-	while (!pkg.isEmpty()) {
-	    paths.add(pkg);
-	    pkg = TextUtil.getPackageName(pkg);
-	}
-	paths.add(pkg);
-
-	return paths;
-    }
-
-    //
-    // Static methods
-    //
-
-    /**
-     * Get the default {@code MessageFinder} instance.
-     */
-    public static MessageFinder getDefault() {
-	return DEFAULT;
-    }
-}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/NetUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/NetUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,13 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.misc;
 
 import java.net.*;
+import java.security.*;
 import java.util.Enumeration;
 
 public class NetUtil {
@@ -37,48 +37,68 @@
      *		    could be found.
      */
     public static String getHostName() {
-	try {
-	    return InetAddress.getLocalHost().getHostName();
-	} catch (UnknownHostException e) {
-	}
-	return null;
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<String>() {
+		@Override
+		public String run() {
+		    try {
+			return InetAddress.getLocalHost().getHostName();
+		    } catch (UnknownHostException e) {
+		    }
+		    return null;
+		}
+	    });
     }
 
-    public static boolean isLoopbackAddress(String host) {
-	try {
-	    InetAddress addr = InetAddress.getByName(host);
-	    return addr.isLoopbackAddress();
-	} catch (UnknownHostException ignore) {
-	}
-	return false;
+    public static boolean isLoopbackAddress(final String host) {
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<Boolean>() {
+		@Override
+		public Boolean run() {
+		    try {
+			InetAddress addr = InetAddress.getByName(host);
+			return addr.isLoopbackAddress();
+		    } catch (UnknownHostException ignore) {
+		    }
+		    return false;
+		}
+	    });
     }
 
-    public static boolean isLocalAddress(String host) {
-	try {
-	    InetAddress[] addrs = InetAddress.getAllByName(host);
+    public static boolean isLocalAddress(final String host) {
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<Boolean>() {
+		@Override
+		public Boolean run() {
+		    try {
+			InetAddress[] addrs = InetAddress.getAllByName(host);
 
-	    Enumeration<NetworkInterface> localNics =
-		NetworkInterface.getNetworkInterfaces();
+			Enumeration<NetworkInterface> localNics =
+			    NetworkInterface.getNetworkInterfaces();
 
-	    while (localNics.hasMoreElements()) {
+			while (localNics.hasMoreElements()) {
 
-		NetworkInterface nic = localNics.nextElement();
-		Enumeration<InetAddress> localAddrs = nic.getInetAddresses();
+			    NetworkInterface nic = localNics.nextElement();
+			    Enumeration<InetAddress> localAddrs =
+				nic.getInetAddresses();
 
-		while (localAddrs.hasMoreElements()) {
-		    InetAddress localAddr = localAddrs.nextElement();
+			    while (localAddrs.hasMoreElements()) {
+				InetAddress localAddr =
+				    localAddrs.nextElement();
 
-		    for (InetAddress addr : addrs) {
-			if (addr.equals(localAddr)) {
-			    return true;
+				for (InetAddress addr : addrs) {
+				    if (addr.equals(localAddr)) {
+					return true;
+				    }
+				}
+			    }
 			}
+		    } catch (UnknownHostException e) {
+		    } catch (SocketException e) {
 		    }
+
+		    return false;
 		}
-	    }
-	} catch (UnknownHostException e) {
-	} catch (SocketException e) {
-	}
-
-	return false;
+	    });
     }
 }
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/ObjectCache.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-import java.net.URL;
-import java.util.*;
-import javax.swing.*;
-
-public class ObjectCache<K, V> extends Thread {
-    //
-    // Inner classes
-    //
-
-    protected static class Element<V> {
-	public long date;
-	public V value;
-    }
-
-    //
-    // Instance data
-    //
-
-    private Map<K, Element<V>> map;
-
-    // 30 seconds
-    private long cleanInterval = 30000;
-
-    // 5 minutes
-    private long ageThreshold = 300000;
-
-    //
-    // Constructors
-    //
-
-    public ObjectCache(boolean start) {
-	map = createUnderlyingMap();
-
-	setDaemon(true);
-	if (start) {
-	    start();
-	}
-    }
-
-    public ObjectCache() {
-	this(true);
-    }
-
-    //
-    // Runnable methods
-    //
-
-    @Override
-    public void run() {
-	while (!Thread.currentThread().interrupted()) {
-	    try {
-		Thread.sleep(getCleanInterval());
-		synchronized (this) {
-		    long oldDate = System.currentTimeMillis() -
-			getAgeThreshold();
-
-		    for (Iterator<K> i = map.keySet().iterator(); i.hasNext();)
-		    {
-			K key = i.next();
-			Element<V> element = map.get(key);
-			if (element.date < oldDate) {
-			    i.remove();
-			}
-		    }
-		}
-	    } catch (InterruptedException e) {
-		interrupt();
-	    }
-	}
-    }
-
-    //
-    // ObjectCache methods
-    //
-
-    public synchronized void clear() {
-	map.clear();
-    }
-
-    public synchronized boolean containsKey(K key) {
-	return map.containsKey(key);
-    }
-
-    protected Map<K, Element<V>> createUnderlyingMap() {
-	return new HashMap<K, Element<V>>();
-    }
-
-    public synchronized V get(K key) {
-	V value = null;
-	Element<V> element = map.get(key);
-	if (element != null)  {
-	    element.date = System.currentTimeMillis();
-	    value = element.value;
-	}
-	return value;
-    }
-
-    /**
-     * Gets the threshold to determine whether an object in the cache is old and
-     * can be removed.  Objects in the cache that have not been retrieved within
-     * this amount will be removed by the cleaner thread.  The default is 300000
-     * (5 minutes).
-     */
-    public long getAgeThreshold() {
-	return ageThreshold;
-    }
-
-    /**
-     * Gets the number of milliseconds that the cache cleaning thread should
-     * sleep between cleanings.  The default is 3000 (30 seconds).
-     */
-    public long getCleanInterval() {
-	return cleanInterval;
-    }
-
-    public synchronized boolean isEmpty() {
-	return map.isEmpty();
-    }
-
-    public synchronized V put(K key, V value) {
-	Element<V> element = new Element<V>();
-	element.date = System.currentTimeMillis();
-	element.value = value;
-	map.put(key, element);
-	return value;
-    }
-
-    public synchronized V remove(K key) {
-	Element<V> element = map.remove(key);
-	return element == null ? null : element.value;
-    }
-
-    /**
-     * Gets the threshold to determine whether an object in the cache is old and
-     * can be removed.  Objects in the cache that have not been retrieved within
-     * this amount will be removed by the cleaner thread.
-     */
-    public void setAgeThreshold(long ageThreshold) {
-	this.ageThreshold = ageThreshold;
-    }
-
-    /**
-     * Gets the number of milliseconds that the cache cleaning thread should
-     * sleep between cleanings.
-     */
-    public void setCleanInterval(long cleanInterval) {
-	this.cleanInterval = cleanInterval;
-    }
-
-    public synchronized int size() {
-	return map.size();
-    }
-}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/misc/ResourceFinder.java	Wed Oct 20 10:27:52 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-
-/*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- */
-
-package org.opensolaris.os.vp.util.misc;
-
-import java.net.URL;
-import java.util.*;
-
-public class ResourceFinder {
-    //
-    // Static data
-    //
-
-    // Flag to ClassUtil.getCallerClass
-    private static int NOT_CALLER;
-
-    private static final ResourceFinder DEFAULT = new ResourceFinder();
-
-    //
-    // Instance data
-    //
-
-    // Additional paths to search
-    private Set<String> addlPaths = new HashSet<String>();
-
-    //
-    // ResourceFinder methods
-    //
-
-    /**
-     * Add a base path to search for resources.
-     *
-     * @param	    path
-     *		    a base path suitable for construction of a
-     *		    {@code String}
-     */
-    public void addSearchPath(String path) {
-	// Remove leading '/'s, canonicalize trailing '/'s
-	path = path.replaceFirst("^/+", "").replaceFirst("/*$", "/");
-
-	synchronized (addlPaths) {
-	    addlPaths.add(path);
-	}
-    }
-
-    /**
-     * Return a resource URL for the given resource name.  All packages in the
-     * hierarchy above the given package are searched, using the given {@code
-     * ClassLoader}.  See the class notes for details on the search algorithm.
-     *
-     * @param	    loader
-     *		    the {@code ClassLoader} to load the resource, or {@code
-     *		    null} to use the system {@code ClassLoader}
-     *
-     * @param	    pkg
-     *		    a point in the package hierarchy to search for the resource
-     *
-     * @param	    name
-     *		    the name of the resource
-     *
-     * @return	    a {@code URL} object, or {@code null} if no resource with
-     *		    this name is found
-     */
-    public URL getResource(ClassLoader loader, String pkg, String name) {
-	// Remove leading/trailing '/'s
-	name = name.replaceFirst("^/+|/+$", "");
-
-	// Convert package to resource directory
-	String dir = pkg == null ? "" : pkg.replace('.', '/');
-	if (!dir.isEmpty()) {
-	    dir += "/";
-	}
-
-	// First search up the package hierarchy
-	while (true) {
-	    String path = dir + name;
-
-	    URL url = loader == null ?
-		ClassLoader.getSystemResource(path) :
-		loader.getResource(path);
-	    if (url != null) {
-		return url;
-	    }
-
-	    if (dir.isEmpty()) {
-		break;
-	    } else {
-		dir = dir.replaceFirst("[^/]*/$", "");
-	    }
-	}
-
-	// Next search any additional paths
-	synchronized (addlPaths) {
-	    for (String path : addlPaths) {
-		path += name;
-		URL url = loader == null ?
-		    ClassLoader.getSystemResource(path) :
-		    loader.getResource(path);
-		if (url != null) {
-		    return url;
-		}
-	    }
-	}
-
-	return null;
-    }
-
-    /**
-     * Return a resource URL for the given resource name.  All packages in the
-     * hierarchy above the given package are searched, using the caller's {@code
-     * ClassLoader}.  See the class notes for details on the search algorithm.
-     *
-     * @param	    pkg
-     *		    a point in the package hierarchy to search for the resource
-     *
-     * @param	    name
-     *		    the name of the resource
-     *
-     * @return	    a {@code URL} object, or {@code null} if no resource with
-     *		    this name is found
-     */
-    public URL getResource(String pkg, String name) {
-	Class caller = ClassUtil.getCallerClass();
-	return getResource(caller.getClassLoader(), pkg, name);
-    }
-
-    /**
-     * Return a resource URL for the given resource name.  All packages in the
-     * hierarchy above the calling class are searched, using the caller's
-     * {@code ClassLoader}.  See the class notes for details on the search
-     * algorithm.
-     *
-     * @param	    name
-     *		    the name of the resource
-     *
-     * @return	    a {@code URL} object, or {@code null} if no resource with
-     *		    this name is found
-     */
-    public URL getResource(String name) {
-	Class caller = ClassUtil.getCallerClass();
-	String pkg = caller.getPackage().getName();
-	return getResource(caller.getClassLoader(), pkg, name);
-    }
-
-    //
-    // Static methods
-    //
-
-    /**
-     * Get the default {@code ResourceFinder} instance.
-     */
-    public static ResourceFinder getDefault() {
-	return DEFAULT;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/Finder.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,148 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.net.URL;
+import java.security.*;
+import java.util.*;
+import javax.help.*;
+import javax.swing.ImageIcon;
+
+/**
+ * The {@code Finder} class is a convenience class for finding message strings,
+ * icons, and other resources from the default *{@code Finder} classes.
+ */
+public class Finder implements FindingClass {
+    //
+    // Static data
+    //
+
+    public static final HelpSetFinder hFinder = new HelpSetFinder();
+    public static final IconFinder iFinder = new IconFinder();
+    public static final MessageFinder mFinder = new MessageFinder();
+    public static final ResourceFinder rFinder = new ResourceFinder();
+
+    //
+    // Static methods
+    //
+
+    /**
+     * Gets the requested help set for the given parameters, using the security
+     * context of this class.
+     *
+     * @see	    HelpSetFinder#getHelpSet(ClassLoader,String)
+     */
+    public static HelpSet getHelpSet(final ClassLoader loader,
+	final String name) throws HelpSetException {
+
+	// Using PrivilegedExceptionAction offers no compile-time checking of
+	// thrown Exceptions, so use this mildly awkward method instead
+
+	final HelpSetException[] err = new HelpSetException[1];
+
+	HelpSet helpSet = AccessController.doPrivileged(
+	    new PrivilegedAction<HelpSet>() {
+		@Override
+		public HelpSet run() {
+		    try {
+			return hFinder.getHelpSet(loader, name);
+		    } catch (HelpSetException e) {
+			err[0] = e;
+		    }
+		    return null;
+		}
+	    });
+
+	if (err[0] != null) {
+	    throw err[0];
+	}
+
+	return helpSet;
+    }
+
+    /**
+     * Gets the requested icon using the security context of this class.
+     *
+     * @see	    IconFinder#getIcon(String)
+     */
+    public static ImageIcon getIcon(final String name) {
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<ImageIcon>() {
+		@Override
+		public ImageIcon run() {
+		    return iFinder.getIcon(name);
+		}
+	    });
+    }
+
+    /**
+     * Gets the requested icons using the security context of this class.
+     *
+     * @see	    IconFinder#getIcon(String)
+     */
+    public static List<ImageIcon> getIcons(final String... names) {
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<List<ImageIcon>>() {
+		@Override
+		public List<ImageIcon> run() {
+		    List<ImageIcon> icons = new ArrayList<ImageIcon>();
+
+		    for (String name : names) {
+			ImageIcon icon = iFinder.getIcon(name);
+			if (icon != null) {
+			    icons.add(icon);
+			}
+		    }
+
+		    return icons;
+		}
+	    });
+    }
+
+    /**
+     * Gets the requested resource using the security context of this class.
+     *
+     * @see	    ResourceFinder#getResource(String)
+     */
+    public static URL getResource(final String name) {
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<URL>() {
+		@Override
+		public URL run() {
+		    return rFinder.getResource(name);
+		}
+	    });
+    }
+
+    /**
+     * Gets the requested parameterized {@code String} resource.
+     *
+     * @see	    MessageFinder#getString(String,Object[])
+     */
+    public static String getString(String key, Object... args) {
+	return mFinder.getString(key, args);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/FindingClass.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,33 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+/**
+ * The {@code FindingClass} interface tags a class as one that finds a resource
+ * based on the package of the calling class.
+ */
+public interface FindingClass {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/GnomeUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,176 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.util.*;
+import javax.swing.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+
+public class GnomeUtil {
+    //
+    // Inner classes
+    //
+
+    public static interface GnomeIconProvider {
+	String getVersion();
+
+	String getIconFileName(String name, int height);
+
+	String getMimeIconFileName(String type, String subtype, int height);
+    }
+
+    //
+    // Static data
+    //
+
+    private static List<GnomeIconProvider> providers =
+	new ArrayList<GnomeIconProvider>();
+
+    private static List<GnomeIconProvider> roProviders =
+	Collections.unmodifiableList(providers);
+
+    static {
+	try {
+	    // providers.add(new GnomeIconProviderV2());
+	} catch (NoClassDefFoundError e) {
+	    // Java Gnome version 2 not installed or not in classpath
+	}
+    }
+
+    private static ObjectCache<String, Icon> cache =
+	new ObjectCache<String, Icon>();
+
+    //
+    // Static methods
+    //
+
+    /**
+     * Clear the cache of retrieved {@code Icon}s.
+     */
+    public void clearCache() {
+	synchronized (cache) {
+	    cache.clear();
+	}
+    }
+
+    /**
+     * Gets a Gnome {@code Icon} of the given name and height.
+     *
+     * @param	    name
+     *		    the name of the icon as known to Gnome (e.g. "gtk-cancel")
+     *
+     * @param	    height
+     *		    the preferred height of the icon
+     *
+     * @param	    force
+     *		    whether to resize the retrieved Gnome icon if is not the
+     *		    exact height
+     */
+    public static Icon getIcon(String name, int height, boolean force) {
+	String key = height + ":" + force + ":" + name;
+	Icon icon = cache.get(key);
+	if (icon == null) {
+	    String file = getIconFileName(name, height);
+	    icon = getIconFromFileName(file, height, force);
+	    cache.put(key, icon);
+	}
+	return icon;
+    }
+
+    public static String getIconFileName(String name, int height) {
+	for (GnomeIconProvider provider : providers) {
+	    String file = provider.getIconFileName(name, height);
+	    if (file != null) {
+		return file;
+	    }
+	}
+
+	return null;
+    }
+
+    public static List<GnomeIconProvider> getIconProviders() {
+	return roProviders;
+    }
+
+    /**
+     * Gets a Gnome MIME {@code Icon} of the given type, subtype, and height.
+     *
+     * @param	    type
+     *		    the type portion of the MIME type
+     *
+     * @param	    subtype
+     *		    the subtype portion of the MIME type
+     *
+     * @param	    height
+     *		    the preferred height of the icon
+     *
+     * @param	    force
+     *		    whether to resize the retrieved Gnome icon if is not the
+     *		    exact height
+     */
+    public static Icon getMimeIcon(String type, String subtype, int height,
+	boolean force) {
+
+	String key = height + ":" + force + ":" + type + "/" + subtype;
+	Icon icon = cache.get(key);
+	if (icon == null) {
+	    String file = getMimeIconFileName(type, subtype, height);
+	    icon = getIconFromFileName(file, height, force);
+	    cache.put(key, icon);
+	}
+	return icon;
+    }
+
+    public static String getMimeIconFileName(String type, String subtype,
+	int height) {
+
+	for (GnomeIconProvider provider : providers) {
+	    String file = provider.getMimeIconFileName(type, subtype, height);
+	    if (file != null) {
+		return file;
+	    }
+	}
+
+	return null;
+    }
+
+    //
+    // Private methods
+    //
+
+    private static Icon getIconFromFileName(String file, int height,
+	boolean force) {
+
+	Icon icon = null;
+	if (file != null) {
+	    icon = new ImageIcon(file);
+	    if (force) {
+		icon = IconUtil.ensureIconHeight(icon, height);
+	    }
+	}
+	return icon;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/HelpSetFinder.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,122 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.net.URL;
+import java.util.Locale;
+import javax.help.*;
+
+public class HelpSetFinder extends ItemFinder {
+    /**
+     * Gets the requested help set for the given parameters.
+     *
+     * @param	    loader
+     *		    the {@code ClassLoader} to use, or {@code null} to use the
+     *		    {@code ClassLoader} of the calling class. <addtext>
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code HelpSet}, or {@code null} if no {@code HelpSet} was
+     *		    found
+     *
+     * @exception   HelpSetException
+     *		    if there were problems parsing the helpset
+     */
+    public HelpSet getHelpSet(ClassLoader loader, String name)
+	throws HelpSetException {
+
+	if (loader == null) {
+	    loader = getCallerClass().getClassLoader();
+	}
+
+	URL url = HelpSet.findHelpSet(loader, name);
+	return url == null ? null : new HelpSet(loader, url);
+    }
+
+    /**
+     * Gets the requested help set for the given parameters.
+     *
+     * @param	    loader
+     *		    the {@code ClassLoader} to use, or {@code null} to use the
+     *		    {@code ClassLoader} of the calling class. <addtext>
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @param	    locale
+     *		    the desired locale
+     *
+     * @return	    a {@code HelpSet}, or {@code null} if no {@code HelpSet} was
+     *		    found
+     *
+     * @exception   HelpSetException
+     *		    if there were problems parsing the helpset
+     */
+    public HelpSet getHelpSet(ClassLoader loader, String name, Locale locale)
+	throws HelpSetException {
+
+	if (loader == null) {
+	    loader = getCallerClass().getClassLoader();
+	}
+
+	URL url = HelpSet.findHelpSet(loader, name, locale);
+	return url == null ? null : new HelpSet(loader, url);
+    }
+
+    /**
+     * Gets the requested help set for the given parameters.
+     *
+     * @param	    loader
+     *		    the {@code ClassLoader} to use, or {@code null} to use the
+     *		    {@code ClassLoader} of the calling class. <addtext>
+     *
+     * @param	    shortName
+     *		    the short name of the resource
+     *
+     * @param	    extension
+     *		    the extension of the resource
+     *
+     * @param	    locale
+     *		    the desired locale
+     *
+     * @return	    a {@code HelpSet}, or {@code null} if no {@code HelpSet} was
+     *		    found
+     *
+     * @exception   HelpSetException
+     *		    if there were problems parsing the helpset
+     */
+    public HelpSet getHelpSet(ClassLoader loader, String shortName,
+	String extension, Locale locale) throws HelpSetException {
+
+	if (loader == null) {
+	    loader = getCallerClass().getClassLoader();
+	}
+
+	URL url = HelpSet.findHelpSet(loader, shortName, extension, locale);
+	return url == null ? null : new HelpSet(loader, url);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/IconFinder.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,137 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.net.URL;
+import javax.swing.ImageIcon;
+
+public class IconFinder extends ResourceFinder {
+    //
+    // Instance data
+    //
+
+    private ObjectCache<String, ImageIcon> cache =
+	new ObjectCache<String, ImageIcon>();
+
+    //
+    // IconFinder methods
+    //
+
+    /**
+     * Clear the cache of retrieved {@code ImageIcon}s.
+     */
+    public void clearCache() {
+	synchronized (cache) {
+	    cache.clear();
+	}
+    }
+
+    /**
+     * Return an {@code ImageIcon} for the given resource name.  All packages
+     * in the hierarchy above the given package are searched, using the given
+     * {@code ClassLoader}.  See the class notes for details on the search
+     * algorithm.
+     *
+     * @param	    loader
+     *		    the {@code ClassLoader} to load the resource, or {@code
+     *		    null} to use the system {@code ClassLoader}
+     *
+     * @param	    pkg
+     *		    a point in the package hierarchy to search for the resource
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code URL} object, or {@code null} if no resource with
+     *		    this name is found
+     */
+    public ImageIcon getIcon(ClassLoader loader, String pkg, String name) {
+	URL url = getResource(loader, pkg, name);
+	return url == null ? null : getIcon(url);
+    }
+
+    /**
+     * Return an {@code ImageIcon} for the given resource name.  All packages in
+     * the hierarchy above the given package are searched, using the caller's
+     * {@code ClassLoader}.  See the class notes for details on the search
+     * algorithm.
+     *
+     * @param	    pkg
+     *		    a point in the package hierarchy to search for the resource
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code URL} object, or {@code null} if no resource with
+     *		    this name is found
+     */
+    public ImageIcon getIcon(String pkg, String name) {
+	URL url = getResource(pkg, name);
+	return url == null ? null : getIcon(url);
+    }
+
+    /**
+     * Return an {@code ImageIcon} for the given resource name.  All packages in
+     * the hierarchy above the calling class are searched, using the caller's
+     * {@code ClassLoader}.  See the class notes for details on the search
+     * algorithm.
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code URL} object, or {@code null} if no resource with
+     *		    this name is found
+     */
+    public ImageIcon getIcon(String name) {
+	URL url = getResource(name);
+	return url == null ? null : getIcon(url);
+    }
+
+    //
+    // Private methods
+    //
+
+    /**
+     * Retrieve from cache, or create, an {@code ImageIcon} for the given {@code
+     * URL}.
+     */
+    private ImageIcon getIcon(URL url) {
+	String key = url.toString();
+	ImageIcon icon = null;
+
+	synchronized (cache) {
+	    if (cache.containsKey(key)) {
+		// May be null
+		icon = cache.get(key);
+	    } else {
+		icon = new ImageIcon(url);
+		cache.put(key, icon);
+	    }
+	}
+
+	return icon;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/ItemFinder.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,95 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.security.*;
+
+public class ItemFinder implements FindingClass {
+    //
+    // Inner classes
+    //
+
+    // A number of classes in the JDK return the current thread's class stack
+    // as a Class array, but none exposes this functionality publicly.  The
+    // closest is SecurityManager, whose getClassContext method has protected
+    // access.  Thus this hack.
+    //
+    // Note that java.lang.StackTraceElement is insufficient as it does not
+    // return the actual Class objects in the stack, which are necessary to
+    // retrieve each class's ClassLoader.
+    //
+    // An alternate approach would be to implement getClassContext() as a native
+    // method.
+    private static class MySecurityManager extends SecurityManager {
+	@Override
+	public Class[] getClassContext() {
+	    return super.getClassContext();
+	}
+    }
+
+    //
+    // Static data
+    //
+
+    private static final MySecurityManager sManager = new MySecurityManager();
+    private static final String className = ItemFinder.class.getName();
+
+    //
+    // Static methods
+    //
+
+    public static Class[] getClassContext() {
+	return sManager.getClassContext();
+    }
+
+    /**
+     * Gets the first class under the last {@link FindingClass} in the class
+     * stack.
+     */
+    public static Class getCallerClass() {
+	return AccessController.doPrivileged(
+	    new PrivilegedAction<Class>() {
+		@Override
+		public Class run() {
+		    return getCallerClassImp();
+		}
+	    });
+    }
+
+    //
+    // Private static methods
+    //
+
+    private static Class getCallerClassImp() {
+	Class[] stack = getClassContext();
+	for (int i = stack.length - 2; i >= 0; i--) {
+	    if (FindingClass.class.isAssignableFrom(stack[i])) {
+		return stack[i + 1];
+	    }
+	}
+	return null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/MessageFinder.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,269 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.text.MessageFormat;
+import java.util.*;
+import org.opensolaris.os.vp.util.misc.TextUtil;
+
+public class MessageFinder extends ItemFinder {
+    //
+    // Static data
+    //
+
+    /**
+     * The default base name suffix ("{@code resources.Resources}") to append to
+     * package names when searching for a {@code ResourceBundle}.
+     */
+    public static final String DEFAULT_BASE_NAME_SUFFIX = "resources.Resources";
+
+    //
+    // Instance data
+    //
+
+    // Additional paths to search for resource strings
+    private List<String> addlPaths = new ArrayList<String>();
+    private List<String> roAddlPaths = Collections.unmodifiableList(addlPaths);
+
+    private String baseNameSuffix = DEFAULT_BASE_NAME_SUFFIX;
+    private Locale locale;
+
+    //
+    // MessageFinder methods
+    //
+
+    /**
+     * Add a base path to search for {@code ResourceBundle}s.
+     *
+     * @param	    path
+     *		    a base path suitable for construction of a
+     *		    {@code ResourceBundle}
+     */
+    public void addSearchPath(String path) {
+	synchronized (addlPaths) {
+	    if (addlPaths.indexOf(path) == -1) {
+		addlPaths.add(path);
+	    }
+	}
+    }
+
+    /**
+     * Gets the additional paths to search for {@code ResourceBundle}s.
+     *
+     * @return	    an unmodifiable {@code List}
+     */
+    public List<String> getSearchPaths() {
+	return roAddlPaths;
+    }
+
+    /**
+     * Get the base name suffix that is appended to package names when searching
+     * for a {@code ResourceBundle}.
+     */
+    public String getBaseNameSuffix() {
+	return baseNameSuffix;
+    }
+
+    /**
+     * Gets the {@code Locale} used when retrieving {@code ResourceBundle}s.
+     * The default value is the {@code Locale} returned by {@code
+     * Locale.getDefault()}.
+     */
+    public Locale getLocale() {
+	return locale == null ? Locale.getDefault() : locale;
+    }
+
+    /**
+     * Return a parameterized localized string for the given key.  See the class
+     * notes for details on the search algorithm.
+     *
+     * @param	    loader
+     *		    the {@code ClassLoader} to load the resource, or {@code
+     *		    null} to use the system {@code ClassLoader}
+     *
+     * @param	    pkg
+     *		    a point in the package hierarchy to search for resources, or
+     *		    {@code null} to search only from the top
+     *
+     * @param	    key
+     *		    the identifying key in the {@code ResourceBundle}, which may
+     *		    contain an optional numerical suffix (.[0-9]+) that will be
+     *		    stripped off to form a backup key in case this key is not
+     *		    found
+     *
+     * @param	    args
+     *		    parameters to place into the localized string, per
+     *		    the {@code java.text.MessageFormat} class.
+     *
+     * @return	    a parameterized localized string for the given key, or
+     *		    {@code null} if no such resource is found
+     */
+    public String getString(ClassLoader loader, String pkg, String key,
+	Object... args) {
+
+	Locale locale = getLocale();
+	String suffix = getBaseNameSuffix();
+
+	List<String> paths = getSearchPathsFromPackage(pkg);
+	paths.addAll(getSearchPaths());
+
+	// If key ends with a numerical element, strip it off to form a backup
+	// key in case this key doesn't match
+	List<String> keys = new ArrayList<String>(2);
+	keys.add(key);
+	String altKey = key.replaceFirst("\\.\\d+$", "");
+	if (!altKey.equals(key)) {
+	    keys.add(altKey);
+	}
+
+	for (String path : paths) {
+	    String bundleName = path.isEmpty() ? suffix : (path + "." + suffix);
+
+	    try {
+		ResourceBundle bundle = ResourceBundle.getBundle(
+		    bundleName, locale, loader);
+
+		for (String k : keys) {
+		    try {
+			// Throws a MissingResourceException
+			String value = bundle.getString(k);
+
+			String[] groups = TextUtil.match(value,
+			    "^@forward:(((\\w+\\.)*\\w+):)?((\\w+\\.)*\\w+)");
+			if (groups != null) {
+			    String fPkg = groups[2] == null ? pkg : groups[2];
+			    String fKey = groups[4];
+			    return getString(loader, fPkg, fKey, args);
+			}
+
+			if (args != null) {
+			    value = MessageFormat.format(value, args);
+			}
+			return value;
+
+		    } catch (MissingResourceException ignore) {
+		    }
+		}
+
+	    // Thrown by getBundle
+	    } catch (MissingResourceException ignore) {
+	    }
+	}
+
+	// Track down missing/bad resources during development;
+	// vpanels.debug.messages is a system property containing a regular
+	// expression matching all keys that should NOT be reported when no
+	// message is found.
+	String regex = System.getProperty("vpanels.debug.messages");
+	if (regex != null && !key.matches(regex)) {
+	    System.err.printf("Returning null for key: %s\n", key);
+	    Thread.currentThread().dumpStack();
+	}
+
+	return null;
+    }
+
+    /**
+     * Return a parameterized localized string for the given key.  See the class
+     * notes for details on the search algorithm.
+     *
+     * @param	    pkg
+     *		    a point in the package hierarchy to search for resources
+     *
+     * @param	    key
+     *		    the identifying key in the {@code ResourceBundle}
+     *
+     * @param	    args
+     *		    parameters to place into the localized string, per
+     *		    the {@code java.text.MessageFormat} class.
+     *
+     * @return	    a parameterized localized string for the given key, or
+     *		    {@code null} if no such resource is found
+     */
+    public String getStringFromPackage(String pkg, String key, Object... args) {
+	return getString(getCallerClass().getClassLoader(), pkg, key, args);
+    }
+
+    /**
+     * Return a parameterized localized string for the given key.  All
+     * {@code ResourceBundle}s of the form {@code resources/Resources} in the
+     * package hierarchy above the calling class are searched.
+     *
+     * @param	    key
+     *		    the identifying key in the {@code ResourceBundle}
+     *
+     * @param	    args
+     *		    parameters to place into the localized string, per
+     *		    the {@code java.text.MessageFormat} class.
+     *
+     * @return	    a parameterized localized string for the given key, or
+     *		    {@code null} if no such resource is found
+     */
+    public String getString(String key, Object... args) {
+	Class caller = getCallerClass();
+        return getString(caller.getClassLoader(), caller.getPackage().getName(),
+	    key, args);
+    }
+
+    /**
+     * Set the base name suffix to append to package names when searching for a
+     * {@code ResourceBundle}.	The default value is identified by the {@link
+     * #DEFAULT_BASE_NAME_SUFFIX DEFAULT_BASE_NAME_SUFFIX} static field.
+     */
+    public void setBaseNameSuffix(String baseNameSuffix) {
+	this.baseNameSuffix = baseNameSuffix;
+    }
+
+    /**
+     * Sets the {@code Locale} used when retrieving {@code ResourceBundle}s.
+     *
+     * @param	    locale
+     *		    a {@code Locale} object, or {@code null} to use the
+     *		    default {@code Locale}
+     */
+    public void setLocale(Locale locale) {
+	this.locale = locale;
+    }
+
+    //
+    // Private methods
+    //
+
+    private List<String> getSearchPathsFromPackage(String pkg) {
+	if (pkg == null) {
+	    pkg = "";
+	}
+
+	List<String> paths = new ArrayList<String>();
+	while (!pkg.isEmpty()) {
+	    paths.add(pkg);
+	    pkg = TextUtil.getPackageName(pkg);
+	}
+	paths.add(pkg);
+
+	return paths;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/ObjectCache.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,180 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.net.URL;
+import java.util.*;
+import javax.swing.*;
+
+public class ObjectCache<K, V> extends Thread {
+    //
+    // Inner classes
+    //
+
+    protected static class Element<V> {
+	public long date;
+	public V value;
+    }
+
+    //
+    // Instance data
+    //
+
+    private Map<K, Element<V>> map;
+
+    // 30 seconds
+    private long cleanInterval = 30000;
+
+    // 5 minutes
+    private long ageThreshold = 300000;
+
+    //
+    // Constructors
+    //
+
+    public ObjectCache(boolean start) {
+	map = createUnderlyingMap();
+
+	setDaemon(true);
+	if (start) {
+	    start();
+	}
+    }
+
+    public ObjectCache() {
+	this(true);
+    }
+
+    //
+    // Runnable methods
+    //
+
+    @Override
+    public void run() {
+	while (!Thread.currentThread().interrupted()) {
+	    try {
+		Thread.sleep(getCleanInterval());
+		synchronized (this) {
+		    long oldDate = System.currentTimeMillis() -
+			getAgeThreshold();
+
+		    for (Iterator<K> i = map.keySet().iterator(); i.hasNext();)
+		    {
+			K key = i.next();
+			Element<V> element = map.get(key);
+			if (element.date < oldDate) {
+			    i.remove();
+			}
+		    }
+		}
+	    } catch (InterruptedException e) {
+		interrupt();
+	    }
+	}
+    }
+
+    //
+    // ObjectCache methods
+    //
+
+    public synchronized void clear() {
+	map.clear();
+    }
+
+    public synchronized boolean containsKey(K key) {
+	return map.containsKey(key);
+    }
+
+    protected Map<K, Element<V>> createUnderlyingMap() {
+	return new HashMap<K, Element<V>>();
+    }
+
+    public synchronized V get(K key) {
+	V value = null;
+	Element<V> element = map.get(key);
+	if (element != null)  {
+	    element.date = System.currentTimeMillis();
+	    value = element.value;
+	}
+	return value;
+    }
+
+    /**
+     * Gets the threshold to determine whether an object in the cache is old and
+     * can be removed.  Objects in the cache that have not been retrieved within
+     * this amount will be removed by the cleaner thread.  The default is 300000
+     * (5 minutes).
+     */
+    public long getAgeThreshold() {
+	return ageThreshold;
+    }
+
+    /**
+     * Gets the number of milliseconds that the cache cleaning thread should
+     * sleep between cleanings.  The default is 3000 (30 seconds).
+     */
+    public long getCleanInterval() {
+	return cleanInterval;
+    }
+
+    public synchronized boolean isEmpty() {
+	return map.isEmpty();
+    }
+
+    public synchronized V put(K key, V value) {
+	Element<V> element = new Element<V>();
+	element.date = System.currentTimeMillis();
+	element.value = value;
+	map.put(key, element);
+	return value;
+    }
+
+    public synchronized V remove(K key) {
+	Element<V> element = map.remove(key);
+	return element == null ? null : element.value;
+    }
+
+    /**
+     * Gets the threshold to determine whether an object in the cache is old and
+     * can be removed.  Objects in the cache that have not been retrieved within
+     * this amount will be removed by the cleaner thread.
+     */
+    public void setAgeThreshold(long ageThreshold) {
+	this.ageThreshold = ageThreshold;
+    }
+
+    /**
+     * Gets the number of milliseconds that the cache cleaning thread should
+     * sleep between cleanings.
+     */
+    public void setCleanInterval(long cleanInterval) {
+	this.cleanInterval = cleanInterval;
+    }
+
+    public synchronized int size() {
+	return map.size();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/misc/finder/ResourceFinder.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,156 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.util.misc.finder;
+
+import java.net.URL;
+import java.util.*;
+
+public class ResourceFinder extends ItemFinder {
+    //
+    // Instance data
+    //
+
+    // Additional paths to search
+    private Set<String> addlPaths = new HashSet<String>();
+
+    //
+    // ResourceFinder methods
+    //
+
+    /**
+     * Add a base path to search for resources.
+     *
+     * @param	    path
+     *		    a base path suitable for construction of a
+     *		    {@code String}
+     */
+    public void addSearchPath(String path) {
+	// Remove leading '/'s, canonicalize trailing '/'s
+	path = path.replaceFirst("^/+", "").replaceFirst("/*$", "/");
+
+	synchronized (addlPaths) {
+	    addlPaths.add(path);
+	}
+    }
+
+    /**
+     * Return a resource URL for the given resource name.  All packages in the
+     * hierarchy above the given package are searched, using the given {@code
+     * ClassLoader}.  See the class notes for details on the search algorithm.
+     *
+     * @param	    loader
+     *		    the {@code ClassLoader} to load the resource, or {@code
+     *		    null} to use the system {@code ClassLoader}
+     *
+     * @param	    pkg
+     *		    a point in the package hierarchy to search for the resource
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code URL} object, or {@code null} if no resource with
+     *		    this name is found
+     */
+    public URL getResource(ClassLoader loader, String pkg, String name) {
+	// Remove leading/trailing '/'s
+	name = name.replaceFirst("^/+|/+$", "");
+
+	// Convert package to resource directory
+	String dir = pkg == null ? "" : pkg.replace('.', '/');
+	if (!dir.isEmpty()) {
+	    dir += "/";
+	}
+
+	// First search up the package hierarchy
+	while (true) {
+	    String path = dir + name;
+
+	    URL url = loader == null ?
+		ClassLoader.getSystemResource(path) :
+		loader.getResource(path);
+	    if (url != null) {
+		return url;
+	    }
+
+	    if (dir.isEmpty()) {
+		break;
+	    } else {
+		dir = dir.replaceFirst("[^/]*/$", "");
+	    }
+	}
+
+	// Next search any additional paths
+	synchronized (addlPaths) {
+	    for (String path : addlPaths) {
+		path += name;
+		URL url = loader == null ?
+		    ClassLoader.getSystemResource(path) :
+		    loader.getResource(path);
+		if (url != null) {
+		    return url;
+		}
+	    }
+	}
+
+	return null;
+    }
+
+    /**
+     * Return a resource URL for the given resource name.  All packages in the
+     * hierarchy above the given package are searched, using the caller's {@code
+     * ClassLoader}.  See the class notes for details on the search algorithm.
+     *
+     * @param	    pkg
+     *		    a point in the package hierarchy to search for the resource
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code URL} object, or {@code null} if no resource with
+     *		    this name is found
+     */
+    public URL getResource(String pkg, String name) {
+	return getResource(getCallerClass().getClassLoader(), pkg, name);
+    }
+
+    /**
+     * Return a resource URL for the given resource name.  All packages in the
+     * hierarchy above the calling class are searched, using the caller's
+     * {@code ClassLoader}.  See the class notes for details on the search
+     * algorithm.
+     *
+     * @param	    name
+     *		    the name of the resource
+     *
+     * @return	    a {@code URL} object, or {@code null} if no resource with
+     *		    this name is found
+     */
+    public URL getResource(String name) {
+	Class caller = getCallerClass();
+        return getResource(caller.getClassLoader(),
+	    caller.getPackage().getName(), name);
+    }
+}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/BreadCrumbs.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/BreadCrumbs.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -30,7 +29,8 @@
 import java.util.NoSuchElementException;
 import javax.swing.*;
 import javax.swing.event.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Stackable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/BrowsableFilePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/BrowsableFilePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -30,8 +29,9 @@
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.plaf.ComponentUI;
+import org.opensolaris.os.vp.util.misc.IOUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.*;
 
 @SuppressWarnings({"serial"})
 public class BrowsableFilePanel extends JPanel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/DisablableTabTabbedPane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/DisablableTabTabbedPane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -29,8 +28,8 @@
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 @SuppressWarnings({"serial"})
 public class DisablableTabTabbedPane extends JTabbedPane
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/EditableTablePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/EditableTablePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -32,7 +31,7 @@
 import javax.swing.*;
 import javax.swing.event.*;
 import javax.swing.table.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/GUIUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/GUIUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -35,6 +34,7 @@
 import javax.swing.*;
 import javax.swing.border.Border;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class GUIUtil {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/HintTextField.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/HintTextField.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -30,7 +29,7 @@
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.text.Document;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/InfoLabel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/InfoLabel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
 
 import javax.swing.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.*;
 
 @SuppressWarnings({"serial"})
 public class InfoLabel extends JLabel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/ListSelector.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/ListSelector.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -30,7 +29,7 @@
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.event.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/ScaledIconPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/ScaledIconPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
 
 import java.awt.*;
 import javax.swing.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class ScaledIconPanel extends JPanel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/SettingsButtonBar.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/SettingsButtonBar.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
@@ -31,7 +30,7 @@
 import java.util.*;
 import java.util.List;
 import javax.swing.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.*;
 
 @SuppressWarnings({"serial"})
 public class SettingsButtonBar extends SettingsToolBar {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/ThrowableCollapsiblePane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/ThrowableCollapsiblePane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing;
 
 import java.awt.*;
 import javax.swing.JScrollPane;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * The {@code ThrowableCollapsiblePane} class displays a {@code Throwable}
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/glass/BusyGlassPane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/glass/BusyGlassPane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.glass;
@@ -30,7 +29,7 @@
 import javax.swing.*;
 import javax.swing.border.*;
 import org.jdesktop.animation.timing.Animator;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/propinfo/EnabledPropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/propinfo/EnabledPropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -25,7 +25,8 @@
 
 package org.opensolaris.os.vp.util.swing.propinfo;
 
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Enableable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class EnabledPropInfo<M> extends AbstractSwingPropInfo<M, String> {
     //
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/propinfo/SizePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/propinfo/SizePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,8 @@
 import javax.swing.JTable;
 import javax.swing.table.*;
 import org.opensolaris.os.vp.util.common.propinfo.ReflectionPropInfo;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.DataSizeUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SizePropInfo<M> extends ReflectionPropInfo<M, Long>
     implements SwingPropInfo<M, Long> {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/AnalogClock.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/AnalogClock.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
@@ -34,7 +33,7 @@
 import java.util.Calendar;
 import javax.swing.*;
 import org.jdesktop.animation.timing.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/CalendarBrowser.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/CalendarBrowser.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
@@ -34,9 +33,9 @@
 import javax.swing.border.Border;
 import javax.swing.event.*;
 import javax.swing.table.JTableHeader;
+import org.opensolaris.os.vp.util.misc.finder.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.*;
 
 @SuppressWarnings({"serial"})
 public class CalendarBrowser extends JPanel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/CenturyTableModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/CenturyTableModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
 
 import java.text.*;
 import java.util.Calendar;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class CenturyTableModel extends CalendarTableModel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/DecadeTableModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/DecadeTableModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
 
 import java.text.*;
 import java.util.Calendar;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class DecadeTableModel extends CalendarTableModel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/MillenniumTableModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/MillenniumTableModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
 
 import java.text.*;
 import java.util.Calendar;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class MillenniumTableModel extends CalendarTableModel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/MonthTableModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/MonthTableModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,15 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
 
 import java.text.*;
 import java.util.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class MonthTableModel extends CalendarTableModel {
--- a/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/YearTableModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/util/org/opensolaris/os/vp/util/swing/time/YearTableModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.util.swing.time;
 
 import java.text.*;
 import java.util.Calendar;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class YearTableModel extends CalendarTableModel {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelClassLoader.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,174 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.client.common;
+
+import java.io.*;
+import java.lang.reflect.InvocationTargetException;
+import java.net.*;
+import java.security.*;
+import java.util.*;
+import java.util.regex.*;
+
+public class PanelClassLoader extends URLClassLoader {
+    //
+    // Static data
+    //
+
+    private static Set<Permission> permSet = new HashSet<Permission>();
+    private static Class[] ARGS_NAME = { String.class };
+    private static Class[] ARGS_NAME_ACTIONS = { String.class, String.class };
+
+    //
+    // Constructors
+    //
+
+    public PanelClassLoader(URL[] urls) {
+	super(urls);
+    }
+
+    //
+    // SecureClassLoader methods
+    //
+
+    @Override
+    protected PermissionCollection getPermissions(CodeSource codeSource) {
+	PermissionCollection perms = super.getPermissions(codeSource);
+	for (Permission perm : permSet) {
+	    perms.add(perm);
+	}
+	return perms;
+    }
+
+    //
+    // Static methods
+    //
+
+    public static void loadPermissions(URL url) throws IOException,
+	PermissionParseException {
+
+	BufferedReader in = new BufferedReader(new InputStreamReader(
+	    url.openStream()));
+	String line;
+	Pattern ignore = Pattern.compile("^\\s*(//.*)?$");
+	Pattern valid = Pattern.compile("^\\s*permission\\s+(\\S+)" +
+	    "(\\s+\"([^\"]*)\"(,\\s+\"([^\"]*)\")?)?;$");
+
+	Set<Permission> perms = new HashSet<Permission>();
+
+	while ((line = in.readLine()) != null) {
+	    if (ignore.matcher(line).matches()) {
+		continue;
+	    }
+
+	    Matcher matcher = valid.matcher(line);
+	    if (!matcher.matches()) {
+                throw new PermissionParseException("invalid syntax: " + line);
+	    }
+
+	    int nGroups = matcher.groupCount();
+	    String type = matcher.group(1);
+	    String name = expand(nGroups >= 3 ? matcher.group(3) : null);
+	    String actions = expand(nGroups >= 5 ? matcher.group(5) : null);
+
+	    try {
+		Permission perm = getPermission(type, name, actions);
+		perms.add(perm);
+	    } catch (Throwable e) {
+		String message = String.format(
+		    "could not instantiate permission: " +
+		    "type=%s name=%s actions=", type, name, actions);
+		throw new PermissionParseException(message, e);
+	    }
+	}
+
+	in.close();
+
+	permSet.addAll(perms);
+    }
+
+    //
+    // Private static methods
+    //
+
+    private static String expand(String str) {
+	if (str == null) {
+	    return null;
+	}
+
+	StringBuffer result = new StringBuffer();
+	Pattern re = Pattern.compile("^(.*?)\\$\\{([^}]*)\\}(.*)");
+	while (true) {
+	    Matcher matcher = re.matcher(str);
+	    if (matcher.matches()) {
+		result.append(matcher.group(1));
+		String property = matcher.group(2);
+		if (property.equals("/")) {
+		    property = "file.separator";
+		}
+		String value = System.getProperty(property);
+		if (value != null) {
+		    result.append(value);
+		}
+		str = matcher.group(3);
+	    } else {
+		result.append(str);
+		break;
+	    }
+	}
+	return result.toString();
+    }
+
+    @SuppressWarnings({"fallthrough"})
+    private static Permission getPermission(String type, String name,
+        String actions) throws ClassNotFoundException, InstantiationException,
+        IllegalAccessException, NoSuchMethodException, InvocationTargetException
+    {
+        Class<?> clazz = Class.forName(type);
+	int nArgs = actions != null ? 2 : name != null ? 1 : 0;
+
+	switch (nArgs) {
+	    case 0:
+		try {
+		    return (Permission)clazz.getConstructor().newInstance();
+		} catch (NoSuchMethodException e) {
+		}
+
+	    case 1:
+		try {
+		    return (Permission)clazz.getConstructor(ARGS_NAME).
+			newInstance(name);
+		} catch (NoSuchMethodException e) {
+		}
+
+	    case 2:
+		return (Permission)clazz.getConstructor(ARGS_NAME_ACTIONS).
+		    newInstance(name, actions);
+	}
+
+	assert false;
+	return null;
+    }
+}
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelDescriptorFactory.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelDescriptorFactory.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,14 +26,15 @@
 package org.opensolaris.os.vp.client.common;
 
 import java.lang.reflect.*;
-import java.net.*;
+import java.net.URL;
+import java.security.*;
 import java.util.List;
 import java.util.logging.*;
 import org.opensolaris.os.vp.common.panel.*;
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public abstract class PanelDescriptorFactory {
     //
@@ -183,7 +184,15 @@
 		String className = panel.getPanelDescriptorClassName();
 
 		try {
-		    ClassLoader loader = new URLClassLoader(urls);
+		    final URL[] copy = urls.clone();
+		    ClassLoader loader = AccessController.doPrivileged(
+			new PrivilegedAction<ClassLoader>() {
+			    @Override
+			    public ClassLoader run() {
+				return new PanelClassLoader(copy);
+			    }
+			});
+
 		    clazz = loader.loadClass(className);
 
 		    if (!PanelDescriptor.class.isAssignableFrom(clazz)) {
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelResourceManager.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PanelResourceManager.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,13 +26,15 @@
 package org.opensolaris.os.vp.client.common;
 
 import java.io.*;
-import java.net.URL;
+import java.net.*;
+import java.security.*;
 import java.util.*;
 import javax.management.MBeanServerConnection;
 import org.opensolaris.os.vp.common.panel.*;
 import org.opensolaris.os.vp.panel.common.ConnectionInfo;
 import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public abstract class PanelResourceManager {
     //
@@ -103,8 +105,15 @@
 		fileName = isLocal ?
 		    descriptor.getLocalFile() : getLocalCacheName(info, url);
 
-		File file = new File(fileName);
-		urls.add(file.toURI().toURL());
+		final File file = new File(fileName);
+		URI uri = AccessController.doPrivileged(
+		    new PrivilegedAction<URI>() {
+			@Override
+			public URI run() {
+			    return file.toURI();
+			}
+		    });
+		urls.add(uri.toURL());
 
 		if (!isLocal) {
 		    boolean download = true;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/PermissionParseException.java	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,43 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ */
+
+package org.opensolaris.os.vp.client.common;
+
+public class PermissionParseException extends Exception {
+    public PermissionParseException() {
+    }
+
+    public PermissionParseException(String message) {
+	super(message);
+    }
+
+    public PermissionParseException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public PermissionParseException(Throwable cause) {
+        super(cause);
+    }
+}
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/RadLoginManager.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/common/RadLoginManager.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.common;
@@ -42,6 +41,7 @@
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public abstract class RadLoginManager {
     //
@@ -52,9 +52,9 @@
 	Block initiate(LoginRequest request, AuthenticatorMXBean auth)
 	    throws ActionAbortedException, ObjectException;
 
-        void prompt(LoginRequest request, List<LoginProperty> properties,
-            LoginData data) throws ActionAbortedException,
-            ActionRegressedException;
+	void prompt(LoginRequest request, List<LoginProperty> properties,
+	    LoginData data) throws ActionAbortedException,
+	    ActionRegressedException;
     }
 
     private class LoginPrompter implements AuthPrompter {
@@ -68,9 +68,9 @@
 	}
 
 	@Override
-        public void prompt(LoginRequest request, List<LoginProperty> properties,
-            LoginData data) throws ActionAbortedException,
-            ActionRegressedException {
+	public void prompt(LoginRequest request, List<LoginProperty> properties,
+	    LoginData data) throws ActionAbortedException,
+	    ActionRegressedException {
 
 	    try {
 		promptForUserAuth(request, properties);
@@ -91,9 +91,9 @@
 	}
 
 	@Override
-        public void prompt(LoginRequest request, List<LoginProperty> properties,
-            LoginData data) throws ActionAbortedException,
-            ActionRegressedException {
+	public void prompt(LoginRequest request, List<LoginProperty> properties,
+	    LoginData data) throws ActionAbortedException,
+	    ActionRegressedException {
 
 	    try {
 		promptForRoleAuth(request, properties);
@@ -138,9 +138,9 @@
 			AuthenticatorMXBean.class);
 		} catch (IOException e) {
 		    request.getMessages().add(new DialogMessage(
-                        Finder.getString("login.err.io",
-                        request.getHost().getValue()),
-                        JOptionPane.ERROR_MESSAGE));
+			Finder.getString("login.err.io",
+			request.getHost().getValue()),
+			JOptionPane.ERROR_MESSAGE));
 		}
 	    }
 
@@ -291,9 +291,9 @@
      *		    editability of each core {@link LoginProperty}
      *
      * @param	    current
-     *              if non-{@code null}, ensures that the user is aware of
-     *              changes in host/user/role (preventing the use of cached
-     *              connections without the user's knowledge)
+     *		    if non-{@code null}, ensures that the user is aware of
+     *		    changes in host/user/role (preventing the use of cached
+     *		    connections without the user's knowledge)
      *
      * @exception   ActionAbortedException
      *		    if the action is aborted by the user
@@ -322,10 +322,10 @@
 	ConnectionInfo userInfo = data.getUserConnectionInfo();
 	ConnectionInfo roleInfo = data.getRoleConnectionInfo();
 
-        // To prevent rogue connections, if the chosen connection has a
-        // different host/user/role than the current connection, ensure that the
-        // user has already acknowledged it at some point in the authentication
-        // process.  If not, prompt for acknowledgement now.
+	// To prevent rogue connections, if the chosen connection has a
+	// different host/user/role than the current connection, ensure that the
+	// user has already acknowledged it at some point in the authentication
+	// process.  If not, prompt for acknowledgement now.
 	if (current != null &&
 	    (roleInfo == null ?
 	    (!data.isUserAcknowledged() &&
@@ -420,8 +420,8 @@
      * given request.
      *
      * @param	    request
-     *              the {@link LoginRequest} encapsulating the preset values of
-     *              each core {@link LoginProperty}
+     *		    the {@link LoginRequest} encapsulating the preset values of
+     *		    each core {@link LoginProperty}
      *
      * @exception   ActionAbortedException
      *		    if the user cancels the operation
@@ -478,8 +478,8 @@
      *		    if the chooses to re-edit the host or user fields
      */
     protected abstract void promptForRole(LoginRequest request,
-        List<String> roles) throws ActionAbortedException,
-        ActionRegressedException;
+	List<String> roles) throws ActionAbortedException,
+	ActionRegressedException;
 
     /**
      * Prompts the user to enter data for each of the given {@link
@@ -499,8 +499,8 @@
      *		    if the chooses to re-edit the role field
      */
     protected abstract void promptForRoleAuth(LoginRequest request,
-        List<LoginProperty> properties) throws ActionAbortedException,
-        ActionRegressedException;
+	List<LoginProperty> properties) throws ActionAbortedException,
+	ActionRegressedException;
 
     /**
      * Prompts the user to enter data for each of the given {@link
@@ -529,8 +529,8 @@
 
     @SuppressWarnings({"fallthrough"})
     private boolean authConverse(LoginRequest request, AuthenticatorMXBean auth,
-        AuthPrompter prompter, LoginData data) throws ActionAbortedException,
-        ActionRegressedException {
+	AuthPrompter prompter, LoginData data) throws ActionAbortedException,
+	ActionRegressedException {
 
 	List<DialogMessage> messages = request.getMessages();
 	try {
@@ -788,7 +788,7 @@
 		AuthenticatorMXBean auth = data.getAuthBean(request);
 		if (auth != null) {
 		    try {
-                        if (authConverse(request, auth, new LoginPrompter(),
+			if (authConverse(request, auth, new LoginPrompter(),
 			    data)) {
 			    return;
 			}
@@ -798,8 +798,8 @@
 			    user.setErrored(true);
 			}
 
-                        // Add generic auth failure message if not already
-                        // provided by server
+			// Add generic auth failure message if not already
+			// provided by server
 			if (messages.isEmpty()) {
 			    messages.add(new DialogMessage(Finder.getString(
 				"login.err.user.auth", hostVal, userVal),
@@ -882,7 +882,7 @@
 			auth = data.getAuthBean(request);
 			if (auth != null) {
 			    auth.redeemToken(userVal, token);
-                            if (authConverse(request, auth, new RolePrompter(),
+			    if (authConverse(request, auth, new RolePrompter(),
 				data)) {
 				return;
 			    }
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/App.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/App.java	Thu Oct 21 16:28:55 2010 -0400
@@ -36,6 +36,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.util.cli.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * The {@code App} class is a thread that listens for UDS connections from other
@@ -272,8 +273,8 @@
 		}
 	    }
 	} catch (IOException e) {
-	    String message = Finder.getString("init.log.error", fileName);
-	    Logger.getLogger(App.class.getName()).log(Level.WARNING, message);
+	    Logger.getLogger(App.class.getName()).log(Level.WARNING,
+		"unable to create log file: " + fileName);
 	}
     }
 
@@ -620,7 +621,28 @@
 	    }
 	}
 
-	// Launch UI...
+	try {
+	    URL policy = Finder.getResource("panel.policy");
+	    if (policy == null) {
+		throw new IOException("panel.policy not found");
+	    }
+	    PanelClassLoader.loadPermissions(policy);
+	} catch (IOException e) {
+	    Logger.getLogger(App.class.getName()).log(Level.SEVERE,
+		"unable to read panel.policy", e);
+	    String message = Finder.getString("init.error.security.io");
+	    System.err.println(message);
+	    System.exit(1);
+	} catch (PermissionParseException e) {
+	    Logger.getLogger(App.class.getName()).log(Level.SEVERE,
+		"unable to parse panel.policy", e);
+	    String message = Finder.getString("init.error.security.parse");
+	    System.err.println(message);
+	    System.exit(1);
+	}
+
+	System.setSecurityManager(new SecurityManager());
+
 	App app = new App();
 	app.newInstance(properties, uri);
 
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/AppInstance.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/AppInstance.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,6 +28,7 @@
 import java.awt.Window;
 import java.awt.event.*;
 import java.net.URL;
+import java.security.*;
 import java.util.*;
 import java.util.logging.*;
 import javax.help.*;
@@ -36,6 +37,7 @@
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
 import org.opensolaris.os.vp.panel.common.control.*;
+import org.opensolaris.os.vp.panel.common.control.InvalidParameterException;
 import org.opensolaris.os.vp.panel.common.view.*;
 import org.opensolaris.os.vp.panel.swing.control.SwingNavigator;
 
@@ -163,33 +165,30 @@
     }
 
     @Override
-    public void closeInstance(boolean isCancel) throws ActionAbortedException {
-	JDialog dialog = loginManager.getDialog();
-	if (dialog != null && dialog.isVisible()) {
-	    throw new ActionAbortedException();
-	}
+    public void closeInstance(final boolean isCancel)
+	throws ActionAbortedException {
 
-	try {
-	    // Unwind navigation stack to force user to handle pending changes
-	    navigator.goToAsyncAndWait(isCancel, null);
+	// Using PrivilegedExceptionAction offers no compile-time checking of
+	// thrown Exceptions, so use this mildly awkward method instead
 
-	} catch (NavigationAbortedException e) {
-	    throw new ActionAbortedException(e);
+	final ActionAbortedException[] err = new ActionAbortedException[1];
 
-	} catch (InvalidAddressException e) {
-	    // Should not be possible
-
-	} catch (InvalidParameterException e) {
-	    // Should not be possible
+	AccessController.doPrivileged(
+	    new PrivilegedAction<Object>() {
+		@Override
+		public Object run() {
+		    try {
+			closeInstanceImp(isCancel);
+		    } catch (ActionAbortedException e) {
+			err[0] = e;
+		    }
+		    return null;
+		}
+	    });
 
-	} catch (EmptyNavigationStackException e) {
-	    // Should not be possible
-
-	} catch (RootNavigableNotControlException e) {
-	    // Should not be possible
+	if (err[0] != null) {
+	    throw err[0];
 	}
-
-	close();
     }
 
     @Override
@@ -235,43 +234,29 @@
     }
 
     @Override
-    public ClientContext login(LoginRequest request, boolean forceNewContext)
-	throws ActionAbortedException {
+    public ClientContext login(final LoginRequest request,
+	final boolean forceNewContext) throws ActionAbortedException {
 
-	if (request == null) {
-	    LoginProperty host = new LoginProperty(info.getHost(), false);
-	    LoginProperty user = new LoginProperty(info.getUser(), false);
-	    LoginProperty role = new LoginProperty(info.getRole(), false);
-	    request = new LoginRequest(host, user, role);
-	}
+	// Using PrivilegedExceptionAction offers no compile-time checking of
+	// thrown Exceptions, so use this mildly awkward method instead
 
-	ConnectionInfo[] infos = loginManager.getConnectionInfo(
-	    request, this.info);
-	ConnectionInfo info;
-	ConnectionInfo userInfo = null;
+	final ActionAbortedException[] err = new ActionAbortedException[1];
 
-	if (infos[1] == null) {
-	    info = infos[0];
-	} else {
-	    info = infos[1];
-	    userInfo = infos[0];
-	}
-
-	ClientContext context;
+	ClientContext context = AccessController.doPrivileged(
+	    new PrivilegedAction<ClientContext>() {
+		@Override
+		public ClientContext run() {
+		    try {
+			return loginImp(request, forceNewContext);
+		    } catch (ActionAbortedException e) {
+			err[0] = e;
+		    }
+		    return null;
+		}
+	    });
 
-	if (forceNewContext || (this.info != null &&
-	    !this.info.matchesHost(info.getHost()))) {
-
-	    context = new AppInstance(app, hints, info);
-	} else {
-	    setConnectionInfo(info);
-	    context = this;
-	}
-
-	if (userInfo != null) {
-	    // Add user-based connection to ConnectionManager in case it isn't
-	    // already there
-	    app.getConnectionManager().add(userInfo, null);
+	if (err[0] != null) {
+	    throw err[0];
 	}
 
 	return context;
@@ -347,6 +332,37 @@
     // Private methods
     //
 
+    private void closeInstanceImp(boolean isCancel)
+	throws ActionAbortedException {
+
+	JDialog dialog = loginManager.getDialog();
+	if (dialog != null && dialog.isVisible()) {
+	    throw new ActionAbortedException();
+	}
+
+	try {
+	    // Unwind navigation stack to force user to handle pending changes
+	    navigator.goToAsyncAndWait(isCancel, null);
+
+	} catch (NavigationAbortedException e) {
+	    throw new ActionAbortedException(e);
+
+	} catch (InvalidAddressException e) {
+	    // Should not be possible
+
+	} catch (InvalidParameterException e) {
+	    // Should not be possible
+
+	} catch (EmptyNavigationStackException e) {
+	    // Should not be possible
+
+	} catch (RootNavigableNotControlException e) {
+	    // Should not be possible
+	}
+
+	close();
+    }
+
     private void createHelp() {
 	String helpSetName =
 	    getClass().getPackage().getName().replaceAll("\\.", "/") +
@@ -383,4 +399,46 @@
 	} catch (NavigationException unlikely) {
 	}
     }
+
+    private ClientContext loginImp(LoginRequest request,
+	boolean forceNewContext) throws ActionAbortedException {
+
+	if (request == null) {
+	    LoginProperty host = new LoginProperty(info.getHost(), false);
+	    LoginProperty user = new LoginProperty(info.getUser(), false);
+	    LoginProperty role = new LoginProperty(info.getRole(), false);
+	    request = new LoginRequest(host, user, role);
+	}
+
+	ConnectionInfo[] infos = loginManager.getConnectionInfo(
+	    request, this.info);
+	ConnectionInfo info;
+	ConnectionInfo userInfo = null;
+
+	if (infos[1] == null) {
+	    info = infos[0];
+	} else {
+	    info = infos[1];
+	    userInfo = infos[0];
+	}
+
+	ClientContext context;
+
+	if (forceNewContext || (this.info != null &&
+	    !this.info.matchesHost(info.getHost()))) {
+
+	    context = new AppInstance(app, hints, info);
+	} else {
+	    setConnectionInfo(info);
+	    context = this;
+	}
+
+	if (userInfo != null) {
+	    // Add user-based connection to ConnectionManager in case it isn't
+	    // already there
+	    app.getConnectionManager().add(userInfo, null);
+	}
+
+	return context;
+    }
 }
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/AppProperties.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/AppProperties.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.swing;
@@ -30,8 +29,9 @@
 import java.io.IOException;
 import java.util.*;
 import javax.swing.UIManager;
+import org.opensolaris.os.vp.util.misc.TypedPropertiesWrapper;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
-import org.opensolaris.os.vp.util.misc.*;
 
 @SuppressWarnings({"serial"})
 public class AppProperties extends Properties {
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificateCollapsiblePane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificateCollapsiblePane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.swing;
 
 import java.awt.*;
 import javax.swing.JScrollPane;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificateEditorPane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificateEditorPane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.swing;
@@ -30,7 +29,8 @@
 import java.security.cert.*;
 import java.security.cert.Certificate;
 import javax.swing.JEditorPane;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.TextUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class CertificateEditorPane extends JEditorPane {
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificatePane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/CertificatePane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.swing;
@@ -30,7 +29,8 @@
 import java.util.*;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.DialogMessage;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SettingsButtonBar;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/LoginDialog.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/LoginDialog.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.swing;
@@ -29,9 +28,8 @@
 import java.awt.*;
 import java.awt.event.*;
 import java.beans.*;
-import java.util.List;
 import javax.swing.WindowConstants;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.ExtDialog;
 import org.opensolaris.os.vp.util.swing.glass.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/LoginPane.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/LoginPane.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.client.swing;
@@ -34,7 +33,8 @@
 import javax.swing.text.JTextComponent;
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.action.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.DialogMessage;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/SwingErrorPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/SwingErrorPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -36,7 +36,7 @@
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * Implementation of {@code ErrorPanelDescriptor} for the Swing client.
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/SwingPanelDescriptorFactory.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/SwingPanelDescriptorFactory.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * A subclass of {@code PanelDescriptorFactory} which provides Swing-specific
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/panel.policy	Thu Oct 21 16:28:55 2010 -0400
@@ -0,0 +1,50 @@
+//
+// CDDL HEADER START
+//
+// The contents of this file are subject to the terms of the
+// Common Development and Distribution License (the "License").
+// You may not use this file except in compliance with the License.
+//
+// You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+// or http://www.opensolaris.org/os/licensing.
+// See the License for the specific language governing permissions
+// and limitations under the License.
+//
+// When distributing Covered Code, include this CDDL HEADER in each
+// file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+// If applicable, add the following below this CDDL HEADER, with the
+// fields enclosed by brackets "[]" replaced with your own identifying
+// information: Portions Copyright [yyyy] [name of copyright owner]
+//
+// CDDL HEADER END
+//
+
+//
+// Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+//
+
+//
+// Establish the permissions granted to all panels.
+//
+// When running as a desktop app, these permissions could just as easily be
+// granted in /usr/share/vpanels/java.policy.  However, when running as webstart
+// app, that file will not be available.  So define them here to be read by the
+// PanelClassLoader class at runtime, regardless of the method used to launch
+// vp.
+//
+
+permission java.lang.RuntimePermission "getProtectionDomain";
+permission java.lang.RuntimePermission "modifyThreadGroup";
+
+permission java.util.PropertyPermission "vpanels.debug.*", "read";
+
+// Debateable whether this should be allowed -- it might be useful to
+// preferences-managing panels
+permission java.util.PropertyPermission "user.name", "read";
+
+permission java.awt.AWTPermission "*";
+
+// Needed by the remote JFileChooser (see 17276)
+permission java.util.PropertyPermission "user.home", "read";
+permission java.io.FilePermission "${user.home}", "read";
+permission java.io.FilePermission "${user.home}/-", "read";
--- a/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/resources/Resources.properties	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/client/org/opensolaris/os/vp/client/swing/resources/Resources.properties	Thu Oct 21 16:28:55 2010 -0400
@@ -23,7 +23,8 @@
 # Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 #
 
-init.log.error = Unable to create log file: {0}.  Using standard error instead.
+init.error.security.io = unable to read panel security policy, refusing to continue
+init.error.security.parse = unable to parse panel security policy, refusing to continue
 
 login.title = Log In
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/action/DefaultStructuredAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/action/DefaultStructuredAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,6 +31,7 @@
 import org.opensolaris.os.vp.common.panel.auth.*;
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * The {@code DefaultStructuredAction} is a {@link StructuredAction} that uses a
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/control/Control.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/control/Control.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.common.control;
@@ -30,7 +29,7 @@
 import java.net.*;
 import java.util.*;
 import org.opensolaris.os.vp.panel.common.action.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.ResourceFinder;
 
 /**
  * The {@code Control} class encapsulates the control over all aspects of a
@@ -709,8 +708,8 @@
      * page if the section is invalid.
      */
     public static URL buildHelpURL(Class clazz, String page, String section) {
-	URL url = Finder.getResource(clazz.getClassLoader(),
-	    clazz.getPackage().getName(), page);
+	URL url = new ResourceFinder().getResource(
+	    clazz.getClassLoader(), clazz.getPackage().getName(), page);
 
 	if (section != null) {
 	    try {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/model/AbstractManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/model/AbstractManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,6 +30,7 @@
 import java.util.logging.Logger;
 import org.opensolaris.os.vp.util.misc.*;
 import org.opensolaris.os.vp.util.misc.event.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 
 public abstract class AbstractManagedObject<C extends ManagedObject>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/model/AbstractPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/model/AbstractPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.common.model;
 
-import java.net.URL;
 import javax.help.*;
 import org.opensolaris.os.vp.panel.common.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public abstract class AbstractPanelDescriptor<C extends ManagedObject>
     extends AbstractManagedObject<C> implements PanelDescriptor<C> {
@@ -139,9 +138,7 @@
 			replaceAll("\\.", "/") + "/help/app";
 
 		    ClassLoader loader = getClass().getClassLoader();
-		    URL url = HelpSet.findHelpSet(loader, helpSetName);
-		    helpSet = new HelpSet(loader, url);
-
+		    helpSet = Finder.getHelpSet(loader, helpSetName);
 		} catch (HelpSetException ignore) {
 		}
 	    }
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/InstanceManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/InstanceManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,8 @@
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObjectStatus;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Enableable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class InstanceManagedObject extends SmfManagedObject
     implements Enableable {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/InstanceStatistics.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/InstanceStatistics.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,8 +27,8 @@
 
 import java.beans.PropertyChangeEvent;
 import org.opensolaris.os.vp.panel.common.model.*;
-import org.opensolaris.os.vp.util.misc.Finder;
 import org.opensolaris.os.vp.util.misc.event.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class InstanceStatistics
     extends ManagedObjectMonitor<InstanceManagedObject>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyGroupManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyGroupManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,6 +31,7 @@
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.model.AbstractManagedObject;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 public class PropertyGroupManagedObject
@@ -40,15 +41,13 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/propertygroup-16.png",
-	    "images/propertygroup-22.png",
-	    "images/propertygroup-24.png",
-	    "images/propertygroup-32.png",
-	    "images/propertygroup-48.png",
-	    "images/propertygroup-256.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/propertygroup-16.png",
+	"images/propertygroup-22.png",
+	"images/propertygroup-24.png",
+	"images/propertygroup-32.png",
+	"images/propertygroup-48.png",
+	"images/propertygroup-256.png");
 
     public static final String ID = "propertygroup";
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyGroupsManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyGroupsManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,8 @@
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.smf.PropertyGroup;
 import org.opensolaris.os.vp.panel.common.model.AbstractManagedObject;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class PropertyGroupsManagedObject
     extends AbstractManagedObject<PropertyGroupManagedObject> {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,8 @@
 import javax.swing.*;
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.vp.panel.common.model.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 public class PropertyManagedObject extends AbstractManagedObject<ManagedObject>
@@ -39,15 +40,13 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/property-16.png",
-	    "images/property-22.png",
-	    "images/property-24.png",
-	    "images/property-32.png",
-	    "images/property-48.png",
-	    "images/property-256.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/property-16.png",
+	"images/property-22.png",
+	"images/property-24.png",
+	"images/property-32.png",
+	"images/property-48.png",
+	"images/property-256.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyValuePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/PropertyValuePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,7 @@
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.util.common.propinfo.AbstractPropInfo;
 import org.opensolaris.os.vp.util.misc.converter.DualConverter;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class PropertyValuePropInfo
     extends AbstractPropInfo<ManagedObject, String> {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServiceManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServiceManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,7 +28,7 @@
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObjectStatus;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class ServiceManagedObject extends SmfManagedObject {
     //
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServicePanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServicePanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -35,7 +35,8 @@
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.model.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Enableable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public abstract class ServicePanelDescriptor<C extends ManagedObject>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServiceUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/ServiceUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.common.smf;
@@ -32,7 +31,7 @@
 import org.opensolaris.os.scf.common.FMRI;
 import org.opensolaris.os.smf.SmfState;
 import org.opensolaris.os.vp.panel.common.model.ManagedObjectStatus;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class ServiceUtil {
     //
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/SmfManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/SmfManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -35,7 +35,8 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.common.smf.depend.DepManagedObject;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 public abstract class SmfManagedObject extends DepManagedObject<ManagedObject>
@@ -46,13 +47,11 @@
     //
 
     public static final List<ImageIcon> icons =
-	Collections.unmodifiableList(IconFinder.getIcons(
-	new String[] {
-	    "images/smf-32.png",
-	    "images/smf-48.png",
-	    "images/smf-96.png",
-	    "images/smf-192.png",
-	}));
+	Collections.unmodifiableList(Finder.getIcons(
+	"images/smf-32.png",
+	"images/smf-48.png",
+	"images/smf-96.png",
+	"images/smf-192.png"));
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/SmfUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/SmfUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.action.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SmfUtil {
     //
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepNamePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepNamePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,7 +27,7 @@
 
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.util.common.propinfo.ReflectionPropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class DepNamePropInfo
     extends ReflectionPropInfo<ManagedObject, String>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepStatePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepStatePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,7 +27,7 @@
 
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.util.common.propinfo.ReflectionPropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class DepStatePropInfo
     extends ReflectionPropInfo<ManagedObject, String>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepTypePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/DepTypePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,7 +27,7 @@
 
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.util.common.propinfo.ReflectionPropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class DepTypePropInfo
     extends ReflectionPropInfo<ManagedObject, String>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/FileManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/FileManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.common.smf.depend;
@@ -29,7 +28,7 @@
 import java.net.URI;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.common.smf.RepoManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  *
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/UnknownDepManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/smf/depend/UnknownDepManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.common.smf.depend;
 
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UnknownDepManagedObject extends DepManagedObject<ManagedObject>
 {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/view/PanelIconUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/common/view/PanelIconUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,6 +29,7 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObjectStatus;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.*;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class PanelIconUtil {
@@ -42,36 +43,33 @@
     private static final Map<String, Icon> mimeCache =
 	new HashMap<String, Icon>();
 
-    private static final List<ImageIcon> defaultIcons = IconFinder.getIcons(
-	new String[] {
-	    "images/general/default-16.png",
-	    "images/general/default-24.png",
-	    "images/general/default-32.png",
-	    "images/general/default-48.png",
-	    "images/general/default-96.png",
-	});
+    private static final List<ImageIcon> defaultIcons = Finder.getIcons(
+	"images/general/default-16.png",
+	"images/general/default-24.png",
+	"images/general/default-32.png",
+	"images/general/default-48.png",
+	"images/general/default-96.png");
 
     private static final Map<ManagedObjectStatus, Icon> statusIcons =
 	new HashMap<ManagedObjectStatus, Icon>();
 
     static {
-	statusIcons.put(ManagedObjectStatus.WARNING, Finder.getIcon(
-	    "images/badge/dialog-warning.png"));
-	statusIcons.put(ManagedObjectStatus.ERROR, Finder.getIcon(
-	    "images/badge/dialog-error.png"));
+	statusIcons.put(ManagedObjectStatus.WARNING,
+	    Finder.getIcon("images/badge/dialog-warning.png"));
+
+	statusIcons.put(ManagedObjectStatus.ERROR,
+	    Finder.getIcon("images/badge/dialog-error.png"));
     }
 
-    private static final List<ImageIcon> genericMimeIcons = IconFinder.getIcons(
-	new String[] {
-	    "images/mime/16/generic-mimetype.png",
-	    "images/mime/24/generic-mimetype.png",
-	    "images/mime/32/generic-mimetype.png",
-	    "images/mime/36/generic-mimetype.png",
-	    "images/mime/48/generic-mimetype.png",
-	    "images/mime/72/generic-mimetype.png",
-	    "images/mime/96/generic-mimetype.png",
-	    "images/mime/192/generic-mimetype.png",
-	});
+    private static final List<ImageIcon> genericMimeIcons = Finder.getIcons(
+	"images/mime/16/generic-mimetype.png",
+	"images/mime/24/generic-mimetype.png",
+	"images/mime/32/generic-mimetype.png",
+	"images/mime/36/generic-mimetype.png",
+	"images/mime/48/generic-mimetype.png",
+	"images/mime/72/generic-mimetype.png",
+	"images/mime/96/generic-mimetype.png",
+	"images/mime/192/generic-mimetype.png");
 
     //
     // Static methods
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/AddManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/AddManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,10 +41,8 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-add-16.png",
-	});
+    protected static final List<ImageIcon> ICONS =
+	Finder.getIcons("images/action-add-16.png");
 
     protected static final String TEXT = Finder.getString("objects.action.add");
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/CloneManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/CloneManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,10 +41,8 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-clone-16.png",
-	});
+    protected static final List<ImageIcon> ICONS =
+	Finder.getIcons("images/action-clone-16.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.clone");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/DeleteManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/DeleteManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,10 +41,8 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-delete-16.png",
-	});
+    protected static final List<ImageIcon> ICONS =
+	Finder.getIcons("images/action-delete-16.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.delete");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/EditManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/EditManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,10 +41,8 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-edit-16.png",
-	});
+    protected static final List<ImageIcon> ICONS =
+	Finder.getIcons("images/action-edit-16.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.edit");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/EnableManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/EnableManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,8 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Enableable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,15 +42,11 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS_ENABLE = IconFinder.getIcons(
-	new String[] {
-	    "images/action-enable-16.png",
-	});
+    protected static final List<ImageIcon> ICONS_ENABLE =
+	Finder.getIcons("images/action-enable-16.png");
 
-    protected static final List<ImageIcon> ICONS_DISABLE = IconFinder.getIcons(
-	new String[] {
-	    "images/action-disable-16.png",
-	});
+    protected static final List<ImageIcon> ICONS_DISABLE =
+	Finder.getIcons("images/action-disable-16.png");
 
     protected static final String TEXT_ENABLE =
 	Finder.getString("objects.action.enable");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/LaunchManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/LaunchManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -33,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public abstract class LaunchManagedObjectAction<C extends ManagedObject>
@@ -43,13 +42,11 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-launch-16.png",
-	    "images/action-launch-22.png",
-	    "images/action-launch-24.png",
-	    "images/action-launch-32.png",
-	});
+    protected static final List<ImageIcon> ICONS = Finder.getIcons(
+	"images/action-launch-16.png",
+	"images/action-launch-22.png",
+	"images/action-launch-24.png",
+	"images/action-launch-32.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.launch");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/MoveManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/MoveManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,10 +41,8 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-move-16.png",
-	});
+    protected static final List<ImageIcon> ICONS =
+	Finder.getIcons("images/action-move-16.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.move");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/PropertiesManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/PropertiesManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -25,14 +25,12 @@
 
 package org.opensolaris.os.vp.panel.swing.action;
 
-import java.util.*;
-import javax.swing.*;
-import org.opensolaris.os.vp.panel.common.ClientContext;
-import org.opensolaris.os.vp.panel.common.action.*;
-import org.opensolaris.os.vp.panel.common.control.*;
+import java.util.List;
+import javax.swing.ImageIcon;
+import org.opensolaris.os.vp.panel.common.control.Navigable;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public abstract class PropertiesManagedObjectAction<C extends ManagedObject>
@@ -42,13 +40,11 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-properties-16.png",
-	    "images/action-properties-22.png",
-	    "images/action-properties-24.png",
-	    "images/action-properties-32.png",
-	});
+    protected static final List<ImageIcon> ICONS = Finder.getIcons(
+	"images/action-properties-16.png",
+	"images/action-properties-22.png",
+	"images/action-properties-24.png",
+	"images/action-properties-32.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.properties");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/UpdateManagedObjectAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/action/UpdateManagedObjectAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.action;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasComponent;
 
 @SuppressWarnings({"serial"})
@@ -42,10 +41,8 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS = IconFinder.getIcons(
-	new String[] {
-	    "images/action-default-16.png",
-	});
+    protected static final List<ImageIcon> ICONS =
+	Finder.getIcons("images/action-default-16.png");
 
     protected static final String TEXT =
 	Finder.getString("objects.action.update");
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/ChangeIndicatorTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/ChangeIndicatorTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,15 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.control;
 
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/DebugObjectsTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/DebugObjectsTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.swing.model.ManagedObjectPropInfo;
 import org.opensolaris.os.vp.panel.swing.view.*;
 import org.opensolaris.os.vp.util.common.propinfo.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.ExtScrollPane;
 
 public class DebugObjectsTab extends SwingControl<PanelDescriptor, JScrollPane>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/PanelFrameControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/PanelFrameControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -36,7 +36,8 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.swing.view.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Enableable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SwingControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SwingControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.control;
 
 import java.awt.*;
 import java.beans.*;
-import java.util.*;
+import java.util.Map;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.action.*;
@@ -36,6 +35,7 @@
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.swing.action.SwingStructuredAction;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class SwingControl<P extends PanelDescriptor, C extends Component>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SwingNavigationErrorHandler.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SwingNavigationErrorHandler.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.control;
 
 import java.awt.Window;
 import org.opensolaris.os.vp.panel.common.control.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 /**
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SystemTrayControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/SystemTrayControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -35,7 +35,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.swing.view.AuthPanel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SystemTrayControl<P extends PanelDescriptor>
     extends SwingControl<P, Component> implements ConnectionListener,
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WindowControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WindowControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -37,7 +37,8 @@
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.common.view.*;
 import org.opensolaris.os.vp.panel.swing.view.SwingBusyIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.IconUtil;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.glass.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WizardControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/control/WizardControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.control;
@@ -34,7 +33,8 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.swing.view.WizardPanel;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Stackable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 import org.opensolaris.os.vp.util.swing.event.ChangeListeners;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/model/ManagedObjectPropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/model/ManagedObjectPropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import javax.swing.table.TableCellRenderer;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.view.ManagedObjectCellRenderer;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SimpleCellRenderer;
 import org.opensolaris.os.vp.util.swing.propinfo.AbstractSwingPropInfo;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/ClearServiceAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/ClearServiceAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.action.UpdateManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings("serial")
 public class ClearServiceAction
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/ComponentList.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/ComponentList.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.smf;
@@ -30,7 +29,7 @@
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.event.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.event.ChangeListeners;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfDependenciesControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfDependenciesControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,7 +28,7 @@
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SmfDependenciesControl<P extends PanelDescriptor,
     S extends SmfManagedObject>
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfDependenciesPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfDependenciesPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,7 @@
 import org.opensolaris.os.vp.panel.common.smf.depend.*;
 import org.opensolaris.os.vp.panel.swing.view.TreeTableObjectsPanel;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SmfDependenciesPanel extends TreeTableObjectsPanel {
     //
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfLogControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfLogControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SmfLogControl<P extends PanelDescriptor>
     extends SettingsControl<P, SmfLogPanel> {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfLogPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfLogPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,7 @@
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SettingsPanel;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfPropertiesControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfPropertiesControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,7 +28,7 @@
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.common.smf.HasSmfManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SmfPropertiesControl<P extends PanelDescriptor>
     extends SwingControl<P, SmfPropertiesPanel> {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfPropertiesPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfPropertiesPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.swing.model.ManagedObjectPropInfo;
 import org.opensolaris.os.vp.panel.swing.view.TreeTableObjectsPanel;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class SmfPropertiesPanel extends TreeTableObjectsPanel {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfStatusControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfStatusControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.model.PanelDescriptor;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SmfStatusControl<P extends PanelDescriptor>
     extends SettingsControl<P, SmfStatusPanel> {
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfStatusPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/smf/SmfStatusPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -37,7 +37,8 @@
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.smf.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.CollectionUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/timezone/TimeZoneModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/timezone/TimeZoneModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,7 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.model.AbstractModel;
 import org.opensolaris.os.vp.panel.common.time.HasTimeMXBean;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class TimeZoneModel extends AbstractModel<HasTimeMXBean> {
     //
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/timezone/TimeZonePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/timezone/TimeZonePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,14 +31,14 @@
 import java.text.DateFormat;
 import java.util.*;
 import java.util.List;
+import javax.swing.event.*;
 import javax.swing.Icon;
-import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.common.model.View;
 import org.opensolaris.os.vp.panel.common.time.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
+import org.opensolaris.os.vp.util.swing.layout.ColumnLayoutConstraint;
 import org.opensolaris.os.vp.util.swing.SettingsPanel;
-import org.opensolaris.os.vp.util.swing.layout.ColumnLayoutConstraint;
 import org.opensolaris.os.vp.util.swing.time.*;
 
 public class TimeZonePanel extends SettingsPanel
@@ -49,8 +49,9 @@
     //
 
     private static TimeZoneMapper MAPPER = new TimeZoneMapper();
-    private static final Icon BACKGROUND_ICON = Finder.getIcon(
-	"images/world_map-960.png");
+
+    private static final Icon BACKGROUND_ICON =
+	Finder.getIcon("images/world_map-960.png");
 
     /**
      * Gets the {@code TimeZone} that corresponds to the given {@link
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/AuthPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/AuthPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -29,7 +28,8 @@
 import java.awt.BorderLayout;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.NetUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ChangeIndicator.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ChangeIndicator.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -29,7 +28,8 @@
 import java.awt.*;
 import javax.swing.Icon;
 import javax.swing.event.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Changeable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.InfoLabel;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ControlBreadCrumbs.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ControlBreadCrumbs.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -34,7 +33,8 @@
 import javax.swing.border.Border;
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.common.control.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.MessageFinder;
+import org.opensolaris.os.vp.util.misc.NameValue;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
@@ -85,7 +85,7 @@
     @Override
     protected Component createHiddenBreadCrumbIndicator() {
 	String pkg = BreadCrumbs.class.getPackage().getName();
-	String ellipsis = Finder.getStringFromPackage(
+	String ellipsis = new MessageFinder().getStringFromPackage(
 	    pkg, "breadcrumb.hidden.text");
 
 	JButton b = createButton();
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/FilterField.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/FilterField.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,22 +20,16 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
 
 import java.awt.Color;
-import javax.swing.Box;
-import javax.swing.BoxLayout;
-import javax.swing.JLabel;
-import javax.swing.JTextField;
+import javax.swing.*;
 import javax.swing.event.DocumentEvent;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.util.swing.ColorUtil;
-import org.opensolaris.os.vp.util.swing.DocumentAdapter;
-import org.opensolaris.os.vp.util.swing.GUIUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.swing.*;
 
 /**
  * A simple live filter entry box.  Could be extended to track history,
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/Health.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/Health.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -29,7 +28,8 @@
 import java.util.*;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObjectStatus;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public enum Health implements HasIcons, HasIcon {
@@ -52,12 +52,10 @@
 
     Health() {
 	String name = toString().toLowerCase();
-	icons = IconFinder.getIcons(
-	    new String[] {
-		"images/health/" + name + "-16.png",
-		"images/health/" + name + "-24.png",
-		"images/health/" + name + "-32.png",
-	    });
+	icons = Finder.getIcons(
+	    "images/health/" + name + "-16.png",
+	    "images/health/" + name + "-24.png",
+	    "images/health/" + name + "-32.png");
 	roIcons = Collections.unmodifiableList(icons);
     }
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ListObjectsView.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ListObjectsView.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -31,7 +30,7 @@
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.common.action.StructuredAction;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.ExtScrollPane;
 
 /**
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/NavButtonPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/NavButtonPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -32,6 +31,7 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsFilter.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsFilter.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
 
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.predicate.*;
 
 /**
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,7 @@
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.common.action.StructuredAction;
 import org.opensolaris.os.vp.panel.common.model.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsToolBar.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/ObjectsToolBar.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -30,9 +29,9 @@
 import javax.swing.*;
 import javax.swing.event.*;
 import javax.swing.plaf.basic.BasicSeparatorUI;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 /**
  * The {@code ObjectsToolBar} provides various user controls to the {@code
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/PanelFrame.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/PanelFrame.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import javax.swing.*;
 import javax.swing.border.Border;
 import org.opensolaris.os.vp.panel.common.control.Navigator;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/SearchFilter.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/SearchFilter.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panel.swing.view;
@@ -30,10 +29,10 @@
 import javax.swing.*;
 import javax.swing.event.DocumentEvent;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.predicate.Predicate;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.util.misc.predicate.Predicate;
 
 /**
  * The {@code SearchFilter} is a {@link CustomObjectsFilter} that filters based
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/TableObjectsView.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/TableObjectsView.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.action.StructuredAction;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.ExtScrollPane;
 
 /**
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/TreeTableObjectsView.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/TreeTableObjectsView.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.action.StructuredAction;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.ExtScrollPane;
 
 /**
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/WizardPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/WizardPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,8 @@
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.common.control.Navigable;
 import org.opensolaris.os.vp.panel.swing.control.WizardStepSequence;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.Stackable;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/WizardStepPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panel/org/opensolaris/os/vp/panel/swing/view/WizardStepPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.common.control.Navigable;
 import org.opensolaris.os.vp.panel.swing.control.WizardStepSequence;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ApachePanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ApachePanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -41,6 +41,7 @@
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
@@ -54,10 +55,8 @@
     //
 
     // XXX More sizes should be provided
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/apache-32.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/apache-32.png");
 
     public static final String SMF_GROUP = "httpd";
 
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CloneVirtualHostAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CloneVirtualHostAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.action.CloneManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class CloneVirtualHostAction
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateMimeTypeAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateMimeTypeAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -33,7 +32,8 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateModuleAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateModuleAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -34,7 +33,8 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.StringProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateVirtualHostAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/CreateVirtualHostAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,8 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.StringProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteMimeTypeAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteMimeTypeAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -33,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.swing.action.DeleteManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteModuleAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteModuleAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -33,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.swing.action.DeleteManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteVirtualHostAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/DeleteVirtualHostAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -34,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.action.DeleteManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/GlobalControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/GlobalControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.smf.SmfEnabledProperty;
 import org.opensolaris.os.vp.panel.swing.control.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 
 public class GlobalControl
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/GlobalPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/GlobalPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,8 @@
 import javax.swing.*;
 import javax.swing.filechooser.FileSystemView;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MainControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MainControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -36,7 +36,8 @@
 import org.opensolaris.os.vp.panel.common.smf.SmfUtil;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.ListSelectorPanel;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SimpleCellRenderer;
 
 public class MainControl extends ListSelectorControl<ApachePanelDescriptor,
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MainListCellRenderer.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MainListCellRenderer.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -30,7 +29,7 @@
 import javax.swing.Icon;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.view.ManagedObjectCellRenderer;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class MainListCellRenderer
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypeControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypeControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,7 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class MimeTypeControl
     extends SettingsControl<ApachePanelDescriptor, MimeTypePanel> {
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,7 +28,8 @@
 import java.awt.EventQueue;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypes.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypes.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -33,6 +32,7 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.common.view.PanelIconUtil;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypesControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/MimeTypesControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.view.PanelIconUtil;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class MimeTypesControl extends ListSelectorControl<ApachePanelDescriptor,
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/Module.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/Module.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,8 @@
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
@@ -46,12 +47,10 @@
 
     public static final String SMF_PROPERTY_PREFIX = "module-";
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/modules-32.png",
-	    "images/modules-48.png",
-	    "images/modules-96.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/modules-32.png",
+	"images/modules-48.png",
+	"images/modules-96.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModuleControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModuleControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,7 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class ModuleControl
     extends SettingsControl<ApachePanelDescriptor, ModulePanel> {
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,8 @@
 import javax.swing.filechooser.FileSystemView;
 import javax.swing.text.JTextComponent;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/Modules.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/Modules.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
@@ -32,6 +31,7 @@
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulesControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/ModulesControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class ModulesControl extends ListSelectorControl<ApachePanelDescriptor,
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/NoMimeTypePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/NoMimeTypePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,13 +20,12 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
 
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class NoMimeTypePanel extends NoContentPanel {
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/NoModulePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/NoModulePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,13 +20,12 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.apache.client.swing;
 
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class NoModulePanel extends NoContentPanel {
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHost.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHost.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,13 +26,13 @@
 package org.opensolaris.os.vp.panels.apache.client.swing;
 
 import java.util.List;
-import java.util.regex.Pattern;
 import javax.swing.*;
 import org.opensolaris.os.rad.ObjectException;
 import org.opensolaris.os.scf.common.ScfException;
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
@@ -44,19 +44,15 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> ICONS_ENABLED = IconFinder.getIcons(
-	new String[] {
-	    "images/vhost-enabled-16.png",
-	    "images/vhost-enabled-24.png",
-	    "images/vhost-enabled-32.png",
-	});
+    protected static final List<ImageIcon> ICONS_ENABLED = Finder.getIcons(
+	"images/vhost-enabled-16.png",
+	"images/vhost-enabled-24.png",
+	"images/vhost-enabled-32.png");
 
-    protected static final List<ImageIcon> ICONS_DISABLED = IconFinder.getIcons(
-	new String[] {
-	    "images/vhost-disabled-16.png",
-	    "images/vhost-disabled-24.png",
-	    "images/vhost-disabled-32.png",
-	});
+    protected static final List<ImageIcon> ICONS_DISABLED = Finder.getIcons(
+	"images/vhost-disabled-16.png",
+	"images/vhost-disabled-24.png",
+	"images/vhost-disabled-32.png");
 
     public static final String SMF_GROUP_PREFIX = "vhost-";
 
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostGeneralControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostGeneralControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import java.util.Map;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 
 public class VirtualHostGeneralControl
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostGeneralPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostGeneralPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,8 @@
 import javax.swing.text.JTextComponent;
 import org.opensolaris.os.vp.panel.common.smf.BasicSmfMutableProperty;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostSSLControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostSSLControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import java.util.Map;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 
 public class VirtualHostSSLControl
--- a/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostSSLPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/apache/org/opensolaris/os/vp/panels/apache/client/swing/VirtualHostSSLPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,8 @@
 import javax.swing.filechooser.FileSystemView;
 import javax.swing.text.JTextComponent;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/BrowserPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/BrowserPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,7 @@
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * Panel descriptor for the panel browser panel
--- a/usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/PanelControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/PanelControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,16 +20,15 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.browser.client.swing;
 
-import java.util.*;
+import java.util.Map;
 import org.opensolaris.os.vp.panel.common.control.*;
-import org.opensolaris.os.vp.panel.swing.control.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.panel.swing.control.SwingControl;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class PanelControl
     extends SwingControl<BrowserPanelDescriptor, PanelPanel> {
--- a/usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/PanelDialog.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/browser/org/opensolaris/os/vp/panels/browser/client/swing/PanelDialog.java	Thu Oct 21 16:28:55 2010 -0400
@@ -51,13 +51,13 @@
                 nameValue = new javax.swing.JLabel();
                 typeValue = new javax.swing.JLabel();
 
-                nameLabel.setText(org.opensolaris.os.vp.util.misc.Finder.getString("browser.panel.label.name"));
+                nameLabel.setText(org.opensolaris.os.vp.util.misc.finder.Finder.getString("browser.panel.label.name"));
 
-                typeLabel.setText(org.opensolaris.os.vp.util.misc.Finder.getString("browser.panel.label.type"));
+                typeLabel.setText(org.opensolaris.os.vp.util.misc.finder.Finder.getString("browser.panel.label.type"));
 
-                resourcesLabel.setText(org.opensolaris.os.vp.util.misc.Finder.getString("browser.panel.label.resources"));
+                resourcesLabel.setText(org.opensolaris.os.vp.util.misc.finder.Finder.getString("browser.panel.label.resources"));
 
-                classLabel.setText(org.opensolaris.os.vp.util.misc.Finder.getString("browser.panel.label.class"));
+                classLabel.setText(org.opensolaris.os.vp.util.misc.finder.Finder.getString("browser.panel.label.class"));
 
                 resourcesScroll.setViewportView(resourcesValue);
 
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmOptionsPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmOptionsPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,6 +33,7 @@
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.panels.coreadm.client.swing.path.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -40,7 +40,8 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.SimpleHasId;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmSettingsPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmSettingsPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.coreadm.client.swing;
@@ -30,8 +29,8 @@
 import java.util.*;
 import javax.swing.*;
 import javax.swing.border.Border;
-import org.opensolaris.os.vp.panel.swing.view.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmSettingsTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreAdmSettingsTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.smf.SmfUtil;
 import org.opensolaris.os.vp.panel.swing.control.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 import org.opensolaris.os.vp.util.swing.ReplacingStackPanel;
 
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreConfig.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreConfig.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,16 +20,16 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.coreadm.client.swing;
 
+import java.io.PrintStream;
 import java.util.*;
 import org.opensolaris.os.scf.common.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * Wholly encapsulates core file configuration.  Can be constructed
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoreManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.coreadm.client.swing;
@@ -29,7 +28,8 @@
 import java.util.List;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 @SuppressWarnings({"serial"})
@@ -41,15 +41,13 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/core-24.png",
-	    "images/core-32.png",
-	    "images/core-36.png",
-	    "images/core-48.png",
-	    "images/core-72.png",
-	    "images/core-96.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/core-24.png",
+	"images/core-32.png",
+	"images/core-36.png",
+	"images/core-48.png",
+	"images/core-72.png",
+	"images/core-96.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoresPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoresPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.swing.model.ManagedObjectPropInfo;
 import org.opensolaris.os.vp.panel.swing.view.TableObjectsPanel;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SettingsPanel;
 import org.opensolaris.os.vp.util.swing.propinfo.SizePropInfo;
 
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoresTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CoresTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.action.StructuredAction;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class CoresTab
     extends SettingsControl<CoreAdmPanelDescriptor, CoresPanel> {
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CustomCoreSchemeEditControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CustomCoreSchemeEditControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.smf.SmfUtil;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 
 public class CustomCoreSchemeEditControl extends
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CustomCoreSchemeEditPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/CustomCoreSchemeEditPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,8 @@
 import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.BooleanProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/path/TokenComboBox.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/path/TokenComboBox.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.coreadm.client.swing.path;
@@ -30,8 +29,8 @@
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.border.Border;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.Spacer;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 @SuppressWarnings({"serial"})
 public class TokenComboBox extends JComboBox {
--- a/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/path/TokenLabel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/coreadm/org/opensolaris/os/vp/panels/coreadm/client/swing/path/TokenLabel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.coreadm.client.swing.path;
@@ -30,8 +29,8 @@
 import java.util.*;
 import javax.swing.*;
 import javax.swing.border.Border;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 @SuppressWarnings({"serial"})
 public class TokenLabel extends JLabel {
--- a/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time1/client/swing/TimePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time1/client/swing/TimePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.example.time1.client.swing;
 
 import java.awt.*;
 import javax.swing.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class TimePanel extends JPanel {
--- a/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time1/client/swing/TimePanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time1/client/swing/TimePanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class TimePanelDescriptor
     extends AbstractPanelDescriptor<ManagedObject>
--- a/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.example.time2.client.swing;
 
 import java.awt.BorderLayout;
 import javax.swing.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SettingsPanel;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/examples/org/opensolaris/os/vp/panels/example/time2/client/swing/TimePanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
 import org.opensolaris.os.vp.panels.example.time2.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class TimePanelDescriptor
     extends AbstractPanelDescriptor<ManagedObject>
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
@@ -31,7 +30,7 @@
 import java.util.*;
 import javax.swing.*;
 import org.opensolaris.os.vp.panels.firewall.client.swing.AccessPolicy.Type;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPolicyPropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPolicyPropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,8 @@
 import javax.swing.*;
 import javax.swing.table.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.InfoLabel;
 import org.opensolaris.os.vp.util.swing.propinfo.AbstractSwingPropInfo;
 
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPolicyUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AccessPolicyUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
 
 import java.util.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.panels.firewall.client.swing.AccessPolicy.Type;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 public class AccessPolicyUtil {
 
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AddServiceAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/AddServiceAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
@@ -35,9 +34,9 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.swing.*;
 
 @SuppressWarnings({"serial"})
 public class AddServiceAction
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallDefaultTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallDefaultTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
 import org.opensolaris.os.vp.panels.firewall.client.swing.AccessPolicy.Type;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 
 public class FirewallDefaultTab
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOpenPortsPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOpenPortsPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,7 +28,8 @@
 import java.util.List;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.BasicMutableProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOpenPortsTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOpenPortsTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.BasicMutableProperty;
 
 public class FirewallOpenPortsTab
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOverrideTab.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallOverrideTab.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
 import org.opensolaris.os.vp.panels.firewall.client.swing.AccessPolicy.Type;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class FirewallOverrideTab
     extends SettingsControl<FirewallPanelDescriptor, FirewallSettingsPanel>
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -44,7 +44,8 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.SimpleHasId;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
 @SuppressWarnings({"serial"})
@@ -57,12 +58,10 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/global-16.png",
-	    "images/global-24.png",
-	    "images/global-32.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/global-16.png",
+	"images/global-24.png",
+	"images/global-32.png");
 
     public static final String PROPERTY_ACCESS_POLICY = "access policy";
 
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallSettingsPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/FirewallSettingsPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
@@ -31,7 +30,8 @@
 import javax.swing.filechooser.FileSystemView;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.panels.firewall.client.swing.AccessPolicy.Type;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/GlobalControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/GlobalControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,8 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.smf.SmfUtil;
 import org.opensolaris.os.vp.panel.swing.control.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class GlobalControl extends TabbedControl<FirewallPanelDescriptor> {
     //
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/MainControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/MainControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.ListSelectorPanel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SimpleCellRenderer;
 
 public class MainControl extends ListSelectorControl<FirewallPanelDescriptor,
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/MainListCellRenderer.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/MainListCellRenderer.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,17 +20,15 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
 
 import java.awt.Component;
-import javax.swing.Icon;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.view.ManagedObjectCellRenderer;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class MainListCellRenderer
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/OpenPortsTablePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/OpenPortsTablePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,27 +20,19 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
- *
- * ident	"@(#)OpenPortsTablePanel.java	1.5	08/05/20 SMI"
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
 
 import java.awt.*;
 import java.awt.event.*;
-import java.util.*;
-import java.text.ParseException;
+import java.beans.*;
 import javax.swing.*;
-import javax.swing.event.*;
 import javax.swing.table.*;
-import javax.swing.text.*;
-import javax.swing.border.Border;
-import java.beans.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 @SuppressWarnings({"serial"})
 public class OpenPortsTablePanel extends TablePanel implements ActionListener {
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/PolicyTablePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/PolicyTablePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,8 +34,8 @@
 import javax.swing.border.Border;
 import javax.swing.table.DefaultTableCellRenderer;
 import org.opensolaris.os.rad.ObjectException;
-import org.opensolaris.os.vp.panel.common.network.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.panel.common.network.NetworkMXBean;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
@@ -369,13 +369,13 @@
 
 	    setIconTextGap(6);
 	    if (((String) value).startsWith(HOST_ADDR_PREFIX)) {
-		setIcon(IconFinder.getDefault().getIcon(
+		setIcon(Finder.getIcon(
 		    "images/server-16.png"));
 	    } else if (((String) value).startsWith(NET_ADDR_PREFIX)) {
-		setIcon(IconFinder.getDefault().getIcon(
+		setIcon(Finder.getIcon(
 		    "images/network-workgroup-16.png"));
 	    } else if (((String) value).startsWith(IF_PREFIX)) {
-		setIcon(IconFinder.getDefault().getIcon(
+		setIcon(Finder.getIcon(
 		    "images/audio-card-16.png"));
 	    }
 
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/RemoveServiceAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/RemoveServiceAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
@@ -34,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
 import org.opensolaris.os.vp.panel.swing.action.DeleteManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceEditControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceEditControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class ServiceEditControl
     extends SettingsControl<FirewallPanelDescriptor, ServiceEditPanel> {
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceEditPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceEditPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
 
 import java.awt.EventQueue;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class ServiceEditPanel extends CommonEditPanel {
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/ServiceManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -41,6 +41,7 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panels.firewall.client.swing.AccessPolicy.Type;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 @SuppressWarnings({"serial"})
@@ -66,12 +67,10 @@
     //
     public static final String PROPERTY_ENABLED = "enabled";
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/service-16.png",
-	    "images/service-24.png",
-	    "images/service-32.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/service-16.png",
+	"images/service-24.png",
+	"images/service-32.png");
 
     public static final String STATE_ENABLED = Finder.getString(
 	"service.state.enabled");
--- a/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/TablePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/firewall/org/opensolaris/os/vp/panels/firewall/client/swing/TablePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.firewall.client.swing;
@@ -32,7 +31,7 @@
 import javax.swing.*;
 import javax.swing.event.*;
 import javax.swing.table.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/hypervisor/org/opensolaris/os/vp/panels/hypervisor/client/swing/HypervisorPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/hypervisor/org/opensolaris/os/vp/panels/hypervisor/client/swing/HypervisorPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.hypervisor.client.swing;
@@ -31,9 +30,10 @@
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
+import org.opensolaris.os.vp.util.swing.property.*;
 import org.opensolaris.os.vp.util.swing.SettingsPanel;
-import org.opensolaris.os.vp.util.swing.property.*;
 
 @SuppressWarnings({"serial"})
 public class HypervisorPanel extends SettingsPanel {
--- a/usr/src/java/vpanels/panels/hypervisor/org/opensolaris/os/vp/panels/hypervisor/client/swing/HypervisorPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/hypervisor/org/opensolaris/os/vp/panels/hypervisor/client/swing/HypervisorPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -38,7 +38,7 @@
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
 import org.opensolaris.os.vp.panels.hypervisor.common.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
@@ -52,14 +52,13 @@
     public static final String PROPERTY_WAT = "watchdog";
     public static final String PROPERTY_HYP = "enabled"; // Don't change
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/hypervisor-disabled-16.png",
-	    "images/hypervisor-enabled-16.png",
-	    "images/hypervisor-disabled-24.png",
-	    "images/hypervisor-enabled-24.png",
-	    "images/hypervisor-disabled-32.png",
-	    "images/hypervisor-enabled-32.png"});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/hypervisor-disabled-16.png",
+	"images/hypervisor-enabled-16.png",
+	"images/hypervisor-disabled-24.png",
+	"images/hypervisor-enabled-24.png",
+	"images/hypervisor-disabled-32.png",
+	"images/hypervisor-enabled-32.png");
 
     public static final String SMF_GROUP = "hypervisor";
 
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/CommonManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/CommonManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.common;
@@ -31,6 +30,7 @@
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public abstract class CommonManagedObject<C extends ManagedObject>
     extends AbstractManagedObject<C> implements HasGroupId, HasShareId {
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/GroupManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/GroupManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.common;
@@ -35,6 +34,7 @@
 import org.opensolaris.os.vp.panels.sharemgr.rad.ShareId;
 import org.opensolaris.os.vp.panels.sharemgr.rad.ShareIdImpl;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class GroupManagedObject
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/SharemgrPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/common/SharemgrPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -40,7 +40,8 @@
 import org.opensolaris.os.vp.panels.sharemgr.common.Protocol;
 import org.opensolaris.os.vp.panels.sharemgr.common.SeqGroup;
 import org.opensolaris.os.vp.panels.sharemgr.rad.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public abstract class SharemgrPanelDescriptor
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/AccessPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/AccessPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -33,7 +32,7 @@
 import javax.swing.border.Border;
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.event.ChangeListeners;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CommonGeneralControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CommonGeneralControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public abstract class CommonGeneralControl
     <C extends CommonManagedObject<?>, P extends CommonGeneralPanel<C>>
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CommonGeneralPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CommonGeneralPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,7 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.view.PanelIconUtil;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.CommonManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CreateGroupAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CreateGroupAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -34,7 +33,7 @@
 import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class CreateGroupAction extends AddManagedObjectAction
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CreateShareAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/CreateShareAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -36,7 +35,8 @@
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.rad.ShareErrorType;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/DeleteShareAndGroupAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/DeleteShareAndGroupAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -35,7 +34,8 @@
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.CollectionUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/GroupGeneralPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/GroupGeneralPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -31,7 +30,7 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.GroupManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/HintTextFieldOptionPropertySynchronizer.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/HintTextFieldOptionPropertySynchronizer.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
 
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class HintTextFieldOptionPropertySynchronizer
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/InheritanceButton.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/InheritanceButton.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -31,7 +30,7 @@
 import javax.swing.JButton;
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.OptionProperty;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class InheritanceButton extends JButton {
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/InheritancePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/InheritancePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -30,7 +29,7 @@
 import javax.swing.*;
 import javax.swing.event.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.OptionProperty;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/MainControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/MainControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -37,7 +37,8 @@
 import org.opensolaris.os.vp.panel.swing.view.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SimpleCellRenderer;
 
 public class MainControl extends TreeSelectorControl<
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/MoveSharesAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/MoveSharesAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -35,7 +34,7 @@
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 @SuppressWarnings({"serial"})
 public class MoveSharesAction extends MoveManagedObjectAction
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/NfsProtocolOptionPropertyFactory.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/NfsProtocolOptionPropertyFactory.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -29,7 +28,7 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/OptionsTableModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/OptionsTableModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -29,7 +28,7 @@
 import java.util.*;
 import javax.swing.table.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.OptionProperty;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class OptionsTableModel extends AbstractTableModel
     implements TableModel {
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/OptionsTableOverlay.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/OptionsTableOverlay.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -29,9 +28,9 @@
 import java.awt.Component;
 import java.awt.event.*;
 import javax.swing.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.misc.Finder;
 
 @SuppressWarnings({"serial"})
 public class OptionsTableOverlay extends JPanel {
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ProtocolPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ProtocolPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,7 @@
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.CommonManagedObject;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SecurityModePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SecurityModePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -30,7 +29,7 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.panels.sharemgr.common.Protocol;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ShareGeneralPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ShareGeneralPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -29,7 +28,7 @@
 import java.awt.*;
 import javax.swing.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.ShareManagedObject;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ShareProtocolPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/ShareProtocolPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -32,7 +31,7 @@
 import javax.swing.JCheckBox;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.SecurityMode;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.MutableProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.property.CheckBoxPropertySynchronizer;
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SwingGroupManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SwingGroupManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -30,7 +29,8 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 public class SwingGroupManagedObject extends GroupManagedObject
@@ -40,11 +40,9 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/group-16.png",
-	    "images/group-32.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/group-16.png",
+	"images/group-32.png");
 
     //
     // Constructors
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SwingShareManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/client/swing/SwingShareManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.client.swing;
@@ -30,7 +29,8 @@
 import javax.swing.*;
 import org.opensolaris.os.vp.panels.sharemgr.client.common.*;
 import org.opensolaris.os.vp.panels.sharemgr.common.Share;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 public class SwingShareManagedObject extends ShareManagedObject
@@ -40,16 +40,14 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/share-16.png",
-	    "images/share-24.png",
-	    "images/share-32.png",
-	    "images/share-36.png",
-	    "images/share-48.png",
-	    "images/share-72.png",
-	    "images/share-96.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/share-16.png",
+	"images/share-24.png",
+	"images/share-32.png",
+	"images/share-36.png",
+	"images/share-48.png",
+	"images/share-72.png",
+	"images/share-96.png");
 
     //
     // Constructors
--- a/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/common/SharemgrUtil.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sharemgr/org/opensolaris/os/vp/panels/sharemgr/common/SharemgrUtil.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sharemgr.common;
@@ -32,6 +31,7 @@
 import org.opensolaris.os.vp.common.panel.MBeanUtil;
 import org.opensolaris.os.vp.panels.sharemgr.rad.ShareErrorType;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SharemgrUtil {
     //
--- a/usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/GeneralControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/GeneralControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,7 +27,7 @@
 
 import org.opensolaris.os.vp.panel.common.smf.HasServiceTracker;
 import org.opensolaris.os.vp.panel.swing.smf.SmfStatusControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class GeneralControl extends SmfStatusControl<SmfPanelDescriptor> {
     //
--- a/usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/MainControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/MainControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -36,7 +36,7 @@
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.smf.EnableServiceAction;
 import org.opensolaris.os.vp.panel.swing.view.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.predicate.Predicate;
 import org.opensolaris.os.vp.util.swing.ClippedBorder;
 
--- a/usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/SmfPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/smf/org/opensolaris/os/vp/panels/smf/client/swing/SmfPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 /**
  * Panel descriptor for the Swing SMF panel
--- a/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/InstancesControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/InstancesControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,13 +27,14 @@
 
 import java.net.URL;
 import java.util.*;
+import org.opensolaris.os.vp.panel.common.ClientContext;
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.smf.InstanceManagedObject;
 import org.opensolaris.os.vp.panel.swing.action.PropertiesManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.smf.EnableServiceAction;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class InstancesControl
     extends SettingsControl<SvcsPanelDescriptor, InstancesPanel> {
--- a/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/InstancesPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/InstancesPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,8 +33,8 @@
 import org.opensolaris.os.vp.panel.swing.model.ManagedObjectPropInfo;
 import org.opensolaris.os.vp.panel.swing.view.TableObjectsPanel;
 import org.opensolaris.os.vp.util.common.propinfo.PropInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
 import org.opensolaris.os.vp.util.misc.event.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.SettingsPanel;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/STimePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/STimePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.svcs.client.swing;
@@ -31,8 +30,9 @@
 import java.util.*;
 import javax.swing.*;
 import javax.swing.table.*;
-import org.opensolaris.os.vp.util.misc.*;
 import org.opensolaris.os.vp.panel.common.smf.InstanceManagedObject;
+import org.opensolaris.os.vp.util.misc.ObjectUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class STimePropInfo extends SMOPropInfo<InstanceManagedObject, Date>
 {
--- a/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/StatePropInfo.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/StatePropInfo.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.svcs.client.swing;
@@ -31,9 +30,8 @@
 import javax.swing.*;
 import javax.swing.table.*;
 import org.opensolaris.os.smf.SmfState;
-import org.opensolaris.os.vp.panel.common.smf.ServiceUtil;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.panel.common.smf.InstanceManagedObject;
+import org.opensolaris.os.vp.panel.common.smf.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class StatePropInfo extends SMOPropInfo<InstanceManagedObject, SmfState>
 {
--- a/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/SvcsPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/svcs/org/opensolaris/os/vp/panels/svcs/client/swing/SvcsPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -35,7 +35,7 @@
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.predicate.TruePredicate;
 
 /**
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import org.opensolaris.os.vp.panel.swing.control.SimpleWizardModelControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class LocaleControl extends SimpleWizardModelControl<LocaleModel,
     SysIdPanelDescriptor, LocalePanel> {
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,18 +20,15 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import org.opensolaris.os.rad.ObjectException;
-import org.opensolaris.os.vp.common.panel.auth.UnauthorizedException;
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.model.AbstractModel;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.util.misc.exception.InvalidArgumentException;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class LocaleModel extends AbstractModel<SysIdPanelDescriptor> {
     //
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocalePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocalePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
@@ -32,7 +31,8 @@
 import org.opensolaris.os.vp.panel.common.model.View;
 import org.opensolaris.os.vp.panels.sysid.common.*;
 import org.opensolaris.os.vp.panels.sysid.common.Locale;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.NameValue;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.predicate.Predicate;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import org.opensolaris.os.vp.panel.swing.control.WizardSummaryControl;
 import org.opensolaris.os.vp.panel.swing.timezone.TimeZoneModel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SummaryControl extends WizardSummaryControl<SummaryModel,
     SysIdPanelDescriptor, SummaryPanel> {
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,15 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
 
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.WizardPanel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SysIdControl extends WizardControl<SysIdPanelDescriptor> {
     //
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
@@ -31,7 +30,7 @@
 import org.opensolaris.os.vp.panel.common.control.Navigable;
 import org.opensolaris.os.vp.panel.swing.control.WizardStepSequence;
 import org.opensolaris.os.vp.panel.swing.view.WizardPanel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SysIdPanel extends WizardPanel {
     //
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -36,7 +36,7 @@
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
 import org.opensolaris.os.vp.panels.sysid.common.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
 @SuppressWarnings({"serial"})
@@ -48,13 +48,11 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/sysid-24.png",
-	    "images/sysid-48.png",
-	    "images/sysid-96.png",
-	    "images/sysid-192.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/sysid-24.png",
+	"images/sysid-48.png",
+	"images/sysid-96.png",
+	"images/sysid-192.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/TimeZoneControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/TimeZoneControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,7 +27,7 @@
 
 import org.opensolaris.os.vp.panel.swing.control.SimpleWizardModelControl;
 import org.opensolaris.os.vp.panel.swing.timezone.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class TimeZoneControl extends SimpleWizardModelControl<TimeZoneModel,
     SysIdPanelDescriptor, TimeZonePanel> {
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import org.opensolaris.os.vp.panel.swing.control.SimpleWizardModelControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UserControl extends SimpleWizardModelControl<UserModel,
     SysIdPanelDescriptor, UserPanel> {
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
@@ -30,8 +29,8 @@
 import org.opensolaris.os.rad.ObjectException;
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.model.AbstractModel;
-import org.opensolaris.os.vp.util.misc.Finder;
 import org.opensolaris.os.vp.panels.sysid.common.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UserModel extends AbstractModel<SysIdPanelDescriptor> {
     //
@@ -122,10 +121,8 @@
 	    try {
 		bean.setNodename(hostName);
 	    } catch (ObjectException e) {
-		/*
-		throw new ActionFailedException(
-		    Finder.getString("error.sysid.user.host.badname"), e);
-		 */
+//		throw new ActionFailedException(
+//		    Finder.getString("error.sysid.user.host.badname"), e);
 		throw new ActionFailedException(
 		    Finder.getString("error.sysid.user.host.syserror"), e);
 	    }
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,15 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.View;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomeControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomeControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,7 +26,7 @@
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class WelcomeControl
     extends SettingsControl<SysIdPanelDescriptor, WelcomePanel> {
--- a/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,14 +20,13 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysid.client.swing;
 
 import javax.swing.JTextArea;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class WelcomePanel extends SettingsPanel {
--- a/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SmfMonitoredResource.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SmfMonitoredResource.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,8 @@
 import org.opensolaris.os.vp.panel.common.control.*;
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.common.smf.*;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.IconUtil;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
 public class SmfMonitoredResource extends MonitoredResource implements HasIcons
--- a/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonListControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonListControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -34,7 +34,7 @@
 import org.opensolaris.os.vp.panel.swing.action.LaunchManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.*;
 import org.opensolaris.os.vp.panel.swing.view.ManagedObjectTableModel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class SysMonListControl
     extends SettingsControl<SysMonPanelDescriptor, SysMonListPanel> {
--- a/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonListPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonListPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.sysmon.client.swing;
@@ -29,8 +28,8 @@
 import java.awt.*;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.ManagedObject;
-import org.opensolaris.os.vp.panel.swing.view.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.panel.swing.view.ManagedObjectCellRenderer;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.*;
 
 public class SysMonListPanel extends SettingsPanel {
--- a/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/sysmon/org/opensolaris/os/vp/panels/sysmon/client/swing/SysMonPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,13 +29,11 @@
 import java.util.List;
 import javax.management.InstanceNotFoundException;
 import javax.swing.*;
-import org.opensolaris.os.vp.panel.common.ClientContext;
-import org.opensolaris.os.vp.panel.common.ConnectionEvent;
-import org.opensolaris.os.vp.panel.common.ConnectionListener;
+import org.opensolaris.os.vp.panel.common.*;
 import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.common.model.*;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
 public class SysMonPanelDescriptor
@@ -46,13 +44,11 @@
     // Static data
     //
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/sysmon-16.png",
-	    "images/sysmon-22.png",
-	    "images/sysmon-24.png",
-	    "images/sysmon-32.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/sysmon-16.png",
+	"images/sysmon-22.png",
+	"images/sysmon-24.png",
+	"images/sysmon-32.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -33,7 +33,7 @@
 import org.opensolaris.os.vp.panel.common.model.AbstractModel;
 import org.opensolaris.os.vp.panel.common.smf.*;
 import org.opensolaris.os.vp.panel.common.time.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class NTPModel extends AbstractModel<TimePanelDescriptor> {
 
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,21 +20,19 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.time.client.swing;
 
 import javax.swing.Icon;
 import org.opensolaris.os.smf.SmfState;
-import org.opensolaris.os.vp.panel.common.smf.ServiceUtil;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
+import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.Control;
-import org.opensolaris.os.vp.panel.swing.model.SimpleModelControl;
+import org.opensolaris.os.vp.panel.common.smf.ServiceUtil;
 import org.opensolaris.os.vp.panel.common.time.ServerInfo;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.panel.swing.model.SimpleModelControl;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class NTPObject extends IncestuousManagedObject<
     SimpleModelControl<?, TimePanelDescriptor, ?>> {
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/NTPPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -30,7 +30,8 @@
 import org.opensolaris.os.vp.panel.common.model.View;
 import org.opensolaris.os.vp.panel.common.time.ServerInfo;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/ServersModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/ServersModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,13 +20,12 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.time.client.swing;
 
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.DefaultEditableTableModel;
 
 public class ServersModel extends DefaultEditableTableModel {
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,15 +20,14 @@
  */
 
 /*
- * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.time.client.swing;
 
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.swing.model.SimpleModelControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.time.SimpleTimeModel;
 
 public class TimeControl
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeModel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeModel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -29,7 +29,7 @@
 import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.model.AbstractModel;
 import org.opensolaris.os.vp.panel.common.time.TimeMXBean;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class TimeModel extends AbstractModel<TimePanelDescriptor> {
 
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.vp.panels.time.client.swing;
@@ -29,10 +28,9 @@
 import java.text.DateFormat;
 import java.util.TimeZone;
 import javax.swing.Icon;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
+import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.swing.timezone.TimeZoneModel;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.time.SimpleTimeModel;
 
 public class TimeObject extends IncestuousManagedObject<TimeControl> {
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimePanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimePanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -28,7 +28,7 @@
 import java.awt.EventQueue;
 import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.View;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.LongProperty;
 import org.opensolaris.os.vp.util.swing.*;
 import org.opensolaris.os.vp.util.swing.layout.*;
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimePanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimePanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -39,7 +39,7 @@
 import org.opensolaris.os.vp.panel.common.time.*;
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
-import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
 @SuppressWarnings({"serial"})
@@ -54,13 +54,11 @@
     private static final String SERVICE = "network/ntp";
     private static final String INSTANCE = "default";
 
-    protected static final List<ImageIcon> icons = IconFinder.getIcons(
-	new String[] {
-	    "images/time-16.png",
-	    "images/time-24.png",
-	    "images/time-48.png",
-	    "images/time-192.png",
-	});
+    protected static final List<ImageIcon> icons = Finder.getIcons(
+	"images/time-16.png",
+	"images/time-24.png",
+	"images/time-48.png",
+	"images/time-192.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeZoneObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/time/org/opensolaris/os/vp/panels/time/client/swing/TimeZoneObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -31,7 +31,7 @@
 import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.swing.model.SimpleModelControl;
 import org.opensolaris.os.vp.panel.swing.timezone.*;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.time.SimpleTimeModel;
 
 public class TimeZoneObject extends
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/AddUserAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/AddUserAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -25,37 +25,19 @@
 
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.event.*;
 import java.util.List;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.JOptionPane;
-import javax.swing.JPasswordField;
+import javax.swing.*;
 import javax.swing.text.JTextComponent;
-import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
-import org.opensolaris.os.vp.panel.common.control.NavigationException;
-import org.opensolaris.os.vp.panel.common.control.Navigable;
-import org.opensolaris.os.vp.panel.common.control.SimpleNavigable;
-import org.opensolaris.os.vp.panel.common.usermgr.UserImpl;
+import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.*;
+import org.opensolaris.os.vp.panel.common.usermgr.*;
 import org.opensolaris.os.vp.panel.swing.action.AddManagedObjectAction;
-import org.opensolaris.os.vp.util.misc.Finder;
 import org.opensolaris.os.vp.util.misc.ObjectUtil;
-import org.opensolaris.os.vp.util.misc.property.BasicMutableProperty;
-import org.opensolaris.os.vp.util.misc.property.MutableProperty;
-import org.opensolaris.os.vp.util.misc.property.StringProperty;
-import org.opensolaris.os.vp.util.swing.Form;
-import org.opensolaris.os.vp.util.swing.GUIUtil;
-import org.opensolaris.os.vp.util.swing.layout.RowLayoutConstraint;
-import org.opensolaris.os.vp.util.swing.layout.ColumnLayoutConstraint;
-import org.opensolaris.os.vp.util.swing.layout.HasAnchors;
-import org.opensolaris.os.vp.util.swing.layout.HorizontalAnchor;
-import org.opensolaris.os.vp.util.swing.layout.SimpleHasAnchors;
-import org.opensolaris.os.vp.util.swing.layout.VerticalAnchor;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.property.*;
+import org.opensolaris.os.vp.util.swing.*;
+import org.opensolaris.os.vp.util.swing.layout.*;
 import org.opensolaris.os.vp.util.swing.property.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/DeleteUserAction.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/DeleteUserAction.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,13 +27,11 @@
 
 import java.util.List;
 import javax.swing.JOptionPane;
-import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
+import org.opensolaris.os.vp.panel.common.action.*;
 import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.swing.action.DeleteManagedObjectAction;
 import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/HintTextPropertySynchronizer.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/HintTextPropertySynchronizer.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,13 +26,10 @@
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
 import javax.swing.UIManager;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.util.misc.property.MutableProperty;
-import org.opensolaris.os.vp.util.misc.property.PropertySynchronizer;
-import org.opensolaris.os.vp.util.swing.DocumentAdapter;
-import org.opensolaris.os.vp.util.swing.HintTextField;
+import javax.swing.event.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.property.*;
+import org.opensolaris.os.vp.util.swing.*;
 
 /**
  * The {@code HintTextComponentPropertySynchronizer} class synchronizes a {@link
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/MainControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/MainControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,23 +27,14 @@
 
 import java.net.URL;
 import java.util.List;
-import javax.swing.JList;
-import javax.swing.ListModel;
-import javax.swing.ListSelectionModel;
+import javax.swing.*;
 import javax.swing.border.Border;
-import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
-import org.opensolaris.os.vp.panel.common.control.Control;
-import org.opensolaris.os.vp.panel.common.control.Navigable;
-import org.opensolaris.os.vp.panel.common.control.SimpleNavigable;
-import org.opensolaris.os.vp.panel.swing.control.ListSelectorControl;
-import org.opensolaris.os.vp.panel.swing.control.SwingControl;
-import org.opensolaris.os.vp.panel.swing.view.ListSelectorPanel;
-import org.opensolaris.os.vp.panel.swing.view.ManagedObjectCellRenderer;
-import org.opensolaris.os.vp.panel.swing.view.ManagedObjectTableModel;
+import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.*;
+import org.opensolaris.os.vp.panel.swing.control.*;
+import org.opensolaris.os.vp.panel.swing.view.*;
 import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.ClippedBorder;
 
 public class MainControl extends ListSelectorControl
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserManagedObject.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserManagedObject.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,20 +26,12 @@
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
 import java.util.List;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
+import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.model.AbstractManagedObject;
-import org.opensolaris.os.vp.panel.common.usermgr.User;
-import org.opensolaris.os.vp.panel.common.usermgr.UserImpl;
-import org.opensolaris.os.vp.panel.common.usermgr.UserType;
-import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
-import org.opensolaris.os.vp.util.misc.IconFinder;
-import org.opensolaris.os.vp.util.misc.IconUtil;
-import org.opensolaris.os.vp.util.misc.property.BasicMutableProperty;
-import org.opensolaris.os.vp.util.misc.property.BooleanProperty;
-import org.opensolaris.os.vp.util.misc.property.LongProperty;
-import org.opensolaris.os.vp.util.misc.property.MutableProperty;
-import org.opensolaris.os.vp.util.misc.property.StringProperty;
+import org.opensolaris.os.vp.panel.common.usermgr.*;
+import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.HasIcon;
 
 @SuppressWarnings({"serial"})
@@ -51,21 +43,17 @@
     //
 
     // Icons - for user, roles
-    protected static final List<ImageIcon> userIcons = IconFinder.getIcons(
-	new String[] {
-	    "images/config-users-16.png",
-	    "images/config-users-22.png",
-	    "images/config-users-24.png",
-	    "images/config-users-32.png",
-	});
+    protected static final List<ImageIcon> userIcons = Finder.getIcons(
+	"images/config-users-16.png",
+	"images/config-users-22.png",
+	"images/config-users-24.png",
+	"images/config-users-32.png");
 
-    protected static final List<ImageIcon> roleIcons = IconFinder.getIcons(
-	new String[] {
-	    "images/config-roles-16.png",
-	    "images/config-roles-22.png",
-	    "images/config-roles-24.png",
-	    "images/config-roles-32.png",
-	});
+    protected static final List<ImageIcon> roleIcons = Finder.getIcons(
+	"images/config-roles-16.png",
+	"images/config-roles-22.png",
+	"images/config-roles-24.png",
+	"images/config-roles-32.png");
 
     //
     // Instance data
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrAdvancedControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrAdvancedControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,12 +27,11 @@
 
 import java.net.URL;
 import java.util.List;
-import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
+import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.common.usermgr.Group;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UserMgrAdvancedControl
     extends SettingsControl<UserMgrPanelDescriptor, UserMgrAdvancedPanel> {
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrAdvancedPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrAdvancedPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,25 +26,14 @@
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
 import java.awt.EventQueue;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
+import javax.swing.*;
 import org.opensolaris.os.vp.panel.common.usermgr.Group;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.util.misc.property.LongProperty;
-import org.opensolaris.os.vp.util.misc.property.MutableProperty;
-import org.opensolaris.os.vp.util.misc.property.StringProperty;
-import org.opensolaris.os.vp.util.swing.Form;
-import org.opensolaris.os.vp.util.swing.GUIUtil;
-import org.opensolaris.os.vp.util.swing.HintTextField;
-import org.opensolaris.os.vp.util.swing.SettingsPanel;
-import org.opensolaris.os.vp.util.swing.layout.ColumnLayoutConstraint;
-import org.opensolaris.os.vp.util.swing.layout.HasAnchors;
-import org.opensolaris.os.vp.util.swing.layout.HorizontalAnchor;
-import org.opensolaris.os.vp.util.swing.layout.SimpleHasAnchors;
-import org.opensolaris.os.vp.util.swing.layout.VerticalAnchor;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.property.*;
+import org.opensolaris.os.vp.util.swing.*;
+import org.opensolaris.os.vp.util.swing.layout.*;
 import org.opensolaris.os.vp.util.swing.property.ComboBoxPropertySynchronizer;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrBasicControl.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrBasicControl.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,11 +26,10 @@
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
 import java.net.URL;
-import org.opensolaris.os.vp.panel.common.action.ActionAbortedException;
-import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.panel.common.action.ActionUnauthorizedException;
+import org.opensolaris.os.vp.panel.common.action.*;
+import org.opensolaris.os.vp.panel.common.control.Control;
 import org.opensolaris.os.vp.panel.swing.control.SettingsControl;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UserMgrBasicControl
     extends SettingsControl<UserMgrPanelDescriptor, UserMgrBasicPanel> {
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrBasicPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrBasicPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,29 +26,13 @@
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
 import java.awt.EventQueue;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
+import javax.swing.*;
 import org.opensolaris.os.vp.panel.swing.view.ChangeIndicator;
 import org.opensolaris.os.vp.util.misc.ChangeableAggregator;
-import org.opensolaris.os.vp.util.misc.Finder;
-import org.opensolaris.os.vp.util.misc.property.BooleanProperty;
-import org.opensolaris.os.vp.util.misc.property.BasicMutableProperty;
-import org.opensolaris.os.vp.util.misc.property.MutableProperty;
-import org.opensolaris.os.vp.util.misc.property.StringProperty;
-import org.opensolaris.os.vp.util.swing.Form;
-import org.opensolaris.os.vp.util.swing.GUIUtil;
-import org.opensolaris.os.vp.util.swing.LinkCollapsiblePane;
-import org.opensolaris.os.vp.util.swing.SettingsPanel;
-import org.opensolaris.os.vp.util.swing.Spacer;
-import org.opensolaris.os.vp.util.swing.layout.ColumnLayoutConstraint;
-import org.opensolaris.os.vp.util.swing.layout.HasAnchors;
-import org.opensolaris.os.vp.util.swing.layout.HorizontalAnchor;
-import org.opensolaris.os.vp.util.swing.layout.RowLayoutConstraint;
-import org.opensolaris.os.vp.util.swing.layout.SimpleHasAnchors;
-import org.opensolaris.os.vp.util.swing.layout.VerticalAnchor;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
+import org.opensolaris.os.vp.util.misc.property.*;
+import org.opensolaris.os.vp.util.swing.*;
+import org.opensolaris.os.vp.util.swing.layout.*;
 import org.opensolaris.os.vp.util.swing.property.*;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrEmptyPanel.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrEmptyPanel.java	Thu Oct 21 16:28:55 2010 -0400
@@ -26,11 +26,8 @@
 package org.opensolaris.os.vp.panels.usermgr.client.swing;
 
 import java.awt.BorderLayout;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JOptionPane;
-import javax.swing.SwingConstants;
-import org.opensolaris.os.vp.util.misc.Finder;
+import javax.swing.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.swing.GUIUtil;
 
 @SuppressWarnings({"serial"})
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrPanelDescriptor.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrPanelDescriptor.java	Thu Oct 21 16:28:55 2010 -0400
@@ -39,6 +39,7 @@
 import org.opensolaris.os.vp.panel.swing.control.PanelFrameControl;
 import org.opensolaris.os.vp.panel.swing.model.SwingPanelDescriptor;
 import org.opensolaris.os.vp.util.misc.*;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 import org.opensolaris.os.vp.util.misc.property.*;
 import org.opensolaris.os.vp.util.swing.HasIcons;
 
--- a/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrUtils.java	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/java/vpanels/panels/usermgr/org/opensolaris/os/vp/panels/usermgr/client/swing/UserMgrUtils.java	Thu Oct 21 16:28:55 2010 -0400
@@ -27,7 +27,7 @@
 
 import java.util.Arrays;
 import org.opensolaris.os.vp.panel.common.action.ActionFailedException;
-import org.opensolaris.os.vp.util.misc.Finder;
+import org.opensolaris.os.vp.util.misc.finder.Finder;
 
 public class UserMgrUtils {
     //
--- a/usr/src/pkg/manifests/system-management-visual-panels.mf	Wed Oct 20 10:27:52 2010 -0700
+++ b/usr/src/pkg/manifests/system-management-visual-panels.mf	Thu Oct 21 16:28:55 2010 -0400
@@ -32,7 +32,7 @@
 dir path=usr group=sys
 dir path=usr/bin
 file path=usr/bin/sleeklock mode=0555
-link path=usr/bin/vp target=../share/lib/java/vpanels-client.jar
+file path=usr/bin/vp mode=0555
 dir path=usr/lib
 file path=usr/lib/libUnixDomainSocket_jni.so.1
 link path=usr/lib/libjniutil.so target=libjniutil.so.1
@@ -55,6 +55,7 @@
 file path=usr/share/vpanels/rad.jar
 file path=usr/share/vpanels/scf-common.jar
 file path=usr/share/vpanels/swingx-0.9.3.jar
+file path=usr/share/vpanels/java.policy
 file path=usr/share/vpanels/vpanels-client.jar mode=0555
 file path=usr/share/vpanels/vpanels-common.jar
 file path=usr/share/vpanels/vpanels-panel.jar