Add REST API to CORD fabric app.
Change-Id: I6d22302bdbbcd2c75f9358196ca505fba500b348
Showing
10 changed files
with
347 additions
and
30 deletions
... | @@ -32,6 +32,7 @@ | ... | @@ -32,6 +32,7 @@ |
32 | 32 | ||
33 | <properties> | 33 | <properties> |
34 | <onos.app.name>org.onosproject.cordfabric</onos.app.name> | 34 | <onos.app.name>org.onosproject.cordfabric</onos.app.name> |
35 | + <web.context>/onos/cordfabric</web.context> | ||
35 | </properties> | 36 | </properties> |
36 | 37 | ||
37 | <dependencies> | 38 | <dependencies> |
... | @@ -45,5 +46,80 @@ | ... | @@ -45,5 +46,80 @@ |
45 | <groupId>org.apache.karaf.shell</groupId> | 46 | <groupId>org.apache.karaf.shell</groupId> |
46 | <artifactId>org.apache.karaf.shell.console</artifactId> | 47 | <artifactId>org.apache.karaf.shell.console</artifactId> |
47 | </dependency> | 48 | </dependency> |
49 | + <dependency> | ||
50 | + <groupId>org.onosproject</groupId> | ||
51 | + <artifactId>onos-rest</artifactId> | ||
52 | + <version>${project.version}</version> | ||
53 | + </dependency> | ||
54 | + <dependency> | ||
55 | + <groupId>org.onosproject</groupId> | ||
56 | + <artifactId>onlab-rest</artifactId> | ||
57 | + <version>${project.version}</version> | ||
58 | + </dependency> | ||
59 | + <dependency> | ||
60 | + <groupId>javax.ws.rs</groupId> | ||
61 | + <artifactId>jsr311-api</artifactId> | ||
62 | + <version>1.1.1</version> | ||
63 | + </dependency> | ||
64 | + <dependency> | ||
65 | + <groupId>com.sun.jersey</groupId> | ||
66 | + <artifactId>jersey-servlet</artifactId> | ||
67 | + </dependency> | ||
68 | + <dependency> | ||
69 | + <groupId>com.fasterxml.jackson.core</groupId> | ||
70 | + <artifactId>jackson-databind</artifactId> | ||
71 | + </dependency> | ||
72 | + | ||
73 | + <dependency> | ||
74 | + <groupId>com.fasterxml.jackson.core</groupId> | ||
75 | + <artifactId>jackson-annotations</artifactId> | ||
76 | + </dependency> | ||
77 | + | ||
78 | + <dependency> | ||
79 | + <groupId>org.osgi</groupId> | ||
80 | + <artifactId>org.osgi.compendium</artifactId> | ||
81 | + </dependency> | ||
82 | + <dependency> | ||
83 | + <groupId>org.osgi</groupId> | ||
84 | + <artifactId>org.osgi.core</artifactId> | ||
85 | + </dependency> | ||
48 | </dependencies> | 86 | </dependencies> |
87 | + | ||
88 | + <build> | ||
89 | + <plugins> | ||
90 | + <plugin> | ||
91 | + <groupId>org.apache.felix</groupId> | ||
92 | + <artifactId>maven-bundle-plugin</artifactId> | ||
93 | + <extensions>true</extensions> | ||
94 | + <configuration> | ||
95 | + <instructions> | ||
96 | + <_wab>src/main/webapp/</_wab> | ||
97 | + <Bundle-SymbolicName> | ||
98 | + ${project.groupId}.${project.artifactId} | ||
99 | + </Bundle-SymbolicName> | ||
100 | + <Import-Package> | ||
101 | + org.slf4j, | ||
102 | + org.osgi.framework, | ||
103 | + javax.ws.rs, | ||
104 | + javax.ws.rs.core, | ||
105 | + com.sun.jersey.api.core, | ||
106 | + com.sun.jersey.spi.container.servlet, | ||
107 | + com.sun.jersey.server.impl.container.servlet, | ||
108 | + com.fasterxml.jackson.databind, | ||
109 | + com.fasterxml.jackson.databind.node, | ||
110 | + org.apache.karaf.shell.commands, | ||
111 | + org.apache.commons.lang.math.*, | ||
112 | + com.google.common.*, | ||
113 | + org.onlab.packet.*, | ||
114 | + org.onlab.rest.*, | ||
115 | + org.onosproject.*, | ||
116 | + org.onlab.util.*, | ||
117 | + org.jboss.netty.util.* | ||
118 | + </Import-Package> | ||
119 | + <Web-ContextPath>${web.context}</Web-ContextPath> | ||
120 | + </instructions> | ||
121 | + </configuration> | ||
122 | + </plugin> | ||
123 | + </plugins> | ||
124 | + </build> | ||
49 | </project> | 125 | </project> | ... | ... |
... | @@ -18,7 +18,6 @@ package org.onosproject.cordfabric; | ... | @@ -18,7 +18,6 @@ package org.onosproject.cordfabric; |
18 | 18 | ||
19 | import com.google.common.collect.HashMultimap; | 19 | import com.google.common.collect.HashMultimap; |
20 | import com.google.common.collect.Multimap; | 20 | import com.google.common.collect.Multimap; |
21 | -import com.google.common.collect.Multimaps; | ||
22 | import org.apache.felix.scr.annotations.Activate; | 21 | import org.apache.felix.scr.annotations.Activate; |
23 | import org.apache.felix.scr.annotations.Component; | 22 | import org.apache.felix.scr.annotations.Component; |
24 | import org.apache.felix.scr.annotations.Deactivate; | 23 | import org.apache.felix.scr.annotations.Deactivate; |
... | @@ -44,6 +43,7 @@ import org.onosproject.net.flowobjective.ObjectiveError; | ... | @@ -44,6 +43,7 @@ import org.onosproject.net.flowobjective.ObjectiveError; |
44 | import org.slf4j.Logger; | 43 | import org.slf4j.Logger; |
45 | import org.slf4j.LoggerFactory; | 44 | import org.slf4j.LoggerFactory; |
46 | 45 | ||
46 | +import java.util.ArrayList; | ||
47 | import java.util.List; | 47 | import java.util.List; |
48 | import java.util.stream.Collectors; | 48 | import java.util.stream.Collectors; |
49 | 49 | ||
... | @@ -85,18 +85,17 @@ public class CordFabricManager implements FabricService { | ... | @@ -85,18 +85,17 @@ public class CordFabricManager implements FabricService { |
85 | } | 85 | } |
86 | 86 | ||
87 | @Override | 87 | @Override |
88 | - public void addVlan(VlanId vlanId, List<ConnectPoint> ports) { | 88 | + public void addVlan(FabricVlan vlan) { |
89 | - checkNotNull(vlanId); | 89 | + checkNotNull(vlan); |
90 | - checkNotNull(ports); | 90 | + checkArgument(vlan.ports().size() > 1); |
91 | - checkArgument(ports.size() > 1); | 91 | + verifyPorts(vlan.ports()); |
92 | - verifyPorts(ports); | 92 | + |
93 | - | 93 | + removeVlan(vlan.vlan()); |
94 | - removeVlan(vlanId); | 94 | + |
95 | - | 95 | + vlan.ports().forEach(cp -> { |
96 | - ports.forEach(cp -> { | 96 | + if (vlans.put(vlan.vlan(), cp)) { |
97 | - if (vlans.put(vlanId, cp)) { | 97 | + addForwarding(vlan.vlan(), cp.deviceId(), cp.port(), |
98 | - addForwarding(vlanId, cp.deviceId(), cp.port(), | 98 | + vlan.ports().stream() |
99 | - ports.stream() | ||
100 | .filter(p -> p != cp) | 99 | .filter(p -> p != cp) |
101 | .map(ConnectPoint::port) | 100 | .map(ConnectPoint::port) |
102 | .collect(Collectors.toList())); | 101 | .collect(Collectors.toList())); |
... | @@ -111,8 +110,11 @@ public class CordFabricManager implements FabricService { | ... | @@ -111,8 +110,11 @@ public class CordFabricManager implements FabricService { |
111 | } | 110 | } |
112 | 111 | ||
113 | @Override | 112 | @Override |
114 | - public Multimap<VlanId, ConnectPoint> getVlans() { | 113 | + public List<FabricVlan> getVlans() { |
115 | - return Multimaps.unmodifiableMultimap(vlans); | 114 | + List<FabricVlan> fVlans = new ArrayList<>(); |
115 | + vlans.keySet().forEach(vlan -> fVlans.add( | ||
116 | + new FabricVlan(vlan, vlans.get(vlan)))); | ||
117 | + return fVlans; | ||
116 | } | 118 | } |
117 | 119 | ||
118 | private static void verifyPorts(List<ConnectPoint> ports) { | 120 | private static void verifyPorts(List<ConnectPoint> ports) { | ... | ... |
... | @@ -16,9 +16,7 @@ | ... | @@ -16,9 +16,7 @@ |
16 | 16 | ||
17 | package org.onosproject.cordfabric; | 17 | package org.onosproject.cordfabric; |
18 | 18 | ||
19 | -import com.google.common.collect.Multimap; | ||
20 | import org.onlab.packet.VlanId; | 19 | import org.onlab.packet.VlanId; |
21 | -import org.onosproject.net.ConnectPoint; | ||
22 | 20 | ||
23 | import java.util.List; | 21 | import java.util.List; |
24 | 22 | ||
... | @@ -31,10 +29,9 @@ public interface FabricService { | ... | @@ -31,10 +29,9 @@ public interface FabricService { |
31 | * Remaps a vlan to the specified ports. The specified ports will be the | 29 | * Remaps a vlan to the specified ports. The specified ports will be the |
32 | * only ports in this vlan once the operation completes. | 30 | * only ports in this vlan once the operation completes. |
33 | * | 31 | * |
34 | - * @param vlanId vlan ID to add/modify | 32 | + * @param vlan vlan object to add |
35 | - * @param ports list of ports to add to the vlan | ||
36 | */ | 33 | */ |
37 | - void addVlan(VlanId vlanId, List<ConnectPoint> ports); | 34 | + void addVlan(FabricVlan vlan); |
38 | 35 | ||
39 | /** | 36 | /** |
40 | * Removes a vlan from all ports in the fabric. | 37 | * Removes a vlan from all ports in the fabric. |
... | @@ -49,5 +46,5 @@ public interface FabricService { | ... | @@ -49,5 +46,5 @@ public interface FabricService { |
49 | * | 46 | * |
50 | * @return mapping of vlan to port | 47 | * @return mapping of vlan to port |
51 | */ | 48 | */ |
52 | - Multimap<VlanId, ConnectPoint> getVlans(); | 49 | + List<FabricVlan> getVlans(); |
53 | } | 50 | } | ... | ... |
1 | +/* | ||
2 | + * Copyright 2015 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.cordfabric; | ||
18 | + | ||
19 | +import com.google.common.collect.ImmutableList; | ||
20 | +import org.onlab.packet.VlanId; | ||
21 | +import org.onosproject.net.ConnectPoint; | ||
22 | + | ||
23 | +import java.util.Collection; | ||
24 | +import java.util.List; | ||
25 | + | ||
26 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
27 | + | ||
28 | +/** | ||
29 | + * Vlan which spans multiple fabric ports. | ||
30 | + */ | ||
31 | +public class FabricVlan { | ||
32 | + | ||
33 | + private final VlanId vlan; | ||
34 | + | ||
35 | + private final List<ConnectPoint> ports; | ||
36 | + | ||
37 | + public FabricVlan(VlanId vlan, Collection<ConnectPoint> ports) { | ||
38 | + checkNotNull(vlan); | ||
39 | + checkNotNull(ports); | ||
40 | + this.vlan = vlan; | ||
41 | + this.ports = ImmutableList.copyOf(ports); | ||
42 | + } | ||
43 | + | ||
44 | + public VlanId vlan() { | ||
45 | + return vlan; | ||
46 | + } | ||
47 | + | ||
48 | + public List<ConnectPoint> ports() { | ||
49 | + return ports; | ||
50 | + } | ||
51 | +} |
1 | +/* | ||
2 | + * Copyright 2015 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.cordfabric; | ||
18 | + | ||
19 | +import com.fasterxml.jackson.databind.JsonNode; | ||
20 | +import com.fasterxml.jackson.databind.node.ArrayNode; | ||
21 | +import com.fasterxml.jackson.databind.node.ObjectNode; | ||
22 | +import org.onlab.packet.VlanId; | ||
23 | +import org.onosproject.codec.CodecContext; | ||
24 | +import org.onosproject.codec.JsonCodec; | ||
25 | +import org.onosproject.net.ConnectPoint; | ||
26 | + | ||
27 | +import java.util.ArrayList; | ||
28 | +import java.util.List; | ||
29 | + | ||
30 | +import static com.google.common.base.Preconditions.checkNotNull; | ||
31 | + | ||
32 | +/** | ||
33 | + * Codec for encoding/decoding a FabricVlan object to/from JSON. | ||
34 | + */ | ||
35 | +public final class FabricVlanCodec extends JsonCodec<FabricVlan> { | ||
36 | + | ||
37 | + // JSON field names | ||
38 | + private static final String VLAN = "vlan"; | ||
39 | + private static final String PORTS = "ports"; | ||
40 | + | ||
41 | + @Override | ||
42 | + public ObjectNode encode(FabricVlan vlan, CodecContext context) { | ||
43 | + checkNotNull(vlan, "Vlan cannot be null"); | ||
44 | + final ObjectNode result = context.mapper().createObjectNode() | ||
45 | + .put(VLAN, vlan.vlan().toShort()); | ||
46 | + | ||
47 | + final ArrayNode jsonPorts = result.putArray(PORTS); | ||
48 | + | ||
49 | + vlan.ports().forEach(cp -> jsonPorts.add(context.codec(ConnectPoint.class).encode(cp, context))); | ||
50 | + | ||
51 | + return result; | ||
52 | + } | ||
53 | + | ||
54 | + @Override | ||
55 | + public FabricVlan decode(ObjectNode json, CodecContext context) { | ||
56 | + short vlan = json.path(VLAN).shortValue(); | ||
57 | + List<ConnectPoint> ports = new ArrayList<>(); | ||
58 | + | ||
59 | + ArrayNode portArray = (ArrayNode) json.path(PORTS); | ||
60 | + for (JsonNode o : portArray) { | ||
61 | + ports.add(context.codec(ConnectPoint.class).decode((ObjectNode) o, context)); | ||
62 | + } | ||
63 | + | ||
64 | + return new FabricVlan(VlanId.vlanId(vlan), ports); | ||
65 | + } | ||
66 | +} |
1 | +/* | ||
2 | + * Copyright 2015 Open Networking Laboratory | ||
3 | + * | ||
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | ||
5 | + * you may not use this file except in compliance with the License. | ||
6 | + * You may obtain a copy of the License at | ||
7 | + * | ||
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | ||
9 | + * | ||
10 | + * Unless required by applicable law or agreed to in writing, software | ||
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | + * See the License for the specific language governing permissions and | ||
14 | + * limitations under the License. | ||
15 | + */ | ||
16 | + | ||
17 | +package org.onosproject.cordfabric; | ||
18 | + | ||
19 | +import com.fasterxml.jackson.databind.ObjectMapper; | ||
20 | +import com.fasterxml.jackson.databind.node.ObjectNode; | ||
21 | +import org.onlab.packet.VlanId; | ||
22 | +import org.onosproject.rest.AbstractWebResource; | ||
23 | + | ||
24 | +import javax.ws.rs.Consumes; | ||
25 | +import javax.ws.rs.DELETE; | ||
26 | +import javax.ws.rs.GET; | ||
27 | +import javax.ws.rs.POST; | ||
28 | +import javax.ws.rs.Path; | ||
29 | +import javax.ws.rs.PathParam; | ||
30 | +import javax.ws.rs.Produces; | ||
31 | +import javax.ws.rs.core.MediaType; | ||
32 | +import javax.ws.rs.core.Response; | ||
33 | +import java.io.IOException; | ||
34 | +import java.io.InputStream; | ||
35 | +import java.util.List; | ||
36 | + | ||
37 | +/** | ||
38 | + * Web resource for interacting with the fabric. | ||
39 | + */ | ||
40 | +@Path("vlans") | ||
41 | +public class FabricWebResource extends AbstractWebResource { | ||
42 | + | ||
43 | + private static final FabricVlanCodec VLAN_CODEC = new FabricVlanCodec(); | ||
44 | + | ||
45 | + @GET | ||
46 | + @Produces(MediaType.APPLICATION_JSON) | ||
47 | + public Response getVlans() { | ||
48 | + FabricService fabricService = get(FabricService.class); | ||
49 | + List<FabricVlan> vlans = fabricService.getVlans(); | ||
50 | + ObjectNode result = new ObjectMapper().createObjectNode(); | ||
51 | + result.set("vlans", new FabricVlanCodec().encode(vlans, this)); | ||
52 | + | ||
53 | + return ok(result.toString()).build(); | ||
54 | + } | ||
55 | + | ||
56 | + @POST | ||
57 | + @Path("add") | ||
58 | + @Consumes(MediaType.APPLICATION_JSON) | ||
59 | + public Response addVlan(InputStream input) throws IOException { | ||
60 | + ObjectMapper mapper = new ObjectMapper(); | ||
61 | + ObjectNode vlanJson = (ObjectNode) mapper.readTree(input); | ||
62 | + FabricService fabricService = get(FabricService.class); | ||
63 | + | ||
64 | + fabricService.addVlan(VLAN_CODEC.decode(vlanJson, this)); | ||
65 | + | ||
66 | + return Response.ok().build(); | ||
67 | + } | ||
68 | + | ||
69 | + @DELETE | ||
70 | + @Path("{vlan}") | ||
71 | + public Response deleteVlan(@PathParam("vlan") String vlan) throws IOException { | ||
72 | + VlanId vlanId = VlanId.vlanId(Short.parseShort(vlan)); | ||
73 | + | ||
74 | + FabricService fabricService = get(FabricService.class); | ||
75 | + | ||
76 | + fabricService.removeVlan(vlanId); | ||
77 | + | ||
78 | + return Response.ok().build(); | ||
79 | + } | ||
80 | +} |
... | @@ -21,6 +21,7 @@ import org.apache.karaf.shell.commands.Command; | ... | @@ -21,6 +21,7 @@ import org.apache.karaf.shell.commands.Command; |
21 | import org.onlab.packet.VlanId; | 21 | import org.onlab.packet.VlanId; |
22 | import org.onosproject.cli.AbstractShellCommand; | 22 | import org.onosproject.cli.AbstractShellCommand; |
23 | import org.onosproject.cordfabric.FabricService; | 23 | import org.onosproject.cordfabric.FabricService; |
24 | +import org.onosproject.cordfabric.FabricVlan; | ||
24 | import org.onosproject.net.ConnectPoint; | 25 | import org.onosproject.net.ConnectPoint; |
25 | 26 | ||
26 | import java.util.ArrayList; | 27 | import java.util.ArrayList; |
... | @@ -58,6 +59,6 @@ public class FabricAddCommand extends AbstractShellCommand { | ... | @@ -58,6 +59,6 @@ public class FabricAddCommand extends AbstractShellCommand { |
58 | ports.add(ConnectPoint.deviceConnectPoint(portString)); | 59 | ports.add(ConnectPoint.deviceConnectPoint(portString)); |
59 | } | 60 | } |
60 | 61 | ||
61 | - service.addVlan(vlan, ports); | 62 | + service.addVlan(new FabricVlan(vlan, ports)); |
62 | } | 63 | } |
63 | } | 64 | } | ... | ... |
... | @@ -16,12 +16,12 @@ | ... | @@ -16,12 +16,12 @@ |
16 | 16 | ||
17 | package org.onosproject.cordfabric.cli; | 17 | package org.onosproject.cordfabric.cli; |
18 | 18 | ||
19 | -import com.google.common.collect.Multimap; | ||
20 | import org.apache.karaf.shell.commands.Command; | 19 | import org.apache.karaf.shell.commands.Command; |
21 | -import org.onlab.packet.VlanId; | ||
22 | import org.onosproject.cli.AbstractShellCommand; | 20 | import org.onosproject.cli.AbstractShellCommand; |
23 | import org.onosproject.cordfabric.FabricService; | 21 | import org.onosproject.cordfabric.FabricService; |
24 | -import org.onosproject.net.ConnectPoint; | 22 | +import org.onosproject.cordfabric.FabricVlan; |
23 | + | ||
24 | +import java.util.List; | ||
25 | 25 | ||
26 | /** | 26 | /** |
27 | * Shows the vlans in the fabric. | 27 | * Shows the vlans in the fabric. |
... | @@ -37,11 +37,11 @@ public class FabricShowCommand extends AbstractShellCommand { | ... | @@ -37,11 +37,11 @@ public class FabricShowCommand extends AbstractShellCommand { |
37 | protected void execute() { | 37 | protected void execute() { |
38 | FabricService service = AbstractShellCommand.get(FabricService.class); | 38 | FabricService service = AbstractShellCommand.get(FabricService.class); |
39 | 39 | ||
40 | - Multimap<VlanId, ConnectPoint> vlans = service.getVlans(); | 40 | + List<FabricVlan> vlans = service.getVlans(); |
41 | 41 | ||
42 | - vlans.keySet().forEach(vlanId -> { | 42 | + vlans.forEach(fabricVlan -> { |
43 | - print(VLAN_HEADER_LINE_FORMAT, vlanId); | 43 | + print(VLAN_HEADER_LINE_FORMAT, fabricVlan.vlan()); |
44 | - vlans.get(vlanId).forEach(cp -> print(PORT_LINE_FORMAT, cp)); | 44 | + fabricVlan.ports().forEach(cp -> print(PORT_LINE_FORMAT, cp)); |
45 | }); | 45 | }); |
46 | } | 46 | } |
47 | } | 47 | } | ... | ... |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!-- | ||
3 | + ~ Copyright 2015 Open Networking Laboratory | ||
4 | + ~ | ||
5 | + ~ Licensed under the Apache License, Version 2.0 (the "License"); | ||
6 | + ~ you may not use this file except in compliance with the License. | ||
7 | + ~ You may obtain a copy of the License at | ||
8 | + ~ | ||
9 | + ~ http://www.apache.org/licenses/LICENSE-2.0 | ||
10 | + ~ | ||
11 | + ~ Unless required by applicable law or agreed to in writing, software | ||
12 | + ~ distributed under the License is distributed on an "AS IS" BASIS, | ||
13 | + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
14 | + ~ See the License for the specific language governing permissions and | ||
15 | + ~ limitations under the License. | ||
16 | + --> | ||
17 | +<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" | ||
18 | + xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" | ||
19 | + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" | ||
20 | + id="ONOS" version="2.5"> | ||
21 | + <display-name>CORD Fabric REST API v1.0</display-name> | ||
22 | + | ||
23 | + <servlet> | ||
24 | + <servlet-name>JAX-RS Service</servlet-name> | ||
25 | + <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> | ||
26 | + <init-param> | ||
27 | + <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name> | ||
28 | + <param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value> | ||
29 | + </init-param> | ||
30 | + <init-param> | ||
31 | + <param-name>com.sun.jersey.config.property.classnames</param-name> | ||
32 | + <param-value> | ||
33 | + org.onosproject.cordfabric.FabricWebResource | ||
34 | + </param-value> | ||
35 | + </init-param> | ||
36 | + <load-on-startup>1</load-on-startup> | ||
37 | + </servlet> | ||
38 | + | ||
39 | + <servlet-mapping> | ||
40 | + <servlet-name>JAX-RS Service</servlet-name> | ||
41 | + <url-pattern>/*</url-pattern> | ||
42 | + </servlet-mapping> | ||
43 | + | ||
44 | +</web-app> |
... | @@ -18,7 +18,7 @@ | ... | @@ -18,7 +18,7 @@ |
18 | xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" | 18 | xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" |
19 | xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" | 19 | xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" |
20 | id="ONOS" version="2.5"> | 20 | id="ONOS" version="2.5"> |
21 | - <display-name>ONOS Virual BNG APP REST API</display-name> | 21 | + <display-name>ONOS Virtual BNG APP REST API</display-name> |
22 | 22 | ||
23 | <servlet> | 23 | <servlet> |
24 | <servlet-name>JAX-RS Service</servlet-name> | 24 | <servlet-name>JAX-RS Service</servlet-name> | ... | ... |
-
Please register or login to post a comment