org.codehaus.mojo.weblogic.ServiceGenMojo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of weblogic-maven-plugin Show documentation
Show all versions of weblogic-maven-plugin Show documentation
This plugin will support various tasks within the Weblogic 8.1,
9.x, 10.x and 12.x environment. This version starts to support weblogic 10 and
11. The mojo supports such tasks as deploy,
undeploy,clientgen,servicegen, and appc are supported as well as
many others. The plugin uses exposed API's that are subject to
change but have been tested in 8.1 SP 4-6 and 9.0 - 9.2 MP3, 10.x.
There are two versions of the plugin to support the two
environments based on differences in the JDK. The 9.x version is
currently being refactored to support the standard JSR supported
deployment interface. The code used in the plugin has been
contributed to the Cargo project however to date has not be
integrated into the codebase. Please feel free to suggest
improvements or help support this plugin effort.
The newest version!
package org.codehaus.mojo.weblogic;
/*
* Copyright 2006 The Apache Software Foundation.
*
* 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.
*/
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.Path;
import org.codehaus.mojo.weblogic.util.WeblogicMojoUtilities;
import weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask;
import java.io.File;
/**
* Runs Service Gen on a given WSDL.
*
* @author Jon Osborn
* @version $Id: ServiceGenMojo.java 11468 2009-12-07 15:38:27Z jonnio $
* @description This mojo will run service gen on an ear file.
* @goal servicegen
* @requiresDependencyResolution compile
*/
public class ServiceGenMojo
extends AbstractWeblogicMojo
{
/**
* The full path to the artifact to be compiled. It can be an EAR, War or
* Jar. If the project packaging is ejb then the .ejb suffix will be
* replaced with .jar if needed.
*
* @parameter expression="${project.build.directory}/${project.build.finalName}.${project.packaging}"
*/
private String inputArtifactPath;
/**
* The directory to output the geneated code to.
*
* @parameter default-value="${basedir}/src/main/java"
*/
private String outputDir;
/**
* The package name of the output code.
*
* @parameter default-value="com.test.webservice"
*/
private String packageName;
/**
* The service configurations to generate
*
* @parameter
*/
private Service services[];
/**
* The context uri for the service
*
* @parameter
* @required
*/
private String contextUri;
/**
* this is the name of the war to execute the service gen against.
*
* @parameter
* @required
*/
private String warName;
/**
* This method will run client gen on the given WSDL.
*
* @throws MojoExecutionException Thrown if we fail to obtain the WSDL.
*/
public void execute()
throws MojoExecutionException
{
super.execute();
if ( getLog().isInfoEnabled() )
{
getLog().info( "Weblogic service gen beginning " );
}
inputArtifactPath = WeblogicMojoUtilities.updateArtifactName( inputArtifactPath, "ear" );
try
{
final Project project = new Project();
project.setName( "servicegen" );
final Path path = new Path( project, WeblogicMojoUtilities
.getDependencies( this.getArtifacts() ) );
final ServiceGenTask servicegen = new ServiceGenTask();
addToolsJar( ClassLoader.getSystemClassLoader() );
servicegen.setProject( project );
if ( getLog().isInfoEnabled() )
{
getLog().info( "Weblogic service gen using classpath: " + path );
}
servicegen.setClasspath( path );
servicegen.setWarName( this.warName );
servicegen.setContextURI( this.contextUri );
final File source = new File( this.inputArtifactPath );
servicegen.setDestear( source );
servicegen.setKeepGenerated( true );
// setup the services for generation
for ( int i = 0; i < services.length; i++ )
{
if ( getLog().isInfoEnabled() )
{
getLog().info( "Configuring service " + services[i].getServiceName() );
}
weblogic.ant.taskdefs.webservices.servicegen.Service service = servicegen
.createService();
service.setIncludeEjbs( services[i].getIncludeEJBs() );
service.setServiceName( services[i].getServiceName() );
service.setServiceURI( services[i].getServiceUri() );
service.setTargetNamespace( services[i].getTargetNamespace() );
service.setGenerateTypes( services[i].isGenerateTypes() );
service.setExpandMethods( services[i].isExpandMethods() );
service.setEjbJar( WeblogicMojoUtilities
.getEjbJarFileName( getArtifacts() ) );
}
servicegen.execute();
}
catch ( Exception ex )
{
getLog().error( "Exception encountered during service gen ", ex );
throw new MojoExecutionException( "Exception encountered during listapps", ex );
}
finally
{
WeblogicMojoUtilities.unsetWeblogicProtocolHandler();
}
if ( getLog().isInfoEnabled() )
{
getLog().info( "Weblogic service gen successful " );
}
}
/**
* Getter for property output dir.
*
* @return The value of output dir.
*/
public String getOutputDir()
{
return this.outputDir;
}
/**
* Setter for the output dir.
*
* @param inOutputDir The value of output dir.
*/
public void setOutputDir( final String inOutputDir )
{
this.outputDir = inOutputDir;
}
/**
* Getter for property package name.
*
* @return The value of package name.
*/
public String getPackageName()
{
return this.packageName;
}
/**
* Setter for the package name.
*
* @param inPackageName The value of package name.
*/
public void setPackageName( String inPackageName )
{
this.packageName = inPackageName;
}
/**
* Getter for the services
*
* @return the list of services
*/
public Service[] getServices()
{
return services;
}
/**
* Setter for the services
*
* @param services the services
*/
public void setServices( Service[] services )
{
this.services = services;
}
/**
* toString method: creates a String representation of the object
*
* @return the String representation
*/
public String toString()
{
StringBuffer buffer = new StringBuffer();
buffer.append( "ServiceGenMojo[" );
buffer.append( "warName = " ).append( warName );
buffer.append( ", outputDir = " ).append( outputDir );
buffer.append( ", packageName = " ).append( packageName );
buffer.append( "]" );
return buffer.toString();
}
/**
* Getter for the war name.
*
* @return the war name in side the ear that contains the services
*/
public String getWarName()
{
return warName;
}
/**
* Getter for the input artifact path
*
* @return the inputArtifactPath
*/
public String getInputArtifactPath()
{
return inputArtifactPath;
}
/**
* Setter for the input artifact path
*
* @param inputArtifactPath the input artifact path
*/
public void setInputArtifactPath( String inputArtifactPath )
{
this.inputArtifactPath = inputArtifactPath;
}
/**
* Setter for the war name.
*
* @param warName the war name
*/
public void setWarName( String warName )
{
this.warName = warName;
}
/**
* Getter for the context uri
*
* @return the contextUri
*/
public String getContextUri()
{
return contextUri;
}
/**
* Setter for the context uri
*
* @param contextUri the contextUri
*/
public void setContextUri( String contextUri )
{
this.contextUri = contextUri;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy