taylor 2003/12/26 08:24:27
Modified: . .classpath
content-server project.xml
cps/test/rewriter test-001-output.html
portal/src/java/org/apache/jetspeed/capability
CapabilityMap.java CapabilityService.java
Client.java
portal/src/java/org/apache/jetspeed/capability/impl
CapabilityMapImpl.java CapabilityServiceImpl.java
ClientImpl.java
portal/src/sql/hsql create-db.sql populate-db-default.sql
portal/src/test/org/apache/jetspeed/capability
TestCapability.java
portal/src/webapp/WEB-INF/conf/ojb repository_jetspeed.xml
portal/src/webapp/WEB-INF/db/hsql Registry.script
Log:
patch from Roger Ruttimann for Capability implementation.
- define a default mimetype in the model for each Client
improving over J1 impl which simply returned the 1st element in the list
- Unit tests for all supported clients, mimetypes and mediatypes
- support for Opera 7 client
Submitted by: [EMAIL PROTECTED]
Reviewed by: [EMAIL PROTECTED]
Revision Changes Path
1.11 +2 -0 jakarta-jetspeed-2/.classpath
Index: .classpath
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/.classpath,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- .classpath 9 Dec 2003 00:24:38 -0000 1.10
+++ .classpath 26 Dec 2003 16:24:27 -0000 1.11
@@ -8,6 +8,8 @@
<classpathentry excluding="**/CVS/*" kind="src" path="cps/src/test"/>
<classpathentry excluding="**/CVS*" kind="src" path="plugin/src/java"/>
<classpathentry kind="src" path="portal/src/test"/>
+ <classpathentry excluding="**/CVS*" kind="src" path="cornerstone/src/java"/>
+ <classpathentry excluding="**/CVS*" kind="src"
path="cornerstone-demo/src/java"/>
<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry exported="true" kind="var"
path="MAVEN_REPO/jdom/jars/jdom-b8.jar"/>
<classpathentry exported="true" kind="var"
path="MAVEN_REPO/commons-betwixt/jars/commons-betwixt-1.0-beta-1.jar"/>
1.2 +1 -1 jakarta-jetspeed-2/content-server/project.xml
Index: project.xml
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/content-server/project.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- project.xml 24 Dec 2003 18:01:55 -0000 1.1
+++ project.xml 26 Dec 2003 16:24:27 -0000 1.2
@@ -110,7 +110,7 @@
<war.bundle.jar>false</war.bundle.jar>
</properties>
</dependency>
- <dependencies/>
+ </dependencies>
<build>
<nagEmailAddress>[EMAIL PROTECTED]</nagEmailAddress>
1.10 +6 -6 jakarta-jetspeed-2/cps/test/rewriter/test-001-output.html
Index: test-001-output.html
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/cps/test/rewriter/test-001-output.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- test-001-output.html 20 Nov 2003 20:26:09 -0000 1.9
+++ test-001-output.html 26 Dec 2003 16:24:27 -0000 1.10
@@ -1,10 +1,10 @@
<p>
This is a test</p>
-<a name="1" target="_BLANK" href="http://www.bluesunrise.com/suffix">keep this</a>
- <a name="2" target="_BLANK"
href="http://www.rewriter.com/stuff/junk/stuffedjunk.html/suffix">junk</a>
- <a name="3" target="_BLANK"
href="http://www.rewriter.com/stuff/junk/stuffedjunk.html/suffix">junk2</a>
- <a name="4" href="javascript:whatever()">script</a>
- <a name="5" href="mailto:[EMAIL PROTECTED]">script</a>
- <a name="6" href="#INTERNAL">internal</a>
+<a href="http://www.bluesunrise.com/suffix" target="_BLANK" name="1">keep this</a>
+ <a href="http://www.rewriter.com/stuff/junk/stuffedjunk.html/suffix"
target="_BLANK" name="2">junk</a>
+ <a href="http://www.rewriter.com/stuff/junk/stuffedjunk.html/suffix"
target="_BLANK" name="3">junk2</a>
+ <a href="javascript:whatever()" name="4">script</a>
+ <a href="mailto:[EMAIL PROTECTED]" name="5">script</a>
+ <a href="#INTERNAL" name="6">internal</a>
1.4 +9 -3
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/CapabilityMap.java
Index: CapabilityMap.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/CapabilityMap.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- CapabilityMap.java 22 Dec 2003 02:18:22 -0000 1.3
+++ CapabilityMap.java 26 Dec 2003 16:24:27 -0000 1.4
@@ -112,6 +112,12 @@
public MediaType getPreferredMediaType();
/**
+ * Sets the preferred MediaType for this CapabilityMap
+ * @param MediaTypeEntry
+ */
+ public void setPreferredMediaType(MediaType type);
+
+ /**
* Returns an ordered list of supported media-types, from most preferred
* to least preferred
*/
@@ -143,9 +149,9 @@
/**
* Get the mime types that this CapabilityMap supports.
- * @return Array of Mimetypes
+ * @return Returns an Iterator over the MimeType map
*/
- public MimeType[] getMimeTypes();
+ public Iterator getMimeTypes();
/**
* @param MimeType
1.3 +10 -3
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/CapabilityService.java
Index: CapabilityService.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/CapabilityService.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CapabilityService.java 22 Dec 2003 02:18:22 -0000 1.2
+++ CapabilityService.java 26 Dec 2003 16:24:27 -0000 1.3
@@ -104,7 +104,7 @@
* TODO: Roger, why is this on the public interface. It seems to be impl
specific
*/
void deleteCapabilityMapCache();
-
+
/**
* Given a media type string, look up the corresponding media type object.
*
@@ -112,5 +112,12 @@
* @return The found media type object or if not found, null.
*/
MediaType getMediaType(String mediaType);
-
+
+ /**
+ * Given a Mimetype string lookup the corresponding media type object
+ * @param mimeTypeName to use for lookup
+ * @return MediaTypeEntry that matches the lookup in the MEDIATYPE_TO_MIMETYPE
table
+ */
+ public MediaType getMediaTypeForMimeType(String mimeTypeName);
+
}
1.3 +13 -1
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/Client.java
Index: Client.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/Client.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Client.java 22 Dec 2003 02:18:22 -0000 1.2
+++ Client.java 26 Dec 2003 16:24:27 -0000 1.3
@@ -172,7 +172,19 @@
/**
* Assigns a list of capabilities
* @param capabilities
- */
+ */
public void setCapabilities(Collection capabilities);
+
+ /**
+ * getPreferredMimeTypeId
+ * @return mimeTypeId
+ */
+ public int getPreferredMimeTypeId();
+
+ /**
+ * setPreferredMimeTypeId
+ * @param mimeTypeId to be set as preferred mimeType
+ */
+ public void setPreferredMimeTypeId(int mimeTypeId);
}
1.3 +25 -16
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/CapabilityMapImpl.java
Index: CapabilityMapImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/CapabilityMapImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CapabilityMapImpl.java 22 Dec 2003 02:18:22 -0000 1.2
+++ CapabilityMapImpl.java 26 Dec 2003 16:24:27 -0000 1.3
@@ -79,6 +79,7 @@
// supported Capabilities for Agent
private Map mediaTypeMap = new HashMap(); // supported MediaTypes for Agent
private Client client; // client for Agent
+ private MediaType preferredMediaType; // Preferred MediaType for client.
/**
Sets the client for the CapabilityMap
@@ -125,15 +126,29 @@
*/
public MimeType getPreferredType()
{
- // Return first entry
+ // Return the value that matches the preferredMimeType defined in the Client
+ int prefMimeTypeId = this.client.getPreferredMimeTypeId();
+ MimeType mt = null;
+
Iterator e = this.mimeTypeMap.values().iterator();
- if (e.hasNext())
- {
- return (MimeType) e.next();
- } else
+ while (e.hasNext())
{
- return null; // TODO: NEVER return null
+ mt = (MimeType) e.next();
+ if (mt.getMimetypeId() == prefMimeTypeId)
+ return mt;
}
+
+ // Should never reach this point. A preferred value needs to be set
+ return null; // TODO: NEVER RETURN NULL
+ }
+
+ /**
+ * Sets the preferred MediaType for this CapabilityMap
+ * @param MediaTypeEntry
+ */
+ public void setPreferredMediaType(MediaType type)
+ {
+ this.preferredMediaType = type;
}
/**
@@ -141,13 +156,7 @@
*/
public MediaType getPreferredMediaType()
{
- // Return first entry
- Iterator e = this.mediaTypeMap.values().iterator();
- if (e.hasNext())
- {
- return (MediaType) e.next();
- }
- return null; // TODO: NEVER RETURN NULL
+ return this.preferredMediaType;
}
/**
@@ -211,9 +220,9 @@
/**
Get the mime types that this CapabilityMap supports.
*/
- public MimeType[] getMimeTypes()
+ public Iterator getMimeTypes()
{
- return null;
+ return mimeTypeMap.values().iterator();
}
/**
1.3 +46 -10
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/CapabilityServiceImpl.java
Index: CapabilityServiceImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/CapabilityServiceImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CapabilityServiceImpl.java 22 Dec 2003 02:18:22 -0000 1.2
+++ CapabilityServiceImpl.java 26 Dec 2003 16:24:27 -0000 1.3
@@ -250,6 +250,14 @@
map.addMediaType((MediaType) media.next());
}
+ //Set preferred Mimetype
+ MimeType mimeType = map.getPreferredType();
+
+ MediaType mtEntry =
+ getMediaTypeForMimeType(map.getPreferredType().getName());
+
+ map.setPreferredMediaType(mtEntry);
+
// Add map to cache
capabilityMapCache.put(userAgent, map);
@@ -359,7 +367,7 @@
while (mimetypes.hasNext())
{
MimeType mt = (MimeType) mimetypes.next();
-
+
// Add mimetype to query
// Note: mimetypes is a member of MediaTypeImpl
// criteria.addEqualTo("mimetypes.name", mt.getName());
@@ -368,12 +376,13 @@
}
criteria.addIn("mimetypes.name", temp);
- Collection co = plugin.getCollectionByQuery(
- mediaTypeClass,
- plugin.generateQuery(mediaTypeClass, criteria));
-
+ Collection co =
+ plugin.getCollectionByQuery(
+ mediaTypeClass,
+ plugin.generateQuery(mediaTypeClass, criteria));
+
if (co.isEmpty())
- {
+ {
System.out.println("collection is empty");
MediaType mt = getMediaType("html");
Vector v = new Vector();
@@ -381,8 +390,8 @@
return v;
}
System.out.println("collection is NOT empty");
-
- return co;
+
+ return co;
}
/*
@@ -401,7 +410,34 @@
{
LookupCriteria criteria = plugin.newLookupCriteria();
criteria.addEqualTo("name", mediaType);
- Object query = plugin.generateQuery(mediaTypeClass, criteria);
+ Object query = plugin.generateQuery(mediaTypeClass, criteria);
return (MediaType) plugin.getObjectByQuery(mediaTypeClass, query);
+ }
+
+ /**
+ * getMediaTypeForMimeType
+ * @param mimeType to use for lookup
+ * @return MediaTypeEntry that matches the lookup in the MEDIATYPE_TO_MIMETYPE
table
+ */
+ public MediaType getMediaTypeForMimeType(String mimeTypeName)
+ {
+ //Find the MediaType by matching the Mimetype
+
+ LookupCriteria criteria = plugin.newLookupCriteria();
+ criteria.addEqualTo("mimetypes.name", mimeTypeName);
+
+ Collection mediaTypeCollection =
+ plugin.getCollectionByQuery(
+ mediaTypeClass,
+ plugin.generateQuery(mediaTypeClass, criteria));
+
+ Iterator mtIterator = mediaTypeCollection.iterator();
+ if (mtIterator.hasNext())
+ {
+ return (MediaType) mtIterator.next();
+ } else
+ {
+ return null;
+ }
}
}
1.3 +37 -26
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/ClientImpl.java
Index: ClientImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/capability/impl/ClientImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClientImpl.java 22 Dec 2003 02:18:22 -0000 1.2
+++ ClientImpl.java 26 Dec 2003 16:24:27 -0000 1.3
@@ -65,8 +65,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id$
*/
-public class ClientImpl
- implements Client, java.io.Serializable
+public class ClientImpl implements Client, java.io.Serializable
{
private String userAgentPattern = "";
private String manufacturer = "";
@@ -75,82 +74,78 @@
private String name;
private Collection mimetypes;
private Collection capabilities;
-
+ private int preferredMimeTypeId;
+
private int clientId;
public ClientImpl()
{
}
-
/**
* Implements the equals operation so that 2 elements are equal if
* all their member values are equal.
*/
public boolean equals(Object object)
{
- if (object==null)
+ if (object == null)
{
return false;
}
- ClientImpl obj = (ClientImpl)object;
+ ClientImpl obj = (ClientImpl) object;
- if (userAgentPattern!=null)
+ if (userAgentPattern != null)
{
if (!userAgentPattern.equals(obj.userAgentPattern))
{
return false;
}
- }
- else
+ } else
{
- if (obj.userAgentPattern!=null)
+ if (obj.userAgentPattern != null)
{
return false;
}
}
- if (manufacturer!=null)
+ if (manufacturer != null)
{
if (!manufacturer.equals(obj.manufacturer))
{
return false;
}
- }
- else
+ } else
{
- if (obj.manufacturer!=null)
+ if (obj.manufacturer != null)
{
return false;
}
}
- if (model!=null)
+ if (model != null)
{
if (!model.equals(obj.model))
{
return false;
}
- }
- else
+ } else
{
- if (obj.model!=null)
+ if (obj.model != null)
{
return false;
}
}
- if (version!=null)
+ if (version != null)
{
if (!version.equals(obj.version))
{
return false;
}
- }
- else
+ } else
{
- if (obj.version!=null)
+ if (obj.version != null)
{
return false;
}
@@ -209,7 +204,6 @@
version = name;
}
-
public Collection getMimetypes()
{
return mimetypes;
@@ -229,7 +223,7 @@
{
this.capabilities = capabilities;
}
-
+
/**
* Set Client ID -- Assigns the Client ID
* @param id
@@ -238,7 +232,7 @@
{
this.clientId = id;
}
-
+
/**
* Get Client ID
* @return Client ID
@@ -261,6 +255,23 @@
public void setName(String string)
{
name = string;
+ }
+
+ /**
+ * @return Preferred MimeType ID for Client
+ */
+ public int getPreferredMimeTypeId()
+ {
+ return this.preferredMimeTypeId;
+ }
+
+ /**
+ * Set preferred Mimetype ID for Client
+ * @param mimeTypeId MimeTypeId
+ */
+ public void setPreferredMimeTypeId(int mimeTypeId)
+ {
+ this.preferredMimeTypeId = mimeTypeId;
}
}
1.10 +2 -1 jakarta-jetspeed-2/portal/src/sql/hsql/create-db.sql
Index: create-db.sql
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/sql/hsql/create-db.sql,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- create-db.sql 5 Dec 2003 21:09:22 -0000 1.9
+++ create-db.sql 26 Dec 2003 16:24:27 -0000 1.10
@@ -171,7 +171,8 @@
USER_AGENT_PATTERN VARCHAR (128),
MANUFACTURER VARCHAR (80),
MODEL VARCHAR(80),
- VERSION VARCHAR(40)
+ VERSION VARCHAR(40),
+ PREFERRED_MIMETYPE_ID INTEGER NOT NULL
);
------------------------------------------------------------------------------
1.7 +50 -26 jakarta-jetspeed-2/portal/src/sql/hsql/populate-db-default.sql
Index: populate-db-default.sql
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/sql/hsql/populate-db-default.sql,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- populate-db-default.sql 17 Dec 2003 20:46:34 -0000 1.6
+++ populate-db-default.sql 26 Dec 2003 16:24:27 -0000 1.7
@@ -77,44 +77,47 @@
----------------------------------------------------------------------------
-- Supported clients
----------------------------------------------------------------------------
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(1,'ie5','.*MSIE 5.*','Microsoft','None','5.5');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(1,'ie5','.*MSIE 5.*','Microsoft','None','5.5',0);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(2,'ns4','.*Mozilla/4.*','Netscape','None','4.75');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(2,'ns4','.*Mozilla/4.*','Netscape','None','4.75',0);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(3,'mozilla','.*Mozilla/5.*','Mozilla','Mozilla','1.x');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(3,'mozilla','.*Mozilla/5.*','Mozilla','Mozilla','1.x',0);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(4,'lynx','Lynx.*','GNU','None','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(4,'lynx','Lynx.*','GNU','None','',0);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(5,'nokia_generic','Nokia.*','Nokia','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(5,'nokia_generic','Nokia.*','Nokia','Generic','',1);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(6,'up','UP.*|.*UP\.Browser.*','United Planet','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(6,'up','UP.*|.*UP\.Browser.*','United Planet','Generic','',1);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(7,'sonyericsson','Ercis.*|SonyE.*','SonyEricsson','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(7,'sonyericsson','Ercis.*|SonyE.*','SonyEricsson','Generic','',1);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(8,'wapalizer','Wapalizer.*','Wapalizer','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(8,'wapalizer','Wapalizer.*','Wapalizer','Generic','',1);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(9,'klondike','Klondike.*','Klondike','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(9,'klondike','Klondike.*','Klondike','Generic','',1);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(10,'wml_generic','.*WML.*|.*WAP.*|.*Wap.*|.*wml.*','Generic','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(10,'wml_generic','.*WML.*|.*WAP.*|.*Wap.*|.*wml.*','Generic','Generic','',1);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(11,'vxml_generic','.*VoiceXML.*','Generic','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(11,'vxml_generic','.*VoiceXML.*','Generic','Generic','',2);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(12,'nuance','Nuance.*','Nuance','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(12,'nuance','Nuance.*','Nuance','Generic','',2);
-INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL ,VERSION)
-VALUES(13,'agentxml','agentxml/1.0.*','Unknown','Generic','');
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(13,'agentxml','agentxml/1.0.*','Unknown','Generic','',3);
+
+INSERT INTO CLIENT (CLIENT_ID,NAME, USER_AGENT_PATTERN,MANUFACTURER,MODEL
,VERSION, PREFERRED_MIMETYPE_ID)
+VALUES(14,'opera7','.*Opera/7.*','Opera','Opera7','7.x',0);
----------------------------------------------------------------------------------------
-- Supported Media types
@@ -190,6 +193,23 @@
INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(4,6);
INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(4,39);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,0);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,1);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,2);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,7);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,11);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,16);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,3);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,5);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,6);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,4);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,26);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,23);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,24);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,25);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,30);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,39);
+INSERT INTO CLIENT_TO_CAPABILITY(CLIENT_ID,CAPABILITY_ID )VALUES(14,22);
-- Client To Mimetype
@@ -221,6 +241,10 @@
INSERT INTO CLIENT_TO_MIMETYPE(CLIENT_ID ,MIMETYPE_ID)VALUES(12,2);
INSERT INTO CLIENT_TO_MIMETYPE(CLIENT_ID ,MIMETYPE_ID)VALUES(13,3);
+
+INSERT INTO CLIENT_TO_MIMETYPE(CLIENT_ID ,MIMETYPE_ID)VALUES(14,0);
+INSERT INTO CLIENT_TO_MIMETYPE(CLIENT_ID ,MIMETYPE_ID)VALUES(14,3);
+INSERT INTO CLIENT_TO_MIMETYPE(CLIENT_ID ,MIMETYPE_ID)VALUES(14,4);
----------------------------------------------------
-- Media Type association
1.3 +78 -27
jakarta-jetspeed-2/portal/src/test/org/apache/jetspeed/capability/TestCapability.java
Index: TestCapability.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/test/org/apache/jetspeed/capability/TestCapability.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestCapability.java 22 Dec 2003 02:18:23 -0000 1.2
+++ TestCapability.java 26 Dec 2003 16:24:27 -0000 1.3
@@ -51,9 +51,10 @@
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
-
+
package org.apache.jetspeed.capability;
+import java.util.Iterator;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -67,9 +68,9 @@
* @author <a href="[EMAIL PROTECTED]">Roger Ruttimann</a>
* @version $Id$
*/
-public class TestCapability extends JetspeedTest
-{
-
+public class TestCapability extends JetspeedTest
+{
+
/**
* @see
org.apache.jetspeed.test.JetspeedTest#overrideProperties(org.apache.commons.configuration.Configuration)
*/
@@ -77,7 +78,7 @@
{
super.overrideProperties(properties);
}
-
+
/**
* Defines the testcase name for JUnit.
*
@@ -87,7 +88,7 @@
{
super(name);
}
-
+
/**
* Start the tests.
*
@@ -95,9 +96,10 @@
*/
public static void main(String args[])
{
- junit.awtui.TestRunner.main(new String[] {
TestCapability.class.getName()});
+ junit.awtui.TestRunner.main(
+ new String[] { TestCapability.class.getName()});
}
-
+
public void setup()
{
System.out.println("Setup: Testing Capability Service");
@@ -113,44 +115,93 @@
// All methods starting with "test" will be executed in the test suite.
return new TestSuite(TestCapability.class);
}
-
+
protected CapabilityService getService()
{
- return (CapabilityService)
CommonPortletServices.getPortalService(CapabilityService.SERVICE_NAME);
+ return (CapabilityService) CommonPortletServices.getPortalService(
+ CapabilityService.SERVICE_NAME);
}
-
+
/**
* Tests categories
* @throws Exception
*/
public void testCapability() throws Exception
{
- CapabilityService service = getService();
+ CapabilityService service = getService();
assertNotNull("capability service is null", service);
// Find specific client -- testing pattern matching
String userAgent;
- System.out.println("Test pattern matching...") ;
-
- userAgent = "Mozilla/4.0";
- System.out.println("Find pattern: " + userAgent) ;
-
+ System.out.println("Testing all supported Clients...");
+
+ userAgent = "Opera/7.0";
+ System.out.println("Find pattern: " + userAgent);
CapabilityMap cm = service.getCapabilityMap(userAgent);
assertNotNull("getCapabilityMap is null", cm);
-
+ capabilityMapReport(cm);
+
+ userAgent = "Mozilla/4.0";
+ System.out.println("Find pattern: " + userAgent);
+ cm = service.getCapabilityMap(userAgent);
+ assertNotNull("getCapabilityMap is null", cm);
+ capabilityMapReport(cm);
+
+ userAgent = "MSIE 5.0";
+ System.out.println("Find pattern: " + userAgent);
+ cm = service.getCapabilityMap(userAgent);
+ assertNotNull("getCapabilityMap is null", cm);
+ capabilityMapReport(cm);
+
+ userAgent = "Mozilla/5.0";
+ System.out.println("Find pattern: " + userAgent);
+ cm = service.getCapabilityMap(userAgent);
+ assertNotNull("getCapabilityMap is null", cm);
+ capabilityMapReport(cm);
+
+ userAgent = "Lynx";
+ System.out.println("Find pattern: " + userAgent);
+ cm = service.getCapabilityMap(userAgent);
+ assertNotNull("getCapabilityMap is null", cm);
+ capabilityMapReport(cm);
+
+ userAgent = "Nokia";
+ System.out.println("Find pattern: " + userAgent);
+ cm = service.getCapabilityMap(userAgent);
+ assertNotNull("getCapabilityMap is null", cm);
+ capabilityMapReport(cm);
+
+ }
+
+ private void capabilityMapReport(CapabilityMap cm)
+ {
MediaType mediaType = cm.getPreferredMediaType();
- assertNotNull("MediaType is null", mediaType);
-
- MimeType mimeTypeObj = cm.getPreferredType();
- assertNotNull("MimeType is null", mimeTypeObj);
+ assertNotNull("Preferred MediaType is null", mediaType);
+
+ MimeType mimeTypeObj = cm.getPreferredType();
+ assertNotNull("Preferred MimeType is null", mimeTypeObj);
String mimeType = mimeTypeObj.getName();
-
+
String encoding = mediaType.getCharacterSet();
-
- System.out.println("MediaType = " + mediaType.getName());
- System.out.println("Mimetype = " + mimeType);
+
+ System.out.println("Preferred MediaType = " + mediaType.getName());
+ System.out.println("Preferred Mimetype = " + mimeType);
System.out.println("Encoding = " + encoding);
-
+ System.out.println("Supported MediaTypes");
+ Iterator cmIterator = cm.listMediaTypes();
+
+ while (cmIterator.hasNext())
+ {
+ System.out.println(((MediaType) cmIterator.next()).getName());
+ }
+
+ System.out.println("Supported MimeTypes");
+ Iterator mtIterator = cm.getMimeTypes();
+
+ while (mtIterator.hasNext())
+ {
+ System.out.println(((MimeType) mtIterator.next()).getName());
+ }
}
}
1.15 +6 -0
jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/ojb/repository_jetspeed.xml
Index: repository_jetspeed.xml
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/conf/ojb/repository_jetspeed.xml,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- repository_jetspeed.xml 22 Dec 2003 02:18:23 -0000 1.14
+++ repository_jetspeed.xml 26 Dec 2003 16:24:27 -0000 1.15
@@ -905,6 +905,12 @@
jdbc-type="VARCHAR"
/>
+ <field-descriptor
+ name="preferredMimeTypeId"
+ column="PREFERRED_MIMETYPE_ID"
+ jdbc-type="INTEGER"
+ />
+
<collection-descriptor
name="capabilities"
element-class-ref="org.apache.jetspeed.capability.impl.CapabilityImpl"
1.16 +37 -16
jakarta-jetspeed-2/portal/src/webapp/WEB-INF/db/hsql/Registry.script
Index: Registry.script
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/webapp/WEB-INF/db/hsql/Registry.script,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Registry.script 22 Dec 2003 02:18:23 -0000 1.15
+++ Registry.script 26 Dec 2003 16:24:27 -0000 1.16
@@ -20,7 +20,7 @@
CREATE TABLE LOCALIZED_DESCRIPTION(ID INTEGER NOT NULL PRIMARY KEY,OBJECT_ID
INTEGER NOT NULL,TYPE VARCHAR(25) NOT NULL,DESCRIPTION LONGVARCHAR NOT
NULL,LOCALE_STRING VARCHAR(50) NOT NULL)
CREATE TABLE LOCALIZED_DISPLAY_NAME(ID INTEGER NOT NULL PRIMARY KEY,OBJECT_ID
INTEGER NOT NULL,TYPE VARCHAR(25) NOT NULL,DISPLAY_NAME LONGVARCHAR NOT
NULL,LOCALE_STRING VARCHAR(50) NOT NULL)
CREATE TABLE MEDIA_TYPE(MEDIATYPE_ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(80)
NOT NULL,CHARACTER_SET VARCHAR(40),TITLE VARCHAR(80),DESCRIPTION LONGVARCHAR)
-CREATE TABLE CLIENT(CLIENT_ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(80) NOT
NULL,USER_AGENT_PATTERN VARCHAR(128),MANUFACTURER VARCHAR(80),MODEL
VARCHAR(80),VERSION VARCHAR(40))
+CREATE TABLE CLIENT(CLIENT_ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(80) NOT
NULL,USER_AGENT_PATTERN VARCHAR(128),MANUFACTURER VARCHAR(80),MODEL
VARCHAR(80),VERSION VARCHAR(40),PREFERRED_MIMETYPE_ID INTEGER NOT NULL)
CREATE TABLE MIMETYPE(MIMETYPE_ID INTEGER NOT NULL PRIMARY KEY,NAME VARCHAR(80) NOT
NULL)
CREATE TABLE CAPABILITY(CAPABILITY_ID INTEGER NOT NULL PRIMARY KEY,CAPABILITY
VARCHAR(80) NOT NULL)
CREATE TABLE CLIENT_TO_CAPABILITY(CLIENT_ID INTEGER NOT NULL,CAPABILITY_ID INTEGER
NOT NULL)
@@ -55,8 +55,8 @@
CREATE TABLE PREF_PROPERTY_VALUE(PROPERTY_VALUE_ID INTEGER NOT NULL PRIMARY
KEY,PROPERTY_KEY_ID INTEGER,NODE_ID INTEGER,BOOLEAN_VALUE BIT,DATETIME_VALUE
TIMESTAMP,LONG_VALUE INTEGER,DOUBLE_VALUE DOUBLE,TEXT_VALUE VARCHAR(254),CREATION_DATE
TIMESTAMP,MODIFIED_DATE TIMESTAMP,CONSTRAINT PREF_PROPERTY_VALUE_FK_1 FOREIGN
KEY(NODE_ID) REFERENCES PREF_NODE(NODE_ID))
CREATE TABLE PREF_PROPERTY_KEY(PROPERTY_KEY_ID INTEGER NOT NULL PRIMARY
KEY,PROPERTY_SET_DEF_ID INTEGER,PROPERTY_NAME VARCHAR(100),PROPERTY_TYPE
SMALLINT,CREATION_DATE TIMESTAMP,MODIFIED_DATE TIMESTAMP,CONSTRAINT
PREF_PROPERTY_KEY_FK_1 FOREIGN KEY(PROPERTY_SET_DEF_ID) REFERENCES
PREF_PROPERTY_SET_DEF(PROPERTY_SET_DEF_ID))
ALTER TABLE PREF_PROPERTY_VALUE ADD CONSTRAINT PREF_PROPERTY_VALUE_FK_2 FOREIGN
KEY(PROPERTY_KEY_ID) REFERENCES PREF_PROPERTY_KEY(PROPERTY_KEY_ID)
-GRANT ALL ON CLASS "org.hsqldb.Library" TO PUBLIC
GRANT ALL ON CLASS "java.lang.Math" TO PUBLIC
+GRANT ALL ON CLASS "org.hsqldb.Library" TO PUBLIC
CREATE USER SA PASSWORD "" ADMIN
CREATE ALIAS DAYNAME FOR "org.hsqldb.Library.dayname"
CREATE ALIAS SPACE FOR "org.hsqldb.Library.space"
@@ -75,7 +75,7 @@
CREATE ALIAS LOWER FOR "org.hsqldb.Library.lcase"
CREATE ALIAS ATAN2 FOR "java.lang.Math.atan2"
CREATE ALIAS REPEAT FOR "org.hsqldb.Library.repeat"
-CREATE ALIAS DAYOFMONTH FOR "org.hsqldb.Library .dayofmonth"
+CREATE ALIAS DAYOFMONTH FOR "org.hsqldb.Library.dayofmonth"
CREATE ALIAS TAN FOR "java.lang.Math.tan"
CREATE ALIAS RADIANS FOR "java.lang.Math.toRadians"
CREATE ALIAS FLOOR FOR "java.lang.Math.floor"
@@ -133,19 +133,20 @@
INSERT INTO MEDIA_TYPE VALUES(1,'wml','UTF-8','WML','Format for mobile phones and
PDAs compatible with WML 1.1')
INSERT INTO MEDIA_TYPE VALUES(2,'vxml','UTF-8','VoiceXML','Format suitable for use
with an audio VoiceXML server')
INSERT INTO MEDIA_TYPE VALUES(3,'xml','','XML','XML 1.0')
-INSERT INTO CLIENT VALUES(1,'ie5','.*MSIE 5.*','Microsoft','None','5.5')
-INSERT INTO CLIENT VALUES(2,'ns4','.*Mozilla/4.*','Netscape','None','4.75')
-INSERT INTO CLIENT VALUES(3,'mozilla','.*Mozilla/5.*','Mozilla','Mozilla','1.x')
-INSERT INTO CLIENT VALUES(4,'lynx','Lynx.*','GNU','None','')
-INSERT INTO CLIENT VALUES(5,'nokia_generic','Nokia.*','Nokia','Generic','')
-INSERT INTO CLIENT VALUES(6,'up','UP.*|.*UP\.Browser.*','United
Planet','Generic','')
-INSERT INTO CLIENT
VALUES(7,'sonyericsson','Ercis.*|SonyE.*','SonyEricsson','Generic','')
-INSERT INTO CLIENT VALUES(8,'wapalizer','Wapalizer.*','Wapalizer','Generic','')
-INSERT INTO CLIENT VALUES(9,'klondike','Klondike.*','Klondike','Generic','')
-INSERT INTO CLIENT
VALUES(10,'wml_generic','.*WML.*|.*WAP.*|.*Wap.*|.*wml.*','Generic','Generic','')
-INSERT INTO CLIENT VALUES(11,'vxml_generic','.*VoiceXML.*','Generic','Generic','')
-INSERT INTO CLIENT VALUES(12,'nuance','Nuance.*','Nuance','Generic','')
-INSERT INTO CLIENT VALUES(13,'agentxml','agentxml/1.0.*','Unknown','Generic','')
+INSERT INTO CLIENT VALUES(1,'ie5','.*MSIE 5.*','Microsoft','None','5.5',0)
+INSERT INTO CLIENT VALUES(2,'ns4','.*Mozilla/4.*','Netscape','None','4.75',0)
+INSERT INTO CLIENT VALUES(3,'mozilla','.*Mozilla/5.*','Mozilla','Mozilla','1.x',0)
+INSERT INTO CLIENT VALUES(4,'lynx','Lynx.*','GNU','None','',0)
+INSERT INTO CLIENT VALUES(5,'nokia_generic','Nokia.*','Nokia','Generic','',1)
+INSERT INTO CLIENT VALUES(6,'up','UP.*|.*UP\.Browser.*','United
Planet','Generic','',1)
+INSERT INTO CLIENT
VALUES(7,'sonyericsson','Ercis.*|SonyE.*','SonyEricsson','Generic','',1)
+INSERT INTO CLIENT VALUES(8,'wapalizer','Wapalizer.*','Wapalizer','Generic','',1)
+INSERT INTO CLIENT VALUES(9,'klondike','Klondike.*','Klondike','Generic','',1)
+INSERT INTO CLIENT
VALUES(10,'wml_generic','.*WML.*|.*WAP.*|.*Wap.*|.*wml.*','Generic','Generic','',1)
+INSERT INTO CLIENT VALUES(11,'vxml_generic','.*VoiceXML.*','Generic','Generic','',2)
+INSERT INTO CLIENT VALUES(12,'nuance','Nuance.*','Nuance','Generic','',2)
+INSERT INTO CLIENT VALUES(13,'agentxml','agentxml/1.0.*','Unknown','Generic','',3)
+INSERT INTO CLIENT VALUES(14,'opera7','.*Opera/7.*','Opera','Opera7','7.x',0)
INSERT INTO MIMETYPE VALUES(0,'text/html')
INSERT INTO MIMETYPE VALUES(1,'text/vnd.wap.wml')
INSERT INTO MIMETYPE VALUES(2,'text/vxml')
@@ -243,6 +244,23 @@
INSERT INTO CLIENT_TO_CAPABILITY VALUES(4,5)
INSERT INTO CLIENT_TO_CAPABILITY VALUES(4,6)
INSERT INTO CLIENT_TO_CAPABILITY VALUES(4,39)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,0)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,1)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,2)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,7)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,11)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,16)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,3)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,5)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,6)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,4)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,26)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,23)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,24)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,25)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,30)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,39)
+INSERT INTO CLIENT_TO_CAPABILITY VALUES(14,22)
INSERT INTO CLIENT_TO_MIMETYPE VALUES(1,0)
INSERT INTO CLIENT_TO_MIMETYPE VALUES(1,3)
INSERT INTO CLIENT_TO_MIMETYPE VALUES(2,0)
@@ -259,6 +277,9 @@
INSERT INTO CLIENT_TO_MIMETYPE VALUES(11,2)
INSERT INTO CLIENT_TO_MIMETYPE VALUES(12,2)
INSERT INTO CLIENT_TO_MIMETYPE VALUES(13,3)
+INSERT INTO CLIENT_TO_MIMETYPE VALUES(14,0)
+INSERT INTO CLIENT_TO_MIMETYPE VALUES(14,3)
+INSERT INTO CLIENT_TO_MIMETYPE VALUES(14,4)
INSERT INTO MEDIATYPE_TO_MIMETYPE VALUES(0,0)
INSERT INTO MEDIATYPE_TO_MIMETYPE VALUES(1,1)
INSERT INTO MEDIATYPE_TO_MIMETYPE VALUES(2,2)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]