use of com.sun.messaging.jmq.admin.objstore.NameAlreadyExistsException in project openmq by eclipse-ee4j.
the class CmdRunner method runAddCommand.
private int runAddCommand(ObjMgrProperties objMgrProps) {
ObjStore os;
int exitcode = 0;
String input = null;
Object object = null;
String yes, yesShort, no, noShort;
yes = ar.getString(ar.Q_RESPONSE_YES);
yesShort = ar.getString(ar.Q_RESPONSE_YES_SHORT);
no = ar.getString(ar.Q_RESPONSE_NO);
noShort = ar.getString(ar.Q_RESPONSE_NO_SHORT);
/*
* Get object type, props object, and lookup name
*/
String type = objMgrProps.getObjType();
Properties objProps = objMgrProps.getObjProperties();
String lookupName = objMgrProps.getLookupName();
ObjStoreAttrs osa = objMgrProps.getObjStoreAttrs();
/*
* Check for any mandatory bind attrs and display warning, if necessary.
*/
checkObjStoreAttrs(osa);
Attributes bindAttrs = objMgrProps.getBindAttrs();
/*
* Check if -f (force) was specified on cmd line.
*/
boolean force = objMgrProps.forceModeSet();
/*
* Create JMS Object with the specified properties.
*/
Object newObj = null;
try {
if (type.equals(OBJMGR_TYPE_QUEUE)) {
newObj = JMSObjFactory.createQueue(objProps);
} else if (type.equals(OBJMGR_TYPE_TOPIC)) {
newObj = JMSObjFactory.createTopic(objProps);
} else if (type.equals(OBJMGR_TYPE_QCF)) {
newObj = JMSObjFactory.createQueueConnectionFactory(objProps);
} else if (type.equals(OBJMGR_TYPE_TCF)) {
newObj = JMSObjFactory.createTopicConnectionFactory(objProps);
} else if (type.equals(OBJMGR_TYPE_CF)) {
newObj = JMSObjFactory.createConnectionFactory(objProps);
} else if (type.equals(OBJMGR_TYPE_XTCF)) {
newObj = JMSObjFactory.createXATopicConnectionFactory(objProps);
} else if (type.equals(OBJMGR_TYPE_XQCF)) {
newObj = JMSObjFactory.createXAQueueConnectionFactory(objProps);
} else if (type.equals(OBJMGR_TYPE_XCF)) {
newObj = JMSObjFactory.createXAConnectionFactory(objProps);
}
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_ADD_FAILED));
return (1);
}
/*
* Set this newly created obj to read-only if specified.
*/
JMSObjFactory.doReadOnlyForAdd(newObj, objMgrProps.readOnlyValue());
printAddCmdDescription(newObj, type, lookupName, osa, objMgrProps.readOnlyValue());
os = createStore(osa);
if (os == null) {
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_ADD_FAILED));
return (1);
}
/*
* Prompt for missing authentication info BEFORE opening the store.
*/
if (!force) {
// Update ObjStoreAttrs in ths ObjStore if some security
// info was missing.
os = promptForAuthentication(os);
}
/*
* Open/Initialize the object store
*/
try {
openStore(os);
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_ADD_FAILED));
return (1);
}
/*
* If no -f option, check if the object already exists so we can confirm with user to overwrite.
*/
if (!force) {
try {
object = os.retrieve(lookupName);
} catch (NameNotFoundException nnfe) {
// Make sure that this exception is NOT treated as an error for add
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_ADD_FAILED));
return (1);
}
// Object already exists so confirm with user.
if (object != null) {
Globals.stdOutPrintln(ar.getCString(ar.I_WARNING_MESG), ar.getString(ar.W_OBJ_ALREADY_EXISTS, lookupName));
Globals.stdOutPrintln(ar.getCString(ar.I_WARNING_MESG), ar.getString(ar.W_ADD_OBJ_BE_OVERWRITTEN));
input = getUserInput(ar.getString(ar.Q_OVERWRITE_OK), noShort);
}
}
if (noShort.equalsIgnoreCase(input) || no.equalsIgnoreCase(input)) {
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_NOT_ADDED));
/*
* Case where user typed 'y' or 'yes' to overwrite OR case where object doesn't exist yet so no confirmation needed OR
* case where user used -f.
*/
} else if ((yesShort.equalsIgnoreCase(input) || yes.equalsIgnoreCase(input)) || (object == null) || (force)) {
/*
* Update the object in object store.
*/
try {
if (bindAttrs.size() > 0)
os.add(lookupName, newObj, bindAttrs, true);
else
os.add(lookupName, newObj, true);
} catch (NameAlreadyExistsException naee) {
// Should never happen, since we pass true to add
} catch (NameNotFoundException nnfe) {
Globals.stdErrPrintln(ar.getString(ar.I_ERROR_MESG), ar.getKString(ar.E_CANNOT_LOC_TREE));
exitcode = 1;
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
exitcode = 1;
}
if (exitcode == 0) {
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_ADDED));
} else {
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_ADD_FAILED));
}
} else {
Globals.stdOutPrintln(ar.getString(ar.I_UNRECOGNIZED_RES, input));
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_NOT_ADDED));
exitcode = 1;
}
return (exitcode);
}
use of com.sun.messaging.jmq.admin.objstore.NameAlreadyExistsException in project openmq by eclipse-ee4j.
the class CmdRunner method runUpdateCommand.
private int runUpdateCommand(ObjMgrProperties objMgrProps) {
int exitcode = 0;
String input = null;
Object object = null;
String type = null;
ObjStore os;
String yes, yesShort, no, noShort;
yes = ar.getString(ar.Q_RESPONSE_YES);
yesShort = ar.getString(ar.Q_RESPONSE_YES_SHORT);
no = ar.getString(ar.Q_RESPONSE_NO);
noShort = ar.getString(ar.Q_RESPONSE_NO_SHORT);
/*
* Get the lookup name
*/
String lookupName = objMgrProps.getLookupName();
/*
* Check if -f (force) was specified on cmd line.
*/
boolean force = objMgrProps.forceModeSet();
ObjStoreAttrs osa = objMgrProps.getObjStoreAttrs();
/*
* Check for any mandatory bind attrs and display warning, if necessary.
*/
checkObjStoreAttrs(osa);
Properties objProps = objMgrProps.getObjProperties();
type = objMgrProps.getObjType();
Attributes bindAttrs = objMgrProps.getBindAttrs();
printUpdateCmdDescription(type, lookupName, objProps, osa, objMgrProps.readOnlyValue());
os = createStore(osa);
if (os == null) {
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
return (1);
}
/*
* Prompt for missing authentication info BEFORE opening the store.
*/
if (!force) {
// Update ObjStoreAttrs in ths ObjStore if some security
// info was missing.
os = promptForAuthentication(os);
}
/*
* Open/Initialize the object store.
*/
try {
openStore(os);
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
return (1);
}
/*
* Updates only work if the object already exists so check if one already exists.
*/
try {
object = os.retrieve(lookupName);
} catch (NameNotFoundException nnfe) {
Globals.stdErrPrintln(ar.getKString(ar.E_CANNOT_LOC_OBJ, lookupName));
Globals.stdOutPrintln("");
Globals.stdErrPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
return (1);
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
Globals.stdOutPrintln("");
Globals.stdErrPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
return (1);
}
/*
* Check here if the type being updated and the type specified match.
*/
if (object != null) {
type = checkObjectType(object, type);
if (type == null) {
Globals.stdOutPrintln("");
Globals.stdErrPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
return (1);
}
} else {
// object == null
// Should not happen, since if the object cannot be retrieved,
// it should throw NameNotFoundException
Globals.stdErrPrintln(ar.getKString(ar.E_CANNOT_LOC_OBJ, lookupName));
Globals.stdOutPrintln("");
Globals.stdErrPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
return (1);
}
if (!force) {
// was the case.
if (object instanceof AdministeredObject) {
AdministeredObject adminObj = (AdministeredObject) object;
String curVersion = adminObj.getVERSION();
String objVersion = adminObj.getStoredVersion();
if (!adminObj.isStoredVersionCompatible()) {
Globals.stdErrPrintln(ar.getString(ar.W_INCOMPATIBLE_OBJ, objVersion, curVersion));
}
}
input = getUserInput(ar.getString(ar.Q_UPDATE_OK), noShort);
}
if (noShort.equalsIgnoreCase(input) || no.equalsIgnoreCase(input)) {
Globals.stdOutPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_NOT_UPDATED));
/*
* Case where user typed 'y' or 'yes' to overwrite OR case where object doesn't exist yet so no confirmation needed OR
* case where user used -f.
*/
} else if (((yesShort.equalsIgnoreCase(input) || yes.equalsIgnoreCase(input)) || (force))) {
/*
* Update the object with the new properties.
*/
Object updatedObject = updateObject(object, type, objMgrProps);
if (updatedObject == null)
return 1;
/*
* Add the object to object store.
*/
try {
if (bindAttrs.size() > 0)
os.add(lookupName, updatedObject, bindAttrs, true);
else
os.add(lookupName, updatedObject, true);
} catch (NameAlreadyExistsException naee) {
// Should never happen, since we pass true to add
exitcode = 1;
} catch (Exception e) {
handleRunCommandExceptions(e, lookupName);
exitcode = 1;
}
if (exitcode == 0) {
if (!force)
Globals.stdErrPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_UPDATED));
} else {
Globals.stdErrPrintln("");
Globals.stdErrPrintln(ar.getString(ar.I_OBJ_UPDATE_FAILED));
}
} else {
Globals.stdOutPrintln(ar.getString(ar.I_UNRECOGNIZED_RES, input));
Globals.stdErrPrintln("");
Globals.stdOutPrintln(ar.getString(ar.I_OBJ_NOT_UPDATED));
exitcode = 1;
}
return (exitcode);
}
use of com.sun.messaging.jmq.admin.objstore.NameAlreadyExistsException in project openmq by eclipse-ee4j.
the class ObjAdminHandler method doUpdateDestination.
private void doUpdateDestination(ObjAdminEvent oae, ConsoleObj selObj) {
ObjStore os = oae.getObjStore();
String lookupName = oae.getLookupName();
boolean readOnly = oae.isReadOnly();
Object currentObj = ((ObjStoreDestCObj) selObj).getObject();
Object updatedObject = updateObject(currentObj, oae.getDestinationType(), oae.getObjProperties(), readOnly);
if (updatedObject == null) {
return;
}
try {
os.add(lookupName, updatedObject, true);
} catch (NameAlreadyExistsException naee) {
// Should never happen, since we pass true to add
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), e.toString(), acr.getString(acr.I_OBJSTORE_DEST_PROPS), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* Now replace this updated object in the tree.
*/
((ObjStoreDestCObj) selObj).setObject(updatedObject);
// ConsoleObj parent = (ConsoleObj)selObj.getParent();
// app.getExplorer().removeFromParent(selObj);
// ObjStoreDestCObj destCObj = new ObjStoreDestCObj(os, lookupName, updatedObject);
// app.getExplorer().addToParent(parent, destCObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_UPDATE_DEST, selObj.toString(), os.getID()));
app.getInspector().selectedObjectUpdated();
if (oae.isOKAction()) {
objStoreDestPropsDialog.setVisible(false);
}
}
use of com.sun.messaging.jmq.admin.objstore.NameAlreadyExistsException in project openmq by eclipse-ee4j.
the class ObjAdminHandler method doUpdateConnFactory.
private void doUpdateConnFactory(ObjAdminEvent oae, ConsoleObj selObj) {
ObjStore os = oae.getObjStore();
String lookupName = oae.getLookupName();
boolean readOnly = oae.isReadOnly();
Object currentObj = ((ObjStoreConFactoryCObj) selObj).getObject();
Object updatedObject = updateObject(currentObj, oae.getFactoryType(), oae.getObjProperties(), readOnly);
if (updatedObject == null) {
return;
}
try {
os.add(lookupName, updatedObject, true);
} catch (NameAlreadyExistsException naee) {
// Should never happen, since we pass true to add
} catch (Exception e) {
JOptionPane.showOptionDialog(app.getFrame(), e.toString(), acr.getString(acr.I_OBJSTORE_CF_PROPS), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, close, close[0]);
return;
}
/*
* Now replace this updated object in the tree.
*/
((ObjStoreConFactoryCObj) selObj).setObject(updatedObject);
// ConsoleObj parent = (ConsoleObj)selObj.getParent();
// app.getExplorer().removeFromParent(selObj);
// ObjStoreConFactoryCObj conFactoryCObj = new ObjStoreConFactoryCObj (os, lookupName, updatedObject);
// app.getExplorer().addToParent(parent, conFactoryCObj);
app.getStatusArea().appendText(acr.getString(acr.S_OBJSTORE_UPDATE_CF, selObj.toString(), os.getID()));
app.getInspector().selectedObjectUpdated();
if (oae.isOKAction()) {
objStoreConFactoryPropsDialog.setVisible(false);
}
}
Aggregations