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??? 2. I tried to deploy the slide.war to oc4j but found no hints to do so, I tried to compile the source file on JDeveloper but it just gives me an internal compiler error, Did any body try that?? 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]
