diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml
index 4182792039..9be5d7e7dd 100644
--- a/config/alfresco/web-scripts-application-context.xml
+++ b/config/alfresco/web-scripts-application-context.xml
@@ -201,18 +201,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index 55cecf70a3..bc48771255 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,11 +61,6 @@
-
- com.facebook.api
- facebook-java-api
- 070716
-
org.alfresco.cmis.client
alfresco-opencmis-extension
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAPIRuntime.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAPIRuntime.java
deleted file mode 100644
index ce7834b7aa..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAPIRuntime.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.extensions.config.ServerProperties;
-import org.springframework.extensions.webscripts.Match;
-import org.springframework.extensions.webscripts.RuntimeContainer;
-import org.springframework.extensions.webscripts.WebScriptRequest;
-import org.springframework.extensions.webscripts.servlet.ServletAuthenticatorFactory;
-import org.springframework.extensions.webscripts.servlet.WebScriptServletRuntime;
-
-
-/**
- * Runtime to support requests from Facebook
- *
- * @author davidc
- */
-public class FacebookAPIRuntime extends WebScriptServletRuntime
-{
-
- /**
- * Construct
- *
- * @param container
- * @param authFactory
- * @param req
- * @param res
- * @param serverProperties
- */
- public FacebookAPIRuntime(RuntimeContainer container, ServletAuthenticatorFactory authFactory, HttpServletRequest req, HttpServletResponse res, ServerProperties serverProperties)
- {
- super(container, authFactory, req, res, serverProperties);
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.servlet.WebScriptServletRuntime#createRequest(org.alfresco.web.scripts.Match)
- */
- @Override
- protected WebScriptRequest createRequest(Match match)
- {
- servletReq = new FacebookServletRequest(this, req, match, serverProperties, getScriptUrl());
- return servletReq;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.servlet.WebScriptServletRuntime#getScriptParameters()
- */
- @Override
- public Map getScriptParameters()
- {
- Map model = new HashMap();
- model.putAll(super.getScriptParameters());
- model.put("facebook", new FacebookModel((FacebookServletRequest)servletReq));
- return model;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.AbstractRuntime#getTemplateParameters()
- */
- @Override
- public Map getTemplateParameters()
- {
- Map model = new HashMap();
- model.putAll(super.getTemplateParameters());
- model.put("facebook", new FacebookModel((FacebookServletRequest)servletReq));
- return model;
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAPIServlet.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAPIServlet.java
deleted file mode 100644
index fe9df0ef1c..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAPIServlet.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.webscripts.servlet.WebScriptServlet;
-
-
-/**
- * Web Script API entry point (with Facebook authentication)
- *
- * @author davidc
- */
-public class FacebookAPIServlet extends WebScriptServlet
-{
- private static final long serialVersionUID = 4209892938069597860L;
-
- // Logger
- private static final Log logger = LogFactory.getLog(FacebookAPIServlet.class);
-
-
- /* (non-Javadoc)
- * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest,
- * javax.servlet.http.HttpServletResponse)
- */
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
- {
- if (logger.isDebugEnabled())
- logger.debug("Processing facebook api request (" + req.getMethod() + ") " + req.getRequestURL() + (req.getQueryString() != null ? "?" + req.getQueryString() : ""));
-
- FacebookAPIRuntime runtime = new FacebookAPIRuntime(container, authenticatorFactory, req, res, serverProperties);
- runtime.executeScript();
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAppModel.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAppModel.java
deleted file mode 100644
index 0b4e4dc287..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAppModel.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-
-/**
- * Facebook Application
- *
- * @author davidc
- */
-public class FacebookAppModel
-{
- String appId;
- String apiKey;
- String secretKey;
-
- /**
- * Construct
- *
- * @param apiKey
- */
- public FacebookAppModel(String apiKey)
- {
- this.apiKey = apiKey;
- }
-
- /**
- * @return application apiKey
- */
- public String getApiKey()
- {
- return apiKey;
- }
-
- /**
- * @return application secret
- */
- public String getSecret()
- {
- return secretKey;
- }
-
- /**
- * @param secretKey application secret
- */
- public void setSecret(String secretKey)
- {
- this.secretKey = secretKey;
- }
-
- /**
- * @return application id
- */
- public String getId()
- {
- return appId;
- }
-
- /**
- * @param appId application id
- */
- public void setId(String appId)
- {
- this.appId = appId;
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAuthenticatorFactory.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAuthenticatorFactory.java
deleted file mode 100644
index 9e0a3fbce7..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookAuthenticatorFactory.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import java.io.IOException;
-
-import org.alfresco.repo.security.authentication.AuthenticationUtil;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.webscripts.Authenticator;
-import org.springframework.extensions.webscripts.WebScriptException;
-import org.springframework.extensions.webscripts.Description.RequiredAuthentication;
-import org.springframework.extensions.webscripts.servlet.ServletAuthenticatorFactory;
-import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
-import org.springframework.extensions.webscripts.servlet.WebScriptServletResponse;
-
-/**
- * Web Script Authenticator that supports Facebook authentication
- * mechanism.
- *
- * Upon success, the request is authenticated as the Facebook User Id.
- *
- * @author davidc
- */
-public class FacebookAuthenticatorFactory implements ServletAuthenticatorFactory
-{
- // Logger
- private static final Log logger = LogFactory.getLog(FacebookAuthenticator.class);
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.servlet.ServletAuthenticatorFactory#create(org.alfresco.web.scripts.servlet.WebScriptServletRequest, org.alfresco.web.scripts.servlet.WebScriptServletResponse)
- */
- public Authenticator create(WebScriptServletRequest req, WebScriptServletResponse res)
- {
- if (!(req instanceof FacebookServletRequest))
- {
- throw new WebScriptException("Facebook request is required; instead a " + req.getClass().getName() + " has been provided");
- }
- return new FacebookAuthenticator((FacebookServletRequest)req, res);
- }
-
-
- /**
- * Web Script Authenticator that supports Facebook authentication
- * mechanism.
- *
- * Upon success, the request is authenticated as the Facebook User Id.
- *
- * @author davidc
- */
- public class FacebookAuthenticator implements Authenticator
- {
-
- // FBML for Facebook login redirect
- private static final String LOGIN_REDIRECT = "";
-
-
- // dependencies
- private FacebookServletRequest fbReq;
- private WebScriptServletResponse fbRes;
-
- private String sessionKey;
- private String user;
-
- /**
- * Construct
- *
- * @param authenticationService
- * @param req
- * @param res
- */
- public FacebookAuthenticator(FacebookServletRequest req, WebScriptServletResponse res)
- {
- this.fbReq = req;
- this.fbRes = res;
-
- this.sessionKey = fbReq.getSessionKey();
- this.user = fbReq.getUserId();
- }
-
- /* (non-Javadoc)
- * @see org.aopalliance.intercept.MethodInterceptor#invoke(org.aopalliance.intercept.MethodInvocation)
- */
- public boolean authenticate(RequiredAuthentication required, boolean isGuest)
- {
- if (logger.isDebugEnabled())
- {
- logger.debug("fb_sig_session_key = '" + sessionKey + "'");
- logger.debug("fb_sig_user = '" + user + "'");
- }
-
- if (emptyCredentials())
- {
- // session has not been established, redirect to login
-
- String apiKey = fbReq.getApiKey();
- String canvas = (fbReq.isInCanvas()) ? "&canvas" : "";
-
- if (logger.isDebugEnabled())
- {
- logger.debug("fb_sig_api_key = '" + apiKey + "'");
- logger.debug("fb_sig_in_canvas = '" + canvas + "'");
- }
-
- try
- {
- String redirect = String.format(LOGIN_REDIRECT, apiKey, canvas);
-
- if (logger.isDebugEnabled())
- logger.debug("Facebook session not established; redirecting via " + redirect);
-
- fbRes.getWriter().write(redirect);
- }
- catch (IOException e)
- {
- throw new WebScriptException("Redirect to login failed", e);
- }
- return false;
- }
-
- if (logger.isDebugEnabled())
- logger.debug("Facebook session established; authenticating as user " + user);
-
- // session has been established, authenticate as Facebook user id
- AuthenticationUtil.setFullyAuthenticatedUser(user);
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.Authenticator#emptyCredentials()
- */
- public boolean emptyCredentials()
- {
- return ((sessionKey == null || sessionKey.length() == 0) || (user == null || user.length() == 0));
- }
- }
-
-}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookError.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookError.java
deleted file mode 100644
index 5de4983787..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookError.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-/**
- * Facebook Error.
- *
- * @author David Caruana
- */
-public class FacebookError extends RuntimeException
-{
- private static final long serialVersionUID = -7338963365877285084L;
-
- private int code = -1;
-
- public FacebookError(String msg)
- {
- super(msg);
- }
-
- public FacebookError(int code, String msg)
- {
- super(msg);
- this.code = code;
- }
-
- public int getCode()
- {
- return code;
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookModel.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookModel.java
deleted file mode 100644
index fb8f9ee15f..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookModel.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import java.io.IOException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.w3c.dom.Document;
-import org.w3c.dom.NodeList;
-
-import com.facebook.api.FacebookException;
-import com.facebook.api.FacebookRestClient;
-
-
-/**
- * Facebook Javascript API
- *
- * @author davidc
- */
-public class FacebookModel
-{
- // Logger
- private static final Log logger = LogFactory.getLog(FacebookModel.class);
-
- private FacebookServletRequest req;
- private FacebookRestClient client;
- private String[] friends;
- private String[] appFriends;
-
-
- /**
- * Construct
- *
- * @param req
- */
- public FacebookModel(FacebookServletRequest req)
- {
- this.req = req;
- }
-
- /**
- * @return the facebook rest client
- */
- private FacebookRestClient getClient()
- {
- if (client == null)
- {
- String apiKey = req.getApiKey();
- String secretKey = req.getSecretKey();
- String sessionKey = req.getSessionKey();
- if (sessionKey == null)
- {
- client = new FacebookRestClient(apiKey, secretKey);
- }
- else
- {
- client = new FacebookRestClient(apiKey, secretKey, sessionKey);
- }
-
- if (logger.isDebugEnabled())
- client.setDebug(true);
- }
- return client;
- }
-
- /**
- * @return all friends of the logged in facebook user
- */
- public String[] getFriends()
- {
- if (friends == null)
- {
- friends = req.getFriends();
- if (friends == null)
- {
- try
- {
- Document response = getClient().friends_get();
- NodeList uids = response.getElementsByTagName("uid");
- String[] uidsArray = new String[uids.getLength()];
- for (int i = 0; i < uids.getLength(); i++)
- {
- uidsArray[i] = uids.item(i).getTextContent();
- }
- friends = uidsArray;
- }
- catch(FacebookException e)
- {
- throw new FacebookError(e.getCode(), e.getMessage());
- }
- catch(IOException e)
- {
- throw new FacebookError(e.getMessage());
- }
- }
- }
- return friends;
- }
-
- /**
- * @return friends who are users of the current application
- */
- public String[] getAppFriends()
- {
- if (appFriends == null)
- {
- try
- {
- Document response = getClient().friends_getAppUsers();
- NodeList uids = response.getElementsByTagName("uid");
- String[] uidsArray = new String[uids.getLength()];
- for (int i = 0; i < uids.getLength(); i++)
- {
- uidsArray[i] = uids.item(i).getTextContent();
- }
- appFriends = uidsArray;
- }
- catch(FacebookException e)
- {
- throw new FacebookError(e.getCode(), e.getMessage());
- }
- catch(IOException e)
- {
- throw new FacebookError(e.getMessage());
- }
- }
- return appFriends;
- }
-
- /**
- * Post User Action
- *
- * For details see:
- * http://wiki.developers.facebook.com/index.php/Feed.publishActionOfUser
- *
- * @param title
- * @param body
- * @return
- */
- public int postUserAction(String title, String body)
- {
- try
- {
- Document response = getClient().feed_publishActionOfUser(title, body);
- int status = Integer.parseInt(response.getDocumentElement().getTextContent());
- return status;
- }
- catch (FacebookException e)
- {
- if (logger.isErrorEnabled())
- logger.error("Failed to post user action [title=" + title + ", body=" + body + "] due to " + e.toString());
- throw new FacebookError(e.getCode(), e.getMessage());
- }
- catch (IOException e)
- {
- if (logger.isErrorEnabled())
- logger.error("Failed to post user action [title=" + title + ", body=" + body + "] due to " + e.toString());
- throw new FacebookError(e.getMessage());
- }
- }
-
- /**
- * @return user id of logged in facebook user
- */
- public String getUser()
- {
- return req.getUserId();
- }
-
- /**
- * @return application id of current application
- */
- public String getAppId()
- {
- return req.getAppId();
- }
-
- /**
- * @return session key of current facebook session
- */
- public String getSessionKey()
- {
- return req.getSessionKey();
- }
-
- /**
- * @return application api key
- */
- public String getApiKey()
- {
- return req.getApiKey();
- }
-
- /**
- * @return application secret key
- */
- public String getSecret()
- {
- return req.getSecretKey();
- }
-
- /**
- * @return facebook canvas path (as entered into 'Create Application' dialog)
- */
- public String getCanvasPath()
- {
- return req.getCanvasPath();
- }
-
- /**
- * @return facebook canvas url (http://apps.facebook.com/canvasPath)
- */
- public String getCanvasURL()
- {
- return "http://apps.facebook.com/" + getCanvasPath();
- }
-
- /**
- * @return facebook page url (http://apps.facebook.com/canvasPath/page)
- */
- public String getPageURL()
- {
- return "http://apps.facebook.com" + req.getPagePath();
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookService.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookService.java
deleted file mode 100644
index f6d2f5a32a..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookService.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.webscripts.Container;
-import org.springframework.extensions.webscripts.ScriptContent;
-import org.springframework.extensions.webscripts.ScriptProcessor;
-import org.springframework.extensions.webscripts.WebScriptException;
-
-
-/**
- * Facebook Service
- *
- * @author davidc
- */
-public class FacebookService
-{
- // Logger
- private static final Log logger = LogFactory.getLog(FacebookService.class);
-
- // Facebook Application Cache
- private Map apps = new HashMap();
- private ReentrantReadWriteLock appsLock = new ReentrantReadWriteLock();
-
- // Component dependencies
- private Container container;
-
-
- /**
- * @param registry Web Script Registry
- */
- public void setContainer(Container container)
- {
- this.container = container;
- }
-
- /**
- * Gets the application model for the given application api key
- *
- * @param apiKey api key
- * @return application model
- */
- FacebookAppModel getAppModel(String apiKey)
- {
- FacebookAppModel facebookApp = null;
- appsLock.readLock().lock();
-
- try
- {
- facebookApp = apps.get(apiKey);
- if (facebookApp == null)
- {
- // Upgrade read lock to write lock
- appsLock.readLock().unlock();
- appsLock.writeLock().lock();
-
- try
- {
- // Check again
- facebookApp = apps.get(apiKey);
- if (facebookApp == null)
- {
- if (logger.isDebugEnabled())
- logger.debug("Initialising Facebook Application '" + apiKey + "'");
-
- // Locate app initialisation script in web script store
- String appPath = "com/facebook/_apps/app." + apiKey + ".js";
- String validScriptPath = container.getScriptProcessorRegistry().findValidScriptPath(appPath);
- if (validScriptPath == null)
- {
- throw new WebScriptException("Unable to locate application initialisation script '" + appPath + "'");
- }
- ScriptProcessor scriptProcessor = container.getScriptProcessorRegistry().getScriptProcessor(validScriptPath);
- ScriptContent appScript = scriptProcessor.findScript(validScriptPath);
- if (appScript == null)
- {
- throw new WebScriptException("Unable to locate application initialisation script '" + appPath + "'");
- }
-
- // Execute app initialisation script
- Map model = new HashMap();
- FacebookAppModel app = new FacebookAppModel(apiKey);
- model.put("app", app);
- scriptProcessor.executeScript(appScript, model);
-
- // Validate initialisation
- if (app.getSecret() == null)
- {
- throw new WebScriptException("Secret key for application '" + apiKey + "' has not been specified.");
- }
- if (app.getApiKey() == null)
- {
- throw new WebScriptException("Application Id for application '" + apiKey + "' has not been specified.");
- }
-
- apps.put(apiKey, app);
- facebookApp = app;
- }
- }
- finally
- {
- // Downgrade lock to read
- appsLock.readLock().lock();
- appsLock.writeLock().unlock();
- }
- }
- return facebookApp;
- }
- finally
- {
- appsLock.readLock().unlock();
- }
- }
-
- /**
- * Gets currently known Facebook Applications
- *
- * @return map (name, application) of known applications
- */
- public Map getAppModels()
- {
- return apps;
- }
-
- /**
- * Reset Facebook Service
- */
- public void reset()
- {
- appsLock.writeLock().lock();
- try
- {
- apps.clear();
- }
- finally
- {
- appsLock.writeLock().unlock();
- }
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServlet.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServlet.java
deleted file mode 100644
index 231932a1d1..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServlet.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.context.ApplicationContext;
-
-
-/**
- * Facebook Canvas Page Requests
- *
- * @author davidc
- */
-public class FacebookServlet extends FacebookAPIServlet
-{
- private static final long serialVersionUID = 2276870692940598426L;
-
- // Logger
- private static final Log logger = LogFactory.getLog(FacebookServlet.class);
-
- // Component Dependencies
- protected FacebookService facebookService;
-
-
- /* (non-Javadoc)
- * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
- */
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
- {
- if (logger.isDebugEnabled())
- logger.debug("Processing facebook canvas (" + req.getMethod() + ") " + req.getRequestURL() + (req.getQueryString() != null ? "?" + req.getQueryString() : ""));
-
- FacebookServletRuntime runtime = new FacebookServletRuntime(container, authenticatorFactory, req, res, serverProperties, facebookService);
- runtime.executeScript();
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.WebScriptServlet#initServlet(org.springframework.context.ApplicationContext)
- */
- @Override
- protected void initServlet(ApplicationContext context)
- {
- facebookService = (FacebookService)context.getBean("facebook.service");
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServletRequest.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServletRequest.java
deleted file mode 100644
index 48ca7a1c05..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServletRequest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.extensions.config.ServerProperties;
-import org.springframework.extensions.webscripts.Match;
-import org.springframework.extensions.webscripts.WebScriptException;
-import org.springframework.extensions.webscripts.servlet.WebScriptServletRequest;
-import org.springframework.extensions.webscripts.Runtime;
-
-/**
- * Facebook Servlet Request
- *
- * @author davidc
- */
-@SuppressWarnings("deprecation")
-public class FacebookServletRequest extends WebScriptServletRequest
-{
- private String appId;
- private String secretKey;
- private String pathInfo;
-
-
- /**
- * Construct
- *
- * @param serverConfig
- * @param req
- * @param serviceMatch
- */
- public FacebookServletRequest(Runtime container, HttpServletRequest req, Match serviceMatch, ServerProperties serverProperties, String pathInfo)
- {
- super(container, req, serviceMatch, serverProperties);
- this.pathInfo = pathInfo;
- }
-
-
- /**
- * @param secretKey application secret
- */
- /*package*/ void setSecretKey(String secretKey)
- {
- this.secretKey = secretKey;
- }
-
- /**
- * @param appId application id
- */
- /*package*/ void setAppId(String appId)
- {
- this.appId = appId;
- }
-
- /**
- * @return application api key
- */
- public String getApiKey()
- {
- return getParameter("fb_sig_api_key");
- }
-
- /**
- * @return Facebook user id
- */
- public String getUserId()
- {
- return getParameter("fb_sig_user");
- }
-
- /**
- * @return session key
- */
- public String getSessionKey()
- {
- return getParameter("fb_sig_session_key");
- }
-
- /**
- * @return true => within Facebook canvas
- */
- public boolean isInCanvas()
- {
- String canvas = getParameter("fb_sig_api_key");
- return (canvas == null || canvas.equals("1"));
- }
-
- /**
- * @return application secret
- */
- public String getSecretKey()
- {
- return secretKey;
- }
-
- /**
- * @return application id
- */
- public String getAppId()
- {
- return appId;
- }
-
- /**
- * @return application canvas path
- */
- public String getCanvasPath()
- {
- String pathInfo = getPathInfo();
- String[] pathSegments = pathInfo.split("/");
- if (pathSegments.length < 3)
- {
- throw new WebScriptException("Cannot establish Facebook Canvas Page URL from request " + getURL());
- }
- return pathSegments[2];
- }
-
- /**
- * @return application page path
- */
- public String getPagePath()
- {
- String pagePath = getPathInfo();
- if (pagePath.startsWith("/facebook"))
- {
- pagePath = pathInfo.substring("/facebook".length());
- }
- return pagePath;
- }
-
- /**
- * @return friends of authenticated Facebook user
- */
- public String[] getFriends()
- {
- String[] friends;
- String friendsStr = getParameter("fb_sig_friends");
- friends = (friendsStr == null) ? new String[0] : friendsStr.split(",");
- return friends;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.servlet.WebScriptServletRequest#getPathInfo()
- */
- @Override
- public String getPathInfo()
- {
- return pathInfo;
- }
-
-}
diff --git a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServletRuntime.java b/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServletRuntime.java
deleted file mode 100644
index 764eb98ae8..0000000000
--- a/source/java/org/alfresco/repo/web/scripts/facebook/FacebookServletRuntime.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2005-2010 Alfresco Software Limited.
- *
- * This file is part of Alfresco
- *
- * Alfresco is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Alfresco is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with Alfresco. If not, see .
- */
-package org.alfresco.repo.web.scripts.facebook;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.config.ServerProperties;
-import org.springframework.extensions.webscripts.Match;
-import org.springframework.extensions.webscripts.RuntimeContainer;
-import org.springframework.extensions.webscripts.StatusTemplate;
-import org.springframework.extensions.webscripts.WebScriptRequest;
-import org.springframework.extensions.webscripts.WebScriptResponse;
-import org.springframework.extensions.webscripts.servlet.ServletAuthenticatorFactory;
-
-
-/**
- * Facebook Canvas Page Servlet.
- *
- * @author davidc
- */
-public class FacebookServletRuntime extends FacebookAPIRuntime
-{
- // Logger
- private static final Log logger = LogFactory.getLog(FacebookServletRuntime.class);
-
- // Component dependencies
- protected FacebookService facebookService;
-
-
- /**
- * Construct
- *
- * @param container
- * @param authFactory
- * @param req
- * @param res
- * @param serverProperties
- * @param facebookService
- */
- public FacebookServletRuntime(RuntimeContainer container, ServletAuthenticatorFactory authFactory, HttpServletRequest req, HttpServletResponse res,
- ServerProperties serverProperties, FacebookService facebookService)
- {
- super(container, authFactory, req, res, serverProperties);
- this.facebookService = facebookService;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.WebScriptRuntime#createRequest(org.alfresco.web.scripts.WebScriptMatch)
- */
- @Override
- protected WebScriptRequest createRequest(Match match)
- {
- FacebookServletRequest fbreq = new FacebookServletRequest(this, req, match, serverProperties, getScriptUrl());
-
- if (match != null)
- {
- FacebookAppModel appModel = facebookService.getAppModel(fbreq.getApiKey());
- fbreq.setSecretKey(appModel.getSecret());
- fbreq.setAppId(appModel.getId());
- }
-
- if (logger.isDebugEnabled())
- logger.debug("Facebook request [apiKey=" + fbreq.getApiKey() + ", user=" + fbreq.getUserId() + ", session=" + fbreq.getSessionKey() + ", secret=" + fbreq.getSecretKey() + "]");
-
- servletReq = fbreq;
- return servletReq;
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.WebScriptServletRuntime#getScriptUrl()
- */
- @Override
- protected String getScriptUrl()
- {
- return "/facebook" + super.getScriptUrl();
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.WebScriptRuntime#getStatusCodeTemplate(int)
- */
- @Override
- protected StatusTemplate getStatusCodeTemplate(int statusCode)
- {
- return new StatusTemplate("/fbml." + statusCode + ".ftl", WebScriptResponse.HTML_FORMAT);
- }
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.WebScriptRuntime#getStatusTemplate()
- */
- @Override
- protected StatusTemplate getStatusTemplate()
- {
- return new StatusTemplate("/fbml.status.ftl", WebScriptResponse.HTML_FORMAT);
- }
-
-}