Example usage for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot

List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getPackageFragmentRoot.

Prototype

IPackageFragmentRoot getPackageFragmentRoot(IResource resource);

Source Link

Document

Returns a package fragment root for the given resource, which must either be a folder representing the top of a package hierarchy, or a ZIP archive (e.g.

Usage

From source file:org.whole.lang.ui.controls.JavaSourceFolderFilter.java

License:Open Source License

public boolean select(Viewer viewer, Object parent, Object element) {
    // filter any non container resource
    if (!(element instanceof IContainer))
        return false;

    IContainer container = (IContainer) element;
    IProject proj = container.getProject();

    try {//from w  w w  .  jav a2  s  .c  om
        if (!proj.hasNature(JavaCore.NATURE_ID))
            return false;

        IJavaProject jProject = JavaCore.create(container.getProject());
        if (jProject == null || !jProject.exists())
            return false;

        // get any project container
        if (container == proj)
            return true;

        IPackageFragmentRoot sourceLocation = jProject.getPackageFragmentRoot(container);
        IClasspathEntry cpentry = sourceLocation.getRawClasspathEntry();

        if (cpentry != null && cpentry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            return true;
        } else {
            return false;
        }
    } catch (CoreException ex) {
        return false;
    }
}

From source file:org.whole.lang.ui.controls.JavaSourceFolderValidator.java

License:Open Source License

private boolean isJavaSourceFolder(Object element) {
    if (!(element instanceof IContainer))
        return false;

    IContainer container = (IContainer) element;
    IProject proj = container.getProject();

    try {/*from   w  ww  .  j  a v  a 2s  .c o m*/
        if (!proj.hasNature(JavaCore.NATURE_ID))
            return false;

        IJavaProject jProject = JavaCore.create(container.getProject());
        if (jProject == null || !jProject.exists())
            return false;

        IPackageFragmentRoot sourceLocation = jProject.getPackageFragmentRoot(container);
        IClasspathEntry cpentry = sourceLocation.getRawClasspathEntry();

        if (cpentry != null && cpentry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            return true;
        } else {
            return false;
        }
    } catch (CoreException ex) {
        return false;
    }
}

From source file:org.wso2.developerstudio.eclipse.artifact.axis2.ui.wizard.Axis2ServiceCreationWizard.java

License:Open Source License

public boolean performFinish() {
    IFile axis2GenServiceXML = null;/*from  ww w .  j a va 2  s  .c o m*/
    try {
        IProject project = createNewProject();
        IFolder sourceFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "java");
        JavaUtils.addJavaSupportAndSourceFolder(project, sourceFolder);
        File pomfile = project.getFile("pom.xml").getLocation().toFile();
        getModel().getMavenInfo().setPackageName("service/axis2");
        createPOM(pomfile);
        getModel().addToWorkingSet(project);
        ProjectUtils.addNatureToProject(project, false, AXIS2_PROJECT_NATURE);
        MavenUtils.updateWithMavenEclipsePlugin(pomfile, new String[] { JDT_BUILD_COMMAND },
                new String[] { AXIS2_PROJECT_NATURE, JDT_PROJECT_NATURE });

        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

        if (getModel().getSelectedOption().equals("import.Axis2")) {
            //TODO: import AAR

        } else if (getModel().getSelectedOption().equals("new.Axis2")) {
            String className = axis2Model.getServiceClass();
            String packageName = axis2Model.getPackageName();

            IJavaProject javaProject = JavaCore.create(project);
            IFolder resourceFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "resources");
            if (!resourceFolder.exists()) {
                resourceFolder.create(false, true, null);
            }

            IFolder metaFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "resources",
                    "META-INF");
            if (!metaFolder.exists()) {
                metaFolder.create(false, true, null);
            }
            IFile serviceXML = metaFolder.getFile("services.xml");
            createServiceXML(serviceXML, className, packageName.concat(".").concat(className));
            IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);
            IPackageFragment sourcePackage = root.createPackageFragment(packageName, false, null);
            StringBuffer buffer = new StringBuffer();
            if (!packageName.equalsIgnoreCase("")) {
                buffer.append("package " + packageName + ";\n");
                buffer.append("\n");
            }
            buffer.append("public class " + className + "{\n\n}");
            ICompilationUnit compilationUnit = sourcePackage.createCompilationUnit(className + ".java",
                    buffer.toString(), false, null);
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            IPath path = compilationUnit.getResource().getProjectRelativePath();
            IFile sourceFile = project.getFile(path);
            try {
                refreshDistProjects();
                IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
                        sourceFile);
            } catch (Exception e) {
                log.error("Cannot open file in editor", e);
            }
        } else if (getModel().getSelectedOption().equals("import.Axis2wsdl")) {
            ProgressMonitorDialog progressMonitorDialog = new ProgressMonitorDialog(getShell());
            IFolder mainFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main");
            dataModel.setSourceFolder("java");
            dataModel.setGeneratedCodeLocation(mainFolder.getRawLocation().toPortableString());
            dataModel.setSelectedProject(project);
            progressMonitorDialog.create();
            progressMonitorDialog.open();
            progressMonitorDialog.run(false, false, new CodegenJob());

            IFolder resourceFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "resources");
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            IFolder metaFolder = resourceFolder.getFolder("META-INF");
            if (!metaFolder.exists()) {
                metaFolder.create(false, true, null);
            }
            axis2GenServiceXML = resourceFolder.getFile("services.xml");
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            if (axis2GenServiceXML.exists()) {
                IFile metaServiceXML = metaFolder.getFile("services.xml");
                FileUtils.copy(axis2GenServiceXML.getLocation().toFile(),
                        metaServiceXML.getLocation().toFile());
                project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
                //axis2GenServiceXML.delete(true, new NullProgressMonitor());
            }
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            refreshDistProjects();
        }

        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

    } catch (CoreException e) {
        log.error("CoreException has occurred", e);
    } catch (IOException e) {
        log.error("I/O error has occurred", e);
    } catch (InvocationTargetException e) {
        log.error("An error occurred while generating codes", e.getTargetException());
    } catch (Exception e) {
        log.error("An unexpected error has occurred", e);
    }

    return true;
}

From source file:org.wso2.developerstudio.eclipse.artifact.axis2serviceclient.ui.wizard.Axis2CodeGenerationOptionPage.java

License:Open Source License

private void openProjectCreation() {
    JavaProjectWizard cappProjectWizard = new JavaProjectWizard();
    cappProjectWizard.init(PlatformUI.getWorkbench(), null);
    cappProjectWizard.setForcePreviousAndNextButtons(true);

    WizardDialog wizardDialog = new WizardDialog(getShell(), cappProjectWizard);
    if (wizardDialog.open() == Window.OK) {
        IProject createdCAppProject = cappProjectWizard.getCreatedElement().getJavaProject().getProject();
        if (!createdCAppProject.isOpen()) {
            try {
                createdCAppProject.open(new NullProgressMonitor());
                createdCAppProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            } catch (CoreException e) {
                log.error("Error occured while trying to open the newly created C-App project: "
                        + createdCAppProject.getName());
            }/*from   w  w  w. j av  a 2s .com*/
        }
        IJavaProject createdJavaProject = cappProjectWizard.getCreatedElement().getJavaProject();
        try {
            IClasspathEntry[] rawClasspath = createdJavaProject.getRawClasspath();
            for (int i = 0; i < rawClasspath.length; i++) {
                if (rawClasspath[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                    sourceFolder = createdJavaProject
                            .getPackageFragmentRoot(rawClasspath[i].getPath().toOSString());
                    sourceFolderText.setText(sourceFolder.getPath().toOSString().substring(1));
                    break;
                }
            }
        } catch (JavaModelException e) {
            log.error("Error occured while trying to extract source information.");
        }
        this.getControl().setFocus();
        setPageComplete(true);
    }
}

From source file:org.wso2.developerstudio.eclipse.artifact.carbon.ui.bundle.ui.wizard.CarbonUIbundleWizard.java

License:Open Source License

public boolean performFinish() {
    try {//from   w  w w  . jav  a  2 s. co  m
        if (uibundleModel.getSelectedOption().equals("new.uibundle")) {
            project = createNewProject();
            IFolder srcFolder = ProjectUtils.getWorkspaceFolder(project, "src");
            JavaUtils.addJavaSupportAndSourceFolder(project, srcFolder);
            ProjectUtils.createFolder(srcFolder);

            if (uibundleModel.isActivatorRequired()) {
                String className = uibundleModel.getActivatorClassName();
                if (".Activator".equals(className)) {
                    className = "Activator";
                    uibundleModel.setActivatorClassName(className);
                }
                className = getClassName(uibundleModel.getActivatorClassName());
                String packageName = getPackageName(uibundleModel.getActivatorClassName());
                IJavaProject iJavaProject = JavaCore.create(project);
                IPackageFragmentRoot root = iJavaProject.getPackageFragmentRoot(srcFolder);
                IPackageFragment sourcePackage = root.createPackageFragment(packageName, false, null);
                String template = CarbonUIbudleTemplate.createActivatorClassTemplete(packageName, className);
                sourcePackage.createCompilationUnit(className + ".java", template, false, null);
            }
            /*create Meta INF Folder data*/
            IFolder metaInf = this.createWorkspaceFolder("META-INF");
            String componentXmlSource = CarbonUIbudleTemplate.createComponentXMLTemplate();
            createProjectFile(metaInf, "component.xml", componentXmlSource);
            String metaInfSource = CarbonUIbudleTemplate.createManifestFileTemplate(uibundleModel);
            createProjectFile(metaInf, "MANIFEST.MF", metaInfSource);
            IFolder webDir = createDirectoryhierarchy(uibundleModel.getDeployPath());
            IFolder cssDir = webDir.getFolder("css");
            cssDir.create(true, true, new NullProgressMonitor());
            IFolder imgDir = webDir.getFolder("images");
            imgDir.create(true, true, new NullProgressMonitor());
            IFolder jsDir = webDir.getFolder("js");
            jsDir.create(true, true, new NullProgressMonitor());

            copyResourceFiles(cssDir.getLocation().toFile(), "menu.css");
            copyResourceFiles(webDir.getLocation().toFile(), "index.jsp");

            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        } else {
            project = uibundleModel.getCarbonUIproject();
        }
        File pomfile = project.getFile("pom.xml").getLocation().toFile();
        getModel().getMavenInfo().setPackageName("bundle");
        if (!pomfile.exists()) {
            createPOM(pomfile);
        }
        addDependancies(project);
        MavenProject mavenProject = MavenUtils.getMavenProject(pomfile);
        Dependency dependencies = new Dependency();
        dependencies.setGroupId("org.eclipse.osgi");
        dependencies.setArtifactId("org.eclipse.osgi");
        dependencies.setVersion("3.7.0.v20110613");
        MavenUtils.addMavenDependency(mavenProject, dependencies);
        mavenProject.getBuild().setSourceDirectory("src");
        MavenUtils.saveMavenProject(mavenProject, pomfile);

        boolean pluginExists = MavenUtils.checkOldPluginEntry(mavenProject, "org.apache.felix",
                "maven-bundle-plugin", "2.3.4");
        if (pluginExists) {
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            return true;
        }
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        ProjectUtils.addNatureToProject(project, false, CARBON_UI_BUNDLE_PROJECT_NATURE);
        MavenUtils.updateWithMavenEclipsePlugin(pomfile, new String[] { JDT_BUILD_COMMAND },
                new String[] { CARBON_UI_BUNDLE_PROJECT_NATURE, JDT_PROJECT_NATURE });
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

        try {
            refreshDistProjects();
            IFile activatorClassForProject = getManifestFileForProject(project);
            IDE.openEditor(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
                    activatorClassForProject);
        } catch (Exception e) {
            log.error("Cannot open file in editor", e);
        }
    } catch (CoreException e) {
        log.error("CoreException has occurred", e);
    } catch (Exception e) {
        log.error("An unexpected error has occurred", e);
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.artifact.ds.validator.ui.wizard.DataServiceValidatorCreationWizard.java

License:Open Source License

public boolean performFinish() {
    try {//w  w w .j  a v  a 2s.c om
        if (dsValidatorModel.getSelectedOption().equals("new.validator")) {
            project = createNewProject();
            IFolder srcFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "java");
            JavaUtils.addJavaSupportAndSourceFolder(project, srcFolder);

            /*create the new Java project*/
            String className = dsValidatorModel.getValidatorClass();
            String packageName = dsValidatorModel.getValidatorClassPackage();
            IJavaProject iJavaProject = JavaCore.create(project);
            IPackageFragmentRoot root = iJavaProject.getPackageFragmentRoot(srcFolder);
            IPackageFragment sourcePackage = root.createPackageFragment(packageName, false, null);

            /*get the validator class template*/
            String template = DataServiceValidatorClassTemplate.getClassTemplete(packageName, className);
            ICompilationUnit cu = sourcePackage.createCompilationUnit(className + ".java", template, false,
                    null);
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            try {
                IEditorPart javaEditor = JavaUI.openInEditor(cu);
                JavaUI.revealInEditor(javaEditor, (IJavaElement) cu);
            } catch (Exception e) {
                /* ignore */}
        } else {
            project = dsValidatorModel.getValidatorProject();
        }
        File pomfile = project.getFile("pom.xml").getLocation().toFile();
        getModel().getMavenInfo().setPackageName("bundle");
        if (!pomfile.exists()) {
            createPOM(pomfile);
            addDependancies(project);
        }
        MavenProject mavenProject = MavenUtils.getMavenProject(pomfile);
        boolean pluginExists = MavenUtils.checkOldPluginEntry(mavenProject, "org.apache.felix",
                "maven-bundle-plugin", "2.3.4");
        if (pluginExists) {
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
            return true;
        }
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        ProjectUtils.addNatureToProject(project, false, DS_VALIDATOR_PROJECT_NATURE);
        MavenUtils.updateWithMavenEclipsePlugin(pomfile, new String[] { JDT_BUILD_COMMAND },
                new String[] { DS_VALIDATOR_PROJECT_NATURE, JDT_PROJECT_NATURE });
        getModel().addToWorkingSet(project);
        project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
        refreshDistProjects();
    } catch (CoreException e) {
        log.error(e);
    } catch (Exception e) {
        log.error(e);
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.artifact.jaxrs.ui.wizard.JaxrsClassWizard.java

License:Open Source License

public boolean performFinish() {
    String id = "";
    String address = "";
    String serviceClass = "";

    try {/*from w  w w  . jav  a  2  s .  c o m*/

        IProject project = getSelectedProject();
        IFolder sourceFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "java");
        IFolder webINF = ProjectUtils.getWorkspaceFolder(project, "src", "main", "webapp", "WEB-INF");
        IFile cxfServletXML = webINF.getFile("cxf-servlet.xml");
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);

        if (classWizardPage.getIsCreateIfClass()) {
            String ifPkg = classWizardPage.getIfPkg();
            String ifClass = classWizardPage.getIfClass();

            IPackageFragment ifSourcePackage = root.getPackageFragment(ifPkg);
            if (!ifSourcePackage.exists()) {
                ifSourcePackage = root.createPackageFragment(ifPkg, false, null);
            }
            ICompilationUnit compilationUnit = ifSourcePackage.createCompilationUnit(ifClass + ".java",
                    JaxUtil.getServiceClassSource(ifPkg, ifClass, classWizardPage.isCreateStubs()), false,
                    null);
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

            List superInterfaces = classWizardPage.getSuperInterfaces();
            superInterfaces.add(compilationUnit.getTypes()[0].getFullyQualifiedName());
            classWizardPage.setSuperInterfaces(superInterfaces, false);

            id = compilationUnit.getTypes()[0].getElementName();
            id = Character.toLowerCase(id.charAt(0)) + id.substring(1);
            serviceClass = "";
            address = "/" + compilationUnit.getTypes()[0].getElementName();

        }

        classWizardPage.createType(new NullProgressMonitor());
        IType classSource = classWizardPage.getCreatedType();
        ICompilationUnit unit = classSource.getCompilationUnit();
        unit.getJavaProject().getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

        unit.becomeWorkingCopy(new NullProgressMonitor());
        unit.createImport("javax.ws.rs.Path", null, new NullProgressMonitor());
        String source = unit.getSource();
        String searchFor = "public class " + classSource.getTypeQualifiedName();
        int pos = source.indexOf(searchFor);
        source = (source.substring(0, pos) + "@Path(\"/" + "\")" + System.getProperty("line.separator")
                + source.substring(pos));
        IBuffer workingCopyBuffer = unit.getBuffer();
        workingCopyBuffer.setContents(source);
        unit.commitWorkingCopy(false, new NullProgressMonitor());

        try {

            if (!classWizardPage.getIsCreateIfClass()) {
                id = unit.getTypes()[0].getElementName();
                id = Character.toLowerCase(id.charAt(0)) + id.substring(1);
                serviceClass = unit.getTypes()[0].getFullyQualifiedName();
                address = "/" + unit.getTypes()[0].getElementName();
            }

            JaxUtil.CxfServlet cxfServlet = new JaxUtil.CxfServlet();
            cxfServlet.deserialize(cxfServletXML);
            address = address.replaceAll("([A-Z])", "_$1"); // split CamelCase
            address = address.replaceAll("^/_", "/");
            address = address.toLowerCase();
            String beanClass = unit.getTypes()[0].getFullyQualifiedName();
            cxfServlet.addServer(id, serviceClass, address, beanClass);
            String content = cxfServlet.toString().replaceAll("\\ xmlns=\"\"", "");
            cxfServletXML.setContents(new ByteArrayInputStream(content.getBytes()), IResource.FORCE, null);
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

            try {
                IEditorPart javaEditor = JavaUI.openInEditor(unit);
                JavaUI.revealInEditor(javaEditor, (IJavaElement) unit);
            } catch (Exception e) {/* ignore */
                log.error("Exception has occurred", e);
            }

        } catch (Exception e) {
            log.error("cannot update cxf-servlet.xml", e);
        }

    } catch (CoreException e) {
        log.error("CoreException has occurred", e);
    } catch (InterruptedException e) {
        log.error("An InterruptedException has occurred", e);
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.artifact.jaxrs.ui.wizard.JaxrsCreationWizard.java

License:Open Source License

private ICompilationUnit createServiceClass(IProject project, CxfServlet cxfServlet, String packageName,
        String className) throws CoreException {
    IJavaProject javaProject = JavaCore.create(project);
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);
    IPackageFragment sourcePackage = root.createPackageFragment(packageName, false, null);
    StringBuffer buffer = new StringBuffer();
    if (!packageName.equalsIgnoreCase("")) {
        buffer.append("package " + packageName + ";\n");
        buffer.append("\n");
    }// w w w . j  av a 2s .c  o m
    buffer.append("import javax.ws.rs.*;\n");
    buffer.append("\n");
    buffer.append("@Path(\"/\")\n" + "public class " + className + " {\n\n");
    buffer.append("\n}");

    ICompilationUnit cu = sourcePackage.createCompilationUnit(className + ".java", buffer.toString(), false,
            null);
    String address = "/" + cu.getTypes()[0].getElementName();
    address = address.replaceAll("([A-Z])", "_$1"); // split CamelCase
    address = address.replaceAll("^/_", "/");
    address = address.toLowerCase();
    String beanClass = cu.getTypes()[0].getFullyQualifiedName();
    cxfServlet.addServer(cu.getTypes()[0].getElementName(), null, address, beanClass);
    return cu;
}

From source file:org.wso2.developerstudio.eclipse.artifact.jaxws.ui.wizard.JaxwsClassWizard.java

License:Open Source License

public boolean performFinish() {
    try {/*from   ww  w.ja  v a 2s  .  c  om*/
        String ifPkg = jaxwsClassWizardPage.getIfPkg();
        String ifClass = jaxwsClassWizardPage.getIfClass();
        IProject project = getSelectedProject();
        IFolder sourceFolder = ProjectUtils.getWorkspaceFolder(project, "src", "main", "java");
        IFolder webINF = ProjectUtils.getWorkspaceFolder(project, "src", "main", "webapp", "WEB-INF");
        IFile cxfServletXML = webINF.getFile("cxf-servlet.xml");
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);

        String id = "";
        String serviceClass = null;
        String address = "";

        List superInterfaces = jaxwsClassWizardPage.getSuperInterfaces();

        if (jaxwsClassWizardPage.isCreateServiceInterface()) {

            IPackageFragment ifSourcePackage = root.getPackageFragment(ifPkg);
            if (!ifSourcePackage.exists()) {
                ifSourcePackage = root.createPackageFragment(ifPkg, false, null);
            }

            ICompilationUnit cu = ifSourcePackage.createCompilationUnit(ifClass + ".java",
                    JaxUtil.getServiceClassSource(ifPkg, ifClass, jaxwsClassWizardPage.isCreateStubs()), false,
                    null);
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

            superInterfaces.add(cu.getTypes()[0].getFullyQualifiedName());

            id = cu.getTypes()[0].getElementName();
            id = Character.toLowerCase(id.charAt(0)) + id.substring(1);
            serviceClass = cu.getTypes()[0].getFullyQualifiedName();
            address = "/" + cu.getTypes()[0].getElementName();
        }

        jaxwsClassWizardPage.setSuperInterfaces(superInterfaces, false);
        jaxwsClassWizardPage.createType(new NullProgressMonitor());
        IType classSource = jaxwsClassWizardPage.getCreatedType();
        ICompilationUnit unit = classSource.getCompilationUnit();
        unit.becomeWorkingCopy(new NullProgressMonitor());
        unit.createImport("javax.jws.WebService", null, new NullProgressMonitor());
        String source = unit.getSource();
        String searchFor = "public class " + classSource.getTypeQualifiedName();
        int pos = source.indexOf(searchFor);
        source = (source.substring(0, pos) + "@WebService(serviceName = \"" + classSource.getTypeQualifiedName()
                + "\")" + System.getProperty("line.separator") + source.substring(pos));
        IBuffer workingCopyBuffer = unit.getBuffer();
        workingCopyBuffer.setContents(source);
        unit.commitWorkingCopy(false, new NullProgressMonitor());
        unit.getJavaProject().getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

        if (!jaxwsClassWizardPage.isCreateServiceInterface()) {
            id = classSource.getElementName();
            id = Character.toLowerCase(id.charAt(0)) + id.substring(1);
            //serviceClass = classSource.getFullyQualifiedName();
            address = "/" + classSource.getElementName();
        }

        JaxUtil.CxfServlet cxfServlet = new JaxUtil.CxfServlet();

        try {

            cxfServlet = new JaxUtil.CxfServlet();
            cxfServlet.deserialize(cxfServletXML);

            address = address.replaceAll("([A-Z])", "_$1"); // split CamelCase
            address = address.replaceAll("^/_", "/");
            address = address.toLowerCase();
            String beanClass = unit.getTypes()[0].getFullyQualifiedName();
            cxfServlet.addServer(id, serviceClass, address, beanClass);
            /*to drop empty NS, due to https://issues.apache.org/jira/browse/AXIOM-97 (was fixed in AXIOM 1.2.10)*/
            String content = cxfServlet.toString().replaceAll("xmlns=\"\"", "");
            cxfServletXML.setContents(new ByteArrayInputStream(content.getBytes()), IResource.FORCE, null);
            project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());

            IEditorPart javaEditor = JavaUI.openInEditor(unit);
            JavaUI.revealInEditor(javaEditor, (IJavaElement) unit);
        } catch (Exception e) {
            log.error("cannot update cxf-servlet.xml", e);
        }

    } catch (CoreException e) {
        log.error("CoreException has occurred", e);
    } catch (InterruptedException e) {
        log.error("An InterruptedException has occurred", e);
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.artifact.jaxws.ui.wizard.JaxwsServiceCreationWizard.java

License:Open Source License

private ICompilationUnit createServiceClass(IProject project, CxfServlet cxfServlet, String packageName,
        String className) throws CoreException {
    IJavaProject javaProject = JavaCore.create(project);
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);
    IPackageFragment sourcePackage = root.createPackageFragment(packageName, false, null);
    StringBuffer buffer = new StringBuffer();
    if (!packageName.equalsIgnoreCase("")) {
        buffer.append("package " + packageName + ";\n");
        buffer.append("\n");
    }//from   w  w  w .j a va 2 s .  c om
    buffer.append("import javax.jws.WebService;\n");
    buffer.append("import javax.jws.WebMethod;\n");
    buffer.append("import javax.jws.WebParam;\n");
    buffer.append("\n");
    buffer.append("@WebService(serviceName = \"" + className + "\")\n" + "public class " + className + "{\n\n");
    buffer.append("\t/** This is a sample web service operation */\n");
    buffer.append("\t@WebMethod(operationName = \"hello\")\n");
    buffer.append("\tpublic String hello(@WebParam(name = \"name\") String txt) {\n");
    buffer.append("\t\treturn \"Hello \" + txt + \" !\";\n");
    buffer.append("\t}\n\n");
    buffer.append("\n}");
    ICompilationUnit cu = sourcePackage.createCompilationUnit(className + ".java", buffer.toString(), false,
            null);
    String address = "/" + cu.getTypes()[0].getElementName();
    address = address.replaceAll("([A-Z])", "_$1"); // split CamelCase
    address = address.replaceAll("^/_", "/");
    address = address.toLowerCase();
    String beanClass = cu.getTypes()[0].getFullyQualifiedName();
    cxfServlet.addServer(cu.getTypes()[0].getElementName(), null, address, beanClass);
    return cu;
}