You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2011/02/14 21:44:43 UTC

svn commit: r1070658 - in /incubator/wookie/trunk: etc/ddl-schema/ src/org/apache/wookie/ src/org/apache/wookie/beans/ src/org/apache/wookie/beans/jcr/ src/org/apache/wookie/beans/jcr/impl/ src/org/apache/wookie/beans/jpa/impl/ src/org/apache/wookie/he...

Author: scottbw
Date: Mon Feb 14 20:44:42 2011
New Revision: 1070658

URL: http://svn.apache.org/viewvc?rev=1070658&view=rev
Log:
Modified the Widget model and also the WidgetFactory so that when adding a Widget a reference to its .wgt archive file is retained. This is part of the changes needed to support WOOKIE-182. Note that we do not at present guarantee that an uploaded.wgt is never overridden by another upload of a different widget with the same filename, which is something that needs to be fixed.

Modified:
    incubator/wookie/trunk/etc/ddl-schema/wookie-schema.xml
    incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
    incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java
    incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/WidgetImpl.java
    incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/wookie-schema.cnd
    incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/WidgetImpl.java
    incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
    incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java

Modified: incubator/wookie/trunk/etc/ddl-schema/wookie-schema.xml
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/etc/ddl-schema/wookie-schema.xml?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/etc/ddl-schema/wookie-schema.xml (original)
+++ incubator/wookie/trunk/etc/ddl-schema/wookie-schema.xml Mon Feb 14 20:44:42 2011
@@ -23,6 +23,7 @@
   <table name="Widget">
     <column name="id" primaryKey="true" required="true" type="INTEGER"/>
     <column name="jpa_version" type="INTEGER"/>
+    <column name="package_path" size="255" type="VARCHAR"/>
     <column name="height" type="INTEGER"/>
     <column name="width" type="INTEGER"/>
     <column name="guid" required="true" size="255" type="VARCHAR"/>

Modified: incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java Mon Feb 14 20:44:42 2011
@@ -491,7 +491,7 @@ public class WidgetAdminServlet extends 
 				WidgetJavascriptSyntaxAnalyzer jsa = new WidgetJavascriptSyntaxAnalyzer(fac.getUnzippedWidgetDirectory());				
 	            if(persistenceManager.findWidgetByGuid(widgetModel.getIdentifier()) == null){
 					// ADD
-					IWidget widget = WidgetFactory.addNewWidget(widgetModel);
+					IWidget widget = WidgetFactory.addNewWidget(widgetModel, null, zipFile, false);
 					Object dbkey = widget.getId();
 					// widget added
 					request.setAttribute("message_value", "'"+ widgetModel.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.19")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$					

Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/IWidget.java Mon Feb 14 20:44:42 2011
@@ -31,6 +31,15 @@ import org.apache.wookie.w3c.util.Locali
  */
 public interface IWidget extends ILocalizedBean, IBean
 {
+	/**
+	 * Get the path to the .wgt file used to install the widget
+	 * @return
+	 */
+	String getPackagePath();
+
+	void setPackagePath(String path);
+	
+	
     /**
      * Get widget height.
      * 

Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/WidgetImpl.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/WidgetImpl.java?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/WidgetImpl.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/impl/WidgetImpl.java Mon Feb 14 20:44:42 2011
@@ -50,6 +50,9 @@ public class WidgetImpl extends Localize
     @Field(uuid=true)
     private String uuid;
     
+    @Field(jcrName="wookie:packagePath")
+    private String packagePath;
+    
     @Field(jcrName="wookie:height")
     private Integer height;
     
@@ -97,8 +100,22 @@ public class WidgetImpl extends Localize
     
     @org.apache.jackrabbit.ocm.mapper.impl.annotation.Collection(jcrName="wookie:sharedData", elementClassName=SharedDataImpl.class)
     private Collection<SharedDataImpl> sharedDataImpls;
-
+    
     /* (non-Javadoc)
+     * @see org.apache.wookie.beans.IWidget#getPackagePath()
+     */
+    public String getPackagePath() {
+		return packagePath;
+	}
+    
+	/* (non-Javadoc)
+	 * @see org.apache.wookie.beans.IWidget#setPackagePath(java.lang.String)
+	 */
+	public void setPackagePath(String path) {
+		packagePath = path;
+	}
+
+	/* (non-Javadoc)
      * @see org.apache.wookie.beans.IWidget#getDescriptions()
      */
     public Collection<IDescription> getDescriptions()

Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/wookie-schema.cnd
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/wookie-schema.cnd?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/wookie-schema.cnd (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/jcr/wookie-schema.cnd Mon Feb 14 20:44:42 2011
@@ -78,6 +78,7 @@
 + wookie:parameters (nt:unstructured) = nt:unstructured
 
 [wookie:widget] > nt:base, mix:referenceable
+- wookie:packagePath (string)
 - wookie:height (long)
 - wookie:width (long)
 - wookie:guid (string) mandatory

Modified: incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/WidgetImpl.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/WidgetImpl.java?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/WidgetImpl.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/beans/jpa/impl/WidgetImpl.java Mon Feb 14 20:44:42 2011
@@ -67,6 +67,10 @@ public class WidgetImpl extends Localize
     @Column(name="jpa_version")
     @SuppressWarnings("unused")
     private int jpaVersion;
+    
+    @Basic
+    @Column(name="package_path")
+    private String packagePath;
 
     @Basic
     @Column(name="height")
@@ -558,4 +562,21 @@ public class WidgetImpl extends Localize
     {
         return Utilities.getWidgetIconLocation(this, "en");
     }
+
+	/* (non-Javadoc)
+	 * @see org.apache.wookie.beans.IWidget#getPackagePath()
+	 */
+	public String getPackagePath() {
+		return packagePath;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.wookie.beans.IWidget#setPackagePath(java.lang.String)
+	 */
+	public void setPackagePath(String path) {
+		packagePath = path;
+		
+	}
+	
+	
 }

Modified: incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java Mon Feb 14 20:44:42 2011
@@ -13,6 +13,8 @@
  */
 package org.apache.wookie.helpers;
 
+import java.io.File;
+
 import org.apache.log4j.Logger;
 import org.apache.wookie.beans.IAccessRequest;
 import org.apache.wookie.beans.IDescription;
@@ -49,6 +51,20 @@ import org.apache.wookie.w3c.IPreference
 public class WidgetFactory {
 	static Logger _logger = Logger.getLogger(WidgetFactory.class.getName());
 
+	
+	/**
+	 * Adds a new widget
+	 * @param model the model of the widget to add
+	 * @param file the .wgt file the Widget was loaded from
+	 * @param grantAccessRequests whether to automatically grant access requests for the widget
+	 * @return the widget
+	 */
+	public static IWidget addNewWidget(W3CWidget model,String[] widgetTypes, File file, boolean grantAccessRequests) {
+		IWidget widget = addNewWidget(model,widgetTypes, grantAccessRequests);
+		widget.setPackagePath(file.getPath());
+		return widget;
+	}
+	
 	/**
 	 * Adds a new widget
 	 * @param model the model of the widget to add

Modified: incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java?rev=1070658&r1=1070657&r2=1070658&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/server/ContextListener.java Mon Feb 14 20:44:42 2011
@@ -202,7 +202,7 @@ public class ContextListener implements 
 	 						W3CWidget model = fac.parse(upload);
 	 						WidgetJavascriptSyntaxAnalyzer jsa = new WidgetJavascriptSyntaxAnalyzer(fac.getUnzippedWidgetDirectory());
 	 						if(persistenceManager.findWidgetByGuid(model.getIdentifier()) == null) {
-	 							WidgetFactory.addNewWidget(model, true);	
+	 							WidgetFactory.addNewWidget(model, null, upload, true);	
 	 							String message = model.getLocalName("en") +"' - " + localizedMessages.getString("WidgetAdminServlet.19");
 	 							_logger.info(message);
 	 							FlashMessage.getInstance().message(message);