Subversion Repositories XServices

Compare Revisions

Ignore whitespace Rev 201 → Rev 200

/xservices/trunk/src/main/resources/MiscServicesScheduler-quartz.properties
File deleted
Property changes:
Deleted: svn:mime-type
-text/plain
\ No newline at end of property
/xservices/trunk/src/main/resources/ddl/BRTX_schema.ddl
File deleted
/xservices/trunk/src/main/resources/eventmanager.properties
File deleted
\ No newline at end of file
/xservices/trunk/src/main/resources/simplelogger.properties
4,12 → 4,12
# Default logging detail level for all instances of SimpleLogger.
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, defaults to "info".
org.slf4j.simpleLogger.defaultLogLevel=warn
org.slf4j.simpleLogger.defaultLogLevel=debug
 
# Logging detail level for a SimpleLogger instance named "xxxxx".
# Must be one of ("trace", "debug", "info", "warn", or "error").
# If not specified, the default logging detail level is used.
org.slf4j.simpleLogger.log.net.brutex.xservices=info
org.slf4j.simpleLogger.log.net.brutex.xservices=debug
 
# Set to true if you want the current date and time to be included in output messages.
# Default is false, and will output the number of milliseconds elapsed since startup.
/xservices/trunk/src/main/java/net/brutex/xservices/util/MiscServiceServletContextListener.java
File deleted
\ No newline at end of file
/xservices/trunk/src/main/java/net/brutex/xservices/util/EventEmitter.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/util/SimpleSoap.java
File deleted
Property changes:
Deleted: svn:mime-type
-text/plain
\ No newline at end of property
/xservices/trunk/src/main/java/net/brutex/xservices/util/EventmanagerConfiguration.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/ws/impl/MiscServiceImpl.java
16,7 → 16,6
 
package net.brutex.xservices.ws.impl;
 
import lombok.extern.slf4j.Slf4j;
import net.brutex.xservices.types.*;
import net.brutex.xservices.types.alfevent.ALFEventResponseType;
import net.brutex.xservices.types.alfevent.ALFEventType;
23,7 → 22,6
import net.brutex.xservices.types.alfevent.ObjectFactory;
import net.brutex.xservices.types.ant.FileSetResource;
import net.brutex.xservices.util.EventEmitter;
import net.brutex.xservices.util.EventmanagerConfiguration;
import net.brutex.xservices.util.RunTask;
import net.brutex.xservices.ws.MiscService;
import net.brutex.xservices.ws.XServicesFault;
48,11 → 46,11
import java.math.BigInteger;
import java.sql.*;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicLong;
 
import static org.quartz.TriggerBuilder.newTrigger;
 
62,7 → 60,6
*
* @author Brian Rosenberger, bru@brutex.de
*/
@Slf4j
@WebService(targetNamespace="http://ws.xservices.brutex.net", endpointInterface="net.brutex.xservices.ws.MiscService", serviceName="MiscService")
public class MiscServiceImpl
implements MiscService {
69,6 → 66,24
 
@Resource
private WebServiceContext context;
 
// Grab the Scheduler instance from the Factory
private final Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
private final static String conStr = "jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;";
 
private final static String dbinit = "" +
"CREATE SCHEMA IF NOT EXISTS brutex;" +
"CREATE TABLE IF NOT EXISTS brutex.tbl_events (" +
"btx_event_type VARCHAR(128) NOT NULL," +
"btx_id VARCHAR(32) NOT NULL, " +
"btx_obj_type VARCHAR(32) NOT NULL, " +
"btx_obj_id VARCHAR(32) NOT NULL, " +
"btx_timestamp BIGINT NOT NULL," +
"btx_event CLOB" +
");" +
"CREATE INDEX IF NOT EXISTS brutex.btx_idx ON brutex.tbl_events (btx_obj_id, btx_obj_type, btx_event_type);" +
"CREATE INDEX IF NOT EXISTS brutex.IDX_TO_DESC ON brutex.tbl_events (btx_timestamp ASC);";
 
public MiscServiceImpl() throws SchedulerException {
}
 
226,21 → 241,11
public ALFEventResponseType mergeALFEvent(ALFEventType event) throws XServicesFault {
final Instant d = Instant.now();
final long ts = d.toEpochMilli();
//System.out.println("Step 1: " + ChronoUnit.MILLIS.between(Instant.now(), d));
 
//Get Parameters from the Servlet Context
final ServletContext servletContext =
(ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
final EventmanagerConfiguration conf = (EventmanagerConfiguration) servletContext
.getAttribute(EventmanagerConfiguration.KEY);
 
final JdbcConnectionPool pool = (JdbcConnectionPool) servletContext.getAttribute("mdbConnection");
final JdbcConnectionPool fpool = (JdbcConnectionPool) servletContext.getAttribute("fdbConnection");
final AtomicLong egres_counter = (AtomicLong) servletContext.getAttribute("egres_counter");
final AtomicLong ingres_counter = (AtomicLong) servletContext.getAttribute("ingres_counter");
final Scheduler scheduler = (Scheduler) servletContext.getAttribute("scheduler");
 
log.trace("Read dbConnection from servlet context: {}", pool);
 
final JdbcConnectionPool pool = (JdbcConnectionPool) servletContext.getAttribute("dbConnection");
//System.out.println("Step 2: " + ChronoUnit.MILLIS.between(Instant.now(), d));
final ObjectFactory of = new ObjectFactory();
 
248,15 → 253,16
final String eventId = event.getBase().getEventId();
final String objectType = event.getBase().getObjectType();
final String eventType = event.getBase().getEventType();
log.debug("Event id '{}', type '{}' received for object '{}' with object_id '{}'.",
eventId, eventType, objectType, objectId);
 
final String mergeStatememt = "MERGE INTO brutex.tbl_events " +
"KEY (btx_event_type, btx_obj_type, btx_obj_id) " +
"VALUES (?,?,?,?,?,?);";
"VALUES (?,?,?,?,?,?) " +
"";
 
 
long rows = 0L;
//System.out.println("Step 3: " + ChronoUnit.MILLIS.between(Instant.now(), d));
try {
//System.out.println("Step 4: " + ChronoUnit.MILLIS.between(Instant.now(), d));
Marshaller m = JAXBContext.newInstance(ALFEventType.class).createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
264,8 → 270,7
StringWriter sw = new StringWriter();
m.marshal(e, sw);
StringBuilder sb = new StringBuilder();
sb.append(" <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:ns=\"http://www.eclipse.org/alf/schema/EventBase/1\">\n");
sb.append(" <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns=\"http://www.eclipse.org/alf/schema/EventBase/1\">\n");
sb.append("<soapenv:Body>\n");
sb.append("<ns:EventNotice>\n");
sb.append(sw);
272,8 → 277,9
sb.append("</ns:EventNotice>\n");
sb.append("</soapenv:Body>");
sb.append("</soapenv:Envelope>");
 
//System.out.println("Step 5: " + ChronoUnit.MILLIS.between(Instant.now(), d));
Connection con = pool.getConnection();
//System.out.println("Step 6: " + ChronoUnit.MILLIS.between(Instant.now(), d));
PreparedStatement prep = con.prepareStatement(mergeStatememt);
prep.setString(1, eventType);
prep.setString(2, eventId);
281,35 → 287,41
prep.setString(4, objectId);
prep.setLong(5, ts);
prep.setClob(6, new StringReader(sb.toString()));
//prep.setLong(7, ts-20000);
//System.out.println("Step 7 SQL START: " + ChronoUnit.MILLIS.between(Instant.now(), d));
prep.execute();
con.commit();
con.close();
//System.out.println("Step 8 SQL END: " + ChronoUnit.MILLIS.between(Instant.now(), d));
//SimpleSoap ss = new SimpleSoap("http://localhost:8099/ALFEventManager/services/ALFEventManagerSOAP", sb.toString());
//ss.sendSoap(false);
 
ingres_counter.incrementAndGet();
 
// and start it off
 
if (!scheduler.isStarted())
scheduler.start();
if (scheduler.isInStandbyMode())
scheduler.resumeAll();
//System.out.println("Step 9: " + ChronoUnit.MILLIS.between(Instant.now(), d));
synchronized (scheduler) {
if (!scheduler.checkExists(JobKey.jobKey("ALFEmitter"))) {
JobDetail job2 = JobBuilder.newJob(EventEmitter.class)
.withIdentity("ALFEmitter")
.build();
job2.getJobDataMap().put("mdbConnection", pool);
job2.getJobDataMap().put("fdbConnection", fpool);
job2.getJobDataMap().put("run_key", ts);
job2.getJobDataMap().put("egres_counter", egres_counter);
job2.getJobDataMap().put("ingres_counter", ingres_counter);
.withIdentity("ALFEmitter").build();
//job2.getJobDataMap().put("script", job.getScript());
//job2.getJobDataMap().put("description", job.getDescription());
//job2.getJobDataMap().put("date", job.getDate());
 
job2.getJobDataMap().put(EventmanagerConfiguration.KEY, conf);
 
SimpleTrigger t = (SimpleTrigger) newTrigger()
.withIdentity("ALFEmitter").startAt(Date.from(d.plusSeconds(conf.getInterval())))
.withIdentity("ALFEmitter").startAt(Date.from(d.plusSeconds(20)))
.build();
 
scheduler.scheduleJob(job2, t);
}
}
}
//System.out.println("Step 10: " + ChronoUnit.MILLIS.between(Instant.now(), d));
} catch (JAXBException | SQLException | SchedulerException e) {
log.error(e.getMessage());
throw new XServicesFault(e);
throw new XServicesFault(e);
}
return of.createALFEventResponseType();
}
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/ALFEventResponseType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/ALFEventType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/BaseExtensionType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/CustomExtensionType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/ALFEventBase_1.xsd
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/ALFEventWithReplyResponseType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/EmBaseType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/ObjectFactory.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/EventBaseType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/ALFEventManagerSOAP.xsd
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/CredentialsType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/EmExtensionType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/DetailExtensionType.java
File deleted
/xservices/trunk/src/main/java/net/brutex/xservices/types/alfevent/SourceType.java
File deleted
/xservices/trunk/src/main/webapp/WEB-INF/web.xml
73,7 → 73,7
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
83,7 → 83,6
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
-->
<servlet>
<servlet-name>CacheServlet</servlet-name>
<servlet-class>net.brutex.xservices.util.cache.CacheServlet</servlet-class>