Revision: 16131
Author: [email protected]
Date: Thu Dec 30 23:25:50 2010
Log: [No log message]
http://code.google.com/p/mobicents/source/detail?r=16131
Deleted:
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/impl/resource/ss7/LinksetListenerImpl.java
Modified:
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/impl/resource/ss7/ShellExecutor.java
=======================================
---
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/impl/resource/ss7/LinksetListenerImpl.java
Wed Dec 29 04:14:21 2010
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.mobicents.media.server.impl.resource.ss7;
-
-import org.apache.log4j.Logger;
-import org.mobicents.ss7.linkset.oam.LinkOAMMessages;
-import org.mobicents.ss7.linkset.oam.LinksetManager;
-import org.mobicents.ss7.management.console.LinksetListener;
-
-public class LinksetListenerImpl implements LinksetListener {
-
- private static final Logger logger = Logger
- .getLogger(LinksetListenerImpl.class);
-
- private LinksetManager linksetManager = null;
-
- protected LinksetListenerImpl(LinksetManager linksetManager) {
- this.linksetManager = linksetManager;
- }
-
- public String execute(String[] options) {
-
- try {
- // Atleast 1 option is passed?
- if (options == null || options.length < 2) {
- return LinkOAMMessages.INVALID_COMMAND;
- }
-
- String firstOption = options[1];
-
- if (firstOption == null) {
- return LinkOAMMessages.INVALID_COMMAND;
- }
-
- if (firstOption.compareTo("create") == 0) {
- // Create Linkset
- return
this.linksetManager.createLinkset(options);
- } else if (firstOption.compareTo("delete") == 0) {
- // Delete Linkset
- return
this.linksetManager.deleteLinkset(options);
-
- } else if (firstOption.compareTo("activate") == 0) {
- // noshutdown Linkset
- return
this.linksetManager.activateLinkset(options);
-
- } else if (firstOption.compareTo("deactivate") == 0) {
- // shutdown Linkset
- return
this.linksetManager.deactivateLinkset(options);
-
- } else if (firstOption.compareTo("link") == 0) {
- // Operation for Link
-
- // Check do we have more options
- if (options.length < 3) {
- return LinkOAMMessages.INVALID_COMMAND;
- }
-
- // Check if its create, delete, shutdown or
noshutdown
- firstOption = options[2];
- if (firstOption == null) {
- return LinkOAMMessages.INVALID_COMMAND;
- }
-
- if (firstOption.compareTo("create") == 0) {
- return
this.linksetManager.createLink(options);
- } else if (firstOption.compareTo("delete") ==
0) {
- return
this.linksetManager.deleteLink(options);
- } else if (firstOption.compareTo("deactivate")
== 0) {
- return
this.linksetManager.deactivateLink(options);
- } else if (firstOption.compareTo("activate") ==
0) {
- return
this.linksetManager.activateLink(options);
- }
- }
- } catch (Exception e) {
- logger.error("Error while executing command ", e);
- return e.toString();
- } catch (Throwable t) {
- return t.toString();
- }
- return LinkOAMMessages.INVALID_COMMAND;
- }
-}
=======================================
---
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/impl/resource/ss7/ShellExecutor.java
Wed Dec 29 19:39:06 2010
+++
/trunk/servers/media/core/server-impl/src/main/java/org/mobicents/media/server/impl/resource/ss7/ShellExecutor.java
Thu Dec 30 23:25:50 2010
@@ -7,6 +7,7 @@
import javolution.util.FastSet;
import org.apache.log4j.Logger;
+import org.mobicents.ss7.linkset.oam.LinksetExecutor;
import org.mobicents.ss7.linkset.oam.LinksetManager;
import org.mobicents.ss7.management.console.Subject;
import org.mobicents.ss7.management.transceiver.ChannelProvider;
@@ -19,178 +20,168 @@
public class ShellExecutor {
- Logger logger = Logger.getLogger(ShellExecutor.class);
-
- private ChannelProvider provider;
- private ShellServerChannel serverChannel;
- private ShellChannel channel;
- private ChannelSelector selector;
- private ChannelSelectionKey skey;
-
- private MessageFactory messageFactory = null;
-
- private String rxMessage = "";
- private String txMessage = "";
-
- private LinksetManager linksetManager = null;
-
- private LinksetListenerImpl linksetListenerImpl = null;
-
- private volatile boolean started = false;
-
- private String address;
-
- private int port;
-
- public ShellExecutor() throws IOException {
-
- }
-
- public String getAddress() {
- return address;
- }
-
- public void setAddress(String address) {
- this.address = address;
- }
-
- public int getPort() {
- return port;
- }
-
- public void setPort(int port) {
- this.port = port;
- }
-
- public LinksetManager getLinksetManager() {
- return linksetManager;
- }
-
- public void setLinksetManager(LinksetManager linksetManager) {
- this.linksetManager = linksetManager;
- }
-
- public void start() throws IOException {
- linksetListenerImpl = new
LinksetListenerImpl(this.linksetManager);
-
- provider = ChannelProvider.provider();
- serverChannel = provider.openServerChannel();
- InetSocketAddress inetSocketAddress = new
InetSocketAddress(address,
- port);
- serverChannel.bind(inetSocketAddress);
-
- selector = provider.openSelector();
- skey = serverChannel.register(selector, SelectionKey.OP_ACCEPT);
-
- messageFactory = ChannelProvider.provider().getMessageFactory();
-
- this.logger.info(String.format("ShellExecutor listening at %s",
- inetSocketAddress));
-
- this.started = true;
- }
-
- public void stop() {
- this.started = false;
-
- try {
- skey.cancel();
- if (channel != null) {
- channel.close();
- }
- serverChannel.close();
- selector.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- public void perform() {
-
- if (started) {
- try {
- FastSet<ChannelSelectionKey> keys = selector.selectNow();
-
- for (FastSet.Record record = keys.head(), end =
keys.tail(); (record = record
- .getNext()) != end;) {
- ChannelSelectionKey key = (ChannelSelectionKey) keys
- .valueOf(record);
-
- if (key.isAcceptable()) {
- accept();
- } else if (key.isReadable()) {
- ShellChannel chan =
(ShellChannel) key.channel();
- Message msg = (Message)
chan.receive();
-
- if (msg != null) {
- System.out.println("Receive
" + msg);
- rxMessage =
msg.toString();
-
- if
(rxMessage.compareTo("disconnect") == 0) {
- this.txMessage =
"Bye";
-
chan.send(messageFactory
-
.createMessage(txMessage));
-
- } else {
- String[] options =
rxMessage.split(" ");
- Subject subject
= Subject
-
.getSubject(options[0]);
- if (subject ==
null) {
-
chan.send(messageFactory
-
.createMessage("Invalid Subject"));
- } else {
- //
Nullify examined options
-
options[0] = null;
-
- switch
(subject) {
- case
LINKSET:
-
this.txMessage = this.linksetListenerImpl
-
.execute(options);
-
chan.send(messageFactory
-
.createMessage(this.txMessage));
-
break;
- }
- }
- } // if
(rxMessage.compareTo("disconnect")
- } // if (msg != null)
-
- // TODO Handle message
-
- rxMessage = "";
-
- } else if (key.isWritable() &&
txMessage.length() > 0) {
-
- if
(this.txMessage.compareTo("Bye") == 0) {
- this.closeChannel();
- }
- this.txMessage = "";
- }
- }
- } catch (IOException e) {
- logger.error("Error while operating on
ChannelSelectionKey", e);
- }
-
- }
-
- }
-
- private void accept() throws IOException {
- channel = serverChannel.accept();
- skey.cancel();
- skey = channel.register(selector, SelectionKey.OP_READ
- | SelectionKey.OP_WRITE);
- System.out.println("Client connected");
- }
-
- private void closeChannel() throws IOException {
- if (channel != null) {
- try {
- this.channel.close();
- } catch (IOException e) {
- logger.error("Error closing channel", e);
- }
- }
- skey.cancel();
- skey = serverChannel.register(selector, SelectionKey.OP_ACCEPT);
- }
-}
+ Logger logger = Logger.getLogger(ShellExecutor.class);
+
+ private ChannelProvider provider;
+ private ShellServerChannel serverChannel;
+ private ShellChannel channel;
+ private ChannelSelector selector;
+ private ChannelSelectionKey skey;
+
+ private MessageFactory messageFactory = null;
+
+ private String rxMessage = "";
+ private String txMessage = "";
+
+ private LinksetManager linksetManager = null;
+ private LinksetExecutor linksetExec = null;
+
+ private volatile boolean started = false;
+
+ private String address;
+
+ private int port;
+
+ public ShellExecutor() throws IOException {
+
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public int getPort() {
+ return port;
+ }
+
+ public void setPort(int port) {
+ this.port = port;
+ }
+
+ public LinksetManager getLinksetManager() {
+ return linksetManager;
+ }
+
+ public void setLinksetManager(LinksetManager linksetManager) {
+ this.linksetManager = linksetManager;
+ }
+
+ public void start() throws IOException {
+ linksetExec = new LinksetExecutor();
+ linksetExec.setLinksetManager(this.linksetManager);
+
+ provider = ChannelProvider.provider();
+ serverChannel = provider.openServerChannel();
+ InetSocketAddress inetSocketAddress = new
InetSocketAddress(address, port);
+ serverChannel.bind(inetSocketAddress);
+
+ selector = provider.openSelector();
+ skey = serverChannel.register(selector, SelectionKey.OP_ACCEPT);
+
+ messageFactory = ChannelProvider.provider().getMessageFactory();
+
+ this.logger.info(String.format("ShellExecutor listening at %s",
inetSocketAddress));
+
+ this.started = true;
+ }
+
+ public void stop() {
+ this.started = false;
+
+ try {
+ skey.cancel();
+ if (channel != null) {
+ channel.close();
+ }
+ serverChannel.close();
+ selector.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void perform() {
+
+ if (started) {
+ try {
+ FastSet<ChannelSelectionKey> keys = selector.selectNow();
+
+ for (FastSet.Record record = keys.head(), end =
keys.tail(); (record = record.getNext()) != end;) {
+ ChannelSelectionKey key = (ChannelSelectionKey)
keys.valueOf(record);
+
+ if (key.isAcceptable()) {
+ accept();
+ } else if (key.isReadable()) {
+ ShellChannel chan = (ShellChannel) key.channel();
+ Message msg = (Message) chan.receive();
+
+ if (msg != null) {
+ System.out.println("Receive " + msg);
+ rxMessage = msg.toString();
+
+ if (rxMessage.compareTo("disconnect") == 0) {
+ this.txMessage = "Bye";
+
chan.send(messageFactory.createMessage(txMessage));
+
+ } else {
+ String[] options = rxMessage.split(" ");
+ Subject subject =
Subject.getSubject(options[0]);
+ if (subject == null) {
+
chan.send(messageFactory.createMessage("Invalid Subject"));
+ } else {
+ // Nullify examined options
+ options[0] = null;
+
+ switch (subject) {
+ case LINKSET:
+ this.txMessage =
this.linksetExec.execute(options);
+
chan.send(messageFactory.createMessage(this.txMessage));
+ break;
+ }
+ }
+ } // if (rxMessage.compareTo("disconnect")
+ } // if (msg != null)
+
+ // TODO Handle message
+
+ rxMessage = "";
+
+ } else if (key.isWritable() && txMessage.length() > 0)
{
+
+ if (this.txMessage.compareTo("Bye") == 0) {
+ this.closeChannel();
+ }
+ this.txMessage = "";
+ }
+ }
+ } catch (IOException e) {
+ logger.error("Error while operating on
ChannelSelectionKey", e);
+ }
+
+ }
+
+ }
+
+ private void accept() throws IOException {
+ channel = serverChannel.accept();
+ skey.cancel();
+ skey = channel.register(selector, SelectionKey.OP_READ |
SelectionKey.OP_WRITE);
+ System.out.println("Client connected");
+ }
+
+ private void closeChannel() throws IOException {
+ if (channel != null) {
+ try {
+ this.channel.close();
+ } catch (IOException e) {
+ logger.error("Error closing channel", e);
+ }
+ }
+ skey.cancel();
+ skey = serverChannel.register(selector, SelectionKey.OP_ACCEPT);
+ }
+}