Ragia, see my comments. Regards
Ragia wrote:
Thanx Stefan..well it seems I will work with the source files I downloaded from the jakarta site So far I have to questions:
1. I need to integrate WEBDAV to my content management system, and found no developer documentation on the slide link, is there any such documentation any where???
Sorry but documentation is currently quite poor. Try the wiki and search or query the mailing list look at the sources, thats all we have.
2. I tried to deploy the slide.war to oc4j but found no hints to do so, I
slide.war is a web application and requires a WebContainer. If oc4j is a WebContainer *it* should document how to install a web application. J2EE integration is currently under development (I think).
tried to compile the source file on JDeveloper but it just gives me an internal compiler error, Did any body try that??
Don't know. Not me.
Thanx a lot!
-----Original Message-----
From: Stefan Lützkendorf [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 13, 2004 12:39 PM
To: Slide Developers Mailing List
Subject: Re: cvs commit:
jakarta-slide/src/webdav/server/org/apache/slide/webdav/event
NotificationTrigger.java Subscriber.java
I now people that use a perl-sript for accessing cvs via viewcvs.
please have a look at http://lists.gnu.org/archive/html/emacs-devel/2003-08/msg00023.html
I have never used it, but it sounds promissing.
The ViewCVS access of the Slide source your found at http://cvs.apache.org/viewcvs.cgi/jakarta-slide/
I hope this helps, Stefan
Ragia wrote:
Thanx for ur concerns,
Well, yes we are behind a firewall
I tried "telnet cvs.apache.org 2401" & it says:
Connecting To cvs.apache.org...Could not open a connection to host on port
2401
: Connect failed
Is that mean that I have no chance ever ? :(
-----Original Message----- From: Stefan Lützkendorf [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 13, 2004 11:56 AM To: Slide Developers Mailing List Subject: Re: cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/event NotificationTrigger.java Subscriber.java
Seems to be a network problem,
are you behind a firewall? do you get a connection if you try "telnet cvs.apache.org 2401" ?
Ragia wrote:
Thanx for the reply!!
I tried what you kindly suggested but in vain
Here it is the result
cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout jakarta-slide
***** CVS exited normally with code 1 *****
cvs [checkout aborted]: connect to cvs.apache.org:2401 failed: No connection could be made because the target machine actively refused it.
-----Original Message----- From: Stefan Lützkendorf [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 13, 2004 11:34 AM To: Slide Developers Mailing List Subject: Re: cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/event NotificationTrigger.java Subscriber.java
Did you set Authentication to pserver
try the following on the console
cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic checkout jakarta-slide
Ragia wrote:
How to connect to CVs
I used wincvs GUI but it doesnot connect ever I use the the CVs root [EMAIL PROTECTED]:/home/cvspublic
It says that server refused the connection???
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 13, 2004 11:08 AM To: [EMAIL PROTECTED] Subject: cvs commit: jakarta-slide/src/webdav/server/org/apache/slide/webdav/event NotificationTrigger.java Subscriber.java
luetzkendorf 2004/07/13 02:08:19
Modified: src/webdav/server/org/apache/slide/webdav/event NotificationTrigger.java Subscriber.java Log: some changes to satisfy the notification test cases
Revision Changes Path 1.11 +51 -35 jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/Notific a tionTr igger.java
Index: NotificationTrigger.java =================================================================== RCS file: /home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/eve n t/Noti ficationTrigger.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- NotificationTrigger.java 12 May 2004 11:09:47 -0000 1.10 +++ NotificationTrigger.java 13 Jul 2004 09:08:18 -0000 1.11 @@ -80,6 +80,8 @@ }
public boolean removeSubscriber(Subscriber subscriber) {
+ Domain.log("Removing subscriber with ID: + "+subscriber.getId(),
LOG_CHANNEL, Logger.INFO);
+ subscriber.getLifetime().cancel();
return subscribers.remove(subscriber);
}
@@ -122,8 +124,11 @@
private void notifySubscribers(EventCollection collection) {
Map subscriberEnumerations = new HashMap();
- ContentEvent[] update =
EventCollectionFilter.getChangedContents(collection);
List matchingSubscribers = new ArrayList();
+
+ // get subscribers with matching notification types
+ // (and remember events)
+ ContentEvent[] update =
EventCollectionFilter.getChangedContents(collection);
for ( int i = 0; i < update.length; i++ ) {
matchingSubscribers.addAll(getSubscribers(Subscriber.UPDATE,
update[i]));
}
@@ -136,34 +141,42 @@
matchingSubscribers.addAll(getSubscribers(Subscriber.DELETE,
delete[i]));
}
// FIXME: Add methods for MOVE, and NEW_MAIL (??) to get full exchange notification compliance
+ + // notifiy subscribers
for ( Iterator i = matchingSubscribers.iterator(); i.hasNext(); ) {
- final Subscriber subscriber = (Subscriber)i.next();
- if ( subscriber.getNotificationDelay() == 0 ) {
- // send notification without delay
- List idList =
(List)subscriberEnumerations.get(subscriber.getCallback());
- if ( idList == null ) {
- idList = new ArrayList();
-
subscriberEnumerations.put(subscriber.getCallback(), idList);
- }
- Integer subscriberId = new
Integer(subscriber.getId());
- if ( !idList.contains(subscriberId) ) {
- idList.add(subscriberId);
- }
- } else {
- // send delayed notification
- TimerTask notifyTask = subscriber.getNotify();
- if ( notifyTask == null ) {
- Domain.log("Starting notification delay:
"+subscriber.getNotificationDelay(), LOG_CHANNEL, Logger.INFO);
- notifyTask = new TimerTask() {
- public void run() {
-
notifySubscriber(subscriber.getCallback(),
String.valueOf(subscriber.getId()));
- subscriber.setNotify(null);
- }
- };
- subscriber.setNotify(notifyTask);
- timer.schedule(notifyTask,
subscriber.getNotificationDelay()*1000);
- }
- }
+ final Subscriber subscriber = (Subscriber)i.next();
+ + // skip subscribers that has no callback (we can't + notify
them)
+ if (!subscriber.hasCallback()) continue;
+ + if ( subscriber.getNotificationDelay() == 0 ) {
+ // send notification without delay
+ List idList =
(List)subscriberEnumerations.get(subscriber.getCallback());
+ if ( idList == null ) {
+ idList = new ArrayList();
+ + subscriberEnumerations.put(subscriber.getCallback(),
idList);
+ }
+ Integer subscriberId = new Integer(subscriber.getId());
+ if ( !idList.contains(subscriberId) ) {
+ idList.add(subscriberId);
+ }
+ } else {
+ // send delayed notification
+ TimerTask notifyTask = subscriber.getNotify();
+ if ( notifyTask == null ) {
+ Domain.log("Starting notification delay:
"+subscriber.getNotificationDelay(),
+ LOG_CHANNEL, Logger.INFO);
+ notifyTask = new TimerTask() {
+ public void run() {
+ notifySubscriber(subscriber.getCallback(), + String.valueOf(subscriber.getId()));
+ subscriber.setNotify(null);
+ }
+ };
+ subscriber.setNotify(notifyTask);
+ timer.schedule(notifyTask,
subscriber.getNotificationDelay()*1000);
+ }
+ }
}
for ( Iterator i =
subscriberEnumerations.entrySet().iterator();
i.hasNext(); ) {
Map.Entry entry = (Map.Entry)i.next(); @@ -185,14 +198,16 @@
}
}
- private void notifySubscriber(String callback, String subscribers)
{
+ protected void notifySubscriber(String callback, String
subscribers)
{
if ( callback.startsWith(TCP_PROTOCOL) ) {
Domain.log("Notify subscribers with adress='"+callback+"' via TCP with id's "+subscribers, LOG_CHANNEL,
Logger.INFO);
NotifyMethod notifyMethod = new NotifyMethod(callback.toString());
notifyMethod.addRequestHeader(H_SUBSCRIPTION_ID_RESPONSE,
subscribers);
try {
URL url = new URL(callback);
- int state = notifyMethod.execute(new HttpState(), new
HttpConnection(url.getHost(), url.getPort()));
+ notifyMethod.execute(
+ new HttpState(), new
HttpConnection(url.getHost(),
+ url.getPort()!=-1 ? url.getPort() : + 80));
} catch (IOException e) {
Domain.log("Notification of subscriber '"+callback.toString()+"' failed!");
}
@@ -203,7 +218,8 @@
String notification = "NOTIFY "+callback+"
HTTP/1.1\nSubscription-id: "+subscribers;
byte[] buf = notification.getBytes();
InetAddress address = InetAddress.getByName(url.getHost());
- DatagramPacket packet = new DatagramPacket(buf,
buf.length, address, url.getPort());
+ DatagramPacket packet = new DatagramPacket(
+ buf, buf.length, address, url.getPort()!=-1 ?
url.getPort() : 80);
socket.send(packet);
} catch (IOException e) {
Domain.log("Notification of subscriber '"+callback.toString()+"' failed!", LOG_CHANNEL, Logger.ERROR);
1.9 +11 -7 jakarta-slide/src/webdav/server/org/apache/slide/webdav/event/Subscri b er.jav a
Index: Subscriber.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/webdav/server/org/apache/slide/webdav/eve
n
t/Subs
criber.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Subscriber.java 2 Jul 2004 12:04:28 -0000 1.8
+++ Subscriber.java 13 Jul 2004 09:08:18 -0000 1.9
@@ -90,9 +90,9 @@
// check if event matches notification-type
// see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/
w
ss/_we
bdav_notification_type_header.asp
// for details
- if ( notificationType.equals(type) || - ( type.equals(NEW_MEMBER) &&
notificationType.equals(UPDATE)
&& depth == 1 ) || - ( type.equals(DELETE) &&
notificationType.equals(UPDATE) &&
depth == 1 ) ){
+ if ( type.equalsIgnoreCase(notificationType) || + ( type.equalsIgnoreCase(NEW_MEMBER) &&
notificationType.equalsIgnoreCase(UPDATE) && depth > 0 ) ||
+ ( type.equalsIgnoreCase(DELETE) &&
notificationType.equalsIgnoreCase(UPDATE) && depth > 0 ) ){
String eventUri = event.getUri();
if ( eventUri != null && uri != null ) {
if ( depth == 0 &&
eventUri.equals(uri.toString()) ) return
true; @@ -107,6 +107,10 @@ return false; }
+ public boolean hasCallback() {
+ return this.callback != null && this.callback.length() > 0;
+ }
+ public String getCallback() {
return callback;
}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
