Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java =================================================================== diff -u -r5583b96031dbb65e91d200b7121cc5cd49e26003 -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java (.../QaUtils.java) (revision 5583b96031dbb65e91d200b7121cc5cd49e26003) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java (.../QaUtils.java) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -388,5 +388,17 @@ request.getSession().setAttribute(RICHTEXT_INSTRUCTIONS,richTextInstructions); } } + + public static void configureContentRepository(HttpServletRequest request) + { + logger.debug("attempt configureContentRepository"); + IQaService qaService =QaUtils.getToolService(request); + logger.debug("retrieving qaService from session: " + qaService); + logger.debug("calling configureContentRepository()"); + qaService.configureContentRepository(); + logger.debug("configureContentRepository ran successfully"); + } + + } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml =================================================================== diff -u -r0e747c5eb46e7a7618f09aaf32c3b7cb700a76dd -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision 0e747c5eb46e7a7618f09aaf32c3b7cb700a76dd) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -95,8 +95,8 @@ - + @@ -107,7 +107,7 @@ PROPAGATION_REQUIRED,-QaApplicationException PROPAGATION_REQUIRED,readOnly,-QacpApplicationException PROPAGATION_REQUIRED,-QaApplicationException - PROPAGATION_REQUIRED,-QaApplicationException + Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java =================================================================== diff -u -rabacef33c30b9343d8bd503d262256bf4761d887 -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision abacef33c30b9343d8bd503d262256bf4761d887) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -21,6 +21,7 @@ package org.lamsfoundation.lams.tool.qa.service; import java.io.InputStream; +import java.util.Date; import java.util.List; import org.lamsfoundation.lams.contentrepository.ITicket; @@ -45,12 +46,6 @@ */ public interface IQaService { - public static final String QA_LOGIN = "qaLogin"; - - public static final String QA_PASSWORD = "qaPassword"; - - public static final String QA_WORKSPACE = "qaWorkspace"; - /** * Return the qa object according to the requested content id. * @param toolContentId the tool content id @@ -205,12 +200,20 @@ public QaQueContent getToolDefaultQuestionContent(long contentId); + /** repository access related methods from here: */ + public void configureContentRepository() throws QaApplicationException; + public ITicket getRepositoryLoginTicket() throws QaApplicationException; public void deleteFromRepository(Long uuid, Long versionID) throws QaApplicationException; + + public NodeKey uploadFileToRepository(InputStream stream, String fileName, String mimeType) throws QaApplicationException; - public NodeKey uploadFileToRepository(InputStream stream, String fileName, String mimeType) throws QaApplicationException; + public void uploadFile(Long toolContentId, String filePath, String fileDescription, Long userID) throws QaApplicationException; public InputStream downloadFile(Long uuid, Long versionID)throws QaApplicationException; + + public void uploadFile(InputStream stream, Long toolContentId, String filePath, String fileDescription, String fileName, String mimeType,Date dateOfSubmission, Long userID) throws QaApplicationException; + /** repository access related methods till here */ } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java =================================================================== diff -u -rabacef33c30b9343d8bd503d262256bf4761d887 -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision abacef33c30b9343d8bd503d262256bf4761d887) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -34,9 +34,11 @@ import org.lamsfoundation.lams.contentrepository.ICredentials; import org.lamsfoundation.lams.contentrepository.ITicket; import org.lamsfoundation.lams.contentrepository.IVersionedNode; +import org.lamsfoundation.lams.contentrepository.ItemExistsException; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; import org.lamsfoundation.lams.contentrepository.LoginException; import org.lamsfoundation.lams.contentrepository.NodeKey; +import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException; import org.lamsfoundation.lams.contentrepository.service.IRepositoryService; import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy; @@ -94,6 +96,13 @@ { static Logger logger = Logger.getLogger(QaServicePOJO.class.getName()); + /*repository access related constants */ + private final String repositoryUser = "laqa11"; + private final char[] repositoryId = {'l','a','q','a','_','1', '1'}; + private final String repositoryWorkspace = "laqa11"; + private IRepositoryService repositoryService; + private ICredentials cred; + private IQaContentDAO qaDAO; private IQaQueContentDAO qaQueContentDAO; private IQaSessionDAO qaSessionDAO; @@ -103,11 +112,29 @@ private IUserManagementService userManagementService; private ILamsToolService toolService; - private IRepositoryService repositoryService; - - - + public void configureContentRepository() throws QaApplicationException { + logger.debug("retrieved repService: "+ repositoryService); + cred = new SimpleCredentials(repositoryUser, repositoryId); + logger.debug("retrieved cred: "+ cred); + try + { + repositoryService.createCredentials(cred); + logger.debug("created credentails."); + repositoryService.addWorkspace(cred,repositoryWorkspace); + logger.debug("created workspace."); + } catch (ItemExistsException ie) { + logger.warn("Tried to configure repository but it " + +" appears to be already configured. Exception thrown by repository being ignored. ", ie); + } catch (RepositoryCheckedException e) { + String error = "Error occured while trying to configure repository." + +" Unable to recover from error: "+e.getMessage(); + logger.error(error, e); + throw new QaApplicationException(error,e); + } + } + + public QaServicePOJO(){} public void setQaDAO(IQaContentDAO qaDAO) @@ -1311,11 +1338,11 @@ logger.debug("retrieved repositoryService : " + repositoryService); ICredentials credentials = new SimpleCredentials( - IQaService.QA_LOGIN, - IQaService.QA_PASSWORD.toCharArray()); + repositoryUser, + repositoryId); try { ITicket ticket = repositoryService.login(credentials, - IQaService.QA_WORKSPACE); + repositoryWorkspace); logger.debug("retrieved ticket: " + ticket); return ticket; } catch (AccessDeniedException e) { @@ -1371,8 +1398,7 @@ * @return NodeKey Represents the two part key - UUID and Version. * @throws SubmitFilesException */ - public NodeKey uploadFileToRepository(InputStream stream, String fileName, - String mimeType) throws QaApplicationException { + public NodeKey uploadFileToRepository(InputStream stream, String fileName,String mimeType) throws QaApplicationException { ITicket ticket = getRepositoryLoginTicket(); try { NodeKey nodeKey = repositoryService.addFileItem(ticket, stream, @@ -1400,8 +1426,7 @@ } } - public void uploadFile(Long toolContentId, String filePath, - String fileDescription, Long userID) throws QaApplicationException{ + public void uploadFile(Long toolContentId, String filePath, String fileDescription, Long userID) throws QaApplicationException{ try{ File file = new File(filePath); logger.debug("retrieved file: " + file); @@ -1455,9 +1480,7 @@ * The User who has uploaded the file. * @throws SubmitFilesException */ - private void uploadFile(InputStream stream, Long toolContentId, String filePath, - String fileDescription, String fileName, String mimeType, - Date dateOfSubmission, Long userID) throws QaApplicationException { + public void uploadFile(InputStream stream, Long toolContentId, String filePath, String fileDescription, String fileName, String mimeType,Date dateOfSubmission, Long userID) throws QaApplicationException { QaContent qaContent = qaDAO.loadQaById(toolContentId.longValue()); logger.debug("retrieving qaContent: " + qaContent); @@ -1480,8 +1503,5 @@ } } - - - } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java =================================================================== diff -u -r1213de28fa1704749c2b8cc7029667a5e944cef8 -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java (.../QaStarterAction.java) (revision 1213de28fa1704749c2b8cc7029667a5e944cef8) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java (.../QaStarterAction.java) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -101,7 +101,7 @@ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException, QaApplicationException { - + QaAuthoringForm qaAuthoringForm = (QaAuthoringForm) form; qaAuthoringForm.resetRadioBoxes(); @@ -120,6 +120,8 @@ request.getSession().setAttribute(TOOL_SERVICE, qaService); } + QaUtils.configureContentRepository(request); + /** * retrieve the default content id based on tool signature */ Index: lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml =================================================================== diff -u -rc2c90fffd84acacd50458727538e2e934e71d03e -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision c2c90fffd84acacd50458727538e2e934e71d03e) +++ lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -97,6 +97,7 @@ + @@ -107,7 +108,7 @@ PROPAGATION_REQUIRED,-QaApplicationException PROPAGATION_REQUIRED,readOnly,-QacpApplicationException PROPAGATION_REQUIRED,-QaApplicationException - PROPAGATION_REQUIRED,-QaApplicationException + Index: lams_tool_laqa/test/web/WEB-INF/web.xml =================================================================== diff -u -rd231fdf18f3da49f3ca42f543c784f4d09a59332 -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/test/web/WEB-INF/web.xml (.../web.xml) (revision d231fdf18f3da49f3ca42f543c784f4d09a59332) +++ lams_tool_laqa/test/web/WEB-INF/web.xml (.../web.xml) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -14,6 +14,7 @@ classpath:/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml classpath:/org/lamsfoundation/lams/tool/toolApplicationContext.xml classpath:/org/lamsfoundation/lams/learning/learningApplicationContext.xml + classpath:/org/lamsfoundation/lams/contentrepository/applicationContext.xml classpath:/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml Index: lams_tool_laqa/web/WEB-INF/qaApplicationContext.xml =================================================================== diff -u -rc2c90fffd84acacd50458727538e2e934e71d03e -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/web/WEB-INF/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision c2c90fffd84acacd50458727538e2e934e71d03e) +++ lams_tool_laqa/web/WEB-INF/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -95,8 +95,8 @@ - + @@ -107,7 +107,7 @@ PROPAGATION_REQUIRED,-QaApplicationException PROPAGATION_REQUIRED,readOnly,-QacpApplicationException PROPAGATION_REQUIRED,-QaApplicationException - PROPAGATION_REQUIRED,-QaApplicationException + Index: lams_tool_laqa/web/WEB-INF/web.xml =================================================================== diff -u -r4447ae1bb802ba8a16df65d880f25575d1174003 -r1a3ba47c7a8bfccfd83b51645739dec49f30f44b --- lams_tool_laqa/web/WEB-INF/web.xml (.../web.xml) (revision 4447ae1bb802ba8a16df65d880f25575d1174003) +++ lams_tool_laqa/web/WEB-INF/web.xml (.../web.xml) (revision 1a3ba47c7a8bfccfd83b51645739dec49f30f44b) @@ -14,6 +14,7 @@ classpath:/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml classpath:/org/lamsfoundation/lams/tool/toolApplicationContext.xml classpath:/org/lamsfoundation/lams/learning/learningApplicationContext.xml + classpath:/org/lamsfoundation/lams/contentrepository/applicationContext.xml classpath:/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml