You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/10/07 11:45:18 UTC
svn commit: r702413 -
/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/ShellImpl.java
Author: jdillon
Date: Tue Oct 7 02:45:18 2008
New Revision: 702413
URL: http://svn.apache.org/viewvc?rev=702413&view=rev
Log:
Add ensureOpened() checks and update state when init() and close() are called
Modified:
geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/ShellImpl.java
Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/ShellImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/ShellImpl.java?rev=702413&r1=702412&r2=702413&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/ShellImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/shell/ShellImpl.java Tue Oct 7 02:45:18 2008
@@ -79,37 +79,48 @@
private ErrorHandler errorHandler;
- public void setCompleters(final List<Completor> completers) {
- assert completers != null;
+ private boolean opened;
- this.completers = completers;
+ private synchronized void ensureOpened() {
+ if (!opened) {
+ throw new IllegalStateException("Shell has not been opened or has been closed");
+ }
+ }
+
+ public synchronized boolean isOpened() {
+ return true;
+ }
+
+ public synchronized void close() {
+ log.debug("Closing");
+ opened = false;
}
public ShellContext getContext() {
+ ensureOpened();
+
if (context == null) {
throw new IllegalStateException("Shell context has not been initialized");
}
return context;
}
- //
- // TODO: Add ensureOpened() and add checks
- //
-
- public boolean isOpened() {
- return true;
- }
+ public void setCompleters(final List<Completor> completers) {
+ assert completers != null;
- public void close() {
- log.debug("Closing");
+ this.completers = completers;
}
-
+
public boolean isInteractive() {
return true;
}
@PostConstruct
public void init() throws Exception {
+ if (opened) {
+ throw new IllegalStateException("Shell is already opened");
+ }
+
assert application != null;
// Dereference some bits from the applciation context
@@ -134,6 +145,8 @@
branding = application.getModel().getBranding();
+ opened = true;
+
//
// TODO: Populate variables with some defaults, like the username/hostname/etc.
//
@@ -142,21 +155,29 @@
}
public Object execute(final String line) throws Exception {
+ ensureOpened();
+
assert executor != null;
return executor.execute(getContext(), line);
}
public Object execute(final String command, final Object[] args) throws Exception {
+ ensureOpened();
+
assert executor != null;
return executor.execute(getContext(), command, args);
}
public Object execute(final Object... args) throws Exception {
+ ensureOpened();
+
assert executor != null;
return executor.execute(getContext(), args);
}
public Object execute(final Object[][] commands) throws Exception {
+ ensureOpened();
+
assert executor != null;
return executor.execute(getContext(), commands);
}
@@ -164,6 +185,8 @@
public void run(final Object... args) throws Exception {
assert args != null;
+ ensureOpened();
+
log.debug("Starting interactive console; args: {}", args);
assert branding != null;