18724 sysid:panel/module/packages are obsolete
authorStephen Talley <stephen.talley@oracle.com>
Tue, 19 Jul 2011 22:47:59 -0400
changeset 743 1b4afc57544f
parent 742 9f78b6b07bd1
child 744 9739f213137f
18724 sysid:panel/module/packages are obsolete
usr/src/apis/sysid.xml
usr/src/cmd/rad/mod/Makefile
usr/src/cmd/rad/mod/sysid/Makefile
usr/src/cmd/rad/mod/sysid/mod_sysid.c
usr/src/java/vpanels/app/sysid/build.xml
usr/src/java/vpanels/app/sysid/nbproject/project.xml
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleControl.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleModel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocalePanel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryControl.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryModel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryPanel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdControl.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanelDescriptor.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/TimeZoneControl.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserControl.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserModel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserPanel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomeControl.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomePanel.java
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/logo.png
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-192.png
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-24.png
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-48.png
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-96.png
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/resources/Resources.properties
usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/common/SysIdUtil.java
usr/src/pkg/baggage/OSOLvpanels-sysid.p5m
usr/src/pkg/baggage/system-management-visual-panels-panel-sysid.p5m
usr/src/pkg/manifests/system-management-visual-panels-panel-sysid.p5m
--- a/usr/src/apis/sysid.xml	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-
- 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
--->
-
-<interface xmlns="http://www.opensolaris.org/ns/adr" name="sysid">
-
-	<pragma domain="java" name="package"
-	    value="org.opensolaris.os.vp.panels.sysid.common" />
-
-	<type name="Locale">
-		<field type="string" name="name" />
-		<field type="string" name="countryCode" />
-		<field type="string" name="languageCode" />
-		<field type="string" name="description" />
-	</type>
-
-	<enum name="UserErrorCode">
-		<value name="invalid" />
-		<value name="system" />
-		<value name="exists" />
-	</enum>
-
-	<type name="UserError">
-		<field typeref="UserErrorCode" name="code" />
-	</type>
-
-	<api name="SysId">
-		<version major="0" minor="1" stability="private" />
-
-		<property name="Locales" access="ro">
-			<list typeref="Locale" />
-		</property>
-		<property type="string" name="DefaultLocale" access="rw">
-			<error />
-		</property>
-		<property type="string" name="RootPassword" access="wo">
-			<error />
-		</property>
-		<property type="boolean" name="SufficientlyPrivileged"
-		    access="ro"/>
-		<property type="string" name="Nodename" access="wo">
-			<error />
-		</property>
-
-		<method name="createUser">
-			<error typeref="UserError" />
-			<argument type="string" name="username" />
-			<argument type="string" name="name" />
-			<argument type="string" name="password" />
-		</method>
-	</api>
-
-</interface>
--- a/usr/src/cmd/rad/mod/Makefile	Tue Jul 19 19:09:31 2011 -0400
+++ b/usr/src/cmd/rad/mod/Makefile	Tue Jul 19 22:47:59 2011 -0400
@@ -35,7 +35,6 @@
 	panels \
 	smf_old \
 	smf \
-	sysid \
 	test \
 	test-compat-cold \
 	test-compat-cnew \
--- a/usr/src/cmd/rad/mod/sysid/Makefile	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +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) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-include ../Makefile.env
-
-LDLIBS += -lpam
-
-MOD_APIS=sysid
-MOD_OBJS=mod_sysid.o rad_defaults.o
-MOD_LIBNAME=mod_sysid.so
-MOD_INSTALLDIR=$(RADDIR_MODULE)
-
-include ../Makefile.com
--- a/usr/src/cmd/rad/mod/sysid/mod_sysid.c	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +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) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
- */
-
-#include <sys/fork.h>
-#include <sys/types.h>
-#include <security/pam_appl.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <time.h>
-#include <dirent.h>
-#include <limits.h>
-#include <wait.h>
-#include <ctype.h>
-#include <errno.h>
-#include <pwd.h>
-
-#include <rad/adr.h>
-#include <rad/rad_modapi.h>
-#include "../rad_defaults.h"
-
-#include "api_sysid.h"
-
-/*ARGSUSED*/
-static int
-verify_conv(int num_msg, struct pam_message **msg,
-    struct pam_response **response, void *ptr)
-{
-	char *passwd = ptr;
-
-	/*
-	 * We assume the first (and only) request is to verify
-	 * the provided auth token.  This is necessary until
-	 * PAM_SILENT is fixed by 6758592.
-	 */
-	struct pam_response *r = malloc(sizeof (struct pam_response));
-	*response = r;
-	r->resp = strdup(passwd);
-	r->resp_retcode = 0;
-	return (PAM_SUCCESS);
-}
-
-static int
-setpass(const char *user, const char *passwd)
-{
-	pam_handle_t *pamh;
-	struct pam_conv pam_conv = { verify_conv, (void *)passwd };
-	int res;
-
-	if (passwd == NULL || passwd[0] == '\0') {
-		const char *argv[] = { "/usr/bin/passwd", "-d", user, NULL };
-		int status;
-		if (rad_forkexec_wait(NULL, argv, &status) == 0 &&
-		    status == 0)
-			return (0);
-		return (1);
-	}
-
-	/*
-	 * This is only used when initializing the system, so we don't
-	 * reuse the session's PAM context.
-	 */
-	res = pam_start("other", user, &pam_conv, &pamh);
-	if (res != PAM_SUCCESS) {
-		rad_log(RL_WARN, "Failed to initialize PAM: %s\n",
-		    pam_strerror(pamh, res));
-		return (1);
-	}
-
-	res = pam_set_item(pamh, PAM_AUTHTOK, passwd);
-	if (res != PAM_SUCCESS) {
-		rad_log(RL_WARN, "Failed to set auth token: %s\n",
-		    pam_strerror(pamh, res));
-		return (1);
-	}
-
-	res = pam_chauthtok(pamh, PAM_SILENT|PAM_NO_AUTHTOK_CHECK);
-	if (res != PAM_SUCCESS) {
-		rad_log(RL_WARN, "Failed to change auth token: %s\n",
-		    pam_strerror(pamh, res));
-		return (1);
-	}
-
-	pam_end(pamh, PAM_SUCCESS);
-
-	return (0);
-}
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_read_Locales(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
-{
-	DIR *d = opendir("/usr/lib/locale");
-	struct dirent *ent;
-
-	data_t *result = data_new_array(&t_array__Locale, 150);
-	while ((ent = readdir(d)) != NULL) {
-		if (strcmp(ent->d_name, ".") == 0 ||
-		    strcmp(ent->d_name, "..") == 0)
-			continue;
-
-		data_t *lang;
-		data_t *country;
-
-		if (strcmp(ent->d_name, "C") == 0) {
-			lang = data_new_string("C/POSIX", lt_const);
-			country = data_new_string("C/POSIX", lt_const);
-		} else if (strlen(ent->d_name) < sizeof ("XX_YY.UTF-8") - 1 ||
-		    ent->d_name[2] != '_' ||
-		    strcmp(&ent->d_name[5], ".UTF-8") != 0) {
-			continue;
-		} else {
-			lang = data_new_nstring(ent->d_name, 2);
-			country = data_new_nstring(&ent->d_name[3], 2);
-		}
-		FILE *f = rad_fopenf("/usr/lib/locale/%s/locale_description",
-		    "r", ent->d_name);
-		if (f == NULL) {
-			data_free(lang);
-			data_free(country);
-			continue;
-		}
-		char str[1024];
-		fgets(str, sizeof (str), f);
-
-		/* Attempt to chop off UTF-8 related comments */
-		char *utf = strstr(str, "UTF-8");
-		if (utf != NULL)
-			for (char *sp = utf - 1; sp >= str; sp--)
-				if (*sp == ' ') {
-					*sp = '\0';
-					break;
-				}
-
-		data_t *l = data_new_struct(&t__Locale);
-		struct_set(l, "name", data_new_string(ent->d_name, lt_copy));
-		struct_set(l, "countryCode", country);
-		struct_set(l, "languageCode", lang);
-		struct_set(l, "description", data_new_string(str, lt_copy));
-
-		(void) array_add(result, l);
-	}
-	(void) closedir(d);
-
-	*data = data_purify_deep(result);
-	return (ce_ok);
-}
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_read_DefaultLocale(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t **data, data_t **error)
-{
-	defval_t *defs = read_defaults("/etc/default/init", "=");
-	if (defs == NULL)
-		return (ce_object);
-
-	char *lang = get_default(defs, "LANG");
-	if (lang == NULL)
-		lang = get_default(defs, "LC_ALL");
-
-	data_t *result = lang != NULL ? data_new_string(lang, lt_copy) :
-	    data_new_string("C", lt_const);
-	free_defaults(defs);
-
-	*data = result;
-	return (ce_ok);
-}
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_read_SufficientlyPrivileged(rad_instance_t *inst,
-    adr_attribute_t *attr, data_t **data, data_t **error)
-{
-	*data = data_new_boolean(getuid() == 0);
-	return (ce_ok);
-}
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_write_DefaultLocale(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
-{
-	defval_t vall = { "LC_ALL", NULL, NULL };
-	defval_t vlang = { "LANG", (char *)data_to_string(data), &vall };
-
-	/* XXX: Make sure the locale is valid */
-	int err = write_defaults("/etc/default/init", "=", &vlang);
-	switch (err) {
-	case 0:
-		return (ce_ok);
-	case EPERM:
-	case EACCES:
-		return (ce_priv);
-	default:
-		return (ce_object);
-	}
-}
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_write_RootPassword(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
-{
-	return (setpass("root", data_to_string(data)) == 0 ? ce_ok : ce_priv);
-}
-
-static const char *validhostchrs =
-	"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-";
-static const char *validuserchrs =
-	"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.";
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_write_Nodename(rad_instance_t *inst, adr_attribute_t *attr,
-    data_t *data, data_t **error)
-{
-	const char *name = data_to_string(data);
-
-	if (getuid() != 0)
-		return (ce_priv);
-
-	/*
-	 * A label must be at most 63 characters long, may contain letters,
-	 * digits, and hyphens, and must begin with a letter and may not
-	 * end with a hyphen.
-	 */
-	int len = strlen(name);
-	if (len == 0 || len > 63 || !isalpha(name[0]) ||
-	    name[len - 1] == '-' || strspn(name, validhostchrs) != len)
-		return (ce_object);
-
-	/*
-	 * Write /etc/nodename
-	 */
-	FILE *file = fopen("/etc/nodename", "w");
-	fprintf(file, "%s\n", name);
-	fclose(file);
-
-	/*
-	 * Write /etc/inet/hosts
-	 */
-	char str[1024];
-	(void) snprintf(str, 1024, "%s %s.local localhost loghost", name, name);
-	defval_t val = { "127.0.0.1", str, NULL };
-	(void) write_defaults("/etc/inet/hosts", "\t ", &val);
-
-	/*
-	 * Delete dumpadm.conf
-	 */
-	(void) unlink("/etc/dumpadm.conf");
-	return (ce_ok);
-}
-
-static conerr_t
-error_user(data_t **error, data_t *code)
-{
-	if (error != NULL) {
-		data_t *e = data_new_struct(&t__UserError);
-		struct_set(e, "code", code);
-		*error = data_purify(e);
-	}
-	return (ce_object);
-}
-
-/*ARGSUSED*/
-conerr_t
-api_SysId_invoke_createUser(rad_instance_t *inst, adr_method_t *meth,
-    data_t **ret, data_t **args, int count, data_t **error)
-{
-	const char *user = data_to_string(args[0]);
-	const char *gecos = data_to_string(args[1]);
-	const char *passwd = data_to_string(args[2]);
-	char homedir[PATH_MAX];
-	conerr_t err = ce_ok;
-
-	if (getuid() != 0)
-		return (ce_priv);
-
-	/*
-	 * Make sure the username:
-	 * - starts with a letter
-	 * - consists of letters, numbers, underscores, hypens, and periods
-	 * - is between 1 and 8 characters long (arbitrary)
-	 */
-	int len = strlen(user);
-	if (len < 1 || len > 8 || !isalpha(user[0]) ||
-	    strspn(user, validuserchrs) != len)
-		return (error_user(error, &e__UserErrorCode_invalid));
-
-	/*
-	 * Make sure it doesn't exist
-	 */
-	if (getpwnam(user) != NULL)
-		return (error_user(error, &e__UserErrorCode_exists));
-	(void) snprintf(homedir, PATH_MAX, "/export/home/%s", user);
-
-	/*
-	 * The GECOS field shouldn't contain colons, newlines, or ampersands
-	 */
-	if (strcspn(gecos, "\n:&") != strlen(gecos))
-		return (error_user(error, &e__UserErrorCode_invalid));
-
-	/*
-	 * We're creating a primary user, first make root a role.
-	 */
-	int status;
-	const char *modargv[] = {
-	    "/usr/sbin/usermod", "-K", "type=role", "root", NULL };
-	if (rad_forkexec_wait(NULL, modargv, &status) ||
-	    (status != 0 && status != 2))
-		return (error_user(error, &e__UserErrorCode_system));
-
-	/*
-	 * Create the user.
-	 */
-	const char *addargv[] = { "/usr/sbin/useradd", "-m", "-g", "staff",
-	    "-s", "/bin/bash", "-P", "Primary Administrator", "-R", "root",
-	    "-d", homedir, "-c", gecos, user, NULL
-	};
-	if (rad_forkexec_wait(NULL, addargv, &status))
-		err = error_user(error, &e__UserErrorCode_system);
-	else if (status == 9)
-		err = error_user(error, &e__UserErrorCode_exists);
-	else if (status != 0)
-		err = error_user(error, &e__UserErrorCode_system);
-
-	if (err == ce_ok && setpass(user, passwd) != 0)
-		err = error_user(error, &e__UserErrorCode_system);
-
-	if (err != ce_ok) {
-		/* We failed to create user, so un-role root */
-		const char *rmodargv[] = {
-		    "/usr/sbin/rolemod", "-K", "type=normal", "root", NULL };
-		(void) rad_forkexec_wait(NULL, rmodargv, &status);
-	}
-
-	return (err);
-}
-
-static rad_modinfo_t modinfo = { "sysid", "SysId panel support" };
-
-int
-_rad_init(void *handle)
-{
-	if (rad_module_register(handle, RAD_MODVERSION, &modinfo) == -1)
-		return (-1);
-
-	if (rad_isproxy)
-		return (0);
-
-	(void) cont_insert_singleton(rad_container,
-	    adr_name_fromstr("org.opensolaris.os.vp.panels.sysid:type=SysID"),
-	    &api_SysId_svr);
-
-	return (0);
-}
--- a/usr/src/java/vpanels/app/sysid/build.xml	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.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.
--->
-
-<project name="vpanels-panels-sysid" default="jar">
-	<import file="../build-panels.xml" />
-
-	<path id="classpath.javac">
-		<fileset refid="ws.extlibs" />
-		<path refid="classpath.panels" />
-		<pathelement location="${ws.java}/rad/rad.jar" />
-		<pathelement location="${ws.java}/adr/adr.jar" />
-	</path>
-
-	<property name="panel.panel" value="sysid" />
-	<property name="panel.class"
-	    value="org.opensolaris.os.vp.panels.sysid.client.swing.SysIdPanelDescriptor" />
-	<property name="panel.name" value="System Initialization" />
-
-	<target name="generate_project" depends="panelsdef.generate_project">
-		<generate.adr api="sysid.xml" />
-	</target>
-</project>
--- a/usr/src/java/vpanels/app/sysid/nbproject/project.xml	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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, 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<project xmlns="http://www.netbeans.org/ns/project/1">
-    <type>org.netbeans.modules.ant.freeform</type>
-    <configuration>
-        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
-            <name>vpanels-panels-sysid</name>
-        </general-data>
-        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
-            <!-- Do not use Project Properties customizer when editing this file manually. -->
-            <name>vpanels-panels-sysid</name>
-            <properties/>
-            <folders>
-                <source-folder>
-                    <label>Source Packages</label>
-                    <location>.</location>
-                    <includes>org/</includes>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>Source Packages</label>
-                    <type>java</type>
-                    <location>.</location>
-                    <includes>org/</includes>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-                <source-folder>
-                    <label>build/gen</label>
-                    <type>java</type>
-                    <location>build/gen</location>
-                    <includes>org/</includes>
-                    <encoding>UTF-8</encoding>
-                </source-folder>
-            </folders>
-            <ide-actions>
-                <action name="build">
-                    <target>jar</target>
-                </action>
-                <action name="clean">
-                    <target>clobber</target>
-                </action>
-                <action name="javadoc">
-                    <target>javadoc</target>
-                </action>
-                <action name="rebuild">
-                    <target>clobber</target>
-                    <target>jar</target>
-                </action>
-            </ide-actions>
-            <export>
-                <type>jar</type>
-                <location>vpanels-panels-sysid.jar</location>
-                <build-target>jar</build-target>
-            </export>
-            <view>
-                <items>
-                    <source-folder style="packages">
-                        <label>Source Packages</label>
-                        <location>.</location>
-                        <includes>org/</includes>
-                    </source-folder>
-                    <source-folder style="packages">
-                        <label>build/gen</label>
-                        <location>build/gen</location>
-                        <includes>org/</includes>
-                    </source-folder>
-                    <source-file>
-                        <location>build.xml</location>
-                    </source-file>
-                </items>
-                <context-menu>
-                    <ide-action name="build"/>
-                    <ide-action name="rebuild"/>
-                    <ide-action name="clean"/>
-                    <ide-action name="javadoc"/>
-                </context-menu>
-            </view>
-            <subprojects/>
-        </general-data>
-        <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/1">
-            <compilation-unit>
-                <package-root>.</package-root>
-                <package-root>build/gen</package-root>
-                <classpath mode="compile">../../../scf/common/scf-common.jar:../../../util/vpanels-util.jar:../../panel/vpanels-panel.jar:../../../adr/adr.jar:../../../rad/rad.jar</classpath>
-                <built-to>vpanels-panels-sysid.jar</built-to>
-                <source-level>1.5</source-level>
-            </compilation-unit>
-        </java-data>
-    </configuration>
-</project>
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleControl.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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) 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.Finder;
-
-public class LocaleControl extends SimpleWizardModelControl<LocaleModel,
-    SysIdPanelDescriptor, LocalePanel> {
-
-    //
-    // Static data
-    //
-
-    private static final String ID = "locale";
-    private static final String NAME = Finder.getString("sysid.locale.title");
-
-    //
-    // Constructors
-    //
-
-    public LocaleControl(SysIdPanelDescriptor descriptor) {
-	super(ID, NAME, descriptor, new LocaleModel(descriptor),
-	    new LocalePanel(descriptor.getSysIdBean()));
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocaleModel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +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) 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.panel.common.action.*;
-import org.opensolaris.os.vp.panel.common.model.AbstractModel;
-import org.opensolaris.os.vp.util.misc.finder.Finder;
-
-public class LocaleModel extends AbstractModel<SysIdPanelDescriptor> {
-    //
-    // Instance data
-    //
-
-    private String locale;
-
-    //
-    // Constructors
-    //
-
-    public LocaleModel(SysIdPanelDescriptor descriptor) {
-	super(descriptor);
-    }
-
-    //
-    // Model methods
-    //
-
-    @Override
-    public boolean isInitialized() {
-	return (locale != null);
-    }
-
-    @Override
-    public void init() {
-	load();
-    }
-
-    @Override
-    public void load() {
-	try {
-	    setLocale(getSource().getSysIdBean().getDefaultLocale());
-	} catch (ObjectException e) {
-	    locale = "C";
-	}
-    }
-
-    @Override
-    public void save() throws ActionFailedException,
-	ActionUnauthorizedException {
-
-	validate();
-
-	try {
-	    getSource().getSysIdBean().setDefaultLocale(locale);
-
-	} catch (SecurityException e) {
-	    throw new ActionUnauthorizedException(e);
-
-	} catch (ObjectException e) {
-	    throw new ActionFailedException(
-		Finder.getString("sysid.locale.syserror"), e);
-	}
-    }
-
-    @Override
-    public void validate() throws ActionFailedException {
-	if (locale == null) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.locale.unset"));
-	}
-    }
-
-    //
-    // LocaleModel methods
-    //
-
-    public String getLocale() {
-	return locale;
-    }
-
-    public void setLocale(String locale) {
-	this.locale = locale;
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/LocalePanel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,280 +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.panels.sysid.client.swing;
-
-import java.awt.event.*;
-import java.util.*;
-import javax.swing.*;
-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.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.*;
-import org.opensolaris.os.vp.util.swing.layout.*;
-import org.opensolaris.os.vp.util.swing.property.NVComboBoxPropertySynchronizer;
-
-public class LocalePanel extends SettingsPanel implements View<LocaleModel> {
-    //
-    // Inner classes
-    //
-
-    private static class ILanguage extends NameValue<String> {
-	//
-	// Constructors
-	//
-
-	public ILanguage(String desc, String code) {
-	    super(desc, code);
-	}
-
-	public ILanguage(String code) {
-	    this(getDescription(code), code);
-	}
-
-	//
-	// Static methods
-	//
-
-	private static String getDescription(String code) {
-	    String description =
-		new java.util.Locale(code).getDisplayLanguage();
-
-	    // Java doesn't know this one?
-	    if (code.toLowerCase().equals(description)) {
-		if (description.equals("sh")) {
-		    description = "Serbo-Croatian";
-		} else {
-		    description = code;
-		}
-	    }
-
-	    return description;
-	}
-    }
-
-    public static class ILocale extends NameValue<Locale> {
-	//
-	// Constructors
-	//
-
-	public ILocale(String desc, Locale locale) {
-	    super(desc, locale);
-	}
-
-	public ILocale(Locale locale) {
-	    this(getDescription(locale), locale);
-	}
-
-	//
-	// Static methods
-	//
-
-	private static String getDescription(Locale locale) {
-	    return new java.util.Locale(locale.getLanguageCode(),
-		locale.getCountryCode()).getDisplayCountry();
-	}
-    }
-
-    //
-    // Instance data
-    //
-
-    private MutableProperty<Locale> localeProperty =
-	new BasicMutableProperty<Locale>();
-
-    private Map<String, ILocale> nameToLocale =
-	new HashMap<String, ILocale>();
-
-    //
-    // Constructors
-    //
-
-    public LocalePanel(SysIdMXBean bean) {
-	getHelpField().setText(Finder.getString("sysid.locale.desc"));
-
-	final Map<String, ILanguage> codeToLanguage =
-	    new HashMap<String, ILanguage>();
-
-	ILanguage unselLanguage = new ILanguage(
-	    Finder.getString("sysid.locale.language.select"), null);
-
-	codeToLanguage.put(null, unselLanguage);
-
-	for (Locale locale : bean.getLocales()) {
-	    String code = locale.getLanguageCode();
-	    ILanguage language = codeToLanguage.get(code);
-
-	    if (language == null) {
-		language = new ILanguage(code);
-		codeToLanguage.put(code, language);
-	    }
-
-	    ILocale iLocale = new ILocale(locale);
-	    nameToLocale.put(locale.getName(), iLocale);
-	}
-
-	// Languages
-	JLabel languageLabel = new JLabel(Finder.getString(
-	    "sysid.locale.label.language"));
-
-	List<ILanguage> languages =
-	    new ArrayList<ILanguage>(codeToLanguage.values());
-
-	Collections.sort(languages);
-
-	final FilteredComboBoxModel<ILanguage> languageModel =
-	    new FilteredComboBoxModel<ILanguage>(languages);
-	JComboBox languageCombo = new JComboBox(languageModel);
-
-	// Locales
-	JLabel localeLabel = new JLabel(Finder.getString(
-	    "sysid.locale.label.locale"));
-
-	List<ILocale> iLocales =
-	    new ArrayList<ILocale>(nameToLocale.values());
-
-	final ILocale unselLocale = new ILocale(
-	    Finder.getString("sysid.locale.locale.select"), null);
-
-	iLocales.add(0, unselLocale);
-
-	Collections.sort(iLocales);
-
-	final FilteredComboBoxModel<ILocale> localeModel =
-	    new FilteredComboBoxModel<ILocale>(iLocales);
-	JComboBox localeCombo = new JComboBox(localeModel);
-
-	languageCombo.addItemListener(
-	    new ItemListener() {
-		@Override
-		public void itemStateChanged(ItemEvent e) {
-		    ILanguage language = languageModel.getSelectedItem();
-		    final String code = language == null ? null :
-			language.getValue();
-
-		    localeModel.setPredicate(
-			new Predicate<ILocale>() {
-			    @Override
-			    public boolean test(ILocale iLocale) {
-				if (code == null) {
-				    return iLocale == unselLocale;
-				}
-
-				String code2 = null;
-				if (iLocale != null) {
-				    Locale locale = iLocale.getValue();
-				    if (locale != null) {
-					code2 = locale.getLanguageCode();
-				    }
-				}
-
-				return code.equals(code2);
-			    }
-			});
-
-		    ILocale locale = localeModel.getSize() == 1 ?
-			localeModel.getElementAt(0) : unselLocale;
-
-		    localeModel.setSelectedItem(locale);
-		}
-	    });
-
-	// Initialize
-	languageCombo.setSelectedItem(unselLanguage);
-
-	getChangeableAggregator().addChangeables(localeProperty);
-
-	new NVComboBoxPropertySynchronizer<Locale>(localeProperty, localeCombo)
-	{
-	    @Override
-	    public void setValue(Locale locale) {
-		String code = locale == null ? null : locale.getLanguageCode();
-
-		// Select value in languageCombo
-		ILanguage iLanguage = codeToLanguage.get(code);
-		languageModel.setSelectedItem(iLanguage);
-
-		// Set value in localeCombo
-		super.setValue(locale);
-	    }
-	};
-
-	JPanel formPanel = new JPanel();
-	setOpaque(false);
-	Form form = new Form(formPanel, VerticalAnchor.CENTER);
-
-	int gap = GUIUtil.getGap();
-
-	ColumnLayoutConstraint c = new ColumnLayoutConstraint(
-	    HorizontalAnchor.FILL, gap, 1f);
-
-	SimpleHasAnchors labelAnchor = new SimpleHasAnchors(
-	    HorizontalAnchor.RIGHT, VerticalAnchor.CENTER);
-
-	SimpleHasAnchors fieldAnchor = new SimpleHasAnchors(
-	    HorizontalAnchor.FILL, VerticalAnchor.CENTER);
-
-	form.addTable(2, gap, gap / 2, HorizontalAnchor.CENTER, c.setWeight(0));
-
-	form.add(languageLabel, labelAnchor);
-	form.add(languageCombo, fieldAnchor);
-
-	form.add(localeLabel, labelAnchor);
-	form.add(localeCombo, fieldAnchor);
-
-	setContent(formPanel, false, false);
-    }
-
-    //
-    // View methods
-    //
-
-    @Override
-    public void modelToView(LocaleModel model) {
-	String name = model.getLocale();
-	ILocale iLocale = nameToLocale.get(name);
-	Locale locale = iLocale == null ? null : iLocale.getValue();
-	localeProperty.update(locale, false);
-    }
-
-    @Override
-    public void viewToModel(LocaleModel model) {
-	Locale locale = localeProperty.getValue();
-	String name = locale == null ? null : locale.getName();
-	model.setLocale(name);
-    }
-
-    //
-    // LocalePanel methods
-    //
-
-    public MutableProperty<Locale> getLocaleProperty() {
-	return localeProperty;
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryControl.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +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) 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.Finder;
-
-public class SummaryControl extends WizardSummaryControl<SummaryModel,
-    SysIdPanelDescriptor, SummaryPanel> {
-
-    //
-    // Static data
-    //
-
-    private static final String ID = "summary";
-    private static final String NAME = Finder.getString("sysid.summary.title");
-
-    //
-    // Constructors
-    //
-
-    public SummaryControl(SysIdPanelDescriptor descriptor, TimeZoneModel zModel,
-	LocaleModel lModel, UserModel uModel) {
-
-	super(ID, NAME, descriptor, new SummaryModel(zModel, lModel, uModel));
-    }
-
-    //
-    // SwingControl methods
-    //
-
-    @Override
-    protected SummaryPanel createComponent() {
-	return new SummaryPanel();
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryModel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +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.panels.sysid.client.swing;
-
-import org.opensolaris.os.vp.panel.swing.timezone.TimeZoneModel;
-import org.opensolaris.os.vp.panel.common.model.AggregateModel;
-
-public class SummaryModel extends AggregateModel {
-    //
-    // Instance data
-    //
-
-    private TimeZoneModel zModel;
-    private LocaleModel lModel;
-    private UserModel uModel;
-
-    //
-    // Constructors
-    //
-
-    public SummaryModel(TimeZoneModel zModel, LocaleModel lModel,
-	UserModel uModel) {
-
-	super(zModel, lModel, uModel);
-
-	this.zModel = zModel;
-	this.lModel = lModel;
-	this.uModel = uModel;
-    }
-
-    //
-    // SummaryModel methods
-    //
-
-    public TimeZoneModel getTimeZoneModel() {
-	return zModel;
-    }
-
-    public LocaleModel getLocaleModel() {
-	return lModel;
-    }
-
-    public UserModel getUserModel() {
-	return uModel;
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SummaryPanel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +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.panels.sysid.client.swing;
-
-import javax.swing.*;
-import org.opensolaris.os.vp.panel.common.model.*;
-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.*;
-
-public class SummaryPanel extends SettingsPanel implements View<SummaryModel> {
-    //
-    // Static data
-    //
-
-    private static final Icon ICON_WARNING =
-	IconUtil.ensureIconHeight(GUIUtil.getIcon(JOptionPane.WARNING_MESSAGE),
-	16);
-
-    //
-    // Instance data
-    //
-
-    private JLabel hostNameField;
-    private JLabel localeField;
-    private JLabel tzField;
-    private JLabel rootPassField;
-    private JLabel userField;
-    private JLabel userPassField;
-
-    //
-    // Constructors
-    //
-
-    public SummaryPanel() {
-	getHelpField().setText(Finder.getString("sysid.summary.desc"));
-	setBorder(null);
-
-	JPanel formPanel = createFormPanel();
-	setContent(formPanel, false, false);
-    }
-
-    //
-    // Model methods
-    //
-
-    public void modelToView(SummaryModel model) {
-	tzField.setText(Finder.getString("sysid.summary.timezone",
-	    model.getTimeZoneModel().getTimeZone()));
-
-	localeField.setText(Finder.getString("sysid.summary.locale",
-	    model.getLocaleModel().getLocale()));
-
-	UserModel uModel = model.getUserModel();
-
-	String resource;
-	Icon icon;
-	if (uModel.getRootPassword()[0].length == 0) {
-	    resource = "sysid.summary.user.root.password.unset";
-	    icon = ICON_WARNING;
-	} else {
-	    resource = "sysid.summary.user.root.password.set";
-	    icon = null;
-	}
-	rootPassField.setText(Finder.getString(resource));
-	rootPassField.setIcon(icon);
-
-	String login = uModel.getLogin();
-	boolean userSpecified = login.length() != 0;
-	if (userSpecified) {
-	    resource = "sysid.summary.user.user.set";
-	    icon = null;
-	} else {
-	    resource = "sysid.summary.user.user.unset";
-	    icon = ICON_WARNING;
-	}
-
-	userField.setText(Finder.getString(resource, login,
-	    uModel.getUserName()));
-	userField.setIcon(icon);
-
-	userPassField.setVisible(userSpecified &&
-	    uModel.getUserPassword()[0].length == 0);
-
-	hostNameField.setText(Finder.getString("sysid.summary.user.host",
-	    uModel.getHostName()));
-    }
-
-    public void viewToModel(SummaryModel model) {
-	/* No-op */
-    }
-
-    //
-    // Private methods
-    //
-
-    private JPanel createFormPanel() {
-	JLabel tzHeader = createHeader("sysid.timezone.title");
-	tzField = new JLabel();
-
-	JLabel localeHeader = createHeader("sysid.locale.title");
-	localeField = new JLabel();
-
-	JLabel usersHeader = createHeader("sysid.user.title");
-
-	rootPassField = new JLabel();
-	rootPassField.setHorizontalTextPosition(SwingConstants.LEADING);
-
-	userField = new JLabel();
-	userField.setHorizontalTextPosition(SwingConstants.LEADING);
-
-	userPassField = new JLabel();
-	userPassField.setText(Finder.getString(
-	    "sysid.summary.user.user.password.unset"));
-	userPassField.setIcon(ICON_WARNING);
-	userPassField.setHorizontalTextPosition(SwingConstants.LEADING);
-
-	hostNameField = new JLabel();
-
-	JTextArea instField = new FlowTextArea(Finder.getString(
-	    "sysid.summary.instructions"));
-	instField.setColumns(40);
-
-	JPanel formPanel = new JPanel(new ColumnLayout(VerticalAnchor.FILL));
-	formPanel.setOpaque(false);
-
-	int gap = GUIUtil.getGap();
-	int hGap = GUIUtil.getHalfGap();
-
-	ColumnLayoutConstraint sectionConst = new ColumnLayoutConstraint(
-	    HorizontalAnchor.FILL, gap + hGap);
-
-	ColumnLayoutConstraint lineConst = new ColumnLayoutConstraint(
-	    HorizontalAnchor.FILL, hGap);
-
-	formPanel.add(tzHeader, sectionConst);
-	formPanel.add(tzField, lineConst);
-
-	formPanel.add(localeHeader, sectionConst);
-	formPanel.add(localeField, lineConst);
-
-	formPanel.add(usersHeader, sectionConst);
-	formPanel.add(rootPassField, lineConst);
-	formPanel.add(userField, lineConst);
-	formPanel.add(userPassField, lineConst);
-	formPanel.add(hostNameField, lineConst);
-
-	formPanel.add(instField,
-	    sectionConst.setWeight(1).setVerticalAnchor(VerticalAnchor.BOTTOM));
-
-	return formPanel;
-    }
-
-    private JLabel createHeader(String resource) {
-	JLabel label = new JLabel(Finder.getString(resource));
-	decorateTitle(label);
-	return label;
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdControl.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +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) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-package org.opensolaris.os.vp.panels.sysid.client.swing;
-
-import java.awt.*;
-import java.awt.event.*;
-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.Finder;
-
-public class SysIdControl extends WizardControl<SysIdPanelDescriptor> {
-    //
-    // Static data
-    //
-
-    private static final String ID = "wizard";
-    private static final String NAME = Finder.getString("sysid.sysid.title");
-
-    //
-    // Constructors
-    //
-
-    public SysIdControl(SysIdPanelDescriptor descriptor) {
-	super(ID, NAME, descriptor);
-    }
-
-    //
-    // Control methods
-    //
-
-    @Override
-    public void stop(boolean isCancel) throws NavigationAbortedException {
-	// Prevent navigation away from this panel; specifically, prevent the
-	// window from being closed
-	throw new NavigationAbortedException();
-    }
-
-    //
-    // DefaultControl methods
-    //
-
-    @Override
-    protected void ensureChildrenCreated() {
-	synchronized (children) {
-	    if (children.isEmpty()) {
-		SysIdPanelDescriptor descriptor = getPanelDescriptor();
-		WelcomeControl welcome = new WelcomeControl(descriptor);
-		addChildren(welcome);
-
-		TimeZoneControl zones = new TimeZoneControl(descriptor);
-		addChildren(zones);
-
-		LocaleControl locales = new LocaleControl(descriptor);
-		addChildren(locales);
-
-		UserControl users = new UserControl(descriptor);
-		addChildren(users);
-
-		SummaryControl summary = new SummaryControl(descriptor,
-		    zones.getModel(), locales.getModel(), users.getModel());
-		addChildren(summary);
-
-		// So that the wizard doesn't change size from step to step, set
-		// the preferred size of the initial step to be the maximum of
-		// the preferred sizes of the other steps.
-		Dimension max = new Dimension();
-		for (Control control : children) {
-		    Component comp =
-			((SwingControl)control).getComponentCreate();
-
-		    Dimension pref = comp.getPreferredSize();
-		    max.width = Math.max(max.width, pref.width);
-		    max.height = Math.max(max.height, pref.height);
-		}
-
-		welcome.getComponent().setPreferredSize(max);
-	    }
-	}
-    }
-
-    //
-    // SwingControl methods
-    //
-
-    @Override
-    protected WizardPanel createComponent() {
-	final WizardPanel comp = super.createComponent();
-
-	// Center frame on screen once comp has been added
-	comp.addHierarchyListener(
-	    new HierarchyListener() {
-		@Override
-		public void hierarchyChanged(HierarchyEvent e) {
-		    final Component changed = e.getChanged();
-		    if (changed instanceof Window) {
-			((Window)changed).setLocationRelativeTo(null);
-			comp.removeHierarchyListener(this);
-		    }
-		}
-	    });
-
-	return comp;
-    }
-
-    //
-    // WizardControl methods
-    //
-
-    @Override
-    protected WizardPanel createWizardPanel() {
-	return new SysIdPanel(this);
-    }
-
-    @Override
-    public void wizardStopped(boolean successful) {
-	System.exit(successful ? 100 : 1);
-    }
-
-    @Override
-    protected String getCancelWizardMessage() {
-	return (Finder.getString("sysid.sysid.cancel"));
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +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) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-package org.opensolaris.os.vp.panels.sysid.client.swing;
-
-import java.util.List;
-import javax.swing.*;
-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.Finder;
-
-public class SysIdPanel extends WizardPanel {
-    //
-    // Static data
-    //
-
-    private static final Icon icon = Finder.getIcon("images/logo.png");
-
-    //
-    // Constructors
-    //
-
-    public SysIdPanel(WizardStepSequence sequence) {
-	super(sequence);
-
-	JLabel iconLabel = new JLabel(icon);
-
-	JPanel bottomPanel = getWizardStepPanel().getBottomPanel();
-	bottomPanel.add(iconLabel);
-	bottomPanel.setVisible(true);
-
-	// Prevent user from cancelling wizard
-	getSettingsPanel().getButtonBar().getCancelButton().setVisible(false);
-    }
-
-    //
-    // WizardPanel methods
-    //
-
-    @Override
-    public String getNextButtonText() {
-	WizardStepSequence sequence = getWizardStepSequence();
-	int selected = sequence.getSelectedIndex();
-	List<Navigable> steps = sequence.getSteps();
-
-	return Finder.getString(selected == steps.size() - 1 ?
-	    "sysid.buttons.finish.label" : "sysid.buttons.forward.label");
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/SysIdPanelDescriptor.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +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, 2011, Oracle and/or its affiliates. All rights reserved.
- */
-
-package org.opensolaris.os.vp.panels.sysid.client.swing;
-
-import java.util.List;
-import javax.management.ObjectName;
-import javax.swing.*;
-import org.opensolaris.os.adr.Stability;
-import org.opensolaris.os.vp.panel.common.*;
-import org.opensolaris.os.vp.panel.common.api.panel.MBeanUtil;
-import org.opensolaris.os.vp.panel.common.api.time.*;
-import org.opensolaris.os.vp.panel.common.control.*;
-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.panels.sysid.common.*;
-import org.opensolaris.os.vp.util.misc.finder.Finder;
-import org.opensolaris.os.vp.util.swing.HasIcons;
-
-@SuppressWarnings({"serial"})
-public class SysIdPanelDescriptor
-    extends AbstractPanelDescriptor<ManagedObject>
-    implements SwingPanelDescriptor<ManagedObject>, HasIcons, HasTimeMXBean {
-
-    //
-    // Static data
-    //
-
-    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
-    //
-
-    private DefaultControl control;
-    private MXBeanTracker<SysIdMXBean> sysidBeanTracker;
-    private MXBeanTracker<TimeMXBean> timeBeanTracker;
-    private boolean hasFullPrivs;
-
-    //
-    // Constructors
-    //
-
-    public SysIdPanelDescriptor(String id, ClientContext context)
-	throws TrackerException {
-	super(id, context);
-
-	sysidBeanTracker = new MXBeanTracker<SysIdMXBean>(
-	    SysIdUtil.OBJECT_NAME, SysIdMXBean.class, Stability.PRIVATE,
-	    context);
-
-	ObjectName tzName = MBeanUtil.makeObjectName(
-	    MBeanUtil.VP_PANEL_DOMAIN + ".time", "Time");
-	timeBeanTracker = new MXBeanTracker<TimeMXBean>(
-	    tzName, TimeMXBean.class, Stability.PRIVATE, context);
-
-	// Assume they both require the same privileges
-	hasFullPrivs = sysidBeanTracker.getBean().isSufficientlyPrivileged();
-
-	control = new PanelFrameControl<SysIdPanelDescriptor>(this);
-	control.addChildren(new SysIdControl(this));
-    }
-
-    //
-    // HasIcons methods
-    //
-
-    @Override
-    public List<? extends Icon> getIcons() {
-	return icons;
-    }
-
-    //
-    // HasTimeMXBean methods
-    //
-
-    @Override
-    public TimeMXBean getTimeMXBean() {
-	return timeBeanTracker.getBean();
-    }
-
-    //
-    // ManagedObject methods
-    //
-
-    /**
-     * Stops monitoring the connection to the remote host.
-     */
-    @Override
-    public void dispose() {
-	sysidBeanTracker.dispose();
-	timeBeanTracker.dispose();
-
-	super.dispose();
-    }
-
-    @Override
-    public String getName() {
-	return Finder.getString("panel.sysid.name");
-    }
-
-    //
-    // PanelDescriptor methods
-    //
-
-    @Override
-    public Control getControl() {
-	return control;
-    }
-
-    @Override
-    public boolean getHasFullPrivileges() {
-	return hasFullPrivs;
-    }
-
-    //
-    // SysIdPanelDescriptor methods
-    //
-
-    public SysIdMXBean getSysIdBean() {
-	return sysidBeanTracker.getBean();
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/TimeZoneControl.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +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) 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.panel.swing.timezone.*;
-import org.opensolaris.os.vp.util.misc.finder.Finder;
-
-public class TimeZoneControl extends SimpleWizardModelControl<TimeZoneModel,
-    SysIdPanelDescriptor, TimeZonePanel> {
-
-    //
-    // Static data
-    //
-
-    private static final String ID = "timezone";
-    private static final String NAME = Finder.getString("sysid.timezone.title");
-
-    //
-    // Constructors
-    //
-
-    public TimeZoneControl(SysIdPanelDescriptor descriptor) {
-
-	super(ID, NAME, descriptor, new TimeZoneModel(descriptor),
-	    new TimeZonePanel(descriptor.getTimeMXBean(), null));
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserControl.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +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) 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.Finder;
-
-public class UserControl extends SimpleWizardModelControl<UserModel,
-    SysIdPanelDescriptor, UserPanel> {
-
-    //
-    // Static data
-    //
-
-    private static final String ID = "user";
-    private static final String NAME = Finder.getString("sysid.user.title");
-
-    //
-    // Constructors
-    //
-
-    public UserControl(SysIdPanelDescriptor descriptor) {
-	super(ID, NAME, descriptor, new UserModel(descriptor), new UserPanel());
-    }
-
-    //
-    // SwingControl methods
-    //
-
-    @Override
-    protected void deinitComponent() {
-	// Store passwords in as few places as possible
-	getComponent().clearPasswords();
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserModel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +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) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
- */
-
-package org.opensolaris.os.vp.panels.sysid.client.swing;
-
-import java.util.Arrays;
-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.panels.sysid.common.*;
-import org.opensolaris.os.vp.util.misc.finder.Finder;
-
-public class UserModel extends AbstractModel<SysIdPanelDescriptor> {
-    //
-    // Instance data
-    //
-
-    private String hostName = "opensolaris";
-    private String login = "";
-    private char[][] rootPassword = {{}, {}};
-    private String userName = "";
-    private char[][] userPassword = {{}, {}};
-
-    //
-    // Constructors
-    //
-
-    public UserModel(SysIdPanelDescriptor descriptor) {
-	super(descriptor);
-    }
-
-    //
-    // Model methods
-    //
-
-    public boolean isInitialized() {
-	return true;
-    }
-
-    public void load() {
-	throw new UnsupportedOperationException("Not applicable.");
-    }
-
-    @Override
-    public void save() throws ActionFailedException,
-	ActionUnauthorizedException {
-
-	validate();
-
-	try {
-	    SysIdMXBean bean = getSource().getSysIdBean();
-
-	    /*
-	     * First: Set the root password.
-	     */
-	    try {
-		if (rootPassword[0].length > 0) {
-		    bean.setRootPassword(new String(rootPassword[0])); // XXX
-		}
-	    } catch (ObjectException e) {
-		throw new ActionFailedException(
-		    Finder.getString("error.sysid.user.root.syserror"), e);
-	    }
-
-	    /*
-	     * Second: Create the specified user, if any.
-	     */
-	    if (login.length() > 0) {
-		try {
-		    bean.createUser(login, userName,
-			new String(userPassword[0])); // XXX
-		} catch (ObjectException e) {
-		    UserError ue = e.getPayload(UserError.class);
-		    UserErrorCode code = (ue != null) ?
-			ue.getCode() : UserErrorCode.system;
-
-		    switch (code) {
-		    case invalid:
-			throw new ActionFailedException(
-			    Finder.getString("error.sysid.user.user.invalid"),
-			    e);
-		    case exists:
-			throw new ActionFailedException(
-			    Finder.getString("error.sysid.user.user.usedlogin"),
-			    e);
-		    case system:
-		    default:
-			throw new ActionFailedException(
-			    Finder.getString("error.sysid.user.user.syserror"),
-			    e);
-		    }
-		}
-	    }
-
-	    /*
-	     * Third: Set the nodename.  We do this last in case doing so
-	     * has an impact on running software (e.g. this program).
-	     */
-	    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.syserror"), e);
-	    }
-	} catch (SecurityException e) {
-	    throw new ActionUnauthorizedException(e);
-
-	}
-    }
-
-    @Override
-    public void validate() throws ActionFailedException {
-	// Make sure the hostname is valid
-	if (hostName.length() == 0) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.host.unset"));
-	}
-
-	if (!SysIdUtil.isValidNodename(hostName)) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.host.badname"));
-	}
-
-	// Make sure the passwords match
-	if (!Arrays.equals(rootPassword[0], rootPassword[1])) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.root.diffpw"));
-	}
-
-	if (!Arrays.equals(userPassword[0], userPassword[1])) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.user.diffpw"));
-	}
-
-	// Make sure the username is valid and available
-	if (login.length() > 0) {
-	    if (!SysIdUtil.isValidLogin(login)) {
-		throw new ActionFailedException(
-		    Finder.getString("error.sysid.user.user.badlogin"));
-	    }
-
-	    if (!SysIdUtil.isAvailableLogin(login)) {
-		throw new ActionFailedException(
-		    Finder.getString("error.sysid.user.user.usedlogin"));
-	    }
-	}
-
-	// Make sure the user's frendly name is valid
-	if (userName.length() > 0 && !SysIdUtil.isValidUserDesc(userName)) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.user.badname"));
-	}
-
-	// If a user name or password has been specified, we need a login name
-	if (login.length() == 0 && (userName.length() > 0 ||
-	    userPassword[0].length > 0)) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.user.nologin"));
-	}
-
-	// If a login has been specified, we need a password.
-	if (login.length() > 0 && userPassword[0].length == 0) {
-	    throw new ActionFailedException(
-		Finder.getString("error.sysid.user.user.nopw"));
-	}
-    }
-
-    //
-    // UserModel methods
-    //
-
-    public String getHostName() {
-	return hostName;
-    }
-
-    public String getLogin() {
-	return login;
-    }
-
-    public char[][] getRootPassword() {
-	return rootPassword;
-    }
-
-    public String getUserName() {
-	return userName;
-    }
-
-    public char[][] getUserPassword() {
-	return userPassword;
-    }
-
-    public void setHostName(String hostName) {
-	this.hostName = hostName;
-    }
-
-    public void setLogin(String login) {
-	this.login = login;
-    }
-
-    public void setRootPassword(char[][] rootPassword) {
-	this.rootPassword = rootPassword;
-    }
-
-    public void setUserName(String userName) {
-	this.userName = userName;
-    }
-
-    public void setUserPassword(char[][] userPassword) {
-	this.userPassword = userPassword;
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/UserPanel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +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.panels.sysid.client.swing;
-
-import javax.swing.*;
-import org.opensolaris.os.vp.panel.common.model.View;
-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.*;
-import org.opensolaris.os.vp.util.swing.property.*;
-
-public class UserPanel extends SettingsPanel implements View<UserModel> {
-    //
-    // Instance data
-    //
-
-    private StringProperty userNameProperty = new StringProperty();
-    private StringProperty loginProperty = new StringProperty();
-    private StringProperty hostNameProperty = new StringProperty();
-
-    private MutableProperty<char[]> rootPassProperty =
-	new BasicMutableProperty<char[]>();
-
-    private MutableProperty<char[]> rootPassChkProperty =
-	new BasicMutableProperty<char[]>();
-
-    private MutableProperty<char[]> userPassProperty =
-	new BasicMutableProperty<char[]>();
-
-    private MutableProperty<char[]> userPassChkProperty =
-	new BasicMutableProperty<char[]>();
-
-    //
-    // Constructors
-    //
-
-    public UserPanel() {
-	getHelpField().setText(Finder.getString("sysid.user.desc"));
-	setBorder(null);
-
-	JPanel formPanel = createFormPanel();
-	setContent(formPanel);
-    }
-
-    //
-    // View methods
-    //
-
-    @Override
-    public void modelToView(UserModel model) {
-	hostNameProperty.setValue(model.getHostName());
-
-	char[] rootPass = model.getRootPassword()[0];
-	rootPassProperty.setValue(rootPass);
-	rootPassChkProperty.setValue(rootPass);
-
-	char[] userPass = model.getUserPassword()[0];
-	userPassProperty.setValue(userPass);
-	userPassChkProperty.setValue(userPass);
-
-	loginProperty.setValue(model.getLogin());
-	userNameProperty.setValue(model.getUserName());
-
-	getChangeableAggregator().save();
-    }
-
-    @Override
-    public void viewToModel(UserModel model) {
-	model.setHostName(hostNameProperty.getValue());
-	model.setRootPassword(new char[][] {
-	    rootPassProperty.getValue(), rootPassChkProperty.getValue() });
-	model.setUserPassword(new char[][] {
-	    userPassProperty.getValue(), userPassChkProperty.getValue() });
-	model.setLogin(loginProperty.getValue());
-	model.setUserName(userNameProperty.getValue());
-    }
-
-    //
-    // UserPanel methods
-    //
-
-    public void clearPasswords() {
-	char[] password = new char[0];
-	rootPassProperty.setValue(password);
-	rootPassChkProperty.setValue(password);
-	userPassProperty.setValue(password);
-	userPassChkProperty.setValue(password);
-    }
-
-    //
-    // Private methods
-    //
-
-    private JPanel createFormPanel() {
-	ChangeableAggregator aggregator = getChangeableAggregator();
-	int width = GUIUtil.getTextFieldWidth();
-
-	JLabel rootDescLabel = new JLabel(Finder.getString(
-	    "sysid.user.root.desc"));
-
-	JLabel rootPassLabel = new JLabel(Finder.getString(
-	    "sysid.user.root.label.pass"));
-        JPasswordField rootPassField = new JPasswordField(width);
-        rootPassLabel.setLabelFor(rootPassField);
-	GUIUtil.adjustForMnemonic(rootPassLabel);
-
-	aggregator.addChangeables(rootPassProperty);
-
-	new PasswordFieldPropertySynchronizer(rootPassProperty, rootPassField);
-
-	JLabel rootPassChkLabel = new JLabel(Finder.getString(
-	    "sysid.user.root.label.passchk"));
-        JPasswordField rootPassChkField = new JPasswordField(width);
-        rootPassChkLabel.setLabelFor(rootPassChkField);
-	GUIUtil.adjustForMnemonic(rootPassChkLabel);
-
-	new PasswordFieldPropertySynchronizer(rootPassChkProperty,
-	    rootPassChkField);
-
-	aggregator.addChangeables(rootPassChkProperty);
-
-	JLabel userDescLabel = new JLabel(Finder.getString(
-	    "sysid.user.user.desc"));
-
-	JLabel userNameLabel = new JLabel(Finder.getString(
-	    "sysid.user.user.label.name"));
-        JTextField userNameField = GUIUtil.createTextField();
-        userNameLabel.setLabelFor(userNameField);
-	GUIUtil.adjustForMnemonic(userNameLabel);
-
-	new TextComponentPropertySynchronizer<String, JTextField>(
-	    userNameProperty, userNameField);
-	aggregator.addChangeables(userNameProperty);
-
-	JLabel loginLabel = new JLabel(Finder.getString(
-	    "sysid.user.user.label.login"));
-        JTextField loginField = GUIUtil.createTextField();
-        loginLabel.setLabelFor(loginField);
-	GUIUtil.adjustForMnemonic(loginLabel);
-
-	new TextComponentPropertySynchronizer<String, JTextField>(loginProperty,
-	    loginField);
-	aggregator.addChangeables(loginProperty);
-
-	JLabel userPassLabel = new JLabel(Finder.getString(
-	    "sysid.user.user.label.pass"));
-        JPasswordField userPassField = new JPasswordField(width);
-        userPassLabel.setLabelFor(userPassField);
-	GUIUtil.adjustForMnemonic(userPassLabel);
-
-	aggregator.addChangeables(userPassProperty);
-
-	new PasswordFieldPropertySynchronizer(userPassProperty, userPassField);
-
-	JLabel userPassChkLabel = new JLabel(Finder.getString(
-	    "sysid.user.user.label.passchk"));
-        JPasswordField userPassChkField = new JPasswordField(width);
-        userPassChkLabel.setLabelFor(userPassChkField);
-	GUIUtil.adjustForMnemonic(userPassChkLabel);
-
-	new PasswordFieldPropertySynchronizer(userPassChkProperty,
-	    userPassChkField);
-
-	aggregator.addChangeables(userPassChkProperty);
-
-	JLabel hostDescLabel = new JLabel(Finder.getString(
-	    "sysid.user.host.desc"));
-
-	JLabel hostNameLabel = new JLabel(Finder.getString(
-	    "sysid.user.host.label.name"));
-        JTextField hostNameField = GUIUtil.createTextField();
-        hostNameLabel.setLabelFor(hostNameField);
-	GUIUtil.adjustForMnemonic(hostNameLabel);
-
-	new TextComponentPropertySynchronizer<String, JTextField>(
-	    hostNameProperty, hostNameField);
-	aggregator.addChangeables(hostNameProperty);
-
-	JPanel formPanel = new JPanel();
-	formPanel.setOpaque(false);
-	Form form = new Form(formPanel, VerticalAnchor.CENTER);
-
-	int gap = GUIUtil.getGap();
-	int hGap = GUIUtil.getHalfGap();
-
-	ColumnLayoutConstraint sectionConst = new ColumnLayoutConstraint(
-	    HorizontalAnchor.FILL, gap * 2);
-
-	ColumnLayoutConstraint lineConst = new ColumnLayoutConstraint(
-	    HorizontalAnchor.FILL, hGap);
-
-	RowLayoutConstraint labelConst = new RowLayoutConstraint(
-	    HorizontalAnchor.LEFT, VerticalAnchor.CENTER, gap, 0);
-	labelConst.setIgnoreFirstGap(false);
-
-	RowLayoutConstraint fieldConst = new RowLayoutConstraint(
-	    HorizontalAnchor.RIGHT, VerticalAnchor.CENTER, gap, 0);
-
-	form.addRow(HorizontalAnchor.LEFT, sectionConst);
-	form.add(rootDescLabel);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(rootPassLabel, labelConst);
-	form.add(rootPassField, fieldConst);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(rootPassChkLabel, labelConst);
-	form.add(rootPassChkField, fieldConst);
-
-	form.addRow(HorizontalAnchor.LEFT, sectionConst);
-	form.add(userDescLabel);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(userNameLabel, labelConst);
-	form.add(userNameField, fieldConst);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(loginLabel, labelConst);
-	form.add(loginField, fieldConst);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(userPassLabel, labelConst);
-	form.add(userPassField, fieldConst);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(userPassChkLabel, labelConst);
-	form.add(userPassChkField, fieldConst);
-
-	form.addRow(HorizontalAnchor.LEFT, sectionConst);
-	form.add(hostDescLabel);
-
-	form.addRow(HorizontalAnchor.FILL, lineConst);
-	form.add(hostNameLabel, labelConst);
-	form.add(hostNameField, fieldConst);
-
-	return formPanel;
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomeControl.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +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) 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.SettingsControl;
-import org.opensolaris.os.vp.util.misc.finder.Finder;
-
-public class WelcomeControl
-    extends SettingsControl<SysIdPanelDescriptor, WelcomePanel> {
-
-    //
-    // Static data
-    //
-
-    private static final String ID = "welcome";
-    private static final String NAME = Finder.getString("sysid.welcome.title");
-
-    //
-    // Constructors
-    //
-
-    public WelcomeControl(SysIdPanelDescriptor descriptor) {
-	super(ID, NAME, descriptor);
-    }
-
-    //
-    // SwingControl methods
-    //
-
-    @Override
-    protected WelcomePanel createComponent() {
-	return new WelcomePanel();
-    }
-}
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/WelcomePanel.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +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.panels.sysid.client.swing;
-
-import javax.swing.JTextArea;
-import org.opensolaris.os.vp.util.misc.finder.Finder;
-import org.opensolaris.os.vp.util.swing.*;
-
-public class WelcomePanel extends SettingsPanel {
-    //
-    // Constructors
-    //
-
-    public WelcomePanel() {
-	setBorder(null);
-
-	String text = Finder.getString("sysid.welcome.text");
-	JTextArea field = new FlowTextArea(text);
-	field.setColumns(40);
-
-	VerticalScrollPane scroll = new VerticalScrollPane(field);
-	scroll.removeBorder();
-
-	setContent(scroll, false, false);
-    }
-}
Binary file usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/logo.png has changed
Binary file usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-192.png has changed
Binary file usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-24.png has changed
Binary file usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-48.png has changed
Binary file usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/images/sysid-96.png has changed
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/client/swing/resources/Resources.properties	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +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) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-error.sysid.locale.unset = A territory must be selected.
-error.sysid.locale.syserror = A system error occurred when setting the locale.
-error.sysid.timezone.unset = A time zone must be selected.
-error.sysid.timezone.syserror = A system error occurred when setting the time zone.
-error.sysid.user.root.diffpw = Root''s passwords do not match.
-error.sysid.user.root.syserror = A system error occurred when setting the root password.
-error.sysid.user.user.diffpw = User''s passwords do not match.
-error.sysid.user.user.nopw = Must specify a user password.
-error.sysid.user.user.badname = User''s name must not contain newlines, ampersands, or colons.
-error.sysid.user.user.badlogin = Login name must start with a letter, must be between 1 and 8 characters long, and must contain only letters, numbers, underscores, periods, and hyphens
-error.sysid.user.user.usedlogin = The specified login name is already in use.
-error.sysid.user.user.nologin = Must specify a login name.
-error.sysid.user.user.invalid = Provided user data is invalid.
-error.sysid.user.user.syserror = A system error occurred when creating the user.
-error.sysid.user.host.unset = Must specify a host name.
-error.sysid.user.host.badname = Host names must start with a letter, contain only letters, digits, and hyphens, and may not end with a hyphen.
-error.sysid.user.host.syserror = A system error occurred when setting the host name.
-
-panel.sysid.name = System Initialization
-
-sysid.buttons.forward.label = Next
-sysid.buttons.finish.label = Reboot
-
-sysid.sysid.title = Configure Your System
-sysid.sysid.cancel = Abort system configuration and discard changes?
-
-sysid.welcome.title = Welcome
-sysid.welcome.text = Thanks for choosing the Oracle Solaris OS!  We need a little information to get this computer ready for your use.\n\nAfter the computer has been set up the desktop will appear.  Open the "Start Here" icon on the desktop for suggestions on what to do next.
-
-time.settings.timezone = Time zone:
-# Params:
-# 0: Time zone name
-# 1: Time zone display name
-time.settings.timezone.description = {1} ({0})
-time.settings.timezone.select = Select from map...
-time.settings.timezone.error.invalid = The "{0}" time zone is invalid.  Please select another.
-time.settings.timezone.error.syserror = A system error occurred when setting the time zone.
-
-time.timezone.timezone.select = -- Select a time zone --
-time.timezone.country.select = -- Select a territory --
-time.timezone.continent.select = -- Select a continent --
-
-time.timezone.title = Time Zone
-time.timezone.desc = Select a city near you on the map or set your time zone below.
-time.timezone.label.continent = Continent:
-time.timezone.label.country = Territory:
-time.timezone.label.timezone = Time Zone:
-
-
-sysid.timezone.title = Time Zone
-sysid.timezone.desc = Select a city near you on the map or set your time zone below.
-sysid.timezone.label.continent = Continent:
-sysid.timezone.label.country = Territory:
-sysid.timezone.label.timezone = Time Zone:
-
-sysid.locale.title = Locale
-sysid.locale.desc = Select your preferred language and locale.
-sysid.locale.label.language = Language:
-sysid.locale.label.locale = Territory:
-
-sysid.user.title = Users and Host
-sysid.user.desc = Set the root password, create a user account, and name the computer.
-sysid.user.root.desc = Enter a root password for this system (optional).
-sysid.user.root.label.pass = _Root password:
-sysid.user.root.label.passchk = Con_firm password:
-sysid.user.user.desc = Create a user account for yourself (optional).
-sysid.user.user.label.name = _Your name:
-sysid.user.user.label.login = _Log-in name:
-sysid.user.user.label.pass = _User password:
-sysid.user.user.label.passchk = Conf_irm password:
-sysid.user.host.desc = Enter a computer name for this system.
-sysid.user.host.label.name = _Computer name:
-
-sysid.summary.title = Summary
-sysid.summary.desc = Review the settings below. Click "Back" to make changes.
-sysid.summary.timezone = \u2022 {0}
-sysid.summary.locale = \u2022 {0}
-sysid.summary.user.root.password.set = \u2022 Root password set
-sysid.summary.user.root.password.unset = \u2022 Root password NOT set
-sysid.summary.user.user.set = \u2022 User account: {0} ({1})
-sysid.summary.user.user.unset = \u2022 User account NOT created
-sysid.summary.user.user.password.unset = \u2022 User password NOT set
-sysid.summary.user.host = \u2022 Host name: {0}
-sysid.summary.instructions = The system will apply these settings and reboot the computer.  You will then be asked to log in with the log-in name and user password you have just created.
-
-sysid.locale.language.select = -- Select a language --
-sysid.locale.locale.select = -- Select a territory --
-sysid.timezone.timezone.select = -- Select a time zone --
-sysid.timezone.country.select = -- Select a territory --
-sysid.timezone.continent.select = -- Select a continent --
--- a/usr/src/java/vpanels/app/sysid/org/opensolaris/os/vp/panels/sysid/common/SysIdUtil.java	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +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) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
- */
-
-package org.opensolaris.os.vp.panels.sysid.common;
-
-import java.util.*;
-import javax.management.ObjectName;
-import org.opensolaris.os.vp.panel.common.api.panel.MBeanUtil;
-
-public class SysIdUtil
-{
-    public static final String DOMAIN = MBeanUtil.VP_PANEL_DOMAIN + ".sysid";
-    public static final ObjectName OBJECT_NAME =
-	MBeanUtil.makeObjectName(DOMAIN, "SysID");
-    private static final Set<String> SYSTEM_USERS;
-
-    static {
-	String [] users = new String[] { "root", "daemon", "bin", "sys", "adm",
-	    "lp", "uucp", "nuucp", "dladm", "smmsp", "listen", "gdm", "xvm",
-	    "mysql", "webservd", "postgres", "svctag", "nobody", "noaccess",
-	    "nobody4" };
-	SYSTEM_USERS = new HashSet<String>(Arrays.asList(users));
-    }
-
-    /**
-     * Determines if the provided login name is valid.
-     *
-     * @param login the login name
-     * @return {@code true} if the login name is valid, {@code false} if not
-     */
-    public static boolean isValidLogin(String login)
-    {
-	/*
-	 * Make sure the username:
-	 * - starts with a letter
-	 * - consists of letters, numbers, underscores, hypens, and periods
-	 * - is between 1 and 8 characters long (arbitrary)
-	 */
-	return (login.matches(
-	    "^\\p{Alpha}[\\p{Alpha}\\p{Digit}_\\-\\.]{0,7}$"));
-    }
-
-    /**
-     * Determines if the provided login name is available
-     *
-     * @param login the login name
-     * @return {@code true} if the login name is available, {@code false} if not
-     */
-    public static boolean isAvailableLogin(String login)
-    {
-	/*
-	 * On the one hand, this should look at the system instead of a
-	 * hard-coded list.  On the other, a hard-coded list may permit
-	 * more robust behavior in the face of a partially-created user.
-	 */
-	return (!SYSTEM_USERS.contains(login));
-    }
-
-    /**
-     * Determines if the provided user description (a.k.a. full name,
-     * GECOS field) is valid.
-     *
-     * @param username the user description
-     * @return {@code true} if the description is valid, {@code false} if not
-     */
-    public static boolean isValidUserDesc(String username)
-    {
-	/*
-	 * The GECOS field can't contain newlines or colons, and ampersands
-	 * are treated specially.
-	 */
-	return (!username.matches("[:&\\n]"));
-    }
-
-    /**
-     * Determines if the provided nodename is a valid hostname label.
-     *
-     * @param nodename the nodename
-     * @return {@code true} if the nodename is valid, {@code false} if not
-     */
-    public static boolean isValidNodename(String nodename)
-    {
-	/*
-	 * A label must be at most 63 characters long, may contain letters,
-	 * digits, and hyphens, and must begin with a letter and may not
-	 * end with a hyphen.
-	 */
-	return (nodename.matches("^\\p{Alpha}" +
-	    "([\\p{Alpha}\\p{Digit}\\-]{0,61}[\\p{Alpha}\\p{Digit}])?$"));
-    }
-}
--- a/usr/src/pkg/baggage/OSOLvpanels-sysid.p5m	Tue Jul 19 19:09:31 2011 -0400
+++ b/usr/src/pkg/baggage/OSOLvpanels-sysid.p5m	Tue Jul 19 22:47:59 2011 -0400
@@ -20,9 +20,8 @@
 #
 
 #
-# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri value=pkg:/[email protected],5.11-0.133
-set name=pkg.renamed value=true
-depend fmri=system/management/visual-panels/[email protected] type=require
+set name=pkg.obsolete value=true
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/pkg/baggage/system-management-visual-panels-panel-sysid.p5m	Tue Jul 19 22:47:59 2011 -0400
@@ -0,0 +1,27 @@
+#
+# 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, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri value=pkg:/system/management/visual-panels/panel-sysid@$(PKGVERS)
+set name=pkg.obsolete value=true
--- a/usr/src/pkg/manifests/system-management-visual-panels-panel-sysid.p5m	Tue Jul 19 19:09:31 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +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, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-license cr_Oracle license=cr_Oracle
-set name=pkg.fmri value=pkg:/system/management/visual-panels/panel-sysid@$(PKGVERS)
-set name=pkg.summary value="System Identification GUI"
-set name=pkg.description value="System Identification GUI"
-set name=info.classification value="org.opensolaris.category.2008:Applications/Configuration and Preferences"
-set name=variant.arch value=$(ARCH)
-dir path=usr group=sys
-dir path=usr/lib
-dir path=usr/lib/rad
-dir path=usr/lib/rad/module
-file path=usr/lib/rad/module/mod_sysid.so
-dir path=usr/share group=sys
-dir path=usr/share/vpanels
-dir path=usr/share/vpanels/app
-file path=usr/share/vpanels/app/vpanels-panels-sysid.jar
-dir path=usr/share/vpanels/conf
-file path=usr/share/vpanels/conf/sysid.xml
-depend fmri=pkg:/system/management/visual-panels-core@$(PKGVERS) type=require
-depend fmri=pkg:/system/management/visual-panels/panel-time@$(PKGVERS) type=require