Browse Source

Rename connector resource -> dependency resource (#9691)

Change-Id: If263c3e9eb3d2221ae7a7ca39c5bc05f2c8c14d9
tags/7.0.0.beta6
Leif Åstrand 11 years ago
parent
commit
a6adae7e6b

+ 5
- 5
client/src/com/vaadin/client/ApplicationConnection.java View File

@@ -2579,14 +2579,14 @@ public class ApplicationConnection {
uidlUri = themeUri + uidlUri.substring(7);
}

if (uidlUri.startsWith(ApplicationConstants.CONNECTOR_PROTOCOL_PREFIX)) {
if (uidlUri.startsWith(ApplicationConstants.DEPENDENCY_PROTOCOL_PREFIX)) {
// getAppUri *should* always end with /
// substring *should* always start with / (connector:///foo.bar
// without connector://)
// substring *should* always start with / (dependency:///foo.bar
// without dependency://)
uidlUri = ApplicationConstants.APP_PROTOCOL_PREFIX
+ ApplicationConstants.CONNECTOR_RESOURCE_PREFIX
+ ApplicationConstants.DEPENDENCY_RESOURCE_PREFIX
+ uidlUri
.substring(ApplicationConstants.CONNECTOR_PROTOCOL_PREFIX
.substring(ApplicationConstants.DEPENDENCY_PROTOCOL_PREFIX
.length());
// Let translation of app:// urls take care of the rest
}

+ 26
- 26
server/src/com/vaadin/server/AbstractCommunicationManager.java View File

@@ -164,7 +164,7 @@ public abstract class AbstractCommunicationManager implements Serializable {

private Connector highlightedConnector;

private Map<String, Class<?>> connectorResourceContexts = new HashMap<String, Class<?>>();
private Map<String, Class<?>> dependencyResourceContexts = new HashMap<String, Class<?>>();

private Map<String, Map<String, StreamVariable>> pidToNameToStreamVariable;

@@ -1205,7 +1205,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
.getAnnotation(JavaScript.class);
if (jsAnnotation != null) {
for (String resource : jsAnnotation.value()) {
scriptDependencies.add(registerResource(resource,
scriptDependencies.add(registerDependency(resource,
class1));
}
}
@@ -1214,8 +1214,8 @@ public abstract class AbstractCommunicationManager implements Serializable {
.getAnnotation(StyleSheet.class);
if (styleAnnotation != null) {
for (String resource : styleAnnotation.value()) {
styleDependencies
.add(registerResource(resource, class1));
styleDependencies.add(registerDependency(resource,
class1));
}
}
}
@@ -1285,27 +1285,27 @@ public abstract class AbstractCommunicationManager implements Serializable {
}

/**
* Resolves a resource URI, registering the URI with this
* Resolves a dependency URI, registering the URI with this
* {@code AbstractCommunicationManager} if needed and returns a fully
* qualified URI.
*/
private String registerResource(String resourceUri, Class<?> context) {
private String registerDependency(String resourceUri, Class<?> context) {
try {
URI uri = new URI(resourceUri);
String protocol = uri.getScheme();

if ("connector".equals(protocol)) {
if (ApplicationConstants.DEPENDENCY_PROTOCOL_NAME.equals(protocol)) {
// Strip initial slash
String resourceName = uri.getPath().substring(1);
return registerConnectorResource(resourceName, context);
return registerDependencyResource(resourceName, context);
}

if (protocol != null || uri.getHost() != null) {
return resourceUri;
}

// Bare path interpreted as connector resource
return registerConnectorResource(resourceUri, context);
// Bare path interpreted as dependency resource
return registerDependencyResource(resourceUri, context);
} catch (URISyntaxException e) {
getLogger().log(Level.WARNING,
"Could not parse resource url " + resourceUri, e);
@@ -1313,23 +1313,23 @@ public abstract class AbstractCommunicationManager implements Serializable {
}
}

private String registerConnectorResource(String name, Class<?> context) {
synchronized (connectorResourceContexts) {
// Add to map of names accepted by serveConnectorResource
if (connectorResourceContexts.containsKey(name)) {
Class<?> oldContext = connectorResourceContexts.get(name);
private String registerDependencyResource(String name, Class<?> context) {
synchronized (dependencyResourceContexts) {
// Add to map of names accepted by serveDependencyResource
if (dependencyResourceContexts.containsKey(name)) {
Class<?> oldContext = dependencyResourceContexts.get(name);
if (oldContext != context) {
getLogger().warning(
"Resource " + name + " defined by both " + context
+ " and " + oldContext + ". Resource from "
"Dependency " + name + " defined by both " + context
+ " and " + oldContext + ". Dependency from "
+ oldContext + " will be used.");
}
} else {
connectorResourceContexts.put(name, context);
dependencyResourceContexts.put(name, context);
}
}

return ApplicationConstants.CONNECTOR_PROTOCOL_PREFIX + "/" + name;
return ApplicationConstants.DEPENDENCY_PROTOCOL_PREFIX + "/" + name;
}

/**
@@ -2588,7 +2588,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
/**
* Serve a connector resource from the classpath if the resource has
* previously been registered by calling
* {@link #registerResource(String, Class)}. Sending arbitrary files from
* {@link #registerDependency(String, Class)}. Sending arbitrary files from
* the classpath is prevented by only accepting resource names that have
* explicitly been registered. Resources can currently only be registered by
* including a {@link JavaScript} or {@link StyleSheet} annotation on a
@@ -2599,13 +2599,13 @@ public abstract class AbstractCommunicationManager implements Serializable {
*
* @throws IOException
*/
public void serveConnectorResource(VaadinRequest request,
public void serveDependencyResource(VaadinRequest request,
VaadinResponse response) throws IOException {

String pathInfo = request.getRequestPathInfo();
// + 2 to also remove beginning and ending slashes
String resourceName = pathInfo
.substring(ApplicationConstants.CONNECTOR_RESOURCE_PREFIX
.substring(ApplicationConstants.DEPENDENCY_RESOURCE_PREFIX
.length() + 2);

final String mimetype = response.getService().getMimeType(resourceName);
@@ -2614,7 +2614,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
// classpath instead of relative to the context class
if (resourceName.startsWith("/")) {
getLogger().warning(
"Connector resource request starting with / rejected: "
"Dependency resource request starting with / rejected: "
+ resourceName);
response.sendError(HttpServletResponse.SC_NOT_FOUND, resourceName);
return;
@@ -2622,15 +2622,15 @@ public abstract class AbstractCommunicationManager implements Serializable {

// Check that the resource name has been registered
Class<?> context;
synchronized (connectorResourceContexts) {
context = connectorResourceContexts.get(resourceName);
synchronized (dependencyResourceContexts) {
context = dependencyResourceContexts.get(resourceName);
}

// Security check: don't serve resource if the name hasn't been
// registered in the map
if (context == null) {
getLogger().warning(
"Connector resource request for unknown resource rejected: "
"Dependency resource request for unknown resource rejected: "
+ resourceName);
response.sendError(HttpServletResponse.SC_NOT_FOUND, resourceName);
return;

+ 2
- 2
server/src/com/vaadin/server/ServletPortletHelper.java View File

@@ -101,9 +101,9 @@ class ServletPortletHelper implements Serializable {
return hasPathPrefix(request, UPLOAD_URL_PREFIX);
}

public static boolean isConnectorResourceRequest(VaadinRequest request) {
public static boolean isDependencyResourceRequest(VaadinRequest request) {
return hasPathPrefix(request,
ApplicationConstants.CONNECTOR_RESOURCE_PREFIX + "/");
ApplicationConstants.DEPENDENCY_RESOURCE_PREFIX + "/");
}

public static boolean isUIDLRequest(VaadinRequest request) {

+ 5
- 5
server/src/com/vaadin/server/VaadinPortlet.java View File

@@ -284,7 +284,7 @@ public class VaadinPortlet extends GenericPortlet implements Constants {
*/
@Deprecated
protected enum RequestType {
FILE_UPLOAD, UIDL, RENDER, STATIC_FILE, APP, DUMMY, EVENT, ACTION, UNKNOWN, BROWSER_DETAILS, CONNECTOR_RESOURCE, HEARTBEAT;
FILE_UPLOAD, UIDL, RENDER, STATIC_FILE, APP, DUMMY, EVENT, ACTION, UNKNOWN, BROWSER_DETAILS, DEPENDENCY_RESOURCE, HEARTBEAT;
}

/**
@@ -307,8 +307,8 @@ public class VaadinPortlet extends GenericPortlet implements Constants {
} else if (ServletPortletHelper.isFileUploadRequest(vaadinRequest)) {
return RequestType.FILE_UPLOAD;
} else if (ServletPortletHelper
.isConnectorResourceRequest(vaadinRequest)) {
return RequestType.CONNECTOR_RESOURCE;
.isDependencyResourceRequest(vaadinRequest)) {
return RequestType.DEPENDENCY_RESOURCE;
} else if (ServletPortletHelper.isAppRequest(vaadinRequest)) {
return RequestType.APP;
} else if (ServletPortletHelper.isHeartbeatRequest(vaadinRequest)) {
@@ -400,8 +400,8 @@ public class VaadinPortlet extends GenericPortlet implements Constants {
PortletCommunicationManager communicationManager = (PortletCommunicationManager) vaadinSession
.getCommunicationManager();

if (requestType == RequestType.CONNECTOR_RESOURCE) {
communicationManager.serveConnectorResource(
if (requestType == RequestType.DEPENDENCY_RESOURCE) {
communicationManager.serveDependencyResource(
vaadinRequest, vaadinResponse);
return;
} else if (requestType == RequestType.HEARTBEAT) {

+ 5
- 5
server/src/com/vaadin/server/VaadinServlet.java View File

@@ -262,8 +262,8 @@ public class VaadinServlet extends HttpServlet implements Constants {
CommunicationManager communicationManager = (CommunicationManager) vaadinSession
.getCommunicationManager();

if (requestType == RequestType.CONNECTOR_RESOURCE) {
communicationManager.serveConnectorResource(request, response);
if (requestType == RequestType.DEPENDENCY_RESOURCE) {
communicationManager.serveDependencyResource(request, response);
return;
} else if (requestType == RequestType.HEARTBEAT) {
communicationManager.handleHeartbeatRequest(request, response,
@@ -1033,7 +1033,7 @@ public class VaadinServlet extends HttpServlet implements Constants {
*/
@Deprecated
protected enum RequestType {
FILE_UPLOAD, BROWSER_DETAILS, UIDL, OTHER, STATIC_FILE, APP, CONNECTOR_RESOURCE, HEARTBEAT;
FILE_UPLOAD, BROWSER_DETAILS, UIDL, OTHER, STATIC_FILE, APP, DEPENDENCY_RESOURCE, HEARTBEAT;
}

/**
@@ -1046,8 +1046,8 @@ public class VaadinServlet extends HttpServlet implements Constants {
protected RequestType getRequestType(VaadinServletRequest request) {
if (ServletPortletHelper.isFileUploadRequest(request)) {
return RequestType.FILE_UPLOAD;
} else if (ServletPortletHelper.isConnectorResourceRequest(request)) {
return RequestType.CONNECTOR_RESOURCE;
} else if (ServletPortletHelper.isDependencyResourceRequest(request)) {
return RequestType.DEPENDENCY_RESOURCE;
} else if (isBrowserDetailsRequest(request)) {
return RequestType.BROWSER_DETAILS;
} else if (ServletPortletHelper.isUIDLRequest(request)) {

+ 6
- 3
shared/src/com/vaadin/shared/ApplicationConstants.java View File

@@ -16,6 +16,7 @@
package com.vaadin.shared;

public class ApplicationConstants {

// This indicates the whole page is generated by us (not embedded)
public static final String GENERATED_BODY_CLASSNAME = "v-generated-body";

@@ -25,11 +26,13 @@ public class ApplicationConstants {

public static final String HEARTBEAT_REQUEST_PATH = "HEARTBEAT/";

public static final String CONNECTOR_RESOURCE_PREFIX = APP_REQUEST_PATH
+ "CONNECTOR";
public static final String DEPENDENCY_RESOURCE_PREFIX = APP_REQUEST_PATH
+ "DEPENDENCY";

public static final String APP_PROTOCOL_PREFIX = "app://";
public static final String CONNECTOR_PROTOCOL_PREFIX = "connector://";
public static final String DEPENDENCY_PROTOCOL_NAME = "dependency";
public static final String DEPENDENCY_PROTOCOL_PREFIX = DEPENDENCY_PROTOCOL_NAME
+ "://";
public static final String UIDL_SECURITY_TOKEN_ID = "Vaadin-Security-Key";

public static final String PARAM_UNLOADBURST = "onunloadburst";

Loading…
Cancel
Save