1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license 3 * agreements. See the NOTICE file distributed with this work for additional information regarding 4 * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the 5 * "License"); you may not use this file except in compliance with the License. You may obtain a 6 * copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software distributed under the License 11 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 * or implied. See the License for the specific language governing permissions and limitations under 13 * the License. 14 */ 15 package org.apache.maven.plugin.eclipse; 16 17 import java.io.File; 18 import java.net.MalformedURLException; 19 import java.net.URL; 20 21 import org.apache.maven.plugin.MojoExecutionException; 22 import org.apache.maven.plugin.eclipse.writers.workspace.EclipseWorkspaceWriter; 23 24 /** 25 * Configures The following Eclipse Workspace features: 26 * <ul> 27 * <li>Adds the classpath variable MAVEN_REPO to Eclipse.</li> 28 * <li>Optionally load Eclipse code style file via a URL.</li> 29 * </ul> 30 * 31 * @goal configure-workspace 32 * @requiresProject false 33 */ 34 public class ConfigureWorkspaceMojo 35 extends AbstractWorkspaceMojo 36 { 37 /** 38 * Point to a URL containing code styles content. 39 * 40 * @parameter expression="${eclipse.workspaceCodeStylesURL}" 41 */ 42 private String workspaceCodeStylesURL; 43 44 /** 45 * Name of a profile in <code>workspaceCodeStylesURL</code> to activate. Default is the first profile name in the 46 * code style file in <code>workspaceCodeStylesURL</code> 47 * 48 * @parameter expression="${eclipse.workspaceActiveCodeStyleProfileName}" 49 */ 50 private String workspaceActiveCodeStyleProfileName; 51 52 public void execute() 53 throws MojoExecutionException 54 { 55 WorkspaceConfiguration config = new WorkspaceConfiguration(); 56 config.setWorkspaceDirectory( new File( this.getWorkspace() ) ); 57 config.setLocalRepository( this.getLocalRepository() ); 58 59 if ( this.workspaceCodeStylesURL != null ) 60 { 61 try 62 { 63 config.setCodeStylesURL( new URL( workspaceCodeStylesURL ) ); 64 } 65 catch ( MalformedURLException e ) 66 { 67 throw new MojoExecutionException( e.getMessage(), e ); 68 } 69 70 config.setActiveStyleProfileName( workspaceActiveCodeStyleProfileName ); 71 72 } 73 74 new EclipseWorkspaceWriter().init( this.getLog(), config ).write(); 75 } 76 77 }