private void writeEvent()

in src/main/java/org/apache/sling/event/dea/impl/DistributedEventReceiver.java [227:270]


    private void writeEvent(final Event event)
    throws PersistenceException {
        final Calendar now = Calendar.getInstance();

        final StringBuilder sb = new StringBuilder(this.ownRootPath);
        sb.append('/');
        sb.append(now.get(Calendar.YEAR));
        sb.append('/');
        sb.append(now.get(Calendar.MONTH) + 1);
        sb.append('/');
        sb.append(now.get(Calendar.DAY_OF_MONTH));
        sb.append('/');
        sb.append(now.get(Calendar.HOUR_OF_DAY));
        sb.append('/');
        sb.append(now.get(Calendar.MINUTE));
        sb.append('/');
        sb.append("event-");
        sb.append(String.valueOf(eventCounter.getAndIncrement()));

        // create properties
        final Map<String, Object> properties = new HashMap<String, Object>();

        final String[] propNames = event.getPropertyNames();
        if ( propNames != null && propNames.length > 0 ) {
            for(final String propName : propNames) {
                properties.put(propName, event.getProperty(propName));
            }
        }

        properties.remove(DEAConstants.PROPERTY_DISTRIBUTE);
        properties.put(EventConstants.EVENT_TOPIC, event.getTopic());
        properties.put(DEAConstants.PROPERTY_APPLICATION, this.slingId);
        final Object oldRT = properties.get(ResourceResolver.PROPERTY_RESOURCE_TYPE);
        if ( oldRT != null ) {
            properties.put("event.dea." + ResourceResolver.PROPERTY_RESOURCE_TYPE, oldRT);
        }
        properties.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, DistributedEventAdminImpl.RESOURCE_TYPE_EVENT);
        this.writerResolver.refresh();
        ResourceUtil.getOrCreateResource(this.writerResolver,
                sb.toString(),
                properties,
                DistributedEventAdminImpl.RESOURCE_TYPE_FOLDER,
                true);
    }