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);