diff options
Diffstat (limited to 'svc')
59 files changed, 1058 insertions, 0 deletions
diff --git a/svc/pom.xml b/svc/pom.xml new file mode 100644 index 0000000..6e8f4de --- /dev/null +++ b/svc/pom.xml @@ -0,0 +1,30 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>vcpe-services</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>svc</artifactId> + <packaging>pom</packaging> + <version>1.0-SNAPSHOT</version> + + <modules> + <module>svcbase</module> + <module>svcmgr</module> + </modules> + + <dependencies> + <dependency> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>cosbase</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + </dependencies> + +</project> diff --git a/svc/svcbase/pom.xml b/svc/svcbase/pom.xml new file mode 100644 index 0000000..40982d6 --- /dev/null +++ b/svc/svcbase/pom.xml @@ -0,0 +1,29 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>svc</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>svcbase</artifactId> + <packaging>jar</packaging> + <version>1.0-SNAPSHOT</version> + + <build> + <finalName>svcbase</finalName> + </build> + + <dependencies> + <dependency> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>evcbase</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + </dependencies> + +</project> diff --git a/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/client/EplClient.java b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/client/EplClient.java new file mode 100644 index 0000000..9bc7368 --- /dev/null +++ b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/client/EplClient.java @@ -0,0 +1,149 @@ +package com.cablelabs.vcpe.svc.svcbase.client; + +import com.cablelabs.vcpe.svc.svcbase.model.Epl; + +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.List; + +/** + * Created by steve on 6/8/15. + */ +public class EplClient { + + private Client client; // provided by Jersey + + public EplClient() { + client = ClientBuilder.newClient(); + } + + //-------------------------------------------------------- + public Epl create(Epl epl) + //-------------------------------------------------------- + { + WebTarget target =client.target("http://localhost:9090/svcmgr/webapi/svc/"); + Response response = target.path("epl") + .request(MediaType.APPLICATION_JSON) + .post(Entity.entity(epl, MediaType.APPLICATION_JSON)); + + if (response.getStatus() != 200 ) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException(response.getStatus() + ": there was an error on the server."); + } + return response.readEntity(Epl.class); + } + + //-------------------------------------------------------- + public Epl update(Epl epl) + //-------------------------------------------------------- + { + WebTarget target =client.target("http://localhost:9090/svcmgr/webapi/svc/"); + Response response = target.path("epl/"+ epl.getId()) + .request(MediaType.APPLICATION_JSON) + .put(Entity.entity(epl, MediaType.APPLICATION_JSON)); + + if (response.getStatus() != 200 ) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException(response.getStatus() + ": there was an error on the server."); + } + return response.readEntity(Epl.class); + } + + //-------------------------------------------------------- + public Epl get(String eplId) + //-------------------------------------------------------- + // get Epl of specified ID + + { + WebTarget target = client.target("http://localhost:9090/svcmgr/webapi/svc"); + + Response response = target.path("epl/"+eplId).request(MediaType.APPLICATION_JSON).get(Response.class); + if (response.getStatus() != 200) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException(response.getStatus() + ": there was an error on the server."); + } + + //return response; + return response.readEntity(Epl.class); + } + + //-------------------------------------------------------- + public List<Epl> getAll() + //-------------------------------------------------------- + // get a list of all Epl instances + { + + WebTarget target = client.target("http://localhost:9090/svcmgr/webapi/svc/"); + + // Can I do this with a Response, so that I can check for errors + List<Epl> response = target.path("epl/list") + .request(MediaType.APPLICATION_JSON) + .get(new GenericType<List<Epl>>() { + }); + if (response == null) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException("there was an error on the server."); + } + return response; + } + + //-------------------------------------------------------- + public void delete(String eplId) + //-------------------------------------------------------- + // delete Epl of specified ID + { + WebTarget target = client.target("http://localhost:9090/svcmgr/webapi/svc/"); + Response response = target.path("epl/"+eplId).request(MediaType.APPLICATION_JSON).delete(); + if (response.getStatus() != 200) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException(response.getStatus() + ": there was an error on the server."); + } + } + + //-------------------------------------------------------- + public Epl testGet() + //-------------------------------------------------------- + // test marshaling of Epl class from server json + + { + WebTarget target = client.target("http://localhost:9090/svcmgr/webapi/svc/"); + + Response response = target.path("epl").request(MediaType.APPLICATION_JSON).get(Response.class); + if (response.getStatus() != 200) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException(response.getStatus() + ": there was an error on the server."); + } + + //return response; + return response.readEntity(Epl.class); + } + + //-------------------------------------------------------- + public String ping() + //-------------------------------------------------------- + // test connectivity + { + + WebTarget target = client.target("http://localhost:9090/svcmgr/webapi/svc/"); + + Response response = target.path("epl").request(MediaType.TEXT_PLAIN).get(); + if (response.getStatus() != 200) // figure out how to use Status.OK + { + // in production you can be more specific based on reponse code, id, etc + throw new RuntimeException(response.getStatus() + ": there was an error on the server."); + } + + return response.readEntity(String.class); + } +} diff --git a/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/model/Epl.java b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/model/Epl.java new file mode 100644 index 0000000..254fb11 --- /dev/null +++ b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/model/Epl.java @@ -0,0 +1,104 @@ +package com.cablelabs.vcpe.svc.svcbase.model; + +import com.cablelabs.vcpe.common.Dbg; +import com.cablelabs.vcpe.evc.evcbase.model.Evc; +import com.cablelabs.vcpe.evc.evcbase.client.EvcClient; + +import javax.xml.bind.annotation.XmlRootElement; +import java.util.List; + +/** + * Created by steve on 5/24/15. + */ + +@XmlRootElement +public class Epl +{ + private String id; + private long numCustLocations; + private List<String> custAddressList = null; + private List<String> uniHostMacList = null; + private List<String> uniHostIpList = null; + private String cos; + private String evcId; + + // zero argument constructor required for JAX-RS + public Epl() { + id = "unset"; + this.numCustLocations = -1; + this.custAddressList = null; + this.uniHostMacList = null; + this.uniHostIpList = null; + this.cos = "unset"; + this.evcId = "unset"; + } + + public void setAllProps (String id, long numCustLocations, + List<String> custAddressList, + List<String> uniHostMacList, List<String> uniHostIpList, String cos, String evcId) { + this.id = id; + this.numCustLocations = numCustLocations; + this.custAddressList = custAddressList; + this.uniHostMacList = uniHostMacList; + this.uniHostIpList = uniHostIpList; + this.cos = cos; + this.evcId = evcId; + } + + public void dump() { dump(0); } + public void dump(int tab) { + + Dbg.p(tab, "id: " + this.id); + Dbg.p(tab, "numCustLocations: " + this.numCustLocations); + Dbg.p(tab, "Address List:"); + for (String addr : custAddressList) + Dbg.p(tab+1, addr); + Dbg.p(tab, "UNI Mac List:"); + for (String mac : uniHostMacList) + Dbg.p(tab+1, mac); + Dbg.p(tab, "UNI IP List:"); + for (String ip : uniHostIpList) + Dbg.p(tab+1, ip); + Dbg.p(tab, "cos: " + this.cos); + Dbg.p(tab, "Evc:" + this.evcId); +// if ( this.evcId != "unset") { // hacky +// EvcClient evcClient = new EvcClient(); +// Evc evc = evcClient.get(this.evcId); +// evc.dump(tab + 2); +// } + } + + public static void dumpList(List<Epl> eplList) { dumpList(0, eplList); } + public static void dumpList(int tab, List<Epl> eplList) { + int numSvc = 0; + Dbg.p("----- Epl List : [" + eplList.size() + "] elements"); + for (Epl curEpl : eplList) { + numSvc++; + Dbg.p(tab+1, "<Entry " + numSvc+">"); + curEpl.dump(tab+2); + } + } + + // Getters & Setters + public String getId() { return id; } + public void setId(String id) { this.id = id; } + + public long getNumCustLocations() { return numCustLocations; } + public void setNumCustLocations(long numCustLocations) { this.numCustLocations = numCustLocations; } + + public List<String> getCustAddressList() { return custAddressList; } + public void setCustAddressList(List<String> custAddressList) { this.custAddressList = custAddressList; } + + public List<String> getUniHostMacList() { return uniHostMacList; } + public void setUniHostMacList(List<String> uniHostMacList) { this.uniHostMacList = uniHostMacList; } + + + public List<String> getUniHostIpList() { return uniHostIpList; } + public void setUniHostIpList(List<String> uniHostIpList) { this.uniHostIpList = uniHostIpList; } + + public String getCos() { return cos; } + public void setCos(String cos) { this.cos = cos; } + + public String getEvcId() { return evcId; } + public void setEvcId(String evcId) { this.evcId = evcId; } +} diff --git a/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRespository.java b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRespository.java new file mode 100644 index 0000000..1142963 --- /dev/null +++ b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRespository.java @@ -0,0 +1,21 @@ +package com.cablelabs.vcpe.svc.svcbase.repository; + +import com.cablelabs.vcpe.svc.svcbase.model.Epl; + +import java.util.List; + +/** + * Created by steve on 5/25/15. + */ +public interface EplRespository +{ + // TODO add exceptions + + Epl add(Epl epl); // returns null if already exists, otherwise returns stored epl + Epl get(String svcId); // returns null if not found, otherwise stored svc + Epl update(Epl epl); // returns null if did not exit, otherwise epl as it was previous to update (put in any case) + Epl delete(String svcId); // returns null if not found, otherwise svc as it was previous to delete + int count(); // number of Epl stored in the repo + public void dump(int tab); // print out contents of the repo + List<Epl> getAll(); +} diff --git a/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRespositoryInMem.java b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRespositoryInMem.java new file mode 100644 index 0000000..af82c21 --- /dev/null +++ b/svc/svcbase/src/main/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRespositoryInMem.java @@ -0,0 +1,91 @@ +package com.cablelabs.vcpe.svc.svcbase.repository; + +import com.cablelabs.vcpe.common.Dbg; +import com.cablelabs.vcpe.svc.svcbase.model.Epl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Created by steve on 5/24/15. + */ + + +/* + Singleton that contains a hashmap which holds instances of Epl objects, indexed by CiS ID + */ + +public enum EplRespositoryInMem implements EplRespository { + INSTANCE; // Singleton + + private Map<String, Epl> svcDB = new ConcurrentHashMap<>(); + + @Override + //-------------------------------------------------------- + public Epl add(Epl epl) + //-------------------------------------------------------- + { + if ( this.get(epl.getId()) != null ) { + return null; + } + svcDB.put(epl.getId(), epl); + return epl; + } + + @Override + //-------------------------------------------------------- + public Epl get(String svcId) { + return svcDB.get(svcId); + } + //-------------------------------------------------------- + + @Override + //-------------------------------------------------------- + public Epl update(Epl epl) + //-------------------------------------------------------- + { + // put returns null if epl did not exist, other returns epl as it stood prior to put + return svcDB.put(epl.getId(), epl); + } + + @Override + //-------------------------------------------------------- + public Epl delete(String svcId) + //-------------------------------------------------------- + { + // remove returns null if svc did not exist, other returns svc as it stood prior to remove + return svcDB.remove(svcId); + } + + @Override + //-------------------------------------------------------- + public int count() { + return svcDB.size(); + } + //-------------------------------------------------------- + + @Override + //-------------------------------------------------------- + public List<Epl> getAll() + //-------------------------------------------------------- + { + List<Epl> eplList = new ArrayList<Epl>(svcDB.values()); + return eplList; + } + + @Override + //-------------------------------------------------------- + public void dump(int tab) + //-------------------------------------------------------- + { + Dbg.p(tab, "Epl Repo: " + svcDB.size() + " entrie(s)"); + int numSvc = 0; + for (Epl curEpl : svcDB.values()) { + numSvc++; + Dbg.p(tab+1, "<Entry " + numSvc+">"); + curEpl.dump(tab+2); + } + } +} diff --git a/svc/svcbase/src/test/java/com/cablelabs/vcpe/svc/svcbase/client/EplClientTest.java b/svc/svcbase/src/test/java/com/cablelabs/vcpe/svc/svcbase/client/EplClientTest.java new file mode 100644 index 0000000..f8950f9 --- /dev/null +++ b/svc/svcbase/src/test/java/com/cablelabs/vcpe/svc/svcbase/client/EplClientTest.java @@ -0,0 +1,150 @@ +package com.cablelabs.vcpe.svc.svcbase.client; + +import com.cablelabs.vcpe.common.Dbg; +import com.cablelabs.vcpe.cos.cosbase.client.CoSClient; +import com.cablelabs.vcpe.cos.cosbase.model.CoS; +import com.cablelabs.vcpe.svc.svcbase.model.Epl; + +import org.junit.Test; +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.List; + + +/** + * Created by steve on 6/8/15. + */ +public class EplClientTest { + + @Test + public void testAll() throws Exception { + + // First, create a couple of CoS's to reference + CoS gold = new CoS(); + CoS silver = new CoS(); + CoS bronze = new CoS(); + + gold.setAllProps("gold", 100, 0.99, 17.43, 2.43, 0.01); + silver.setAllProps("silver", 50, 0.95, 27.43, 2.43, 0.02); + bronze.setAllProps("bronze", 25, 0.90, 37.43, 2.43, 0.03); + + CoSClient coSClient = new CoSClient(); + + gold = coSClient.create(gold); + assertNotNull(gold); + silver = coSClient.create(silver); + assertNotNull(silver); + bronze = coSClient.create(bronze); + assertNotNull(bronze); + + List<String> locList1 = new ArrayList<String>(); + locList1.add("1 MEF Dr, Honolulu HI, USA"); + locList1.add("1 MEF Dr, Boston MA, MAS"); + List<String> uniList1 = new ArrayList<String>(); + uniList1.add("11:AA:00:00:00:00"); + uniList1.add("11:BB:00:00:00:00"); + List<String> ipList1 = new ArrayList<String>(); + ipList1.add("192.168.1.1"); + ipList1.add("192.168.1.2"); + + List<String> locList2 = new ArrayList<String>(); + locList2.add("22 MEF Dr, Honolulu HI, USA"); + locList2.add("22 MEF Dr, Boston MA, MAS"); + List<String> uniList2 = new ArrayList<String>(); + uniList2.add("22:AA:00:00:00:00"); + uniList2.add("22:BB:00:00:00:00"); + List<String> ipList2 = new ArrayList<String>(); + ipList2.add("192.168.2.1"); + ipList2.add("192.168.2.2"); + + List<String> locList3 = new ArrayList<String>(); + locList3.add("33 MEF Dr, Honolulu HI, USA"); + locList3.add("33 MEF Dr, Boston MA, MAS"); + List<String> uniList3 = new ArrayList<String>(); + uniList3.add("33:AA:00:00:00:00"); + uniList3.add("33:BB:00:00:00:00"); + List<String> ipList3 = new ArrayList<String>(); + ipList3.add("192.168.3.1"); + ipList3.add("192.168.3.2"); + + Epl epl_1 = new Epl(); + epl_1.setAllProps("epl-1", 2, locList1, uniList1, ipList1, gold.getId(), "unset"); + + EplClient eplClient = new EplClient(); + Dbg.p(epl_1.getId()+" being created via eplmgr"); + epl_1.dump(1); + + + // need to capture returned EPL in case it was modified by svc layer during creation + epl_1 = eplClient.create(epl_1); + assertNotNull(epl_1); + + Epl retrievedEpl = eplClient.get(epl_1.getId()); + assertNotNull(retrievedEpl); + Dbg.p("epl just retrieved from Epl Service"); + retrievedEpl.dump(1); + retrievedEpl = null; + + epl_1.setCos(bronze.getId()); + Dbg.p("EPL["+ epl_1.getId()+ "] : about to be updated"); + epl_1.dump(1); + assertNotNull(eplClient.update(epl_1)); + retrievedEpl = eplClient.get(epl_1.getId()); + assertNotNull(retrievedEpl); + Dbg.p("EPL["+ epl_1.getId()+ "] : retrieved after the update"); + retrievedEpl.dump(1); + + Epl epl_2 = new Epl(); + epl_2.setAllProps("epl-2", 2, locList2, uniList2, ipList2, silver.getId(), "unset"); + + Epl epl_3 = new Epl(); + epl_3.setAllProps("epl-3", 2, locList3, uniList3, ipList3, bronze.getId(), "unset"); + + // need to capture returned EPL in case it was modified by svc layer during creation + epl_2 = eplClient.create(epl_2); + assertNotNull(epl_2); + epl_3 = eplClient.create(epl_3); + assertNotNull(epl_3); + + List<Epl> eplList = eplClient.getAll(); + assertNotNull(eplList); + assertEquals(eplList.size(), 3); + + Epl.dumpList(eplList); + + eplClient.delete(epl_3.getId()); + eplList = eplClient.getAll(); + assertNotNull(eplList); + assertEquals(eplList.size(),2); + Epl.dumpList(eplList); + + eplClient.delete(epl_2.getId()); + eplList = eplClient.getAll(); + Epl.dumpList(eplList); + assertNotNull(eplList); + assertEquals(eplList.size(),1); + Epl.dumpList(eplList); + + eplClient.delete(epl_1.getId()); + eplList = eplClient.getAll(); + assertNotNull(eplList); + assertEquals(eplList.size(),0); + Epl.dumpList(eplList); + } + + @Test + public void testTestGet() throws Exception { + EplClient eplClient = new EplClient(); + Epl epl = eplClient.testGet(); + epl.dump();; + } + + @Test + public void testPing() throws Exception { + + EplClient eplClient = new EplClient(); + String resp = eplClient.ping(); + Dbg.p(resp); + } +} diff --git a/svc/svcbase/src/test/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRepositoryTest.java b/svc/svcbase/src/test/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRepositoryTest.java new file mode 100644 index 0000000..ff8c892 --- /dev/null +++ b/svc/svcbase/src/test/java/com/cablelabs/vcpe/svc/svcbase/repository/EplRepositoryTest.java @@ -0,0 +1,126 @@ +package com.cablelabs.vcpe.svc.svcbase.repository; + +import com.cablelabs.vcpe.cos.cosbase.model.CoS; +import com.cablelabs.vcpe.svc.svcbase.model.Epl; + +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.*; + +/** + * Created by steve on 5/25/15. + */ +public class EplRepositoryTest +{ + + @Test + public void test() { + + // First, create a couple of CoS's to reference + CoS gold = new CoS(); + CoS silver = new CoS(); + CoS bronze = new CoS(); + + // id CIR/MBS avail delay jitter frameloss + gold.setAllProps("gold", 100, 0.99, 17.43, 2.43, 0.01); + silver.setAllProps("silver", 50, 0.95, 27.43, 2.43, 0.02); + bronze.setAllProps("bronze", 25, 0.90, 37.43, 2.43, 0.03); + + // lets add these to the + + List<String> locList1 = new ArrayList<String>(); + locList1.add("1111 MEF Dr, Honolulu HI, USA"); + locList1.add("2222 MEF Dr, Honolulu HI, USA"); + List<String> uniList1 = new ArrayList<String>(); + uniList1.add("11:11:11:11:11:11"); + uniList1.add("22:22:22:22:22:22"); + List<String> ipList1 = new ArrayList<String>(); + ipList1.add("192.168.1.1"); + ipList1.add("192.168.1.2"); + + + List<String> locList2 = new ArrayList<String>(); + locList2.add("1111 MEF Dr, Honolulu HI, USA"); + locList2.add("2222 MEF Dr, Boston MA, MAS"); + List<String> uniList2 = new ArrayList<String>(); + uniList2.add("11:11:11:11:11:11"); + uniList2.add("22:22:22:22:22:22"); + List<String> ipList2 = new ArrayList<String>(); + ipList2.add("192.168.2.1"); + ipList2.add("192.168.2.2"); + + List<String> locList3 = new ArrayList<String>(); + locList3.add("1111 MEF Dr, Honolulu HI, USA"); + locList3.add("2222 MEF Dr, Boston MA, MAS"); + locList3.add("3333 MEF Dr, Boulder CO, USA"); + List<String> uniList3 = new ArrayList<String>(); + uniList3.add("11:11:11:11:11:11"); + uniList3.add("22:22:22:22:22:22"); + List<String> ipList3 = new ArrayList<String>(); + ipList3.add("192.168.3.1"); + ipList3.add("192.168.3.2"); + + List<String> locList4 = new ArrayList<String>(); + locList4.add("1111 MEF Dr, Honolulu HI, USA"); + locList4.add("2222 MEF Dr, Boston MA, MAS"); + locList4.add("3333 MEF Dr, Boulder CO, USA"); + locList4.add("4444 MEF Dr, Los Angeles, CA, USA"); + List<String> uniList4 = new ArrayList<String>(); + uniList4.add("11:11:11:11:11:11"); + uniList4.add("22:22:22:22:22:22"); + uniList4.add("33:33:33:33:33:33"); + uniList4.add("44:44:44:44:44:44"); + List<String> ipList4 = new ArrayList<String>(); + ipList4.add("192.168.4.1"); + ipList4.add("192.168.4.2"); + + + + Epl epl_1 = new Epl(); + Epl epl_2 = new Epl(); + Epl epl_3 = new Epl(); + Epl epl_4 = new Epl(); + + epl_1.setAllProps("epl-1", 1, locList1, uniList1, ipList1, gold.getId(), "unset"); + epl_2.setAllProps("epl-2", 2, locList2, uniList2, ipList2, silver.getId(), "unset"); + epl_3.setAllProps("epl-3", 3, locList3, uniList3, ipList3, bronze.getId(), "unset"); + epl_4.setAllProps("epl-4", 4, locList4, uniList4, ipList4, gold.getId(), "unset"); + + EplRespository repo = EplRespositoryInMem.INSTANCE; + + assertNotNull(repo.add(epl_1)); + assertNotNull(repo.add(epl_2)); + assertNotNull(repo.add(epl_3)); + assertNull(repo.add(epl_3)); // duplicate + assertEquals(repo.count(), 3); + + assertNotNull(repo.get(epl_1.getId())); + assertNotNull(repo.get(epl_2.getId())); + assertNotNull(repo.get(epl_3.getId())); + + assertNotNull(repo.delete(epl_2.getId())); + assertNull(repo.delete(epl_2.getId())); + assertNull(repo.delete("not-in-repo")); + assertEquals(repo.count(), 2); + + assertEquals(repo.get(epl_1.getId()).getNumCustLocations(), 1); + assertNotEquals(repo.get(epl_3.getId()).getNumCustLocations(), 1); + + + assertNull(repo.update(epl_4)); // update non-existent cos + assertEquals(repo.count(), 3); + assertEquals(repo.get("epl-4").getCos(), gold.getId()); + + epl_4.setCos(silver.getId()); + assertNotNull(repo.update(epl_4)); // update existing svc, same object + assertEquals(repo.get(epl_4.getId()).getCos(), silver.getId()); + + Epl epl_4_2 = new Epl(); + epl_4_2.setAllProps("epl-4", 4, locList4, uniList4, ipList4, bronze.getId(), "unset"); + assertNotNull(repo.update(epl_4_2)); // update svc, new object + assertEquals(repo.get(epl_4_2.getId()).getNumCustLocations(), 4); + } +} diff --git a/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/client/EplClient$1.class b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/client/EplClient$1.class Binary files differnew file mode 100644 index 0000000..bee6861 --- /dev/null +++ b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/client/EplClient$1.class diff --git a/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/client/EplClient.class b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/client/EplClient.class Binary files differnew file mode 100644 index 0000000..04b7db4 --- /dev/null +++ b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/client/EplClient.class diff --git a/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/model/Epl.class b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/model/Epl.class Binary files differnew file mode 100644 index 0000000..853209c --- /dev/null +++ b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/model/Epl.class diff --git a/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRespository.class b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRespository.class Binary files differnew file mode 100644 index 0000000..8d0d203 --- /dev/null +++ b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRespository.class diff --git a/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRespositoryInMem.class b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRespositoryInMem.class Binary files differnew file mode 100644 index 0000000..bd2e9ef --- /dev/null +++ b/svc/svcbase/target/classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRespositoryInMem.class diff --git a/svc/svcbase/target/maven-archiver/pom.properties b/svc/svcbase/target/maven-archiver/pom.properties new file mode 100644 index 0000000..e6fee0f --- /dev/null +++ b/svc/svcbase/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Aug 06 14:01:20 PDT 2015 +version=1.0-SNAPSHOT +groupId=com.cablelabs.vcpe +artifactId=svcbase diff --git a/svc/svcbase/target/svcbase.jar b/svc/svcbase/target/svcbase.jar Binary files differnew file mode 100644 index 0000000..d3ef79a --- /dev/null +++ b/svc/svcbase/target/svcbase.jar diff --git a/svc/svcbase/target/test-classes/com/cablelabs/vcpe/svc/svcbase/client/EplClientTest.class b/svc/svcbase/target/test-classes/com/cablelabs/vcpe/svc/svcbase/client/EplClientTest.class Binary files differnew file mode 100644 index 0000000..e0df6f5 --- /dev/null +++ b/svc/svcbase/target/test-classes/com/cablelabs/vcpe/svc/svcbase/client/EplClientTest.class diff --git a/svc/svcbase/target/test-classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRepositoryTest.class b/svc/svcbase/target/test-classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRepositoryTest.class Binary files differnew file mode 100644 index 0000000..74b4913 --- /dev/null +++ b/svc/svcbase/target/test-classes/com/cablelabs/vcpe/svc/svcbase/repository/EplRepositoryTest.class diff --git a/svc/svcmgr/pom.xml b/svc/svcmgr/pom.xml new file mode 100644 index 0000000..2751749 --- /dev/null +++ b/svc/svcmgr/pom.xml @@ -0,0 +1,33 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <parent> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>svc</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>svcmgr</artifactId> + <packaging>war</packaging> + <version>1.0-SNAPSHOT</version> + + <build> + <finalName>svcmgr</finalName> + </build> + + <dependencies> + <dependency> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>svcbase</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>com.cablelabs.vcpe</groupId> + <artifactId>evcbase</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + </dependencies> +</project> diff --git a/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.java b/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.java new file mode 100644 index 0000000..69a5f44 --- /dev/null +++ b/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.java @@ -0,0 +1,24 @@ +package com.cablelabs.vcpe.svc.svcmgr; + +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; +import javax.ws.rs.core.MultivaluedMap; +import java.io.IOException; + +// +// enable cross origin responses, otherwise we can't send rest requests from domain different than that of the server hosting our service +// + +public class CORSResponseFilter implements ContainerResponseFilter { + + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) + throws IOException { + + MultivaluedMap<String, Object> headers = responseContext.getHeaders(); + headers.add("Access-Control-Allow-Origin", "*"); + headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); + headers.add("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, X-Codingpedia"); + } + +} diff --git a/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/EplService.java b/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/EplService.java new file mode 100644 index 0000000..7f7510d --- /dev/null +++ b/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/EplService.java @@ -0,0 +1,213 @@ +package com.cablelabs.vcpe.svc.svcmgr; + + +import com.cablelabs.vcpe.common.Dbg; +import com.cablelabs.vcpe.evc.evcbase.client.EvcClient; +import com.cablelabs.vcpe.svc.svcbase.model.Epl; +import com.cablelabs.vcpe.svc.svcbase.repository.EplRespositoryInMem; +import com.cablelabs.vcpe.evc.evcbase.model.Evc; + + +import javax.ws.rs.*; +import javax.ws.rs.core.GenericEntity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.ArrayList; +import java.util.List; + +/** + * Root resource (exposed at "svc/epl" path) + */ + +@Path("svc/epl") +public class EplService { + + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + //-------------------------------------------------------- + public Response create(Epl epl) + //-------------------------------------------------------- + { + if ( epl == null) { + return Response.status(Response.Status.BAD_REQUEST).build(); + } + + Dbg.p("\nADDING [" + epl.getId() + "] to epl repo"); + + // + // Create an EVC + // + + Evc evcForEpl = new Evc(); + + // Uni IDs set at lower layers + List<String> uniIdList = new ArrayList<String>(); + uniIdList.add("unset"); + uniIdList.add("unset"); + + // Transfer EPLs mac list to EVC + List<String> uniMacList = new ArrayList<String>(); + if (epl.getUniHostMacList() != null && epl.getUniHostMacList().size() == 2) { + uniMacList.add(epl.getUniHostMacList().get(0) ); + uniMacList.add(epl.getUniHostMacList().get(1)); + } + else { + return Response.status(Response.Status.BAD_REQUEST).build(); + } + + // Transfer EPLs I{P list to EVC + List<String> uniIpList = new ArrayList<String>(); + if (epl.getUniHostIpList() != null && epl.getUniHostIpList().size() == 2) { + uniIpList.add(epl.getUniHostIpList().get(0) ); + uniIpList.add(epl.getUniHostIpList().get(1)); + } + else { + return Response.status(Response.Status.BAD_REQUEST).build(); + } + + // evc mgr will set perf props based on CoS. We need to set everything else + evcForEpl.setAllNonPerfProps( "unset", // set by lower layer (id) + Evc.EvcType.POINT_TO_POINT, // required for EPL (evcType) + 2, // required for EPL (maxUnis) + uniIdList, // created above + uniMacList, uniIpList, // passed in + Evc.FrameDelivery.UNCONDITIONAL, // required for EPL (unicastFrameDelivery) + Evc.FrameDelivery.UNCONDITIONAL, // required for EPL (multicastFrameDelivery) + Evc.FrameDelivery.UNCONDITIONAL, // required for EPL (broadcastFrameDelivery) + true, // required for EPL (ceVLanIdPreservation) + true, // required for EPL (ceVlanCosPreservation) + 1600, // hard coded, need to figure out source !! + epl.getCos()); + + // send create request to EVC mgr + EvcClient evcClient = new EvcClient(); + evcForEpl= evcClient.create(evcForEpl); + + // EVC Layer generates the ID, we need to capture it + epl.setEvcId(evcForEpl.getId()); + + // Now add the EPL to our local repo + EplRespositoryInMem.INSTANCE.add(epl); + EplRespositoryInMem.INSTANCE.dump(0); + return Response.ok().entity(epl).build(); + } + + @PUT + @Path("{eplId}") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + //-------------------------------------------------------- + public Response update(Epl epl) + //-------------------------------------------------------- + { + Dbg.p("\nUPDATING [" + epl.getId()+"]"); + + EplRespositoryInMem.INSTANCE.update(epl); + EplRespositoryInMem.INSTANCE.dump(0); + return Response.ok().entity(epl).build(); + } + + @GET + @Path("{eplId}") + @Produces(MediaType.APPLICATION_JSON) + //-------------------------------------------------------- + public Response get( @PathParam("eplId") String eplId ) + //-------------------------------------------------------- + { + if ( eplId == null) { + return Response.status(Response.Status.BAD_REQUEST).build(); + } + Dbg.p("\nRETRIEVING ["+eplId+"]"); + Epl epl = EplRespositoryInMem.INSTANCE.get(eplId); + if (epl == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + epl.dump(1); + return Response.ok().entity(epl).build(); + } + + @GET + @Path("list") + @Produces(MediaType.APPLICATION_JSON) + //-------------------------------------------------------- + public Response eplList() + //-------------------------------------------------------- + + // get a list of all Epl objects + { + Dbg.p("\nEPL GET ALL:"); + List eplList = EplRespositoryInMem.INSTANCE.getAll(); + if (eplList == null ) + { + return Response.status(Response.Status.NOT_FOUND).build(); + } + return Response.ok().entity(new GenericEntity<List<Epl>>(eplList) {}).build(); + } + + @DELETE + @Path("{eplId}") + //-------------------------------------------------------- + public Response delete(@PathParam("eplId") String eplId) + //-------------------------------------------------------- + { + if ( eplId == null) { + return Response.status(Response.Status.BAD_REQUEST).build(); + } + + // grab the full EPL so that we can get EVC ID to delete + Epl epl = EplRespositoryInMem.INSTANCE.get(eplId); + if (epl == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + String evcId = epl.getEvcId(); + + // Delete the EVC associated with the EPL being deleted + EvcClient evcClient = new EvcClient(); + evcClient.delete(evcId); + + Dbg.p("\nDELETE:" + eplId); + EplRespositoryInMem.INSTANCE.delete(eplId); + EplRespositoryInMem.INSTANCE.dump(0); + return Response.ok().build(); + } + + @GET + @Produces(MediaType.APPLICATION_JSON) + //-------------------------------------------------------- + public Epl testGet() + //-------------------------------------------------------- + // simple get to check out json format + + { + long numLocations = 2; + + List<String> locList = new ArrayList<String>(); + locList.add("1111 MEF Dr, Honolulu HI, USA"); + locList.add("2222 MEF Dr, Boston MA, MAS"); + + List<String> uniList = new ArrayList<String>(); + uniList.add("00:0a:95:9d:68:16"); + uniList.add("00:A0:C9:14:C8:29"); + + List<String> ipList = new ArrayList<String>(); + ipList.add("192.168.1.10"); + ipList.add("192.168.1.10"); + + Epl epl = new Epl(); + epl.setAllProps("epl-1", numLocations, locList, uniList, ipList, "gold", "unset"); + return epl; + } + + @GET + @Produces(MediaType.TEXT_PLAIN) + //-------------------------------------------------------- + public String ping() + //-------------------------------------------------------- + // simple ping to check connectivity + + { + Dbg.p("In Epl Service: ping test"); + return "... pingEpl reponse"; + } +} diff --git a/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.java b/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.java new file mode 100644 index 0000000..5d92220 --- /dev/null +++ b/svc/svcmgr/src/main/java/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.java @@ -0,0 +1,18 @@ +package com.cablelabs.vcpe.svc.svcmgr; + +import org.glassfish.jersey.server.ResourceConfig; + +// +// In order to avoid CORS issues, register our CORS Response filter +// + +public class SvcJaxRsApplication extends ResourceConfig { + + /** + * Register JAX-RS application components. + */ + public SvcJaxRsApplication() { + packages("com.cablelabs.vcpe.cos.cosmgr"); + register(CORSResponseFilter.class); + } +}
\ No newline at end of file diff --git a/svc/svcmgr/src/main/webapp/WEB-INF/web.xml b/svc/svcmgr/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..06f0b7c --- /dev/null +++ b/svc/svcmgr/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- This web.xml file is not required when using Servlet 3.0 container, + see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html --> +<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> + <servlet> + <servlet-name>Jersey Web Application</servlet-name> + <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> + <init-param> + <param-name>jersey.config.server.provider.packages</param-name> + <param-value>com.cablelabs.vcpe.svc</param-value> + </init-param> + <init-param> + <param-name>javax.ws.rs.Application</param-name> + <param-value>com.cablelabs.vcpe.svc.svcmgr.SvcJaxRsApplication</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>Jersey Web Application</servlet-name> + <url-pattern>/webapi/*</url-pattern> + </servlet-mapping> +</web-app> diff --git a/svc/svcmgr/src/main/webapp/index.jsp b/svc/svcmgr/src/main/webapp/index.jsp new file mode 100644 index 0000000..a064b45 --- /dev/null +++ b/svc/svcmgr/src/main/webapp/index.jsp @@ -0,0 +1,8 @@ +<html> +<body> + <h2>Jersey RESTful Web Application!</h2> + <p><a href="webapi/myresource">Jersey resource</a> + <p>Visit <a href="http://jersey.java.net">Project Jersey website</a> + for more information on Jersey! +</body> +</html> diff --git a/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.class b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.class Binary files differnew file mode 100644 index 0000000..343c9df --- /dev/null +++ b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.class diff --git a/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/EplService$1.class b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/EplService$1.class Binary files differnew file mode 100644 index 0000000..957dcbb --- /dev/null +++ b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/EplService$1.class diff --git a/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/EplService.class b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/EplService.class Binary files differnew file mode 100644 index 0000000..1ca9218 --- /dev/null +++ b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/EplService.class diff --git a/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.class b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.class Binary files differnew file mode 100644 index 0000000..c8b5d87 --- /dev/null +++ b/svc/svcmgr/target/classes/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.class diff --git a/svc/svcmgr/target/maven-archiver/pom.properties b/svc/svcmgr/target/maven-archiver/pom.properties new file mode 100644 index 0000000..858608e --- /dev/null +++ b/svc/svcmgr/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Aug 06 14:01:20 PDT 2015 +version=1.0-SNAPSHOT +groupId=com.cablelabs.vcpe +artifactId=svcmgr diff --git a/svc/svcmgr/target/svcmgr.war b/svc/svcmgr/target/svcmgr.war Binary files differnew file mode 100644 index 0000000..507df06 --- /dev/null +++ b/svc/svcmgr/target/svcmgr.war diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.class b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.class Binary files differnew file mode 100644 index 0000000..343c9df --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/CORSResponseFilter.class diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/EplService$1.class b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/EplService$1.class Binary files differnew file mode 100644 index 0000000..957dcbb --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/EplService$1.class diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/EplService.class b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/EplService.class Binary files differnew file mode 100644 index 0000000..1ca9218 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/EplService.class diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.class b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.class Binary files differnew file mode 100644 index 0000000..c8b5d87 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/classes/com/cablelabs/vcpe/svc/svcmgr/SvcJaxRsApplication.class diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/asm-all-repackaged-2.2.0-b14.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/asm-all-repackaged-2.2.0-b14.jar Binary files differnew file mode 100644 index 0000000..9c1f40d --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/asm-all-repackaged-2.2.0-b14.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/cglib-2.2.0-b14.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/cglib-2.2.0-b14.jar Binary files differnew file mode 100644 index 0000000..7d6963b --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/cglib-2.2.0-b14.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/common-1.0-SNAPSHOT.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/common-1.0-SNAPSHOT.jar Binary files differnew file mode 100644 index 0000000..267b07a --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/common-1.0-SNAPSHOT.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/cosbase-1.0-SNAPSHOT.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/cosbase-1.0-SNAPSHOT.jar Binary files differnew file mode 100644 index 0000000..d991659 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/cosbase-1.0-SNAPSHOT.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/evcbase-1.0-SNAPSHOT.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/evcbase-1.0-SNAPSHOT.jar Binary files differnew file mode 100644 index 0000000..f4f5b3a --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/evcbase-1.0-SNAPSHOT.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/guava-14.0.1.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/guava-14.0.1.jar Binary files differnew file mode 100644 index 0000000..3a3d925 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/guava-14.0.1.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-api-2.2.0-b14.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-api-2.2.0-b14.jar Binary files differnew file mode 100644 index 0000000..acec5bc --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-api-2.2.0-b14.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-locator-2.2.0-b14.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-locator-2.2.0-b14.jar Binary files differnew file mode 100644 index 0000000..fb2687f --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-locator-2.2.0-b14.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-utils-2.2.0-b14.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-utils-2.2.0-b14.jar Binary files differnew file mode 100644 index 0000000..2c8df43 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/hk2-utils-2.2.0-b14.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.annotation-api-1.2.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.annotation-api-1.2.jar Binary files differnew file mode 100644 index 0000000..9ab39ff --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.annotation-api-1.2.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.inject-2.2.0-b14.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.inject-2.2.0-b14.jar Binary files differnew file mode 100644 index 0000000..21463e7 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.inject-2.2.0-b14.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.ws.rs-api-2.0.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.ws.rs-api-2.0.jar Binary files differnew file mode 100644 index 0000000..b7d364b --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/javax.ws.rs-api-2.0.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-client-2.2.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-client-2.2.jar Binary files differnew file mode 100644 index 0000000..cab47b0 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-client-2.2.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-common-2.2.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-common-2.2.jar Binary files differnew file mode 100644 index 0000000..55d27ed --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-common-2.2.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-container-servlet-core-2.2.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-container-servlet-core-2.2.jar Binary files differnew file mode 100644 index 0000000..e03b5f9 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-container-servlet-core-2.2.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-media-moxy-2.2.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-media-moxy-2.2.jar Binary files differnew file mode 100644 index 0000000..786290a --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-media-moxy-2.2.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-server-2.2.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-server-2.2.jar Binary files differnew file mode 100644 index 0000000..37b3410 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/jersey-server-2.2.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.antlr-2.5.0.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.antlr-2.5.0.jar Binary files differnew file mode 100644 index 0000000..cff0ef8 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.antlr-2.5.0.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.asm-2.5.0.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.asm-2.5.0.jar Binary files differnew file mode 100644 index 0000000..832e18e --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.asm-2.5.0.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.core-2.5.0.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.core-2.5.0.jar Binary files differnew file mode 100644 index 0000000..01bb838 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.core-2.5.0.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0.jar Binary files differnew file mode 100644 index 0000000..29a1057 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/org.eclipse.persistence.moxy-2.5.0.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/osgi-resource-locator-1.0.1.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/osgi-resource-locator-1.0.1.jar Binary files differnew file mode 100644 index 0000000..bd6aa17 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/osgi-resource-locator-1.0.1.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/svcbase-1.0-SNAPSHOT.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/svcbase-1.0-SNAPSHOT.jar Binary files differnew file mode 100644 index 0000000..d3ef79a --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/svcbase-1.0-SNAPSHOT.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/lib/validation-api-1.1.0.Final.jar b/svc/svcmgr/target/svcmgr/WEB-INF/lib/validation-api-1.1.0.Final.jar Binary files differnew file mode 100644 index 0000000..de85403 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/lib/validation-api-1.1.0.Final.jar diff --git a/svc/svcmgr/target/svcmgr/WEB-INF/web.xml b/svc/svcmgr/target/svcmgr/WEB-INF/web.xml new file mode 100644 index 0000000..06f0b7c --- /dev/null +++ b/svc/svcmgr/target/svcmgr/WEB-INF/web.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- This web.xml file is not required when using Servlet 3.0 container, + see implementation details http://jersey.java.net/nonav/documentation/latest/jax-rs.html --> +<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> + <servlet> + <servlet-name>Jersey Web Application</servlet-name> + <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> + <init-param> + <param-name>jersey.config.server.provider.packages</param-name> + <param-value>com.cablelabs.vcpe.svc</param-value> + </init-param> + <init-param> + <param-name>javax.ws.rs.Application</param-name> + <param-value>com.cablelabs.vcpe.svc.svcmgr.SvcJaxRsApplication</param-value> + </init-param> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>Jersey Web Application</servlet-name> + <url-pattern>/webapi/*</url-pattern> + </servlet-mapping> +</web-app> diff --git a/svc/svcmgr/target/svcmgr/index.jsp b/svc/svcmgr/target/svcmgr/index.jsp new file mode 100644 index 0000000..a064b45 --- /dev/null +++ b/svc/svcmgr/target/svcmgr/index.jsp @@ -0,0 +1,8 @@ +<html> +<body> + <h2>Jersey RESTful Web Application!</h2> + <p><a href="webapi/myresource">Jersey resource</a> + <p>Visit <a href="http://jersey.java.net">Project Jersey website</a> + for more information on Jersey! +</body> +</html> |