/*******************************************************************************
* Copyright (c) 2012 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.seam.internal.core.project.facet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import org.apache.tools.ant.types.FilterSet;
import org.apache.tools.ant.types.FilterSetCollection;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.jboss.tools.seam.core.SeamCorePlugin;
/**
* @author Alexey Kazakov
*/
public class Seam23ProjectCreator extends Seam2ProjectCreator {
public Seam23ProjectCreator(IDataModel model, IProject seamWebProject, SeamLibFileSetProvider seamLibFileSetProvider) {
super(model, seamWebProject, seamLibFileSetProvider);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.seam.internal.core.project.facet.Seam2ProjectCreator#configureJBossAppXml()
*/
@Override
protected void configureJBossAppXml() {
}
/*
* (non-Javadoc)
* @see org.jboss.tools.seam.internal.core.project.facet.SeamProjectCreator#copyJBossApp()
*/
@Override
protected void copyJBossApp() {
FilterSet earFilterSet = new FilterSet();
earFilterSet.addFilter("projectName", earProjectFolder.getName() + ".ear"); //$NON-NLS-1$ //$NON-NLS-2$
earFilterSet.addFilter("earProjectName", earProjectName); //$NON-NLS-1$
earFilterSet.addFilter("ejbProjectName", ejbProjectName); //$NON-NLS-1$
earFilterSet.addFilter("testProjectName", testProjectName); //$NON-NLS-1$
AntCopyUtils.copyFileToFolder(
new File(seamGenResFolder, "META-INF/jboss-deployment-structure.xml"), //$NON-NLS-1$
new File(earContentsFolder, "META-INF"), //$NON-NLS-1$
new FilterSetCollection(earFilterSet), true);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.seam.internal.core.project.facet.SeamProjectCreator#execute(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public void execute(IProgressMonitor monitor) throws CoreException {
super.execute(monitor);
if(ISeamFacetDataModelProperties.DEPLOY_AS_EAR.equals(model.getProperty(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS))) {
IProject earProject = seamWebProject.getWorkspace().getRoot().getProject(earProjectName);
File destFolder = new File(earProjectFolder, "resources");
Seam23FacetInstallDelegate.copyDBDriverToProject(earProject, model, destFolder);
}
}
/*
* (non-Javadoc)
* @see org.jboss.tools.seam.internal.core.project.facet.SeamProjectCreator#createComponentsProperties()
*/
@Override
protected void createComponentsProperties() {
File seamGenResFolder = new File(ejbProjectFolder, "ejbModule");
// jndiPattern=java:app/app1-ejb/\#{ejbName}
String jndiPattern = "java:app/" + ejbProjectName + "/#{ejbName}";
Properties components = new Properties();
components.put("jndiPattern", jndiPattern); //$NON-NLS-1$
components.put("embeddedEjb", "false"); //$NON-NLS-1$ $NON-NLS-2$
File componentsProps = new File(seamGenResFolder, "components.properties"); //$NON-NLS-1$
try {
componentsProps.createNewFile();
components.store(new FileOutputStream(componentsProps), ""); //$NON-NLS-1$
} catch (IOException e) {
SeamCorePlugin.getPluginLog().logError(e);
}
}
}