Index: source/ariba/communication/EndpointDescriptor.cpp
===================================================================
--- source/ariba/communication/EndpointDescriptor.cpp	(revision 2390)
+++ source/ariba/communication/EndpointDescriptor.cpp	(revision 2452)
@@ -38,4 +38,6 @@
 
 #include "EndpointDescriptor.h"
+#include "ariba/utility/misc/StringFormat.h"
+#include "ariba/utility/misc/Helper.h"
 
 namespace ariba {
@@ -68,11 +70,40 @@
 string EndpointDescriptor::toString() const {
 	if( locator == NULL ) return "<undefined locator>";
-	else                  return locator->toString();
+	std::ostringstream o;
+	o << "ip{" << locator->getIP() << "}";
+	o << ",";
+	o << "tcp(ip,{" << locator->getPort() << "})";
+	return o.str();
 }
 
 EndpointDescriptor* EndpointDescriptor::fromString( string str ) {
-	EndpointDescriptor* ep = new EndpointDescriptor();
-	ep->locator->fromString(str);
-	ep->isUnspec = false;
+	using namespace boost::xpressive;
+	using namespace ariba::utility::string_format;
+	using namespace ariba::utility::Helper;
+	using namespace std;
+
+	EndpointDescriptor* ep = NULL;
+	smatch match;
+	if (regex_search(str, match, robjects)) {
+		regex_nav nav = match;
+		for (int i=0; i<nav.size(); i++) {
+			string type = nav[i][robject_id].str();
+			if (type=="ip") {
+				string ip = nav[i][robject_data].str();
+				ip = ip.substr(1,ip.size()-2);
+				cout << "ep-ip = " <<ip << endl;
+				ep = new EndpointDescriptor();
+				ep->locator = new IPv4Locator();
+				ep->locator->setIP(ip);
+				ep->isUnspec = false;
+			} else
+			if (type=="tcp") {
+				string port = nav[i][robject_data][rfields][1].str();
+				port = port.substr(1,port.size()-2);
+				cout << "ep-tcp-port = " << port << endl;
+				ep->locator->setPort(stoi(port));
+			}
+		}
+	}
 	return ep;
 }
Index: source/ariba/communication/modules/network/ip/IPv4Locator.h
===================================================================
--- source/ariba/communication/modules/network/ip/IPv4Locator.h	(revision 2390)
+++ source/ariba/communication/modules/network/ip/IPv4Locator.h	(revision 2452)
@@ -77,4 +77,8 @@
 	virtual string toString() const;
 
+	void setIP( string ip ) {
+		ipv4Address = boost::asio::ip::address_v4::from_string( ip );
+	}
+
 	string getIP() const {
 		return ipv4Address.to_string();
@@ -91,5 +95,4 @@
 	boost::asio::ip::address_v4 ipv4Address;
 	uint16_t port;
-
 };
 
