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 2010/06/16 16:16:40 UTC
svn commit: r955236 [8/10] - in
/incubator/wookie/branches/pluggablepersistence: ./ WebContent/WEB-INF/
WebContent/admin/ WebContent/webmenu/ ant/ etc/ddl-schema/ etc/tomcat/
etc/tomcat/conf/ parser/java/src/org/apache/wookie/w3c/util/ scripts/
scripts...
Added: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetInstanceImpl.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetInstanceImpl.java?rev=955236&view=auto
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetInstanceImpl.java (added)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetInstanceImpl.java Wed Jun 16 14:16:36 2010
@@ -0,0 +1,411 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wookie.beans.jpa.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
+import org.apache.openjpa.persistence.ElementDependent;
+import org.apache.openjpa.persistence.ExternalValues;
+import org.apache.openjpa.persistence.Type;
+
+import org.apache.wookie.beans.IPreference;
+import org.apache.wookie.beans.ISharedData;
+import org.apache.wookie.beans.IToken;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetInstance;
+import org.apache.wookie.beans.jpa.InverseRelationshipCollection;
+
+/**
+ * WidgetInstanceImpl - JPA IWidgetInstance implementation.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
+ */
+@Entity(name="WidgetInstance")
+@Table(name="WidgetInstance")
+@NamedQueries({@NamedQuery(name="WIDGET_INSTANCE", query="SELECT wi FROM WidgetInstance wi JOIN wi.widget w JOIN w.widgetTypes wt WHERE wi.apiKey = :apiKey AND wi.userId = :userId AND wi.sharedDataKey = :sharedDataKey AND wt.widgetContext = :widgetContext"),
+ @NamedQuery(name="WIDGET_INSTANCE_GUID", query="SELECT wi FROM WidgetInstance wi JOIN wi.widget w WHERE wi.apiKey = :apiKey AND wi.userId = :userId AND wi.sharedDataKey = :sharedDataKey AND w.guid = :guid"),
+ @NamedQuery(name="WIDGET_INSTANCE_ID", query="SELECT wi FROM WidgetInstance wi WHERE wi.idKey = :idKey")})
+public class WidgetInstanceImpl implements IWidgetInstance
+{
+ @Id
+ @GeneratedValue(strategy=GenerationType.AUTO)
+ @Column(name="id", nullable=false)
+ private int id;
+
+ @Version
+ @Column(name="jpa_version")
+ @SuppressWarnings("unused")
+ private int jpaVersion;
+
+ @Basic(optional=false)
+ @Column(name="apikey", nullable=false)
+ private String apiKey;
+
+ @Basic(optional=false)
+ @Column(name="userId", nullable=false)
+ private String userId;
+
+ @Basic
+ @Column(name="sharedDataKey")
+ private String sharedDataKey;
+
+ @Basic
+ @Column(name="nonce")
+ private String nonce;
+
+ @Basic(optional=false)
+ @Column(name="idKey", nullable=false)
+ private String idKey;
+
+ @Basic(optional=false)
+ @Column(name="opensocialToken", nullable=false)
+ private String opensocialToken;
+
+ @ManyToOne(fetch=FetchType.LAZY, optional=false)
+ @JoinColumn(name="widget_id", referencedColumnName="id", nullable=false)
+ private WidgetImpl widget;
+
+ @Basic
+ @Column(name="updated")
+ @ExternalValues({"true=t","false=f","null="})
+ @Type(String.class)
+ private Boolean updated;
+
+ @Basic
+ @Column(name="shown")
+ @ExternalValues({"true=t","false=f","null="})
+ @Type(String.class)
+ private Boolean shown;
+
+ @Basic
+ @Column(name="hidden")
+ @ExternalValues({"true=t","false=f","null="})
+ @Type(String.class)
+ private Boolean hidden;
+
+ @Basic
+ @Column(name="locked")
+ @ExternalValues({"true=t","false=f","null="})
+ @Type(String.class)
+ private Boolean locked;
+
+ @Basic
+ @Column(name="lang")
+ private String lang;
+
+ @OneToMany(mappedBy="widgetInstance", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
+ @ElementDependent
+ private Collection<PreferenceImpl> preferences;
+
+ @OneToMany(mappedBy="widgetInstance", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
+ @ElementDependent
+ private Collection<TokenImpl> tokens;
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getApiKey()
+ */
+ public String getApiKey()
+ {
+ return apiKey;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setApiKey(java.lang.String)
+ */
+ public void setApiKey(String apiKey)
+ {
+ this.apiKey = apiKey;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IBean#getId()
+ */
+ public Object getId()
+ {
+ return id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getIdKey()
+ */
+ public String getIdKey()
+ {
+ return idKey;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setIdKey(java.lang.String)
+ */
+ public void setIdKey(String idKey)
+ {
+ this.idKey = idKey;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getLang()
+ */
+ public String getLang()
+ {
+ return lang;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setLang(java.lang.String)
+ */
+ public void setLang(String lang)
+ {
+ this.lang = lang;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getNonce()
+ */
+ public String getNonce()
+ {
+ return nonce;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setNonce(java.lang.String)
+ */
+ public void setNonce(String nonce)
+ {
+ this.nonce = nonce;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getOpensocialToken()
+ */
+ public String getOpensocialToken()
+ {
+ return opensocialToken;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setOpensocialToken(java.lang.String)
+ */
+ public void setOpensocialToken(String opensocialToken)
+ {
+ this.opensocialToken = opensocialToken;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getPreferences()
+ */
+ public Collection<IPreference> getPreferences()
+ {
+ if (preferences == null)
+ {
+ preferences = new ArrayList<PreferenceImpl>();
+ }
+ return new InverseRelationshipCollection<WidgetInstanceImpl,PreferenceImpl,IPreference>(this, preferences);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setPreferences(java.util.Collection)
+ */
+ public void setPreferences(Collection<IPreference> preferences)
+ {
+ getPreferences().clear();
+ if (preferences != null)
+ {
+ for (IPreference preference : preferences)
+ {
+ getPreferences().add((PreferenceImpl)preference);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getSharedDataKey()
+ */
+ public String getSharedDataKey()
+ {
+ return sharedDataKey;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setSharedDataKey(java.lang.String)
+ */
+ public void setSharedDataKey(String sharedDataKey)
+ {
+ this.sharedDataKey = sharedDataKey;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getTokens()
+ */
+ public Collection<IToken> getTokens()
+ {
+ if (tokens == null)
+ {
+ tokens = new ArrayList<TokenImpl>();
+ }
+ return new InverseRelationshipCollection<WidgetInstanceImpl,TokenImpl,IToken>(this, tokens);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setTokens(java.util.Collection)
+ */
+ public void setTokens(Collection<IToken> tokens)
+ {
+ getTokens().clear();
+ if (tokens != null)
+ {
+ for (IToken token : tokens)
+ {
+ getTokens().add((TokenImpl)token);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getUserId()
+ */
+ public String getUserId()
+ {
+ return userId;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setUserId(java.lang.String)
+ */
+ public void setUserId(String userId)
+ {
+ this.userId = userId;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getWidget()
+ */
+ public IWidget getWidget()
+ {
+ return widget;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setWidget(org.apache.wookie.beans.IWidget)
+ */
+ public void setWidget(IWidget widget)
+ {
+ this.widget = (WidgetImpl)widget;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#isHidden()
+ */
+ public boolean isHidden()
+ {
+ return ((hidden != null) ? hidden.booleanValue() : false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setHidden(boolean)
+ */
+ public void setHidden(boolean hidden)
+ {
+ this.hidden = (hidden ? Boolean.TRUE : Boolean.FALSE);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#isLocked()
+ */
+ public boolean isLocked()
+ {
+ return ((locked != null) ? locked.booleanValue() : false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setLocked(boolean)
+ */
+ public void setLocked(boolean locked)
+ {
+ this.locked = (locked ? Boolean.TRUE : Boolean.FALSE);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#isShown()
+ */
+ public boolean isShown()
+ {
+ return ((shown != null) ? shown.booleanValue() : false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setShown(boolean)
+ */
+ public void setShown(boolean shown)
+ {
+ this.shown = (shown ? Boolean.TRUE : Boolean.FALSE);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#isUpdated()
+ */
+ public boolean isUpdated()
+ {
+ return ((updated != null) ? updated.booleanValue() : false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#setUpdated(boolean)
+ */
+ public void setUpdated(boolean updated)
+ {
+ this.updated = (updated ? Boolean.TRUE : Boolean.FALSE);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getPreference(java.lang.String)
+ */
+ public IPreference getPreference(String key)
+ {
+ return Utilities.getPreference(this, key);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getSharedData()
+ */
+ public ISharedData [] getSharedData()
+ {
+ return Utilities.getSharedData(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetInstance#getSharedData(java.lang.String)
+ */
+ public ISharedData getSharedData(String name)
+ {
+ return Utilities.getSharedData(this, name);
+ }
+}
Added: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetServiceImpl.java?rev=955236&view=auto
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetServiceImpl.java (added)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetServiceImpl.java Wed Jun 16 14:16:36 2010
@@ -0,0 +1,75 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wookie.beans.jpa.impl;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
+import org.apache.wookie.beans.IWidgetService;
+
+/**
+ * WidgetServiceImpl - JPA IWidgetService implementation.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
+ */
+@Entity(name="WidgetService")
+@Table(name="WidgetService")
+public class WidgetServiceImpl implements IWidgetService
+{
+ @Id
+ @GeneratedValue(strategy=GenerationType.AUTO)
+ @Column(name="id", nullable=false)
+ private int id;
+
+ @Version
+ @Column(name="jpa_version")
+ @SuppressWarnings("unused")
+ private int jpaVersion;
+
+ @Basic(optional=false)
+ @Column(name="service_name", nullable=false)
+ private String serviceName;
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IBean#getId()
+ */
+ public Object getId()
+ {
+ return id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetService#getServiceName()
+ */
+ public String getServiceName()
+ {
+ return serviceName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetService#setServiceName(java.lang.String)
+ */
+ public void setServiceName(String serviceName)
+ {
+ this.serviceName = serviceName;
+ }
+}
Added: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetTypeImpl.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetTypeImpl.java?rev=955236&view=auto
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetTypeImpl.java (added)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/impl/WidgetTypeImpl.java Wed Jun 16 14:16:36 2010
@@ -0,0 +1,85 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wookie.beans.jpa.impl;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
+import org.apache.wookie.beans.IWidgetType;
+import org.apache.wookie.beans.jpa.IInverseRelationship;
+
+/**
+ * WidgetTypeImpl - JPA IWidgetType implementation.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
+ */
+@Entity(name="WidgetType")
+@Table(name="WidgetType")
+public class WidgetTypeImpl implements IWidgetType, IInverseRelationship<WidgetImpl>
+{
+ @Id
+ @GeneratedValue(strategy=GenerationType.AUTO)
+ @Column(name="id", nullable=false)
+ @SuppressWarnings("unused")
+ private int id;
+
+ @Version
+ @Column(name="jpa_version")
+ @SuppressWarnings("unused")
+ private int jpaVersion;
+
+ @ManyToOne(fetch=FetchType.LAZY)
+ @JoinColumn(name="widget_id", referencedColumnName="id")
+ @SuppressWarnings("unused")
+ private WidgetImpl widget;
+
+ @Basic
+ @Column(name="widget_context")
+ private String widgetContext;
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.util.IInverseRelationship#updateInverseRelationship(java.lang.Object)
+ */
+ public void updateInverseRelationship(WidgetImpl owningObject)
+ {
+ widget = owningObject;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetType#getWidgetContext()
+ */
+ public String getWidgetContext()
+ {
+ return widgetContext;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.wookie.beans.IWidgetType#setWidgetContext(java.lang.String)
+ */
+ public void setWidgetContext(String widgetContext)
+ {
+ this.widgetContext = widgetContext;
+ }
+}
Added: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/persistence.properties
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/persistence.properties?rev=955236&view=auto
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/persistence.properties (added)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/jpa/persistence.properties Wed Jun 16 14:16:36 2010
@@ -0,0 +1,19 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+openjpa.Log=log4j
+openjpa.jdbc.SchemaFactory=native(ForeignKeys=true)
+openjpa.DataCache=true(CacheSize=1000,SoftReferenceSize=0)
+openjpa.QueryCache=CacheSize=100,SoftReferenceSize=0
+openjpa.DataCacheTimeout=3600000
+openjpa.RemoteCommitProvider=sjvm
+#openjpa.RemoteCommitProvider=tcp(Port=5636,Addresses=10.0.0.1;10.0.0.2)
Added: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/IPersistenceManager.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/IPersistenceManager.java?rev=955236&view=auto
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/IPersistenceManager.java (added)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/IPersistenceManager.java Wed Jun 16 14:16:36 2010
@@ -0,0 +1,237 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wookie.beans.util;
+
+import java.util.Map;
+
+import org.apache.wookie.beans.IAccessRequest;
+import org.apache.wookie.beans.IBean;
+import org.apache.wookie.beans.IParticipant;
+import org.apache.wookie.beans.IServerFeature;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetInstance;
+
+/**
+ * IPersistenceManager - beans persistence manager interface.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
+ */
+public interface IPersistenceManager
+{
+ /**
+ * Begin persistence manager transaction.
+ */
+ void begin();
+
+ /**
+ * Commit persistence manager transaction.
+ */
+ void commit();
+
+ /**
+ * Rollback persistence manager transaction
+ */
+ void rollback();
+
+ /**
+ * Close persistence manager.
+ */
+ void close();
+
+ /**
+ * Find persistent bean by generic id.
+ *
+ * @param beanInterface interface of bean to retrieve
+ * @param id id object of bean to retrieve
+ * @return retrieved bean instance or null if not found
+ */
+ <T extends IBean> T findById(Class<T> beanInterface, Object id);
+
+ /**
+ * Find persistent beans with matching value for specified field.
+ *
+ * @param beansInterface interface of beans to retrieve
+ * @param name name of field to match
+ * @param value value of field to match
+ * @return retrieved matching beans array or empty array if none found
+ */
+ <T extends IBean> T [] findByValue(Class<T> beansInterface, String name, Object value);
+
+ /**
+ * Find ordered persistent beans with matching value for specified field.
+ *
+ * @param beansInterface interface of beans to retrieve
+ * @param name name of field to match
+ * @param value value of field to match
+ * @param orderBy name of field to order matching beans
+ * @param ascending ascending order flag
+ * @return retrieved matching beans array or empty array if none found
+ */
+ <T extends IBean> T [] findByValue(Class<T> beansInterface, String name, Object value, String orderBy, boolean ascending);
+
+ /**
+ * Find persistent beans with matching values for specified fields.
+ *
+ * @param beansInterface interface of beans to retrieve
+ * @param values name/value map of fields to match
+ * @return retrieved matching beans array or empty array if none found
+ */
+ <T extends IBean> T [] findByValues(Class<T> beansInterface, Map<String,Object> values);
+
+ /**
+ * Find ordered persistent beans with matching values for specified fields.
+ *
+ * @param beansInterface interface of beans to retrieve
+ * @param values name/value map of fields to match
+ * @param orderBy name of field to order matching beans
+ * @param ascending ascending order flag
+ * @return retrieved matching beans array or empty array if none found
+ */
+ <T extends IBean> T [] findByValues(Class<T> beansInterface, Map<String,Object> values, String orderBy, boolean ascending);
+
+ /**
+ * Find all persistent beans.
+ *
+ * @param beansInterface interface of beans to retrieve
+ * @return retrieved matching beans array or empty array if none found
+ */
+ <T extends IBean> T [] findAll(Class<T> beansInterface);
+
+ /**
+ * Create new instance of persistent class.
+ *
+ * @param instanceInterface interface of persistent class to create.
+ * @return new instance
+ */
+ <T> T newInstance(Class<T> instanceInterface);
+
+ /**
+ * Save persistent bean.
+ *
+ * @param bean previously retrieved bean to save.
+ * @return operation success flag
+ */
+ boolean save(IBean bean);
+
+ /**
+ * Delete persistent bean.
+ *
+ * @param bean previously retrieved bean to delete.
+ * @return operation success flag
+ */
+ boolean delete(IBean bean);
+
+ /**
+ * Delete persistent beans.
+ *
+ * @param bean previously retrieved beans to delete.
+ * @return operation success flag
+ */
+ boolean delete(IBean [] beans);
+
+ /**
+ * Custom GUID IWidget query.
+ *
+ * @param guid GUID matching query value
+ * @return retrieved IWidget bean instance or null if not found
+ */
+ IWidget findWidgetByGuid(String guid);
+
+ /**
+ * Custom default widget type IWidget query.
+ *
+ * @param widgetContext default widget type matching query value
+ * @return retrieved IWidget bean instance or null if not found
+ */
+ IWidget findWidgetDefaultByType(String widgetContext);
+
+ /**
+ * Custom widget type IWidgets query.
+ *
+ * @param widgetContext widget type matching query value
+ * @return retrieved matching IWidget beans array or empty array if none found
+ */
+ IWidget [] findWidgetsByType(String widgetContext);
+
+ /**
+ * Custom service type IWidgetInstance query.
+ *
+ * @param apiKey API key matching query value
+ * @param userId user id matching query value
+ * @param sharedDataKey shared data key matching query value
+ * @param serviceContext service type matching query value
+ * @return retrieved IWidgetInstance bean instance or null if not found
+ */
+ IWidgetInstance findWidgetInstance(String apiKey, String userId, String sharedDataKey, String serviceContext);
+
+ /**
+ * Custom widget GUID IWidgetInstance query.
+ *
+ * @param apiKey API key matching query value
+ * @param userId user id matching query value
+ * @param sharedDataKey shared data key matching query value
+ * @param widgetGuid widget GUID matching query value
+ * @return retrieved IWidgetInstance bean instance or null if not found
+ */
+ IWidgetInstance findWidgetInstanceByGuid(String apiKey, String userId, String sharedDataKey, String widgetGuid);
+
+ /**
+ * Custom id key IWidgetInstance query.
+ *
+ * @param idKey id key matching query value
+ * @return retrieved IWidgetInstance bean instance or null if not found
+ */
+ IWidgetInstance findWidgetInstanceByIdKey(String idKey);
+
+ /**
+ * Custom widget instance IParticipant query.
+ *
+ * @param widgetInstance widget instance query value
+ * @return retrieved matching IParticipant beans array or empty array if none found
+ */
+ IParticipant [] findParticipants(IWidgetInstance widgetInstance);
+
+ /**
+ * Custom widget instance viewer IParticipant query.
+ *
+ * @param widgetInstance widget instance query value
+ * @return retrieved IParticipant bean instance or null if not found
+ */
+ IParticipant findParticipantViewer(IWidgetInstance widgetInstance);
+
+ /**
+ * Custom name IServerFeature query.
+ *
+ * @param name name query value
+ * @return retrieved IServerFeature bean instance or null if not found
+ */
+ IServerFeature findServerFeatureByName(String name);
+
+ /**
+ * Custom name IAccessRequest query.
+ *
+ * @param widget widget query value
+ * @return retrieved matching IAccessRequest beans array or empty array if none found
+ */
+ IAccessRequest [] findApplicableAccessRequests(IWidget widget);
+
+ /**
+ * Custom IServerFeature names query.
+ *
+ * @return retrieved IServerFeature beans names array or empty array if none found
+ */
+ String [] findServerFeatureNames();
+}
Added: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/PersistenceManagerFactory.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/PersistenceManagerFactory.java?rev=955236&view=auto
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/PersistenceManagerFactory.java (added)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/beans/util/PersistenceManagerFactory.java Wed Jun 16 14:16:36 2010
@@ -0,0 +1,274 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.wookie.beans.util;
+
+import java.lang.reflect.Method;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.wookie.beans.IApiKey;
+import org.apache.wookie.beans.IDescription;
+import org.apache.wookie.beans.IName;
+import org.apache.wookie.beans.IStartFile;
+import org.apache.wookie.beans.IWhitelist;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetDefault;
+import org.apache.wookie.beans.IWidgetIcon;
+import org.apache.wookie.beans.IWidgetService;
+import org.apache.wookie.beans.IWidgetType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * PersistenceManagerFactory - factory to create and manage IPersistenceManager
+ * instances per application thread.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id$
+ */
+public class PersistenceManagerFactory
+{
+ private static final Logger logger = LoggerFactory.getLogger(PersistenceManagerFactory.class);
+
+ public static final String PERSISTENCE_MANAGER_CLASS_NAME_PROPERTY_NAME = "widget.persistence.manager.classname";
+ public static final String PERSISTENCE_MANAGER_CLASS_NAME_DEFAULT = "org.apache.wookie.beans.jpa.JPAPersistenceManager";
+ public static final String PERSISTENCE_MANAGER_INITIALIZE_STORE_PROPERTY_NAME = "widget.persistence.manager.initstore";
+
+ private static boolean initialized;
+ private static Class<?> persistenceManagerClass;
+ private static ThreadLocal<IPersistenceManager> threadPersistenceManager = new ThreadLocal<IPersistenceManager>();
+
+ /**
+ * Initialize factory with configuration.
+ *
+ * @param configuration configuration properties
+ */
+ public static void initialize(Configuration configuration)
+ {
+ if (!initialized)
+ {
+ // initialize persistence manager implementation and
+ // initialize persistent store if specified
+ String className = configuration.getString(PERSISTENCE_MANAGER_CLASS_NAME_PROPERTY_NAME, PERSISTENCE_MANAGER_CLASS_NAME_DEFAULT);
+ boolean initializeStore = configuration.getBoolean(PERSISTENCE_MANAGER_INITIALIZE_STORE_PROPERTY_NAME, false);
+ try
+ {
+ persistenceManagerClass = Class.forName(className);
+
+ Method initializeMethod = persistenceManagerClass.getMethod("initialize", Configuration.class, boolean.class);
+ initializeMethod.invoke(null, configuration, initializeStore);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Unable to load or initialize PersistenceManager class: "+e, e);
+ }
+
+ initialized = true;
+
+ // initialize persistence store using persistence manager
+ if (initializeStore)
+ {
+ try
+ {
+ // allocate and begin persistence manager transaction
+ IPersistenceManager persistenceManager = getPersistenceManager();
+ persistenceManager.begin();
+
+ // Widget
+ IWidget widget = persistenceManager.newInstance(IWidget.class);
+ widget.setHeight(350);
+ widget.setWidth(500);
+ widget.setGuid("http://notsupported");
+ widget.setWidgetAuthor("Paul Sharples");
+ widget.setWidgetAuthorEmail("p.sharples@bolton.ac.uk");
+ widget.setWidgetAuthorHref("http://iec.bolton.ac.uk");
+ widget.setVersion("v1.0");
+ IName widgetName = persistenceManager.newInstance(IName.class);
+ widgetName.setName("Unsupported widget widget");
+ widgetName.setShortName("Unsupported");
+ widget.getNames().add(widgetName);
+ IDescription widgetDescription = persistenceManager.newInstance(IDescription.class);
+ widgetDescription.setContent("This widget is a placeholder for when no corresponding widget is found for a given type");
+ widget.getDescriptions().add(widgetDescription);
+ IStartFile widgetStartFile = persistenceManager.newInstance(IStartFile.class);
+ widgetStartFile.setUrl("/wookie/wservices/notsupported/index.htm");
+ widget.getStartFiles().add(widgetStartFile);
+ IStartFile widgetBUStartFile = persistenceManager.newInstance(IStartFile.class);
+ widgetBUStartFile.setUrl("/wookie/wservices/notsupported/locales/bu/index.htm");
+ widgetBUStartFile.setLang("bu");
+ widget.getStartFiles().add(widgetBUStartFile);
+ IStartFile widgetFRStartFile = persistenceManager.newInstance(IStartFile.class);
+ widgetFRStartFile.setUrl("/wookie/wservices/notsupported/locales/fr/index.htm");
+ widgetFRStartFile.setLang("fr");
+ widget.getStartFiles().add(widgetFRStartFile);
+ IStartFile widgetENStartFile = persistenceManager.newInstance(IStartFile.class);
+ widgetENStartFile.setUrl("/wookie/wservices/notsupported/locales/en/index.htm");
+ widgetENStartFile.setLang("en");
+ widget.getStartFiles().add(widgetENStartFile);
+ IWidgetType widgetType = persistenceManager.newInstance(IWidgetType.class);
+ widgetType.setWidgetContext("unsupported");
+ widget.getWidgetTypes().add(widgetType);
+ IWidgetIcon widgetIcon = persistenceManager.newInstance(IWidgetIcon.class);
+ widgetIcon.setSrc("/wookie/shared/images/defaultwidget.png");
+ widgetIcon.setHeight(80);
+ widgetIcon.setWidth(80);
+ widgetIcon.setLang("en");
+ widget.getWidgetIcons().add(widgetIcon);
+ persistenceManager.save(widget);
+
+ // WidgetDefault
+ IWidgetDefault widgetDefault = persistenceManager.newInstance(IWidgetDefault.class);
+ widgetDefault.setWidget(widget);
+ widgetDefault.setWidgetContext("unsupported");
+ persistenceManager.save(widgetDefault);
+
+ // WidgetService
+ IWidgetService unsupportedWidgetService = persistenceManager.newInstance(IWidgetService.class);
+ unsupportedWidgetService.setServiceName("unsupported");
+ persistenceManager.save(unsupportedWidgetService);
+ IWidgetService chatWidgetService = persistenceManager.newInstance(IWidgetService.class);
+ chatWidgetService.setServiceName("chat");
+ persistenceManager.save(chatWidgetService);
+ IWidgetService gamesWidgetService = persistenceManager.newInstance(IWidgetService.class);
+ gamesWidgetService.setServiceName("games");
+ persistenceManager.save(gamesWidgetService);
+ IWidgetService votingWidgetService = persistenceManager.newInstance(IWidgetService.class);
+ votingWidgetService.setServiceName("voting");
+ persistenceManager.save(votingWidgetService);
+ IWidgetService weatherWidgetService = persistenceManager.newInstance(IWidgetService.class);
+ weatherWidgetService.setServiceName("weather");
+ persistenceManager.save(weatherWidgetService);
+
+ // Whitelist
+ IWhitelist localhostIPAddrWhitelist = persistenceManager.newInstance(IWhitelist.class);
+ localhostIPAddrWhitelist.setfUrl("http://127.0.0.1");
+ persistenceManager.save(localhostIPAddrWhitelist);
+ IWhitelist localhostWhitelist = persistenceManager.newInstance(IWhitelist.class);
+ localhostWhitelist.setfUrl("http://localhost");
+ persistenceManager.save(localhostWhitelist);
+ IWhitelist wookieServerWhitelist = persistenceManager.newInstance(IWhitelist.class);
+ wookieServerWhitelist.setfUrl("http://incubator.apache.org/wookie");
+ persistenceManager.save(wookieServerWhitelist);
+
+ // ApiKey
+ IApiKey apiKey = persistenceManager.newInstance(IApiKey.class);
+ apiKey.setValue("TEST");
+ apiKey.setEmail("test@127.0.0.1");
+ persistenceManager.save(apiKey);
+
+ // commit persistence manager transaction
+ persistenceManager.commit();
+ }
+ finally
+ {
+ // close persistence manager transaction
+ closePersistenceManager();
+ }
+ }
+
+ logger.info("Initialized with "+className);
+ }
+ else
+ {
+ throw new RuntimeException("PersistenceManagerFactory already initialized");
+ }
+ }
+
+ /**
+ * Get persistence manager associated with current thread,
+ * allocate new persistence manager if required.
+ *
+ * @return persistence manager
+ */
+ public static IPersistenceManager getPersistenceManager()
+ {
+ if (initialized)
+ {
+ // get persistence manager associated with current thread or
+ // create new persistence manager instance for current thread
+ IPersistenceManager persistenceManager = threadPersistenceManager.get();
+ if (!persistenceManagerClass.isInstance(persistenceManager))
+ {
+ try
+ {
+ persistenceManager = (IPersistenceManager)persistenceManagerClass.newInstance();
+ threadPersistenceManager.set(persistenceManager);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Unable to instantiate PersistenceManager: "+e, e);
+ }
+ }
+ return persistenceManager;
+ }
+ else
+ {
+ throw new RuntimeException("PersistenceManagerFactory not initialized");
+ }
+ }
+
+ /**
+ * Close and remove persistence manager associated with current
+ * thread.
+ */
+ public static void closePersistenceManager()
+ {
+ if (initialized)
+ {
+ // close and remove persistence manager associated with current thread
+ IPersistenceManager persistenceManager = threadPersistenceManager.get();
+ if (persistenceManager != null)
+ {
+ persistenceManager.close();
+ threadPersistenceManager.remove();
+ }
+ else
+ {
+ throw new RuntimeException("PersistenceManager already closed or not allocated for thread");
+ }
+ }
+ else
+ {
+ throw new RuntimeException("PersistenceManagerFactory not initialized");
+ }
+ }
+
+ /**
+ * Terminate factory.
+ */
+ public static void terminate()
+ {
+ if (initialized)
+ {
+ initialized = false;
+
+ // terminate persistence manager implementation
+ try
+ {
+ Method terminateMethod = persistenceManagerClass.getMethod("terminate", (Class [])null);
+ terminateMethod.invoke(null, (Object [])null);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Unable to terminate PersistenceManager class: "+e, e);
+ }
+
+ logger.info("Terminated");
+ }
+ else
+ {
+ throw new RuntimeException("PersistenceManagerFactory not initialized");
+ }
+ }
+}
Modified: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/ParticipantsController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/ParticipantsController.java?rev=955236&r1=955235&r2=955236&view=diff
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/ParticipantsController.java (original)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/ParticipantsController.java Wed Jun 16 14:16:36 2010
@@ -24,8 +24,10 @@ import javax.servlet.http.HttpServletRes
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
-import org.apache.wookie.beans.Participant;
-import org.apache.wookie.beans.WidgetInstance;
+import org.apache.wookie.beans.IParticipant;
+import org.apache.wookie.beans.IWidgetInstance;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.exceptions.InvalidParametersException;
import org.apache.wookie.exceptions.ResourceDuplicationException;
import org.apache.wookie.exceptions.ResourceNotFoundException;
@@ -72,9 +74,10 @@ public class ParticipantsController exte
@Override
public void show(String resourceId,HttpServletRequest request, HttpServletResponse response) throws UnauthorizedAccessException,ResourceNotFoundException, IOException{
if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null) throw new ResourceNotFoundException();
- Participant[] participants = Participant.getParticipants(instance);
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IParticipant[] participants = persistenceManager.findParticipants(instance);
returnXml(ParticipantHelper.createXMLParticipantsDocument(participants), response);
}
@@ -89,18 +92,18 @@ public class ParticipantsController exte
UnauthorizedAccessException {
if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null) throw new InvalidParametersException();
HttpSession session = request.getSession(true);
- String participant_id = request.getParameter("participant_id"); //$NON-NLS-1$
- String participant_display_name = request.getParameter("participant_display_name"); //$NON-NLS-1$
- String participant_thumbnail_url = request.getParameter("participant_thumbnail_url"); //$NON-NLS-1$
+ String participantId = request.getParameter("participant_id"); //$NON-NLS-1$
+ String participantDisplayName = request.getParameter("participant_display_name"); //$NON-NLS-1$
+ String participantThumbnailUrl = request.getParameter("participant_thumbnail_url"); //$NON-NLS-1$
// Check required params
- if (participant_id == null || participant_id.trim().equals("")) throw new InvalidParametersException();
+ if (participantId == null || participantId.trim().equals("")) throw new InvalidParametersException();
- if (addParticipantToWidgetInstance(instance, participant_id, participant_display_name, participant_thumbnail_url)){
+ if (addParticipantToWidgetInstance(instance, participantId, participantDisplayName, participantThumbnailUrl)){
Notifier.notifyWidgets(session, instance, Notifier.PARTICIPANTS_UPDATED);
return true;
} else {
@@ -119,11 +122,11 @@ public class ParticipantsController exte
throws ResourceNotFoundException, UnauthorizedAccessException,
InvalidParametersException {
if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null) throw new InvalidParametersException();
HttpSession session = request.getSession(true);
- String participant_id = request.getParameter("participant_id"); //$NON-NLS-1$
- if(removeParticipantFromWidgetInstance(instance, participant_id)){
+ String participantId = request.getParameter("participant_id"); //$NON-NLS-1$
+ if(removeParticipantFromWidgetInstance(instance, participantId)){
Notifier.notifyWidgets(session, instance, Notifier.PARTICIPANTS_UPDATED);
return true;
}else{
@@ -139,25 +142,26 @@ public class ParticipantsController exte
* @param participantThumbnailUrl the thumbnail url property of the participant to add
* @return true if the participant was successfully added, otherwise false
*/
- public static boolean addParticipantToWidgetInstance(WidgetInstance instance,
+ public static boolean addParticipantToWidgetInstance(IWidgetInstance instance,
String participantId, String participantDisplayName,
String participantThumbnailUrl) {
// Does participant already exist?
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
Map<String, Object> map = new HashMap<String, Object>();
map.put("sharedDataKey", instance.getSharedDataKey());//$NON-NLS-1$
- map.put("widgetGuid", instance.getWidget().getGuid());//$NON-NLS-1$
- map.put("participant_id", participantId);//$NON-NLS-1$
- if (Participant.findByValues(map).length != 0) return false;
+ map.put("widget", instance.getWidget());//$NON-NLS-1$
+ map.put("participantId", participantId);//$NON-NLS-1$
+ if (persistenceManager.findByValues(IParticipant.class, map).length != 0) return false;
// Add participant
- Participant participant = new Participant();
- participant.setParticipant_id(participantId);
- participant.setParticipant_display_name(participantDisplayName);
- participant.setParticipant_thumbnail_url(participantThumbnailUrl);
+ IParticipant participant = persistenceManager.newInstance(IParticipant.class);
+ participant.setParticipantId(participantId);
+ participant.setParticipantDisplayName(participantDisplayName);
+ participant.setParticipantThumbnailUrl(participantThumbnailUrl);
participant.setSharedDataKey(instance.getSharedDataKey());
- participant.setWidgetGuid(instance.getWidget().getGuid());
- participant.save();
+ participant.setWidget(instance.getWidget());
+ persistenceManager.save(participant);
return true;
}
@@ -167,18 +171,19 @@ public class ParticipantsController exte
* @param participantId the id property of the participant
* @return true if the participant is successfully removed, otherwise false
*/
- private static boolean removeParticipantFromWidgetInstance(WidgetInstance instance,
+ private static boolean removeParticipantFromWidgetInstance(IWidgetInstance instance,
String participantId) {
- Participant[] participants;
+ IParticipant[] participants;
// Does participant exist?
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
Map<String, Object> map = new HashMap<String, Object>();
map.put("sharedDataKey", instance.getSharedDataKey());//$NON-NLS-1$
- map.put("widgetGuid", instance.getWidget().getGuid());//$NON-NLS-1$
- map.put("participant_id", participantId);//$NON-NLS-1$
- participants = Participant.findByValues(map);
+ map.put("widget", instance.getWidget());//$NON-NLS-1$
+ map.put("participantId", participantId);//$NON-NLS-1$
+ participants = persistenceManager.findByValues(IParticipant.class, map);
if (participants.length != 1) return false;
// Remove participant
- Participant.delete(participants[0]);
+ persistenceManager.delete(participants[0]);
return true;
}
}
\ No newline at end of file
Modified: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/PropertiesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/PropertiesController.java?rev=955236&r1=955235&r2=955236&view=diff
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/PropertiesController.java (original)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/PropertiesController.java Wed Jun 16 14:16:36 2010
@@ -22,9 +22,12 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
-import org.apache.wookie.beans.Preference;
-import org.apache.wookie.beans.SharedData;
-import org.apache.wookie.beans.WidgetInstance;
+import org.apache.wookie.beans.IPreference;
+import org.apache.wookie.beans.ISharedData;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetInstance;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.exceptions.InvalidParametersException;
import org.apache.wookie.exceptions.ResourceDuplicationException;
import org.apache.wookie.exceptions.ResourceNotFoundException;
@@ -79,16 +82,16 @@ public class PropertiesController extend
HttpServletResponse response) throws ResourceNotFoundException,
UnauthorizedAccessException, IOException {
if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null) throw new ResourceNotFoundException();
String name = request.getParameter("propertyname"); //$NON-NLS-1$
if (name == null || name.trim().equals("")) throw new ResourceNotFoundException();
String value = null;
// Note that preferences and shared data keys may be the same!
// We let the shared data values override.
- Preference pref = Preference.findPreferenceForInstance(instance, name);
+ IPreference pref = instance.getPreference(name);
if (pref != null) value = pref.getDvalue();
- SharedData data = SharedData.findSharedDataForInstance(instance, name);
+ ISharedData data = instance.getSharedData(name);
if (data != null) value = data.getDvalue();
if (value == null) throw new ResourceNotFoundException();
PrintWriter out = response.getWriter();
@@ -101,7 +104,7 @@ public class PropertiesController extend
if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
if (request.getParameter("value") != null) throw new InvalidParametersException();//$NON-NLS-1$
String name = request.getParameter("propertyname"); //$NON-NLS-1$
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null) throw new InvalidParametersException();
if (name == null || name.trim().equals("")) throw new InvalidParametersException();
@@ -142,7 +145,7 @@ public class PropertiesController extend
if (!WidgetKeyManager.isValidRequest(request)) throw new UnauthorizedAccessException();
String name = request.getParameter("propertyname"); //$NON-NLS-1$
String value = request.getParameter("propertyvalue"); //$NON-NLS-1$
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null) throw new InvalidParametersException();
if (name == null || name.trim().equals("")) throw new InvalidParametersException();
@@ -160,30 +163,29 @@ public class PropertiesController extend
* @param name
* @param value
*/
- public static boolean updatePreference(WidgetInstance widgetInstance, String name, String value){
+ public static boolean updatePreference(IWidgetInstance widgetInstance, String name, String value){
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
boolean found=false;
- for (Preference preference : Preference.findPreferencesForInstance(widgetInstance)){
- if(preference.getDkey().equals(name)){
- // if the value is null we need to remove the tuple
- if(value==null || value.equalsIgnoreCase("null")){
- preference.delete();
- }
- else{
- preference.setDvalue(value);
- preference.save();
- }
- found=true;
- }
+ IPreference preference = widgetInstance.getPreference(name);
+ if (preference != null)
+ {
+ if(value==null || value.equalsIgnoreCase("null")){
+ widgetInstance.getPreferences().remove(preference);
+ }
+ else{
+ preference.setDvalue(value);
+ }
+ found=true;
}
if(!found){
if (value != null){
- Preference pref = new Preference();
- pref.setWidgetInstance(widgetInstance);
- pref.setDkey(name);
- pref.setDvalue(value);
- pref.save();
+ preference = persistenceManager.newInstance(IPreference.class);
+ preference.setDkey(name);
+ preference.setDvalue(value);
+ widgetInstance.getPreferences().add(preference);
}
}
+ persistenceManager.save(widgetInstance);
return found;
}
@@ -195,38 +197,37 @@ public class PropertiesController extend
* @param append
* @return
*/
- public synchronized static boolean updateSharedDataEntry(WidgetInstance widgetInstance, String name, String value, boolean append){
- boolean found=false;
- for (SharedData sharedData : SharedData.findSharedDataForInstance(widgetInstance)){
- if(sharedData.getDkey().equals(name)){
- // if the value is null we need to remove the tuple
- if(value==null || value.equalsIgnoreCase("null")){
- sharedData.delete();
- }
- else{
- if(append){
- sharedData.setDvalue(sharedData.getDvalue() + value);
- }
- else{
- sharedData.setDvalue(value);
- }
- sharedData.save();
- }
- found=true;
- }
- }
+ public synchronized static boolean updateSharedDataEntry(IWidgetInstance widgetInstance, String name, String value, boolean append){
+ IWidget widget = widgetInstance.getWidget();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ boolean found=false;
+ ISharedData sharedData = widget.getSharedData(widgetInstance.getSharedDataKey(), name);
+ if (sharedData != null)
+ {
+ if(value==null || value.equalsIgnoreCase("null")){
+ widget.getSharedData().remove(sharedData);
+ }
+ else{
+ if(append){
+ sharedData.setDvalue(sharedData.getDvalue() + value);
+ }
+ else{
+ sharedData.setDvalue(value);
+ }
+ }
+ found=true;
+ }
if(!found){
if(value!=null){
String sharedDataKey = widgetInstance.getSharedDataKey();
- SharedData sharedData= new SharedData();
- sharedData.setWidgetGuid(widgetInstance.getWidget().getGuid());
+ sharedData = persistenceManager.newInstance(ISharedData.class);
sharedData.setSharedDataKey(sharedDataKey);
sharedData.setDkey(name);
sharedData.setDvalue(value);
- sharedData.save();
}
}
- return found;
+ persistenceManager.save(widget);
+ return found;
}
/// Utilities
Modified: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java?rev=955236&r1=955235&r2=955236&view=diff
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java (original)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetAccessRequestPolicyController.java Wed Jun 16 14:16:36 2010
@@ -19,8 +19,10 @@ import java.net.URI;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.wookie.beans.AccessRequest;
-import org.apache.wookie.beans.Widget;
+import org.apache.wookie.beans.IAccessRequest;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.exceptions.InvalidParametersException;
import org.apache.wookie.exceptions.ResourceDuplicationException;
import org.apache.wookie.exceptions.ResourceNotFoundException;
@@ -40,16 +42,17 @@ public class WidgetAccessRequestPolicyCo
HttpServletResponse response) throws UnauthorizedAccessException,
IOException {
- AccessRequest[] accessRequests = null;
+ IAccessRequest[] accessRequests = null;
String widgetId = request.getParameter("widgetId");
- if (widgetId == null){
- accessRequests = AccessRequest.findAll();
- }
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ if (widgetId == null){
+ accessRequests = persistenceManager.findAll(IAccessRequest.class);
+ }
if (widgetId != null && widgetId.trim().length()>0){
// Filter by widgetId
- Widget widget = Widget.findById(widgetId);
- if (widget != null) accessRequests = AccessRequest.findByValue("widget",widget);
+ IWidget widget = persistenceManager.findById(IWidget.class, widgetId);
+ if (widget != null) accessRequests = persistenceManager.findByValue(IAccessRequest.class, "widget", widget);
}
switch (format(request)) {
@@ -62,12 +65,13 @@ public class WidgetAccessRequestPolicyCo
protected void show(String resourceId, HttpServletRequest request,
HttpServletResponse response) throws ResourceNotFoundException,
UnauthorizedAccessException, IOException {
- AccessRequest ar = AccessRequest.findById(Integer.valueOf(resourceId));
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IAccessRequest ar = persistenceManager.findById(IAccessRequest.class, resourceId);
if (ar == null) throw new ResourceNotFoundException();
switch (format(request)) {
- case XML: returnXml(AccessRequestHelper.createXMLAccessRequestDocument(new AccessRequest[]{ar}),response);break;
- case HTML: returnHtml(AccessRequestHelper.createAccessRequestHTMLTable(new AccessRequest[]{ar}),response);break;
+ case XML: returnXml(AccessRequestHelper.createXMLAccessRequestDocument(new IAccessRequest[]{ar}),response);break;
+ case HTML: returnHtml(AccessRequestHelper.createAccessRequestHTMLTable(new IAccessRequest[]{ar}),response);break;
}
}
@@ -75,13 +79,14 @@ public class WidgetAccessRequestPolicyCo
protected void update(String resourceId, HttpServletRequest request)
throws ResourceNotFoundException, InvalidParametersException,
UnauthorizedAccessException {
- AccessRequest ar = AccessRequest.findById(Integer.valueOf(resourceId));
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IAccessRequest ar = persistenceManager.findById(IAccessRequest.class, resourceId);
if (ar == null) throw new ResourceNotFoundException();
String granted = request.getParameter("granted");
if (granted == null) throw new InvalidParametersException();
if (!granted.equals("true") && !granted.equals("false")) throw new InvalidParametersException();
- if (granted.equals("true")) grantAccess(ar);
- if (granted.equals("false")) revokeAccess(ar);
+ if (granted.equals("true")) grantAccess(persistenceManager, ar);
+ if (granted.equals("false")) revokeAccess(persistenceManager, ar);
}
@Override
@@ -101,34 +106,36 @@ public class WidgetAccessRequestPolicyCo
String subdomains = request.getParameter("subdomains");
String widgetId = request.getParameter("widgetId");
- Widget widget = Widget.findById(Integer.valueOf(widgetId));
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IWidget widget = persistenceManager.findById(IWidget.class, widgetId);
if (widget == null) throw new InvalidParametersException();
- AccessRequest ar = new AccessRequest();
+ IAccessRequest ar = persistenceManager.newInstance(IAccessRequest.class);
ar.setOrigin(origin);
if (subdomains.equals("true")) ar.setSubdomains(true);
ar.setGranted(false);
ar.setWidget(widget);
- return ar.save();
+ return persistenceManager.save(ar);
}
@Override
protected boolean remove(String resourceId, HttpServletRequest request)
throws ResourceNotFoundException, UnauthorizedAccessException,
InvalidParametersException {
- AccessRequest ar = AccessRequest.findById(Integer.valueOf(resourceId));
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IAccessRequest ar = persistenceManager.findById(IAccessRequest.class, resourceId);
if (ar == null) throw new ResourceNotFoundException();
- return ar.delete();
+ return persistenceManager.delete(ar);
}
- private void grantAccess(AccessRequest ar){
+ private void grantAccess(IPersistenceManager persistenceManager, IAccessRequest ar){
ar.setGranted(true);
- ar.save();
+ persistenceManager.save(ar);
}
- private void revokeAccess(AccessRequest ar){
+ private void revokeAccess(IPersistenceManager persistenceManager, IAccessRequest ar){
ar.setGranted(false);
- ar.save();
+ persistenceManager.save(ar);
}
/**
Modified: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetInstancesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetInstancesController.java?rev=955236&r1=955235&r2=955236&view=diff
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetInstancesController.java (original)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetInstancesController.java Wed Jun 16 14:16:36 2010
@@ -18,6 +18,7 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Collection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -25,11 +26,15 @@ import javax.servlet.http.HttpServletRes
import javax.servlet.http.HttpSession;
import org.apache.commons.configuration.Configuration;
+import org.apache.jackrabbit.core.persistence.PersistenceManager;
import org.apache.log4j.Logger;
import org.apache.wookie.Messages;
-import org.apache.wookie.beans.SharedData;
-import org.apache.wookie.beans.StartFile;
-import org.apache.wookie.beans.WidgetInstance;
+import org.apache.wookie.beans.ISharedData;
+import org.apache.wookie.beans.IStartFile;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetInstance;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.exceptions.InvalidWidgetCallException;
import org.apache.wookie.helpers.Notifier;
import org.apache.wookie.helpers.WidgetInstanceFactory;
@@ -154,7 +159,7 @@ public class WidgetInstancesController e
public static void doStopWidget(HttpServletRequest request, HttpServletResponse response) throws IOException{
Messages localizedMessages = LocaleHandler.localizeMessages(request);
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if(instance!=null){
lockWidgetInstance(instance);
Notifier.notifyWidgets(request.getSession(), instance, Notifier.STATE_UPDATED);
@@ -166,7 +171,7 @@ public class WidgetInstancesController e
public static void doResumeWidget(HttpServletRequest request, HttpServletResponse response) throws IOException{
Messages localizedMessages = LocaleHandler.localizeMessages(request);
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if(instance!=null){
unlockWidgetInstance(instance);
Notifier.notifyWidgets(request.getSession(), instance, Notifier.STATE_UPDATED);
@@ -196,7 +201,7 @@ public class WidgetInstancesController e
checkProxy(request);
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
String locale = request.getParameter("locale");//$NON-NLS-1$
// Widget exists
@@ -212,8 +217,9 @@ public class WidgetInstancesController e
(locale != null && instance.getLang()==null) ||
(locale != null && !instance.getLang().equals(locale))
){
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
instance.setLang(locale);
- instance.save();
+ persistenceManager.save(instance);
}
response.setStatus(HttpServletResponse.SC_OK);
}
@@ -231,7 +237,7 @@ public class WidgetInstancesController e
}
public static void cloneSharedData(HttpServletRequest request, HttpServletResponse response){
- WidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
+ IWidgetInstance instance = WidgetInstancesController.findWidgetInstance(request);
if (instance == null){
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
@@ -243,7 +249,17 @@ public class WidgetInstancesController e
return;
}
String cloneKey = String.valueOf((request.getParameter("apikey")+":"+cloneSharedDataKey).hashCode());//$NON-NLS-1$
- boolean ok = SharedData.clone(sharedDataKey, instance.getWidget().getGuid(), cloneKey);
+ IWidget widget = instance.getWidget();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ for (ISharedData sharedData : widget.getSharedData(sharedDataKey))
+ {
+ ISharedData clone = persistenceManager.newInstance(ISharedData.class);
+ clone.setDkey(sharedData.getDkey());
+ clone.setDvalue(sharedData.getDvalue());
+ clone.setSharedDataKey(cloneKey);
+ widget.getSharedData().add(clone);
+ }
+ boolean ok = persistenceManager.save(widget);
if (ok){
response.setStatus(HttpServletResponse.SC_OK);
} else {
@@ -251,18 +267,20 @@ public class WidgetInstancesController e
}
}
- public synchronized static void lockWidgetInstance(WidgetInstance instance){
+ public synchronized static void lockWidgetInstance(IWidgetInstance instance){
//doLock(instance, true);
PropertiesController.updateSharedDataEntry(instance, "isLocked", "true", false);//$NON-NLS-1$ //$NON-NLS-2$
instance.setLocked(true);
- instance.save();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ persistenceManager.save(instance);
}
- public synchronized static void unlockWidgetInstance(WidgetInstance instance){
+ public synchronized static void unlockWidgetInstance(IWidgetInstance instance){
//doLock(instance, false);
PropertiesController.updateSharedDataEntry(instance, "isLocked", "false", false);//$NON-NLS-1$ //$NON-NLS-2$
instance.setLocked(false);
- instance.save();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ persistenceManager.save(instance);
}
// Utility methods
@@ -284,12 +302,13 @@ public class WidgetInstancesController e
* @return the absolute URL
* @throws IOException
*/
- protected static String getUrl(HttpServletRequest request, WidgetInstance instance) throws IOException{
+ protected static String getUrl(HttpServletRequest request, IWidgetInstance instance) throws IOException{
String url = "";
-
- StartFile sf = (StartFile) LocalizationUtils.getLocalizedElement(StartFile.findByValue("widget", instance.getWidget()), new String[]{instance.getLang()});
+
+ Collection<IStartFile> startFiles = instance.getWidget().getStartFiles();
+ IStartFile sf = (IStartFile) LocalizationUtils.getLocalizedElement(startFiles, new String[]{instance.getLang()});
// Try default locale if no appropriate localization found
- if (sf == null) sf = (StartFile) LocalizationUtils.getLocalizedElement(StartFile.findByValue("widget", instance.getWidget()), null);
+ if (sf == null) sf = (IStartFile) LocalizationUtils.getLocalizedElement(startFiles, null);
// No start file found, so throw an exception
if (sf == null) throw new IOException("No start file located for widget "+instance.getWidget().getGuid());
@@ -315,12 +334,13 @@ public class WidgetInstancesController e
* @param request
* @return
*/
- public static WidgetInstance findWidgetInstance(HttpServletRequest request){
- WidgetInstance instance;
+ public static IWidgetInstance findWidgetInstance(HttpServletRequest request){
+ IWidgetInstance instance;
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
String id_key = request.getParameter("id_key"); //$NON-NLS-1$
if (id_key != null & id_key != ""){
- instance = WidgetInstance.findByIdKey(id_key);
+ instance = persistenceManager.findWidgetInstanceByIdKey(id_key);
return instance;
}
@@ -330,9 +350,9 @@ public class WidgetInstancesController e
String serviceType = request.getParameter("servicetype"); //$NON-NLS-1$
String widgetId = request.getParameter("widgetid"); //$NON-NLS-1$
if (widgetId != null){
- instance = WidgetInstance.getWidgetInstanceById(apiKey, userId, sharedDataKey, widgetId);
+ instance = persistenceManager.findWidgetInstanceByGuid(apiKey, userId, sharedDataKey, widgetId);
} else {
- instance = WidgetInstance.getWidgetInstance(apiKey, userId, sharedDataKey, serviceType);
+ instance = persistenceManager.findWidgetInstance(apiKey, userId, sharedDataKey, serviceType);
}
return instance;
}
Modified: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetServicesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetServicesController.java?rev=955236&r1=955235&r2=955236&view=diff
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetServicesController.java (original)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetServicesController.java Wed Jun 16 14:16:36 2010
@@ -15,15 +15,17 @@
package org.apache.wookie.controller;
import java.io.IOException;
-import java.util.Set;
+import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.wookie.beans.Widget;
-import org.apache.wookie.beans.WidgetDefault;
-import org.apache.wookie.beans.WidgetService;
-import org.apache.wookie.beans.WidgetType;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetDefault;
+import org.apache.wookie.beans.IWidgetService;
+import org.apache.wookie.beans.IWidgetType;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.exceptions.InvalidParametersException;
import org.apache.wookie.exceptions.ResourceDuplicationException;
import org.apache.wookie.exceptions.ResourceNotFoundException;
@@ -55,7 +57,7 @@ public class WidgetServicesController ex
* @see org.apache.wookie.controller.Controller#show(java.lang.String, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void show(String resourceId, HttpServletRequest request, HttpServletResponse response) throws ResourceNotFoundException, IOException{
- WidgetService ws = getWidgetService(resourceId);
+ IWidgetService ws = getWidgetService(resourceId);
returnXml(WidgetServiceHelper.createXMLWidgetServiceDocument(ws, getLocalPath(request),getLocales(request)), response);
}
@@ -63,7 +65,8 @@ public class WidgetServicesController ex
* @see org.apache.wookie.controller.Controller#index(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
protected void index(HttpServletRequest request, HttpServletResponse response) throws IOException{
- WidgetService[] ws = WidgetService.findAll();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IWidgetService[] ws = persistenceManager.findAll(IWidgetService.class);
boolean defaults = (request.getParameter("defaults") != null);
returnXml(WidgetServiceHelper.createXMLWidgetServicesDocument(ws, getLocalPath(request),defaults, getLocales(request)), response);
}
@@ -84,14 +87,15 @@ public class WidgetServicesController ex
*/
public static boolean create(String resourceId) throws ResourceDuplicationException,InvalidParametersException{
if (resourceId == null || resourceId.trim().equals("")) throw new InvalidParametersException();
- WidgetService ws;
+ IWidgetService ws;
try {
ws = getWidgetService(resourceId);
throw new ResourceDuplicationException();
} catch (ResourceNotFoundException e) {
- ws = new WidgetService();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ ws = persistenceManager.newInstance(IWidgetService.class);
ws.setServiceName(resourceId);
- return ws.save();
+ return persistenceManager.save(ws);
}
}
@@ -111,28 +115,30 @@ public class WidgetServicesController ex
* @throws ResourceNotFoundException
*/
public static boolean remove(String resourceId) throws ResourceNotFoundException {
- WidgetService service = getWidgetService(resourceId);
+ IWidgetService service = getWidgetService(resourceId);
if (service == null) throw new ResourceNotFoundException();
String serviceName = service.getServiceName();
// if exists, remove from widget default table
- WidgetDefault[] widgetDefaults = WidgetDefault.findByValue("widgetContext", serviceName);
- WidgetDefault.delete(widgetDefaults);
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IWidgetDefault[] widgetDefaults = persistenceManager.findByValue(IWidgetDefault.class, "widgetContext", serviceName);
+ persistenceManager.delete(widgetDefaults);
// delete from the widget service table
- service.delete();
+ persistenceManager.delete(service);
// remove any widgetTypes for each widget that match
- Widget[] widgets = Widget.findByType(serviceName);
+ IWidget[] widgets = persistenceManager.findWidgetsByType(serviceName);
if (widgets == null||widgets.length==0) return true;
- for(Widget widget : widgets){
+ for(IWidget widget : widgets){
// remove any widget types for this widget
- Set<?> types = widget.getWidgetTypes();
- WidgetType[] widgetTypes = types.toArray(new WidgetType[types.size()]);
- for(int j=0;j<widgetTypes.length;++j){
- if(serviceName.equalsIgnoreCase(widgetTypes[j].getWidgetContext())){
- widgetTypes[j].delete();
- }
- }
+ Iterator<IWidgetType> typesIter = widget.getWidgetTypes().iterator();
+ while(typesIter.hasNext()) {
+ IWidgetType widgetType = typesIter.next();
+ if(serviceName.equalsIgnoreCase(widgetType.getWidgetContext())){
+ typesIter.remove();
+ }
+ }
+ persistenceManager.save(widget);
}
return true;
}
@@ -145,10 +151,11 @@ public class WidgetServicesController ex
throws ResourceNotFoundException,InvalidParametersException {
String name = request.getParameter("name");
if (name == null || name.trim().equals("")) throw new InvalidParametersException();
- WidgetService ws = getWidgetService(resourceId);
+ IWidgetService ws = getWidgetService(resourceId);
if (ws == null) throw new ResourceNotFoundException();
ws.setServiceName(name);
- ws.save();
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ persistenceManager.save(ws);
}
// Utilities
@@ -159,13 +166,12 @@ public class WidgetServicesController ex
* @param resourceId
* @return
*/
- private static WidgetService getWidgetService(String resourceId) throws ResourceNotFoundException{
+ private static IWidgetService getWidgetService(String resourceId) throws ResourceNotFoundException{
if (resourceId == null) throw new ResourceNotFoundException();
- WidgetService ws = null;
- if (isAnInteger(resourceId)){
- ws = WidgetService.findById(Integer.valueOf(resourceId));
- } else {
- WidgetService[] wsa = WidgetService.findByValue("serviceName", resourceId);
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IWidgetService ws = persistenceManager.findById(IWidgetService.class, resourceId);
+ if (ws == null) {
+ IWidgetService[] wsa = persistenceManager.findByValue(IWidgetService.class, "serviceName", resourceId);
if (wsa != null && wsa.length == 1) ws = wsa[0];
}
if (ws == null) throw new ResourceNotFoundException();
Modified: incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetsController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetsController.java?rev=955236&r1=955235&r2=955236&view=diff
==============================================================================
--- incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetsController.java (original)
+++ incubator/wookie/branches/pluggablepersistence/src/org/apache/wookie/controller/WidgetsController.java Wed Jun 16 14:16:36 2010
@@ -21,8 +21,10 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.wookie.beans.Widget;
-import org.apache.wookie.beans.WidgetDefault;
+import org.apache.wookie.beans.IWidget;
+import org.apache.wookie.beans.IWidgetDefault;
+import org.apache.wookie.beans.util.IPersistenceManager;
+import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.exceptions.ResourceNotFoundException;
import org.apache.wookie.helpers.WidgetHelper;
@@ -68,11 +70,12 @@ public class WidgetsController extends C
*/
protected void show(String resourceId, HttpServletRequest request,
HttpServletResponse response) throws ResourceNotFoundException, IOException {
- if (!isAnInteger(resourceId)){
+ if ((resourceId != null) && (resourceId.length() > 0)){
index(resourceId, request, response);
return;
}
- Widget widget = Widget.findById(Integer.valueOf(resourceId));
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
+ IWidget widget = persistenceManager.findById(IWidget.class, resourceId);
if (widget == null) throw new ResourceNotFoundException();
returnXml(WidgetHelper.createXMLWidgetsDocument(widget, getLocalPath(request), getLocales(request)),response);
}
@@ -96,31 +99,32 @@ public class WidgetsController extends C
*/
private void index(String resourceId, HttpServletRequest request,
HttpServletResponse response) throws IOException {
- Widget widget = null;
- Widget[] widgets;
+ IWidget widget = null;
+ IWidget[] widgets;
// If the request has the parameter ?all, return all widgets.
// If the request contains a String resource identifier
// such as "/chat", return all matching widgets
+ IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
if (request.getParameter("all") != null
|| (resourceId != null && !resourceId.equals(""))) {
if (resourceId != null && !resourceId.equals("")) {
- widgets = Widget.findByType(resourceId);
+ widgets = persistenceManager.findWidgetsByType(resourceId);
} else {
- widgets = Widget.findAll();
+ widgets = persistenceManager.findAll(IWidget.class);
}
// Otherwise, return default widgets for the defined services. In
// future we may want
// to move this into the Services controller.
} else {
- ArrayList<Widget> widgetsarr = new ArrayList<Widget>();
- for (WidgetDefault widgetDefault : WidgetDefault.findAll()) {
- widget = Widget.findById(widgetDefault.getWidgetId());
- if (widget.getId() != 1) {
+ ArrayList<IWidget> widgetsarr = new ArrayList<IWidget>();
+ for (IWidgetDefault widgetDefault : persistenceManager.findAll(IWidgetDefault.class)) {
+ widget = widgetDefault.getWidget();
+ if (!widget.getGuid().equals("http://notsupported")) {
widgetsarr.add(widget);
}
}
- widgets = (Widget[])widgetsarr.toArray(new Widget[widgetsarr.size()]);
+ widgets = (IWidget[])widgetsarr.toArray(new IWidget[widgetsarr.size()]);
}
returnXml(WidgetHelper.createXMLWidgetsDocument(widgets, getLocalPath(request), getLocales(request)),response);
}