You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2013/01/31 01:03:11 UTC
git commit: refs/heads/javelin - Spring hack for Ec2RestServlet
Updated Branches:
refs/heads/javelin 176523254 -> 4dc63f50a
Spring hack for Ec2RestServlet
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/4dc63f50
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/4dc63f50
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/4dc63f50
Branch: refs/heads/javelin
Commit: 4dc63f50a7f0c573fba1071403eca46705f7665a
Parents: 1765232
Author: Prachi Damle <pr...@cloud.com>
Authored: Wed Jan 30 15:40:51 2013 -0800
Committer: Prachi Damle <pr...@cloud.com>
Committed: Wed Jan 30 15:56:56 2013 -0800
----------------------------------------------------------------------
.../com/cloud/bridge/service/EC2RestServlet.java | 30 ++++++++++++++-
awsapi/web/web.xml | 7 ++-
2 files changed, 33 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4dc63f50/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
index 8309bfd..1023e8d 100644
--- a/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
+++ b/awsapi/src/com/cloud/bridge/service/EC2RestServlet.java
@@ -39,6 +39,7 @@ import java.util.List;
import java.util.Properties;
import java.util.UUID;
+import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
@@ -57,6 +58,7 @@ import org.apache.axis2.databinding.ADBException;
import org.apache.axis2.databinding.utils.writer.MTOMAwareXMLSerializer;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.amazon.ec2.AllocateAddressResponse;
import com.amazon.ec2.AssociateAddressResponse;
@@ -96,6 +98,7 @@ import com.amazon.ec2.StartInstancesResponse;
import com.amazon.ec2.StopInstancesResponse;
import com.amazon.ec2.TerminateInstancesResponse;
import com.cloud.bridge.model.UserCredentialsVO;
+import com.cloud.bridge.persist.dao.CloudStackConfigurationDao;
import com.cloud.bridge.persist.dao.OfferingDaoImpl;
import com.cloud.bridge.persist.dao.UserCredentialsDaoImpl;
import com.cloud.bridge.service.controller.s3.ServiceProvider;
@@ -142,13 +145,16 @@ import com.cloud.bridge.util.EC2RestAuth;
import com.cloud.stack.models.CloudStackAccount;
import com.cloud.utils.db.Transaction;
-
+@Component("EC2RestServlet")
public class EC2RestServlet extends HttpServlet {
private static final long serialVersionUID = -6168996266762804888L;
@Inject UserCredentialsDaoImpl ucDao;
@Inject OfferingDaoImpl ofDao;
+ static UserCredentialsDaoImpl s_ucDao;
+ static OfferingDaoImpl s_ofDao;
+
public static final Logger logger = Logger.getLogger(EC2RestServlet.class);
private final OMFactory factory = OMAbstractFactory.getOMFactory();
@@ -161,13 +167,35 @@ public class EC2RestServlet extends HttpServlet {
boolean debug=true;
+ public EC2RestServlet() {
+ }
+ @PostConstruct
+ void initComponent() {
+ // Servlet injection does not always work for servlet container
+ // We use a hacking here to initialize static variables at Spring wiring time
+ if(ucDao != null) {
+ s_ucDao = ucDao;
+ } else {
+ ucDao = s_ucDao;
+ }
+
+ if(ofDao != null) {
+ s_ofDao = ofDao;
+ } else {
+ ofDao = s_ofDao;
+ }
+
+ }
+
+
/**
* We build the path to where the keystore holding the WS-Security X509 certificates
* are stored.
*/
@Override
public void init( ServletConfig config ) throws ServletException {
+ initComponent();
File propertiesFile = ConfigurationHelper.findConfigurationFile("ec2-service.properties");
Properties EC2Prop = null;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4dc63f50/awsapi/web/web.xml
----------------------------------------------------------------------
diff --git a/awsapi/web/web.xml b/awsapi/web/web.xml
index 923a29b..7efe43d 100644
--- a/awsapi/web/web.xml
+++ b/awsapi/web/web.xml
@@ -70,9 +70,10 @@
</init-param>
</servlet>
<servlet>
- <servlet-name>CloudBridgeEC2Servlet</servlet-name>
+ <servlet-name>EC2RestServlet</servlet-name>
<display-name>Cloud.com Bridge EC2 Service REST Servlet</display-name>
<servlet-class>com.cloud.bridge.service.EC2RestServlet</servlet-class>
+ <load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
@@ -92,13 +93,13 @@
<!-- EC2 examples are using that last '/' -->
<servlet-mapping>
- <servlet-name>CloudBridgeEC2Servlet</servlet-name>
+ <servlet-name>EC2RestServlet</servlet-name>
<url-pattern>/rest/AmazonEC2/*</url-pattern>
</servlet-mapping>
<!-- handle the common error of leaving off the last '/' -->
<servlet-mapping>
- <servlet-name>CloudBridgeEC2Servlet</servlet-name>
+ <servlet-name>EC2RestServlet</servlet-name>
<url-pattern>/rest/AmazonEC2</url-pattern>
</servlet-mapping>