You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@batchee.apache.org by rm...@apache.org on 2013/11/05 08:39:25 UTC
[48/62] importing batchee from github - a fork from the IBm RI
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEBatchArtifactFactoryImpl.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEBatchArtifactFactoryImpl.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEBatchArtifactFactoryImpl.java
deleted file mode 100755
index bbd5757..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEBatchArtifactFactoryImpl.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.services.impl;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamReader;
-
-import com.ibm.jbatch.container.exception.BatchContainerRuntimeException;
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.spi.services.IBatchArtifactFactory;
-import com.ibm.jbatch.spi.services.IBatchConfig;
-
-public class JSEBatchArtifactFactoryImpl implements IBatchArtifactFactory, XMLStreamConstants {
-
- private final static Logger logger = Logger.getLogger(JSEBatchArtifactFactoryImpl.class.getName());
- private final static String CLASSNAME = JSEBatchArtifactFactoryImpl.class.getName();
-
- // TODO - surface constants
- private final static String BATCH_XML = "META-INF/batch.xml";
- private final static QName BATCH_ROOT_ELEM = new QName("http://xmlns.jcp.org/xml/ns/javaee", "batch-artifacts");
-
- // TODO - synchronize appropriately once we learn more about usage
- private boolean loaded = false;
- private volatile ArtifactMap artifactMap = null;
-
- // Uses TCCL
- @Override
- public Object load(String batchId) {
- String methodName = "load";
-
- if (logger.isLoggable(Level.FINER)) {
- logger.entering(CLASSNAME, methodName, "Loading batch artifact id = " + batchId);
- }
-
- ClassLoader tccl = Thread.currentThread().getContextClassLoader();
-
- if (logger.isLoggable(Level.FINE)) {
- logger.fine("TCCL = " + tccl);
- }
-
- initArtifactMapFromClassLoader(tccl);
-
- Object loadedArtifact = artifactMap.getArtifactById(batchId);
-
- if (loadedArtifact == null) {
- throw new IllegalArgumentException("Could not load any artifacts with batch id=" + batchId);
- }
-
- if (logger.isLoggable(Level.FINER)) {
- logger.exiting(CLASSNAME, methodName, "For batch artifact id = " + batchId + ", loaded artifact instance: " +
- loadedArtifact + " of type: " + loadedArtifact.getClass().getCanonicalName());
- }
- return loadedArtifact;
- }
-
- private void initArtifactMapFromClassLoader(ClassLoader loader) {
- /*
- * Following pattern in:
- * http://en.wikipedia.org/wiki/Double-checked_locking
- */
- ArtifactMap tempMap = artifactMap;
- if (tempMap == null) {
- synchronized(this) {
- tempMap = artifactMap;
- if (tempMap == null) {
- tempMap = new ArtifactMap();
- InputStream is = getBatchXMLStreamFromClassLoader(loader);
- artifactMap = populateArtifactMapFromStream(tempMap, is);
- }
- }
- }
- }
-
- protected InputStream getBatchXMLStreamFromClassLoader(ClassLoader loader) {
- InputStream is = loader.getResourceAsStream(BATCH_XML);
-
- if (is == null) {
- throw new IllegalStateException("Unable to load batch.xml");
- }
-
- return is;
- }
-
- /*
- * Non-validating (e.g. that the artifact type is correct) load
- *
- * TODO - add some logging to the parsing
- */
- protected ArtifactMap populateArtifactMapFromStream(ArtifactMap tempMap, InputStream is) {
- XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
-
-
- try {
- XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(is);
-
- if (logger.isLoggable(Level.FINEST)) {
- logger.finest("Loaded XMLStreamReader = " + xmlStreamReader);
- }
-
- boolean processedRoot = false;
-
- // We are going to take advantage of the simplified structure of a
- // line
- // E.g.:
- // <batch-artifacts>
- // <ref id="myItemProcessor" class="jsr352/sample/MyItemProcessorImpl" />
- // ..
- // </batch-artifacts>
- //
- // and have much simpler logic than general-purpose parsing would
- // require.
- while (xmlStreamReader.hasNext()) {
- int event = xmlStreamReader.next();
-
- // Until we reach end of document
- if (event == END_DOCUMENT) {
- break;
- }
-
- // At this point we have either:
- // A) just passed START_DOCUMENT, and are at START_ELEMENT for the root,
- // <batch-artifacts>, or
- // B) we have just passed END_ELEMENT for one of the artifacts which is a child of
- // <batch-artifacts>.
- //
- // Only handle START_ELEMENT now so we can skip whitespace CHARACTERS events.
- //
- if (event == START_ELEMENT) {
- if (!processedRoot) {
- QName rootQName = xmlStreamReader.getName();
- if (!rootQName.equals(BATCH_ROOT_ELEM)) {
- throw new IllegalStateException("Expecting document with root element QName: " + BATCH_ROOT_ELEM
- + ", but found root element with QName: " + rootQName);
- } else {
- processedRoot = true;
- }
- } else {
-
- // Should only need localName
- String annotationShortName = xmlStreamReader.getLocalName();
- String id = xmlStreamReader.getAttributeValue(null, "id");
- String className = xmlStreamReader.getAttributeValue(null, "class");
- tempMap.addEntry(annotationShortName, id, className);
-
- // Ignore anything else (text/whitespace) within this
- // element
- while (event != END_ELEMENT) {
- event = xmlStreamReader.next();
- }
- }
- }
- }
- xmlStreamReader.close();
- is.close();
- return tempMap;
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- private class ArtifactMap {
-
- private Map<String, Class> idToArtifactClassMap = new HashMap<String, Class>();
-
- // Maps to a list of types not a single type since there's no reason a single artifact couldn't be annotated
- // with >1 batch artifact annotation type.
- private Map<String, List<String>> idToArtifactTypeListMap = new HashMap<String, List<String>>();
-
- /*
- * Init already synchronized, so no need to synch further
- */
- private void addEntry(String batchTypeName, String id, String className) {
- try {
- if (!idToArtifactClassMap.containsKey(id)) {
- Class<?> artifactClass = Thread.currentThread().getContextClassLoader().loadClass(className);
-
- idToArtifactClassMap.put(id, artifactClass);
- List<String> typeList = new ArrayList<String>();
- typeList.add(batchTypeName);
- idToArtifactTypeListMap.put(id, typeList);
- } else {
-
- Class<?> artifactClass = Thread.currentThread().getContextClassLoader().loadClass(className);
-
- // Already contains entry for this 'id', let's make sure it's the same Class
- // which thus must implement >1 batch artifact "type" (i.e. contains >1 batch artifact annotation).
- if (!idToArtifactClassMap.get(id).equals(artifactClass)) {
- if (logger.isLoggable(Level.SEVERE)) {
- Class alreadyLoaded = idToArtifactClassMap.get(id);
- logger.severe("Attempted to load batch artifact with id: " + id + ", and className: " + className +
- ". Found: " + artifactClass + ", however the artifact id: " + id +
- " is already associated with: " + alreadyLoaded + ", of className: " +
- alreadyLoaded.getCanonicalName());
-
- }
- throw new IllegalArgumentException("Already loaded a different class for id = " + id);
- }
- List<String> typeList = idToArtifactTypeListMap.get(id);
- typeList.add(batchTypeName);
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- private Object getArtifactById(String id) {
-
- Object artifactInstance = null;
-
- try {
- Class clazz = idToArtifactClassMap.get(id);
- if (clazz != null) {
- artifactInstance = (idToArtifactClassMap.get(id)).newInstance();
- }
- } catch (IllegalAccessException e) {
- throw new BatchContainerRuntimeException("Tried but failed to load artifact with id: " + id, e);
- } catch (InstantiationException e) {
- throw new BatchContainerRuntimeException("Tried but failed to load artifact with id: " + id, e);
- }
-
-
- return artifactInstance;
- }
-
- private List<String> getBatchTypeList(String id) {
- return idToArtifactTypeListMap.get(id);
- }
-
- }
-
- @Override
- public void init(IBatchConfig batchConfig) throws BatchContainerServiceException {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void shutdown() throws BatchContainerServiceException {
- // TODO Auto-generated method stub
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEResultAdapter.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEResultAdapter.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEResultAdapter.java
deleted file mode 100755
index 6c6ab47..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JSEResultAdapter.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.services.impl;
-
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.spi.services.ParallelTaskResult;
-
-/*
- * An adapter class for a Future object so we can wait for parallel threads/steps/flows to finish before continuing
- */
-public class JSEResultAdapter implements ParallelTaskResult {
-
- private final static String sourceClass = JSEResultAdapter.class.getName();
- private final static Logger logger = Logger.getLogger(sourceClass);
-
- private Future result;
-
- public JSEResultAdapter(Future result) {
- this.result = result;
- }
-
- @Override
- public void waitForResult() {
- try {
- result.get();
- } catch (InterruptedException e) {
- throw new BatchContainerServiceException("Parallel thread was interrupted while waiting for result.", e);
- } catch (ExecutionException e) {
- //We will handle this case through a failed batch status. We will not propagate the exception
- //through the entire thread.
- if (logger.isLoggable(Level.FINE)) {
- logger.fine(sourceClass + ": caught exception/error: " + e.getMessage() + " : Stack trace: " + e.getCause().toString());
- }
-
- } catch (CancellationException e) {
- throw new BatchContainerServiceException("Parallel thread was canceled before completion.", e);
- }
-
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobIdManagerImpl.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobIdManagerImpl.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobIdManagerImpl.java
deleted file mode 100755
index 6c59793..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobIdManagerImpl.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.services.impl;
-
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.spi.services.IBatchConfig;
-import com.ibm.jbatch.spi.services.IJobIdManagementService;
-
-/**
- * Used to generate job instance, job execution and step execution id
- *
- * @deprecated use {@link com.ibm.jbatch.container.services.impl.JDBCPersistenceManagerImpl()} instead.
- */
-@Deprecated
-public class JobIdManagerImpl implements IJobIdManagementService {
-// private static final String CLASSNAME = JobIdManagerImpl.class.getName();
-//
-// protected String rootDir;
-// private static final String JOBID_FILE_NAME = "jobId.dat";
-// private static Logger logger = Logger.getLogger(JobIdManagerImpl.class.getPackage().getName());
-//
- public void init(IBatchConfig batchConfig)
- throws BatchContainerServiceException {
-// rootDir = System.getProperty("user.home");
- }
- public void shutdown() throws BatchContainerServiceException
- {
-
- }
-//
-// @Override
-// public long getExecutionId() {
-// return getId();
-// }
-// @Override
-// public long getInstanceId() {
-// return getId();
-// }
-//
-// @Override
-// public long getStepExecutionId() {
-// return getId();
-// }
-//
-// private synchronized String getJobIdFromStorage() {
-// StringBuilder contents = new StringBuilder("0");
-// File jobIdFile = new File(rootDir + File.separator + JOBID_FILE_NAME);
-// if(jobIdFile.exists())
-// {
-// // Read the file
-// try {
-//
-// BufferedReader input =
-// new BufferedReader(new FileReader(rootDir + File.separator + JOBID_FILE_NAME));
-// try {
-// String line = null;
-// while (( line = input.readLine()) != null){
-// contents.append(line);
-// break;
-// }
-// }
-// finally {
-// input.close();
-// }
-// }
-// catch (IOException ex){
-// ex.printStackTrace();
-// throw new RuntimeException(ex);
-// }
-// }
-//
-// return contents.toString();
-// }
-//
-// private synchronized void saveJobIdToStorage(long currentId) {
-// File jobIdFile = new File(rootDir + File.separator + JOBID_FILE_NAME);
-// try {
-//
-// BufferedWriter output = new BufferedWriter(new FileWriter(jobIdFile));
-//
-// try {
-// output.write(String.valueOf(currentId) );
-// } finally {
-// output.close();
-// }
-//
-// } catch (IOException e) {
-// // TODO Auto-generated catch block
-// e.printStackTrace();
-// throw new RuntimeException(e);
-// }
-// }
-//
-// private long getId() {
-//
-// String id = getJobIdFromStorage();
-//
-// long jobId = Long.valueOf(id);
-//
-// saveJobIdToStorage(++jobId);
-//
-// return jobId;
-// }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobStatusManagerImpl.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobStatusManagerImpl.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobStatusManagerImpl.java
deleted file mode 100755
index ad77ad9..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/JobStatusManagerImpl.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.services.impl;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.batch.runtime.BatchStatus;
-
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.container.exception.PersistenceException;
-import com.ibm.jbatch.container.services.IJobStatusManagerService;
-import com.ibm.jbatch.container.services.IPersistenceManagerService;
-import com.ibm.jbatch.container.servicesmanager.ServicesManager;
-import com.ibm.jbatch.container.servicesmanager.ServicesManagerImpl;
-import com.ibm.jbatch.container.status.JobStatus;
-import com.ibm.jbatch.container.status.StepStatus;
-import com.ibm.jbatch.spi.services.IBatchConfig;
-
-public class JobStatusManagerImpl implements IJobStatusManagerService {
-
- private static final String CLASSNAME = JobStatusManagerImpl.class.getName();
- private static Logger logger = Logger.getLogger(JobStatusManagerImpl.class.getPackage().getName());
- private IPersistenceManagerService _persistenceManager;
-
- @Override
- public void shutdown() throws BatchContainerServiceException {
- // TODO Auto-generated method stub
- }
-
- @Override
- public JobStatus createJobStatus(long jobInstanceId) throws BatchContainerServiceException {
- JobStatus jobStatus = null;
- jobStatus = _persistenceManager.createJobStatus(jobInstanceId);
- return jobStatus;
- }
-
- @Override
- public JobStatus getJobStatus(long jobInstanceId) throws BatchContainerServiceException {
- JobStatus jobStatus = null;
- jobStatus = _persistenceManager.getJobStatus(jobInstanceId);
- return jobStatus;
- }
-
- @Override
- public void updateJobStatus(JobStatus jobStatus) {
- persistJobStatus(jobStatus.getJobInstanceId(), jobStatus);
- }
-
- @Override
- public JobStatus getJobStatusFromExecutionId(long executionId) throws BatchContainerServiceException {
- JobStatus retVal = null;
- logger.fine("For executionId: " + executionId);
- try {
- retVal = _persistenceManager.getJobStatusFromExecution(executionId);
- } catch (PersistenceException e) {
- logger.warning("Did not find job instance status for executionId: " + executionId);
- throw e;
- }
- logger.fine("Returning : " + retVal);
- return retVal;
- }
-
- @Override
- public void updateJobBatchStatus(long jobInstanceId, BatchStatus batchStatus) throws BatchContainerServiceException {
- JobStatus js = getJobStatus(jobInstanceId);
- if (js == null) {
- throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
- }
- if (BatchStatus.ABANDONED.equals(js.getBatchStatus())) {
- logger.fine("Don't update batch status for id = " + jobInstanceId + " since it is already ABANDONED");
- }
- js.setBatchStatus(batchStatus);
- persistJobStatus(jobInstanceId, js);
- }
-
- @Override
- public void updateJobExecutionStatus(long jobInstanceId, BatchStatus batchStatus, String exitStatus) throws BatchContainerServiceException {
- JobStatus js = getJobStatus(jobInstanceId);
- if (js == null) {
- throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
- }
- js.setBatchStatus(batchStatus);
- js.setExitStatus(exitStatus);
- persistJobStatus(jobInstanceId, js);
- }
-
- @Override
- public void updateJobCurrentStep(long jobInstanceId, String currentStepName) throws BatchContainerServiceException {
- JobStatus js = getJobStatus(jobInstanceId);
- if (js == null) {
- throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
- }
- js.setCurrentStepId(currentStepName);
- persistJobStatus(jobInstanceId, js);
- }
-
-
- @Override
- public void updateJobStatusWithNewExecution(long jobInstanceId, long newExecutionId) throws BatchContainerServiceException {
- JobStatus js = getJobStatus(jobInstanceId);
- if (js == null) {
- throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
- }
- js.setRestartOn(null);
- js.setLatestExecutionId(newExecutionId);
- js.setBatchStatus(BatchStatus.STARTING);
- persistJobStatus(jobInstanceId, js);
- }
-
- private void persistJobStatus(long jobInstanceId, JobStatus newJobStatus) throws BatchContainerServiceException {
- _persistenceManager.updateJobStatus(jobInstanceId, newJobStatus);
- }
-
- @Override
- public StepStatus createStepStatus(long stepExecutionId) throws BatchContainerServiceException {
- return _persistenceManager.createStepStatus(stepExecutionId);
- }
-
- @Override
- /*
- * @return - StepStatus or null if one is unknown
- */
- public StepStatus getStepStatus(long jobInstanceId, String stepId) throws BatchContainerServiceException {
- String method = "getStepStatus";
- logger.entering(CLASSNAME, method, new Object[] {jobInstanceId, stepId});
-
- StepStatus stepStatus = _persistenceManager.getStepStatus(jobInstanceId, stepId);
-
- logger.exiting(CLASSNAME, method, stepStatus==null ? "<null>" : stepStatus);
- return stepStatus;
- }
-
- @Override
- public void updateStepStatus(long stepExecutionId, StepStatus newStepStatus) {
- String method = "updateStepStatus";
- logger.entering(CLASSNAME, method, new Object[] {stepExecutionId, newStepStatus});
- _persistenceManager.updateStepStatus(stepExecutionId, newStepStatus);
- logger.exiting(CLASSNAME, method);
- }
-
- @Override
- public void init(IBatchConfig batchConfig)
- throws BatchContainerServiceException {
- String method = "init";
- if(logger.isLoggable(Level.FINER)) { logger.entering(CLASSNAME, method);}
-
- ServicesManager sm = ServicesManagerImpl.getInstance();
-
- _persistenceManager = sm.getPersistenceManagerService();
-
- if(logger.isLoggable(Level.FINER)) { logger.exiting(CLASSNAME, method);}
- }
-
- @Override
- /*
- * Inefficient, since we've already updated the status to stopped.. would be better to have a single update.
- */
- public void updateJobStatusFromJSLStop(long jobInstanceId, String restartOn) throws BatchContainerServiceException {
- JobStatus js = getJobStatus(jobInstanceId);
- if (js == null) {
- throw new IllegalStateException("Couldn't find entry to update for id = " + jobInstanceId);
- }
- js.setRestartOn(restartOn);
- persistJobStatus(jobInstanceId, js);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/NoOpBatchSecurityHelper.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/NoOpBatchSecurityHelper.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/NoOpBatchSecurityHelper.java
deleted file mode 100755
index 00d6e1a..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/NoOpBatchSecurityHelper.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.services.impl;
-
-import com.ibm.jbatch.spi.BatchSecurityHelper;
-
-public class NoOpBatchSecurityHelper implements BatchSecurityHelper {
-
- private static final String APPTAG = "NOTSET";
-
- public NoOpBatchSecurityHelper() {}
-
- @Override
- public String getCurrentTag() {
- return APPTAG;
- }
-
- @Override
- public boolean isAdmin(String tag) {
- return tag.equals(APPTAG);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/RuntimeBatchJobUtil.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/RuntimeBatchJobUtil.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/RuntimeBatchJobUtil.java
deleted file mode 100755
index 25e9708..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/RuntimeBatchJobUtil.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.services.impl;
-
-import javax.batch.runtime.BatchRuntime;
-
-import com.ibm.jbatch.container.api.impl.JobOperatorImpl;
-import com.ibm.jbatch.spi.BatchJobUtil;
-
-public class RuntimeBatchJobUtil implements BatchJobUtil {
-
- @Override
- public void purgeOwnedRepositoryData(String tag) {
-
- JobOperatorImpl jobOperator = (JobOperatorImpl) BatchRuntime.getJobOperator();
- jobOperator.purge(tag);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/SPIDelegatingThreadPoolServiceImpl.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/SPIDelegatingThreadPoolServiceImpl.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/SPIDelegatingThreadPoolServiceImpl.java
deleted file mode 100755
index 383a1ec..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/SPIDelegatingThreadPoolServiceImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.services.impl;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.spi.BatchSPIManager;
-import com.ibm.jbatch.spi.services.IBatchConfig;
-import com.ibm.jbatch.spi.services.IBatchThreadPoolService;
-import com.ibm.jbatch.spi.services.ParallelTaskResult;
-
-public class SPIDelegatingThreadPoolServiceImpl implements IBatchThreadPoolService {
-
- private final static String sourceClass = SPIDelegatingThreadPoolServiceImpl.class.getName();
- private final static Logger logger = Logger.getLogger(sourceClass);
-
- public SPIDelegatingThreadPoolServiceImpl() {
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public void init(IBatchConfig batchConfig) {
- // Don't want to get/cache anything here since we want to delegate each time.
- }
-
-
- public void shutdown() throws BatchContainerServiceException {
- String method = "shutdown";
- if(logger.isLoggable(Level.FINER)) { logger.entering(sourceClass, method); }
-
- ExecutorService delegateService = BatchSPIManager.getInstance().getExecutorServiceProvider().getExecutorService();
- delegateService.shutdownNow();
-
- if(logger.isLoggable(Level.FINER)) { logger.exiting(sourceClass, method); }
- }
-
- public void executeTask(Runnable work, Object config) {
- String method = "executeTask";
- if(logger.isLoggable(Level.FINER)) { logger.entering(sourceClass, method); }
-
- ExecutorService delegateService = BatchSPIManager.getInstance().getExecutorServiceProvider().getExecutorService();
- delegateService.execute(work);
-
- if(logger.isLoggable(Level.FINER)) { logger.exiting(sourceClass, method); }
- }
-
- public ParallelTaskResult executeParallelTask(Runnable work, Object config) {
- String method = "executeParallelTask";
- if(logger.isLoggable(Level.FINER)) { logger.entering(sourceClass, method); }
-
- ExecutorService delegateService = BatchSPIManager.getInstance().getExecutorServiceProvider().getExecutorService();
- Future result = delegateService.submit(work);
- ParallelTaskResult taskResult = new JSEResultAdapter(result);
-
- if(logger.isLoggable(Level.FINER)) { logger.exiting(sourceClass, method); }
-
- return taskResult;
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/WeldSEBatchArtifactFactoryImpl.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/WeldSEBatchArtifactFactoryImpl.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/WeldSEBatchArtifactFactoryImpl.java
deleted file mode 100755
index 21dbd5c..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/impl/WeldSEBatchArtifactFactoryImpl.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.services.impl;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.inject.spi.BeanManager;
-import javax.inject.Named;
-
-import org.jboss.weld.environment.se.Weld;
-import org.jboss.weld.environment.se.WeldContainer;
-
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.spi.services.IBatchArtifactFactory;
-import com.ibm.jbatch.spi.services.IBatchConfig;
-
-@Named("MyWeldBean")
-public class WeldSEBatchArtifactFactoryImpl implements IBatchArtifactFactory {
-
- private final static Logger logger = Logger.getLogger(WeldSEBatchArtifactFactoryImpl.class.getName());
- private final static String CLASSNAME = WeldSEBatchArtifactFactoryImpl.class.getName();
-
- // TODO - synchronize appropriately once we learn more about usage
- private boolean loaded = false;
-
- // Uses TCCL
- @Override
- public Object load(String batchId) {
- String methodName = "load";
-
- if (logger.isLoggable(Level.FINER)) {
- logger.entering(CLASSNAME, methodName, "Loading batch artifact id = " + batchId);
- }
-
- Object loadedArtifact = getArtifactById(batchId);
-
- if (loadedArtifact == null) {
-
- logger.exiting(CLASSNAME, methodName, "Returning null artifact for id: " + batchId);
-
- return loadedArtifact;
-
- }
-
- if (logger.isLoggable(Level.FINER)) {
- logger.exiting(CLASSNAME, methodName, "For batch artifact id = " + batchId + ", loaded artifact instance: " + loadedArtifact
- + " of type: " + loadedArtifact.getClass().getCanonicalName());
- }
- return loadedArtifact;
- }
-
- private Object getArtifactById(String id) {
-
-
-
- Object artifactInstance = null;
-
- try {
- WeldContainer weld = new Weld().initialize();
- BeanManager bm = weld.getBeanManager();
-
- Bean bean = bm.getBeans(id).iterator().next();
-
- Class clazz = bean.getBeanClass();
-
- artifactInstance = bm.getReference(bean, clazz, bm.createCreationalContext(bean));
- } catch (Exception e) {
- // Don't throw an exception but simply return null;
- logger.fine("Tried but failed to load artifact with id: " + id + ", Exception = " + e);
- }
- return artifactInstance;
-
- }
-
- @Override
- public void init(IBatchConfig batchConfig) throws BatchContainerServiceException {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void shutdown() throws BatchContainerServiceException {
- // TODO Auto-generated method stub
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/services/package-info.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/services/package-info.java b/JSR352.Runtime/src/com/ibm/jbatch/container/services/package-info.java
deleted file mode 100755
index 384fbce..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/services/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-/**
- * This interfaces are tightly coupled to the existing
- * batch implementation.
- */
-package com.ibm.jbatch.container.services;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServiceTypes.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServiceTypes.java b/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServiceTypes.java
deleted file mode 100755
index d98d2f3..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServiceTypes.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.servicesmanager;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-public class ServiceTypes {
-
- public enum Name {
- JAVA_EDITION_IS_SE_DUMMY_SERVICE,
- TRANSACTION_SERVICE,
- PERSISTENCE_MANAGEMENT_SERVICE,
- JOB_STATUS_MANAGEMENT_SERVICE,
- BATCH_THREADPOOL_SERVICE,
- BATCH_KERNEL_SERVICE,
- JOB_ID_MANAGEMENT_SERVICE,
- CALLBACK_SERVICE,
- JOBXML_LOADER_SERVICE, // Preferred
- DELEGATING_JOBXML_LOADER_SERVICE, // Delegating wrapper
- CONTAINER_ARTIFACT_FACTORY_SERVICE, // Preferred
- DELEGATING_ARTIFACT_FACTORY_SERVICE // Delegating wrapper
- }
-
- public static final String J2SE_MODE = "J2SE_MODE"; // Trying to preserve this value since we already shared it.
- public static final String TRANSACTION_SERVICE = "TRANSACTION_SERVICE";
- public static final String PERSISTENCE_MANAGEMENT_SERVICE = "PERSISTENCE_MANAGEMENT_SERVICE";
- public static final String JOB_STATUS_MANAGEMENT_SERVICE = "JOB_STATUS_MANAGEMENT_SERVICE";
- public static final String BATCH_THREADPOOL_SERVICE = "BATCH_THREADPOOL_SERVICE";
- public static final String BATCH_KERNEL_SERVICE = "BATCH_KERNEL_SERVICE";
- public static final String JOB_ID_MANAGEMENT_SERVICE = "JOB_ID_MANAGEMENT_SERVICE";
- public static final String CALLBACK_SERVICE = "CALLBACK_SERVICE";
- public static final String JOBXML_LOADER_SERVICE = "JOBXML_LOADER_SERVICE";
- public static final String DELEGATING_JOBXML_LOADER_SERVICE = "DELEGATING_JOBXML_LOADER_SERVICE";
- public static final String CONTAINER_ARTIFACT_FACTORY_SERVICE = "CONTAINER_ARTIFACT_FACTORY_SERVICE";
- public static final String DELEGATING_ARTIFACT_FACTORY_SERVICE = "DELEGATING_ARTIFACT_FACTORY_SERVICE";
-
- // The purpose of the awkwardness of complexity of treating SE vs EE as a
- // "service" is to emphasize the fact that it's something an
- // integrator of the RI into a new environment would configure, rather than
- // a "batch admin".
- private static final String DEFAULT_JAVA_EDITION_IS_SE_DUMMY_SERVICE = "false";
- private static final String DEFAULT_TRANSACTION_SERVICE = "com.ibm.jbatch.container.services.impl.BatchTransactionServiceImpl";
- private static final String DEFAULT_PERSISTENCE_MGR_CLASS = "com.ibm.jbatch.container.services.impl.JDBCPersistenceManagerImpl";
- private static final String DEFAULT_JOBSTATUS_MGR_SERVICE = "com.ibm.jbatch.container.services.impl.JobStatusManagerImpl";
- private static final String DEFAULT_BATCH_THREADPOOL_SERVICE = "com.ibm.jbatch.container.services.impl.GrowableThreadPoolServiceImpl";
- private static final String DEFAULT_BATCH_KERNEL_SERVICE = "com.ibm.jbatch.container.impl.BatchKernelImpl";
- private static final String DEFAULT_JOBID_MGR_SERVICE = "com.ibm.jbatch.container.services.impl.JobIdManagerImpl";
- private static final String DEFAULT_CALLBACK_SERVICE = "com.ibm.jbatch.container.callback.JobEndCallbackManagerImpl";
- private static final String DEFAULT_JOBXML_LOADER_SERVICE = "com.ibm.jbatch.container.services.impl.DelegatingJobXMLLoaderServiceImpl";
- private static final String DEFAULT_DELEGATING_JOBXML_LOADER_SERVICE = "com.ibm.jbatch.container.services.impl.DelegatingJobXMLLoaderServiceImpl";
- private static final String DEFAULT_CONTAINER_ARTIFACT_FACTORY_SERVICE = "com.ibm.jbatch.container.services.impl.DelegatingBatchArtifactFactoryImpl";
- private static final String DEFAULT_DELEGATING_ARTIFACT_FACTORY_SERVICE = "com.ibm.jbatch.container.services.impl.DelegatingBatchArtifactFactoryImpl";
-
- private static Map<String, Name> servicePropertyNames;
- static {
- servicePropertyNames = new ConcurrentHashMap<String, Name>();
- servicePropertyNames.put(J2SE_MODE, Name.JAVA_EDITION_IS_SE_DUMMY_SERVICE);
- servicePropertyNames.put(TRANSACTION_SERVICE, Name.TRANSACTION_SERVICE);
- servicePropertyNames.put(PERSISTENCE_MANAGEMENT_SERVICE, Name.PERSISTENCE_MANAGEMENT_SERVICE);
- servicePropertyNames.put(JOB_STATUS_MANAGEMENT_SERVICE, Name.JOB_STATUS_MANAGEMENT_SERVICE);
- servicePropertyNames.put(BATCH_THREADPOOL_SERVICE, Name.BATCH_THREADPOOL_SERVICE);
- servicePropertyNames.put(BATCH_KERNEL_SERVICE, Name.BATCH_KERNEL_SERVICE);
- servicePropertyNames.put(JOB_ID_MANAGEMENT_SERVICE, Name.JOB_ID_MANAGEMENT_SERVICE);
- servicePropertyNames.put(CALLBACK_SERVICE, Name.CALLBACK_SERVICE);
- servicePropertyNames.put(JOBXML_LOADER_SERVICE, Name.JOBXML_LOADER_SERVICE);
- servicePropertyNames.put(DELEGATING_JOBXML_LOADER_SERVICE, Name.DELEGATING_JOBXML_LOADER_SERVICE);
- servicePropertyNames.put(CONTAINER_ARTIFACT_FACTORY_SERVICE, Name.CONTAINER_ARTIFACT_FACTORY_SERVICE);
- servicePropertyNames.put(DELEGATING_ARTIFACT_FACTORY_SERVICE, Name.DELEGATING_ARTIFACT_FACTORY_SERVICE);
- }
-
- public static Map<String, Name> getServicePropertyNames() {
- return servicePropertyNames;
- }
-
- // Use class names instead of Class objects to not drag in any dependencies);
- private static Map<Name, String> serviceImplClassNames;
- static {
- serviceImplClassNames = new ConcurrentHashMap<Name, String>();
- serviceImplClassNames.put(Name.JAVA_EDITION_IS_SE_DUMMY_SERVICE, DEFAULT_JAVA_EDITION_IS_SE_DUMMY_SERVICE);
- serviceImplClassNames.put(Name.TRANSACTION_SERVICE, DEFAULT_TRANSACTION_SERVICE);
- serviceImplClassNames.put(Name.PERSISTENCE_MANAGEMENT_SERVICE, DEFAULT_PERSISTENCE_MGR_CLASS);
- serviceImplClassNames.put(Name.JOB_STATUS_MANAGEMENT_SERVICE, DEFAULT_JOBSTATUS_MGR_SERVICE);
- serviceImplClassNames.put(Name.BATCH_THREADPOOL_SERVICE, DEFAULT_BATCH_THREADPOOL_SERVICE);
- serviceImplClassNames.put(Name.BATCH_KERNEL_SERVICE, DEFAULT_BATCH_KERNEL_SERVICE);
- serviceImplClassNames.put(Name.JOB_ID_MANAGEMENT_SERVICE, DEFAULT_JOBID_MGR_SERVICE);
- serviceImplClassNames.put(Name.CALLBACK_SERVICE, DEFAULT_CALLBACK_SERVICE);
- serviceImplClassNames.put(Name.JOBXML_LOADER_SERVICE, DEFAULT_JOBXML_LOADER_SERVICE);
- serviceImplClassNames.put(Name.DELEGATING_JOBXML_LOADER_SERVICE, DEFAULT_DELEGATING_JOBXML_LOADER_SERVICE);
- serviceImplClassNames.put(Name.CONTAINER_ARTIFACT_FACTORY_SERVICE, DEFAULT_CONTAINER_ARTIFACT_FACTORY_SERVICE);
- serviceImplClassNames.put(Name.DELEGATING_ARTIFACT_FACTORY_SERVICE, DEFAULT_DELEGATING_ARTIFACT_FACTORY_SERVICE);
- }
-
- public static Map<Name, String> getServiceImplClassNames() {
- return serviceImplClassNames;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManager.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManager.java b/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManager.java
deleted file mode 100755
index 8a27b1c..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManager.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.servicesmanager;
-
-import com.ibm.jbatch.container.callback.IJobEndCallbackService;
-import com.ibm.jbatch.container.services.IBatchKernelService;
-import com.ibm.jbatch.container.services.IJobStatusManagerService;
-import com.ibm.jbatch.container.services.IPersistenceManagerService;
-import com.ibm.jbatch.spi.services.IBatchArtifactFactory;
-import com.ibm.jbatch.spi.services.IBatchThreadPoolService;
-import com.ibm.jbatch.spi.services.IJobIdManagementService;
-import com.ibm.jbatch.spi.services.IJobXMLLoaderService;
-import com.ibm.jbatch.spi.services.ITransactionManagementService;
-
-public interface ServicesManager {
- public IPersistenceManagerService getPersistenceManagerService();
- public IJobStatusManagerService getJobStatusManagerService();
- public IJobIdManagementService getJobIdManagementService();
- public ITransactionManagementService getTransactionManagementService();
- public IJobEndCallbackService getJobCallbackService();
- public IBatchKernelService getBatchKernelService();
- public IJobXMLLoaderService getDelegatingJobXMLLoaderService();
- public IJobXMLLoaderService getPreferredJobXMLLoaderService();
- public IBatchThreadPoolService getThreadPoolService();
- public IBatchArtifactFactory getDelegatingArtifactFactory();
- public IBatchArtifactFactory getPreferredArtifactFactory();
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManagerImpl.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManagerImpl.java b/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManagerImpl.java
deleted file mode 100755
index 77fb7dc..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/servicesmanager/ServicesManagerImpl.java
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- *
- * Copyright 2012,2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.servicesmanager;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Constructor;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.ibm.jbatch.container.callback.IJobEndCallbackService;
-import com.ibm.jbatch.container.exception.BatchContainerServiceException;
-import com.ibm.jbatch.container.exception.PersistenceException;
-import com.ibm.jbatch.container.impl.BatchConfigImpl;
-import com.ibm.jbatch.container.services.IBatchKernelService;
-import com.ibm.jbatch.container.services.IJobStatusManagerService;
-import com.ibm.jbatch.container.services.IPersistenceManagerService;
-import com.ibm.jbatch.container.servicesmanager.ServiceTypes.Name;
-import com.ibm.jbatch.container.util.BatchContainerConstants;
-import com.ibm.jbatch.spi.BatchSPIManager;
-import com.ibm.jbatch.spi.DatabaseConfigurationBean;
-import com.ibm.jbatch.spi.services.IBatchArtifactFactory;
-import com.ibm.jbatch.spi.services.IBatchServiceBase;
-import com.ibm.jbatch.spi.services.IBatchThreadPoolService;
-import com.ibm.jbatch.spi.services.IJobIdManagementService;
-import com.ibm.jbatch.spi.services.IJobXMLLoaderService;
-import com.ibm.jbatch.spi.services.ITransactionManagementService;
-
-public class ServicesManagerImpl implements BatchContainerConstants, ServicesManager {
-
- private final static String sourceClass = ServicesManagerImpl.class.getName();
- private final static Logger logger = Logger.getLogger(sourceClass);
-
- private ServicesManagerImpl() { }
-
- // Lazily-loaded singleton.
- private static class ServicesManagerImplHolder {
- private static final ServicesManagerImpl INSTANCE = new ServicesManagerImpl();
- }
-
- public static ServicesManager getInstance() {
- return ServicesManagerImplHolder.INSTANCE;
- }
-
- // Declared 'volatile' to allow use in double-checked locking. This 'isInited'
- // refers to whether the configuration has been hardened and possibly the
- // first service impl loaded, not whether the instance has merely been instantiated.
- private final byte[] isInitedLock = new byte[0];
- private volatile Boolean isInited = Boolean.FALSE;
-
- private DatabaseConfigurationBean databaseConfigBean = null;
- private BatchConfigImpl batchRuntimeConfig;
- private Properties batchContainerProps = null;
-
-
- private Map<Name, String> serviceImplClassNames = ServiceTypes.getServiceImplClassNames();
- private Map<String, Name> propertyNameTable = ServiceTypes.getServicePropertyNames();
-
- // Registry of all current services
- private final ConcurrentHashMap<Name, IBatchServiceBase> serviceRegistry = new ConcurrentHashMap<Name, IBatchServiceBase>();
-
- /**
- * Init doesn't actually load the service impls, which are still loaded lazily. What it does is it
- * hardens the config. This is necessary since the batch runtime by and large is not dynamically
- * configurable, (e.g. via MBeans). Things like the database config used by the batch runtime's
- * persistent store are hardened then, as are the names of the service impls to use.
- */
- private void initIfNecessary() {
- if (logger.isLoggable(Level.FINER)) {
- logger.config("In initIfNecessary().");
- }
- // Use double-checked locking with volatile.
- if (!isInited) {
- synchronized (isInitedLock) {
- if (!isInited) {
- logger.config("--- Initializing ServicesManagerImpl ---");
- batchRuntimeConfig = new BatchConfigImpl();
-
- initFromPropertiesFiles();
- initServiceImplOverrides();
- initDatabaseConfig();
- initOtherConfig();
- isInited = Boolean.TRUE;
-
- logger.config("--- Completed initialization of ServicesManagerImpl ---");
- }
- }
- }
-
- logger.config("Exiting initIfNecessary()");
- }
-
- private void initFromPropertiesFiles() {
-
- Properties serviceIntegratorProps = new Properties();
- InputStream batchServicesListInputStream = this.getClass()
- .getResourceAsStream("/META-INF/services/" + BATCH_INTEGRATOR_CONFIG_FILE);
-
- if (batchServicesListInputStream != null) {
- try {
- logger.config("Batch Integrator Config File exists! loading it..");
- serviceIntegratorProps.load(batchServicesListInputStream);
- batchServicesListInputStream.close();
- } catch (IOException e) {
- logger.config("Error loading " + "/META-INF/services/" + BATCH_INTEGRATOR_CONFIG_FILE + " IOException=" + e.toString());
- } catch (Exception e) {
- logger.config("Error loading " + "/META-INF/services/" + BATCH_INTEGRATOR_CONFIG_FILE + " Exception=" + e.toString());
- }
- } else {
- logger.config("Could not find batch integrator config file: " + "/META-INF/services/" + BATCH_INTEGRATOR_CONFIG_FILE);
- }
-
- // See if any do not map to service impls.
-
- Set<String> removeThese = new HashSet<String>();
- for (Object key : serviceIntegratorProps.keySet()) {
- String keyStr = (String) key;
- if (!propertyNameTable.containsKey(keyStr)) {
- logger.warning("Found property named: " + keyStr
- + " with value: " + serviceIntegratorProps.get(keyStr)
- + " in " + BATCH_INTEGRATOR_CONFIG_FILE + " , but did not find a corresponding service type "
- + "in the internal table of service types.\n Ignoring this property then. Maybe this should have been set in batch-config.properties instead.");
- removeThese.add(keyStr);
- }
- }
- for (String s : removeThese) {
- serviceIntegratorProps.remove(s);
- }
-
- Properties adminProps = new Properties();
- InputStream batchAdminConfigListInputStream = this.getClass().getResourceAsStream("/META-INF/services/" + BATCH_ADMIN_CONFIG_FILE);
-
- if (batchServicesListInputStream != null) {
- try {
- logger.config("Batch Admin Config File exists! loading it..");
- adminProps.load(batchAdminConfigListInputStream);
- batchAdminConfigListInputStream.close();
- } catch (IOException e) {
- logger.config("Error loading " + "/META-INF/services/" + BATCH_ADMIN_CONFIG_FILE + " IOException=" + e.toString());
- } catch (Exception e) {
- logger.config("Error loading " + "/META-INF/services/" + BATCH_ADMIN_CONFIG_FILE + " Exception=" + e.toString());
- }
- } else {
- logger.config("Could not find batch admin config file: " + "/META-INF/services/" + BATCH_ADMIN_CONFIG_FILE);
- }
-
- // See if any DO map to service impls, which would be a mistake
- Set<String> removeTheseToo = new HashSet<String>();
- for (Object key : adminProps.keySet()) {
- String keyStr = (String) key;
- if (propertyNameTable.containsKey(keyStr)) {
- logger.warning("Found property named: " + keyStr + " with value: " + adminProps.get(keyStr) + " in "
- + BATCH_ADMIN_CONFIG_FILE + " , but this is a batch runtime service configuration.\n"
- + "Ignoring this property then, since this should have been set in batch-services.properties instead.");
- removeThese.add(keyStr);
- }
- }
- for (String s : removeTheseToo) {
- adminProps.remove(s);
- }
-
- // Merge the two into 'batchContainerProps'
- batchContainerProps = new Properties();
- batchContainerProps.putAll(adminProps);
- batchContainerProps.putAll(serviceIntegratorProps);
-
- logger.fine("Dumping contents of batchContainerProps after reading properties files.");
- for (Object key : batchContainerProps.keySet()) {
- logger.config("key = " + key);
- logger.config("value = " + batchContainerProps.get(key));
- }
-
- // Set this on the config.
- //
- // WARNING: This sets us up for collisions since this is just a single holder of properties
- // potentially used by any service impl.
- batchRuntimeConfig.setConfigProperties(batchContainerProps);
- }
-
- private void initServiceImplOverrides() {
-
- // For each property we care about (i.e that defines one of our service impls)
- for (String propKey : propertyNameTable.keySet()) {
- // If the property is defined
- String value = batchContainerProps.getProperty(propKey);
- if (value != null) {
- // Get the corresponding serviceType enum and store the value of
- // the key/value property pair in the table where we store the service impl classnames.
- Name serviceType = propertyNameTable.get(propKey);
- String defaultServiceImplClassName = serviceImplClassNames.get(serviceType); // For logging.
- serviceImplClassNames.put(serviceType, value.trim());
- logger.config("Overriding serviceType: " + serviceType + ", replacing default impl classname: " +
- defaultServiceImplClassName + " with override impl class name: " + value.trim());
- }
- }
- }
-
- private void initDatabaseConfig() {
- if (databaseConfigBean == null) {
- logger.config("First try to load 'suggested config' from BatchSPIManager");
- databaseConfigBean = BatchSPIManager.getInstance().getFinalDatabaseConfiguration();
- if (databaseConfigBean == null) {
- logger.fine("Loading database config from configuration properties file.");
- // Initialize database-related properties
- databaseConfigBean = new DatabaseConfigurationBean();
- databaseConfigBean.setJndiName(batchContainerProps.getProperty(JNDI_NAME, DEFAULT_JDBC_JNDI_NAME));
- databaseConfigBean.setJdbcDriver(batchContainerProps.getProperty(JDBC_DRIVER, DEFAULT_JDBC_DRIVER));
- databaseConfigBean.setJdbcUrl(batchContainerProps.getProperty(JDBC_URL, DEFAULT_JDBC_URL));
- databaseConfigBean.setDbUser(batchContainerProps.getProperty(DB_USER));
- databaseConfigBean.setDbPassword(batchContainerProps.getProperty(DB_PASSWORD));
- databaseConfigBean.setSchema(batchContainerProps.getProperty(DB_SCHEMA, DEFAULT_DB_SCHEMA));
- }
- } else {
- // Currently we do not expected this path to be used by Glassfish
- logger.config("Database config has been set directly from SPI, do NOT load from properties file.");
- }
- // In either case, set this bean on the main config bean
- batchRuntimeConfig.setDatabaseConfigurationBean(databaseConfigBean);
- }
-
-
- private void initOtherConfig() {
- String seMode = serviceImplClassNames.get(Name.JAVA_EDITION_IS_SE_DUMMY_SERVICE);
- if (seMode.equalsIgnoreCase("true")) {
- batchRuntimeConfig.setJ2seMode(true);
- }
- }
-
- // Look up registry and return requested service if exist
- // If not exist, create a new one, add to registry and return that one
- /* (non-Javadoc)
- * @see com.ibm.jbatch.container.config.ServicesManager#getService(com.ibm.jbatch.container.config.ServicesManagerImpl.ServiceType)
- */
- private IBatchServiceBase getService(Name serviceType) throws BatchContainerServiceException {
- String sourceMethod = "getService";
- if (logger.isLoggable(Level.FINE))
- logger.entering(sourceClass, sourceMethod + ", serviceType=" + serviceType);
-
- initIfNecessary();
-
- IBatchServiceBase service = new ServiceLoader(serviceType).getService();
-
- if (logger.isLoggable(Level.FINE))
- logger.exiting(sourceClass, sourceMethod);
-
- return service;
- }
-
- /*
- * public enum Name {
- JAVA_EDITION_IS_SE_DUMMY_SERVICE,
- TRANSACTION_SERVICE,
- PERSISTENCE_MANAGEMENT_SERVICE,
- JOB_STATUS_MANAGEMENT_SERVICE,
- BATCH_THREADPOOL_SERVICE,
- BATCH_KERNEL_SERVICE,
- JOB_ID_MANAGEMENT_SERVICE,
- CALLBACK_SERVICE,
- JOBXML_LOADER_SERVICE, // Preferred
- DELEGATING_JOBXML_LOADER_SERVICE, // Delegating wrapper
- CONTAINER_ARTIFACT_FACTORY_SERVICE, // Preferred
- DELEGATING_ARTIFACT_FACTORY_SERVICE // Delegating wrapper
- */
-
- @Override
- public ITransactionManagementService getTransactionManagementService() {
- return (ITransactionManagementService)getService(Name.TRANSACTION_SERVICE);
- }
-
- @Override
- public IPersistenceManagerService getPersistenceManagerService() {
- return (IPersistenceManagerService)getService(Name.PERSISTENCE_MANAGEMENT_SERVICE);
- }
-
- @Override
- public IJobStatusManagerService getJobStatusManagerService() {
- return (IJobStatusManagerService)getService(Name.JOB_STATUS_MANAGEMENT_SERVICE);
- }
-
- @Override
- public IBatchThreadPoolService getThreadPoolService() {
- return (IBatchThreadPoolService)getService(Name.BATCH_THREADPOOL_SERVICE);
- }
-
- @Override
- public IBatchKernelService getBatchKernelService() {
- return (IBatchKernelService)getService(Name.BATCH_KERNEL_SERVICE);
- }
-
- @Override
- public IJobIdManagementService getJobIdManagementService() {
- return (IJobIdManagementService)getService(Name.JOB_ID_MANAGEMENT_SERVICE);
- }
-
- @Override
- public IJobEndCallbackService getJobCallbackService() {
- return (IJobEndCallbackService)getService(Name.CALLBACK_SERVICE);
- }
-
- @Override
- public IJobXMLLoaderService getPreferredJobXMLLoaderService() {
- return (IJobXMLLoaderService)getService(Name.JOBXML_LOADER_SERVICE);
- }
-
- @Override
- public IJobXMLLoaderService getDelegatingJobXMLLoaderService() {
- return (IJobXMLLoaderService)getService(Name.DELEGATING_JOBXML_LOADER_SERVICE);
- }
-
- @Override
- public IBatchArtifactFactory getPreferredArtifactFactory() {
- return (IBatchArtifactFactory)getService(Name.CONTAINER_ARTIFACT_FACTORY_SERVICE);
- }
-
- @Override
- public IBatchArtifactFactory getDelegatingArtifactFactory() {
- return (IBatchArtifactFactory)getService(Name.DELEGATING_ARTIFACT_FACTORY_SERVICE);
- }
-
-
- private class ServiceLoader {
-
-
- volatile IBatchServiceBase service = null;
- private Name serviceType = null;
-
- private ServiceLoader(Name name) {
- this.serviceType = name;
- }
-
- private IBatchServiceBase getService() {
- service = serviceRegistry.get(serviceType);
- if (service == null) {
- // Probably don't want to be loading two on two different threads so lock the whole table.
- synchronized (serviceRegistry) {
- if (service == null) {
- service = _loadServiceHelper(serviceType);
- service.init(batchRuntimeConfig);
- serviceRegistry.putIfAbsent(serviceType, service);
- }
- }
- }
- return service;
- }
- /**
- * Try to load the IGridContainerService given by the className. If it fails
- * to load, default to the defaultClass. If the default fails to load, then
- * blow out of here with a RuntimeException.
- */
- private IBatchServiceBase _loadServiceHelper(Name serviceType) {
- IBatchServiceBase service = null;
- Throwable e = null;
-
- String className = serviceImplClassNames.get(serviceType);
- try {
- if (className != null)
- service = _loadService(className);
- } catch (PersistenceException pe) {
- // Don't rewrap to make it a bit clearer
- logger.log(Level.SEVERE, "Caught persistence exception which probably means there is an issue initalizing and/or connecting to the RI database");
- throw pe;
- } catch (Throwable e1) {
- e = e1;
- logger.log(Level.SEVERE, "Could not instantiate service: " + className + " due to exception:" + e);
- throw new RuntimeException("Could not instantiate service " + className + " due to exception: " + e);
- }
-
- if (service == null) {
- throw new RuntimeException("Instantiate of service=: " + className + " returned null. Aborting...");
- }
-
- return service;
- }
-
- private IBatchServiceBase _loadService(String className) throws Exception {
-
- IBatchServiceBase service = null;
-
- Class cls = Class.forName(className);
-
- if (cls != null) {
- Constructor ctor = cls.getConstructor();
- if (ctor != null) {
- service = (IBatchServiceBase) ctor.newInstance();
- } else {
- throw new Exception("Service class " + className + " should have a default constructor defined");
- }
- } else {
- throw new Exception("Exception loading Service class " + className + " make sure it exists");
- }
-
- return service;
- }
- }
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExecutionStatus.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExecutionStatus.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExecutionStatus.java
deleted file mode 100755
index f4b7e57..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExecutionStatus.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.status;
-
-public class ExecutionStatus {
- boolean batchStatusOnly;
- private ExtendedBatchStatus extendedBatchStatus;
- private String exitStatus;
- private String restartOn;
-
- // Makes it more explicit that this is not holding an exit status rather than the idea
- // that there should logically be an exit status whose value happens to be 'null'.
- public boolean isBatchStatusOnly() {
- return batchStatusOnly;
- }
-
- public ExecutionStatus() {
- this.batchStatusOnly = true;
- }
-
- public ExecutionStatus(ExtendedBatchStatus extendedBatchStatus) {
- this();
- this.extendedBatchStatus = extendedBatchStatus;
- }
-
- public ExecutionStatus(ExtendedBatchStatus extendedBatchStatus, String exitStatus) {
- super();
- this.extendedBatchStatus = extendedBatchStatus;
- this.exitStatus = exitStatus;
- this.batchStatusOnly = false;
- }
-
- public ExtendedBatchStatus getExtendedBatchStatus() {
- return extendedBatchStatus;
- }
-
- public void setExtendedBatchStatus(ExtendedBatchStatus extendedBatchStatus) {
- this.extendedBatchStatus = extendedBatchStatus;
- }
-
- public String getExitStatus() {
- return exitStatus;
- }
-
- public void setExitStatus(String exitStatus) {
- this.exitStatus = exitStatus;
- this.batchStatusOnly = false;
- }
-
- public String getRestartOn() {
- return restartOn;
- }
-
- public void setRestartOn(String restartOn) {
- this.restartOn = restartOn;
- }
-
- @Override
- public String toString() {
- return "BatchStatusOnly?: " + batchStatusOnly + ", extendedBatchStatus = " + extendedBatchStatus.name() +
- ", exitStatus = " + exitStatus +
- ", restartOn = " + restartOn;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExtendedBatchStatus.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExtendedBatchStatus.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExtendedBatchStatus.java
deleted file mode 100755
index ab1f3ee..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/ExtendedBatchStatus.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.status;
-
-public enum ExtendedBatchStatus {
-
- JSL_END, JSL_FAIL, JSL_STOP, NORMAL_COMPLETION, EXCEPTION_THROWN, JOB_OPERATOR_STOPPING, DO_NOT_RUN
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatus.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatus.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatus.java
deleted file mode 100755
index caa48d7..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatus.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.status;
-import java.io.Serializable;
-
-import javax.batch.runtime.BatchStatus;
-import javax.batch.runtime.JobInstance;
-
-import com.ibm.jbatch.container.jobinstance.JobInstanceImpl;
-
-public class JobStatus implements Serializable, Cloneable{
-
- private static final long serialVersionUID = 1L;
-
- private JobInstance jobInstance;
-
- private long jobInstanceId;
-
- private String currentStepId;
-
- private BatchStatus batchStatus; // Might be nice to know.
-
- private String exitStatus;
-
- // Assume this will be needed.
- private long latestExecutionId;
-
- // How many times the status has been updated.
-
- //TODO - reset to 0?
- //private int updateCount;
-
- // TODO - Maybe a job operator would use this?
- //private int restartCount;
-
- private String restartOn;
-
- public JobStatus(long jobInstanceId) {
- this.jobInstanceId = jobInstanceId;
- }
-
- public JobStatus(JobInstance jobInstance) {
- this.batchStatus = BatchStatus.STARTING;
- //this.restartCount = 0;
- // this.updateCount = 0;
- this.jobInstance = jobInstance;
- this.jobInstanceId = jobInstance.getInstanceId();
- }
-
- public long getJobInstanceId() {
- return this.jobInstanceId;
- }
-
- public void setJobInstance(JobInstance jobInstance) {
- this.jobInstance = jobInstance;
- }
-
- public JobInstanceImpl getJobInstance() {
- return (JobInstanceImpl)jobInstance;
- }
-
- public String getCurrentStepId() {
- return currentStepId;
- }
-
- public void setCurrentStepId(String currentStepId) {
- this.currentStepId = currentStepId;
- }
-
- public BatchStatus getBatchStatus() {
- return batchStatus;
- }
-
- public void setBatchStatus(BatchStatus batchStatus) {
- this.batchStatus = batchStatus;
- }
-
- public long getLatestExecutionId() {
- return latestExecutionId;
- }
-
- public void setLatestExecutionId(long latestExecutionId) {
- this.latestExecutionId = latestExecutionId;
- }
-
- /*
- public int getUpdateCount() {
- return updateCount;
- }
-
- public void setUpdateCount(int updateCount) {
- this.updateCount = updateCount;
- }
-
- public int getRestartCount() {
- return restartCount;
- }
-
- public void setRestartCount(int restartCount) {
- this.restartCount = restartCount;
- }
- */
- @Override
- public String toString() {
-
- StringBuffer buf = new StringBuffer();
- buf.append(",currentStepId: " + currentStepId);
- buf.append(",batchStatus: " + batchStatus);
- buf.append(",latestExecutionId: " + latestExecutionId);
- buf.append(",restartOn: " + restartOn);
- return buf.toString();
- }
-
- public void setExitStatus(String exitStatus) {
- this.exitStatus = exitStatus;
- }
-
- public String getExitStatus() {
- return exitStatus;
- }
-
- public String getRestartOn() {
- return restartOn;
- }
-
- public void setRestartOn(String restartOn) {
- this.restartOn = restartOn;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatusKey.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatusKey.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatusKey.java
deleted file mode 100755
index 6554725..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/JobStatusKey.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.status;
-
-public class JobStatusKey {
-
- private long jobInstanceId;
-
- public JobStatusKey(long jobInstanceId) {
- this.jobInstanceId = jobInstanceId;
- }
-
- /**
- * Note this is the only getter method, to enforce consistency
- * in getting the instance ID as key.
- *
- * @return jobInstanceId
- */
- public long getDatabaseKey() {
- return jobInstanceId;
- }
-
- public String toString() {
- return "jobInstanceId: " + jobInstanceId;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/SplitExecutionStatus.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/SplitExecutionStatus.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/SplitExecutionStatus.java
deleted file mode 100755
index b71c8dd..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/SplitExecutionStatus.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Copyright 2013 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.status;
-
-public class SplitExecutionStatus extends ExecutionStatus {
-
- boolean couldMoreThanOneFlowHaveTerminatedJob = false;
-
- public SplitExecutionStatus() {
- super();
- }
-
- public SplitExecutionStatus(ExtendedBatchStatus extendedBatchStatus) {
- super(extendedBatchStatus);
- }
-
- public boolean couldMoreThanOneFlowHaveTerminatedJob() {
- return couldMoreThanOneFlowHaveTerminatedJob;
- }
-
- public void setCouldMoreThanOneFlowHaveTerminatedJob(boolean flag) {
- this.couldMoreThanOneFlowHaveTerminatedJob = flag;
- }
-
- @Override
- /* Splits don't have a meaningful exit status at the split level, since we don't elevate
- * one flow's exit status above another.
- */
- public String getExitStatus() {
- return null;
- }
-
- @Override
- public String toString() {
- return super.toString() + ", couldMoreThanOneFlowHaveTerminatedJob = " + couldMoreThanOneFlowHaveTerminatedJob;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatus.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatus.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatus.java
deleted file mode 100755
index 64b230c..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatus.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.ibm.jbatch.container.status;
-
-import java.io.ByteArrayInputStream;
-import java.io.Serializable;
-
-import javax.batch.runtime.BatchStatus;
-
-import com.ibm.jbatch.container.exception.BatchContainerRuntimeException;
-import com.ibm.jbatch.container.persistence.PersistentDataWrapper;
-import com.ibm.jbatch.container.util.TCCLObjectInputStream;
-
-public class StepStatus implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- private long stepExecutionId;
- private BatchStatus batchStatus;
- private String exitStatus;
- private int startCount;
- private PersistentDataWrapper persistentUserData;
- private Integer numPartitions;
-
- private long lastRunStepExecutionId;
-
- public StepStatus(long stepExecutionId) {
- this.startCount = 1;
- this.stepExecutionId = stepExecutionId;
- this.lastRunStepExecutionId = stepExecutionId;
- this.batchStatus = BatchStatus.STARTING;
- }
-
- public void setBatchStatus(BatchStatus batchStatus) {
- this.batchStatus = batchStatus;
- }
-
- public BatchStatus getBatchStatus() {
- return batchStatus;
- }
-
- @Override
- public String toString() {
- StringBuffer buf = new StringBuffer();
- buf.append("stepExecutionId: " + stepExecutionId);
- buf.append(",batchStatus: " + batchStatus);
- buf.append(",exitStatus: " + exitStatus);
- buf.append(",startCount: " + startCount);
- buf.append(",persistentUserData: " + persistentUserData);
- buf.append(",numPartitions: " + numPartitions);
- return buf.toString();
- }
-
- public long getStepExecutionId() {
- return stepExecutionId;
- }
-
- public int getStartCount() {
- return startCount;
- }
-
- public void incrementStartCount() {
- startCount++;
- }
-
- public void setExitStatus(String exitStatus) {
- this.exitStatus = exitStatus;
- }
-
- public String getExitStatus() {
- return exitStatus;
- }
-
- public void setPersistentUserData(PersistentDataWrapper persistentUserData) {
- this.persistentUserData = persistentUserData;
- }
-
- public Serializable getPersistentUserData() {
- if (this.persistentUserData != null) {
- byte[] persistentToken = this.persistentUserData.getPersistentDataBytes();
- ByteArrayInputStream persistentByteArrayInputStream = new ByteArrayInputStream(persistentToken);
- TCCLObjectInputStream persistentOIS = null;
-
- Serializable persistentObject = null;
-
- try {
- persistentOIS = new TCCLObjectInputStream(persistentByteArrayInputStream);
- persistentObject = (Serializable) persistentOIS.readObject();
- } catch (Exception e) {
- throw new BatchContainerRuntimeException(e);
- }
-
- return persistentObject;
- } else {
- return null;
- }
- }
-
- public Integer getNumPartitions() {
- return numPartitions;
- }
-
- public void setNumPartitions(Integer numPartitions) {
- this.numPartitions = numPartitions;
- }
-
- public void setStepExecutionId(long stepExecutionId) {
- this.stepExecutionId = stepExecutionId;
- this.lastRunStepExecutionId = this.stepExecutionId;
- }
-
- public long getLastRunStepExecutionId() {
- return lastRunStepExecutionId;
- }
-
- public void setLastRunStepExecutionId(long lastRunStepExecutionId) {
- this.lastRunStepExecutionId = lastRunStepExecutionId;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-batchee/blob/efa64877/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatusKey.java
----------------------------------------------------------------------
diff --git a/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatusKey.java b/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatusKey.java
deleted file mode 100755
index 9bf7d51..0000000
--- a/JSR352.Runtime/src/com/ibm/jbatch/container/status/StepStatusKey.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2012 International Business Machines Corp.
- *
- * See the NOTICE file distributed with this work for additional information
- * regarding copyright ownership. Licensed under the Apache License,
- * Version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-package com.ibm.jbatch.container.status;
-
-public class StepStatusKey {
-
- private long _jobInstanceId;
-
- /**
- * Not public since we don't want the instance id getter public,
- * Only for use in trace.
- *
- * @return
- */
- private String getStepId() {
- return _stepId;
- }
-
- private String _stepId;
-
- public StepStatusKey(long jobInstanceId, String stepId) {
- _jobInstanceId = jobInstanceId;
- _stepId = stepId;
- }
-
- /**
- * Note this is the only getter method, to enforce consistency
- * in getting the instance ID as key.
- *
- * @return jobInstanceId
- */
- public long getDatabaseKey() {
- return _jobInstanceId;
- }
-
- public String toString() {
- return Long.toString(_jobInstanceId) + ":" + getStepId();
- }
-}