jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "hsp" <piccina...@ibest.com.br>
Subject Re: event listener not getting any events..
Date Fri, 28 Jul 2006 13:49:19 GMT
>hsp wrote:
>> But, the node I create is kind of type "esc:base" and it is
> > inside the iterator, and its child (autocreated) that is kind
> > of type "nt:hierarchyNode" also is inside the iterator, why?
>
>this has been discussed already extensively on the user list. See:
>http://thread.gmane.org/gmane.comp.apache.jackrabbit.user/408
>
>> Another doubt, the absPath is relative to the root of the
>> workspace,  or it means the root of the parent node that
> > generates the event?
>
>it's the absolute path to a node in the workspace.
>
>> I configured the isDeep as "false" and it didn't fired anymore.
>
>with an absPath of "/" you will only get events when the root node is 
>modified.
>
>> Is the event Listener stable? Because it seens some times not
>> firing the listener class.
>
>Can you please provide a test case that shows this behaviour? Thank you.
>
>regards
>  marcel
>

Hi Marcel. There is attached a class test for the comment I did 
">> Is the event Listener stable? Because it seens some times not
>> firing the listener class."

In this test, the listener is not firing in each node creation. There is a loop that creates
nt:folder nodes some times, and in the log the class was not called for all nodes creation.
I hope that its could be some easy to fix, thanks.

import javax.jcr.observation.EventIterator;
import javax.jcr.observation.EventListener;

import org.apache.jackrabbit.core.observation.EventImpl;

public class ListenerNodeAddEscribaBase implements EventListener {

	private static ListenerNodeAddEscribaBase instance = null;
	
	private ListenerNodeAddEscribaBase() {
	}
	
	public static ListenerNodeAddEscribaBase getInstance(){
		if(instance == null){
			instance = new ListenerNodeAddEscribaBase();
		}
		return instance;
	}
	
	public void onEvent(EventIterator arg0) {
		System.out.println("Estou no ListenerNodeAddEscribaBase");
		
		while(arg0.hasNext()){
			EventImpl e = (EventImpl)arg0.nextEvent();
			
			try {
				System.out.println("Path: " + e.getPath());
				System.out.println("Tipo: " + e.getType());
				System.out.println("UserId: " + e.getUserID());
			} catch (Exception e0) {
				e0.printStackTrace();
			}
		}
	}

}


public class TestObserver {
	private static void criaNode(String nomeNode){
		try {
			Repository rep = RepositorioEscriba.getRepository();
			Session session = null;
			SimpleCredentials creds = null;
			
			creds = new SimpleCredentials("thiago", "".toCharArray());
			session = rep.login(creds);
			session.getWorkspace().getObservationManager().addEventListener(
					ListenerNodeAddEscribaBase.getInstance(),
					Event.NODE_ADDED,
					"/",
					true,
					null,
					new String[] {"nt:base"},
					false
			);
			
			Node nodeGrupo = (Node)session.getItem("/");
			nodeGrupo.addNode(nomeNode, "nt:folder");
			session.save();
			session.logout();
			logger.info(nomeNode + " gravado com sucesso");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args){
		try {
			logger.info("Testando Observer");

			/*Primeira tentativa*/
			for(int i=0 ; i<20 ; i++){
				criaNode("nodeX" + i);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

and the log.....

10:29:21,686 INFO  [STDOUT] 10:29:21,686 INFO  [RepositoryStartupServlet] Testando Observer
10:29:21,915 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:21,915 INFO  [STDOUT] Path: /nodeX0
10:29:21,916 INFO  [STDOUT] Tipo: 1
10:29:21,916 INFO  [STDOUT] UserId: thiago
10:29:21,917 INFO  [STDOUT] 10:29:21,917 INFO  [RepositoryStartupServlet] nodeX0 gravado com
sucesso
10:29:21,927 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:21,928 INFO  [STDOUT] Path: /nodeX1
10:29:21,928 INFO  [STDOUT] Tipo: 1
10:29:21,928 INFO  [STDOUT] UserId: thiago
10:29:21,930 INFO  [STDOUT] 10:29:21,930 INFO  [RepositoryStartupServlet] nodeX1 gravado com
sucesso
10:29:21,969 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:21,970 INFO  [STDOUT] Path: /nodeX2
10:29:21,970 INFO  [STDOUT] Tipo: 1
10:29:21,970 INFO  [STDOUT] UserId: thiago
10:29:21,971 INFO  [STDOUT] 10:29:21,971 INFO  [RepositoryStartupServlet] nodeX2 gravado com
sucesso
10:29:22,011 INFO  [STDOUT] 10:29:22,011 INFO  [RepositoryStartupServlet] nodeX3 gravado com
sucesso
10:29:22,036 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:22,036 INFO  [STDOUT] Path: /nodeX4
10:29:22,036 INFO  [STDOUT] Tipo: 1
10:29:22,036 INFO  [STDOUT] UserId: thiago
10:29:22,038 INFO  [STDOUT] 10:29:22,037 INFO  [RepositoryStartupServlet] nodeX4 gravado com
sucesso
10:29:22,097 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:22,097 INFO  [STDOUT] Path: /nodeX5
10:29:22,097 INFO  [STDOUT] Tipo: 1
10:29:22,097 INFO  [STDOUT] UserId: thiago
10:29:22,098 INFO  [STDOUT] 10:29:22,098 INFO  [RepositoryStartupServlet] nodeX5 gravado com
sucesso
10:29:22,128 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:22,128 INFO  [STDOUT] Path: /nodeX6
10:29:22,128 INFO  [STDOUT] Tipo: 1
10:29:22,128 INFO  [STDOUT] UserId: thiago
10:29:22,130 INFO  [STDOUT] 10:29:22,129 INFO  [RepositoryStartupServlet] nodeX6 gravado com
sucesso
10:29:22,170 INFO  [STDOUT] 10:29:22,170 INFO  [RepositoryStartupServlet] nodeX7 gravado com
sucesso
10:29:22,188 INFO  [STDOUT] 10:29:22,188 INFO  [RepositoryStartupServlet] nodeX8 gravado com
sucesso
10:29:22,225 INFO  [STDOUT] 10:29:22,225 INFO  [RepositoryStartupServlet] nodeX9 gravado com
sucesso
10:29:22,271 INFO  [STDOUT] 10:29:22,271 INFO  [RepositoryStartupServlet] nodeX10 gravado
com sucesso
10:29:22,313 INFO  [STDOUT] 10:29:22,312 INFO  [RepositoryStartupServlet] nodeX11 gravado
com sucesso
10:29:22,371 INFO  [STDOUT] 10:29:22,371 INFO  [RepositoryStartupServlet] nodeX12 gravado
com sucesso
10:29:22,413 INFO  [STDOUT] Estou no ListenerNodeAddEscribaBase
10:29:22,413 INFO  [STDOUT] Path: /nodeX13
10:29:22,413 INFO  [STDOUT] Tipo: 1
10:29:22,413 INFO  [STDOUT] UserId: thiago
10:29:22,415 INFO  [STDOUT] 10:29:22,415 INFO  [RepositoryStartupServlet] nodeX13 gravado
com sucesso
10:29:22,447 INFO  [STDOUT] 10:29:22,447 INFO  [RepositoryStartupServlet] nodeX14 gravado
com sucesso
10:29:22,491 INFO  [STDOUT] 10:29:22,491 INFO  [RepositoryStartupServlet] nodeX15 gravado
com sucesso
10:29:22,525 INFO  [STDOUT] 10:29:22,524 INFO  [RepositoryStartupServlet] nodeX16 gravado
com sucesso
10:29:22,563 INFO  [STDOUT] 10:29:22,563 INFO  [RepositoryStartupServlet] nodeX17 gravado
com sucesso
10:29:22,605 INFO  [STDOUT] 10:29:22,605 INFO  [RepositoryStartupServlet] nodeX18 gravado
com sucesso
10:29:22,643 INFO  [STDOUT] 10:29:22,642 INFO  [RepositoryStartupServlet] nodeX19 gravado
com sucesso


Hsp.
Mime
  • Unnamed multipart/mixed (inline, Binary, 0 bytes)
View raw message