return deploymentCompareBeans;
}
private static void getDeploymentComparisonBeansRecursive(File parentFile, List<DeploymentCompareBean> deploymentCompareBeans, final Content parentContent, Database db, InfoGluePrincipal principal, int cvsFakeContentId, boolean isWebContentLevel, boolean isRepositoryLevel, boolean isComponentLevel) throws Exception
{
Content localParentContent = parentContent;
String fileContent = "";
if(parentFile.isFile())
fileContent = FileHelper.getFileAsString(parentFile, "iso-8859-1");
RepositoryVO repositoryVO = null;
if(parentContent != null)
logger.info("\n\n****************************\nparentContent in top:" + parentContent.getName() + "= File:" + parentFile.getName());
boolean newIsWebContentLevel = isWebContentLevel;
boolean newIsRepositoryLevel = isRepositoryLevel;
boolean newIsComponentLevel = isComponentLevel;
LanguageVO masterLanguageVO = null;
logger.info("isWebContentLevel:" + isWebContentLevel + "\n" + "isRepositoryLevel:" + isRepositoryLevel + "\n" + "isComponentLevel:" + isComponentLevel);
if(!isWebContentLevel && parentFile.getName().equalsIgnoreCase("WebContent"))
{
logger.info("Reached WebContent... activating");
newIsWebContentLevel = true;
}
else if(isWebContentLevel && !isRepositoryLevel)
{
logger.info("Reached Repository level... activating:" + parentFile.getName());
logger.info("This was a repository:" + parentFile.getPath());
repositoryVO = RepositoryController.getController().getRepositoryVOWithName(parentFile.getName(), db);
if(repositoryVO != null)
{
localParentContent = ContentController.getContentController().getRootContent(db, repositoryVO.getId(), principal.getName(), false);
masterLanguageVO = LanguageController.getController().getMasterLanguage(localParentContent.getRepositoryId(), db);
}
newIsRepositoryLevel = true;
}
else if(isWebContentLevel && isRepositoryLevel && !isComponentLevel)
{
logger.info("Reached component... activating");
newIsComponentLevel = true;
}
if(isComponentLevel)
{
logger.info("This was a component content:" + parentFile.getName());
if(localParentContent != null)
{
ContentVO cvsContent = new ContentVO();
cvsContent.setContentId(cvsFakeContentId);
cvsContent.setName(localParentContent.getName());
cvsContent.setFullPath(parentFile.getPath());
cvsContent.setVersions(new String[]{fileContent});
ContentVersionVO localVersion = ContentVersionController.getContentVersionController().getLatestActiveContentVersionVO(localParentContent.getId(), masterLanguageVO.getId());
ContentVO localContentVO = localParentContent.getValueObject();
logger.info("localContentVO:" + localContentVO.getName());
if(localVersion != null)
{
localContentVO.setVersions(new String[]{localVersion.getVersionValue()});
logger.info("fileContent:" + fileContent.length());
logger.info("localVersion.getVersionValue():" + localVersion.getVersionValue().length());
}
DeploymentCompareBean deploymentCompareBean = new DeploymentCompareBean();
deploymentCompareBean.setRemoteVersion(cvsContent);
deploymentCompareBean.setLocalVersion(localContentVO);
logger.info("Adding:" + localContentVO.getName() + " = " + cvsContent.getName());
deploymentCompareBeans.add(deploymentCompareBean);
}
else
{
logger.info("No local version of " + parentFile.getName());
ContentVO cvsContent = new ContentVO();
cvsContent.setContentId(cvsFakeContentId);
cvsContent.setName(parentFile.getName());
cvsContent.setFullPath(parentFile.getPath());
cvsContent.setVersions(new String[]{fileContent});
ContentVO localContent = new ContentVO();
DeploymentCompareBean deploymentCompareBean = new DeploymentCompareBean();
deploymentCompareBean.setRemoteVersion(cvsContent);
deploymentCompareBean.setLocalVersion(null);
logger.info("Adding:" + null + " = " + cvsContent.getName());
deploymentCompareBeans.add(deploymentCompareBean);
}
}
logger.info("Before children with:" + parentFile.getName() + ":" + newIsWebContentLevel + ":" + newIsRepositoryLevel + ":" + newIsComponentLevel);
logger.info("Now going through children files to:" + parentFile.getName());
File[] childFiles = parentFile.listFiles();
if(childFiles != null)
{
for(int i=0; i<childFiles.length; i++)
{
File childFile = childFiles[i];
if(!childFile.getName().equals("CVS"))
{
logger.info("childFile:" + childFile.getName());
Content newParentContent = null;
if(localParentContent != null)
{
List childContents = ContentController.getContentController().getContentChildrenVOList(localParentContent.getId(), new String[]{"HTMLTemplate"});
logger.info("Looking for children on " + localParentContent.getName() + " - matching " + childFile.getName());
Iterator childContentsIterator = childContents.iterator();
while(childContentsIterator.hasNext())
{
Content childContent = (Content)childContentsIterator.next();
logger.info("childContent " + childContent.getName());
if(childFile.getName().equalsIgnoreCase(childContent.getName()) || childFile.getName().equalsIgnoreCase(childContent.getName() + "_" + masterLanguageVO.getId() + ".xml"))
{
logger.info("Match " + childContent.getName() + "=" + childFile.getName());
newParentContent = childContent;
//getDeploymentComparisonBeansRecursive(childFile, deploymentCompareBeans, childContent, db, principal, cvsFakeContentId+1);
break;
}