This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 243781 - Cannot publish a plugin
Summary: Cannot publish a plugin
Status: VERIFIED WORKSFORME
Alias: None
Product: updatecenters
Classification: Unclassified
Component: Pluginportal (show other bugs)
Version: 7.4
Hardware: PC Windows 7
: P3 normal (vote)
Assignee: Jan Pirek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-12 07:36 UTC by Valery-Sh
Modified: 2014-04-15 10:21 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Contains two nbm files (120.95 KB, application/x-zip-compressed)
2014-04-14 10:56 UTC, Valery-Sh
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Valery-Sh 2014-04-12 07:36:54 UTC
I tried to publish the jetty server plugin but I cannot.

Step 1. I pointed to a zip file with two nbms to upload.

Step 2.

Plugin Name: jetty-server-nb-1.0

License Type: CDDL

Supported NetBeans Version: 7.4

Categories 1: Web Applications

Summary: Integrates jetty server 9.1 or above into the NetBeans IDE 7.4 or higher

Long Description (HTML tags OK): I used HTML4 tags without the <html> <head> and <body> tags  

When I press the Save button then the response is the form I've filled. No error messages and no success notifications
Comment 1 Jiri Kovalsky 2014-04-14 07:58:15 UTC
Valery, can you please attach the ZIP file to this bug? Is it big? We will try to investigate what's wrong. It's true that we have recently changed generation of Plugin Portal Update Center which could influence publishing process.

From the log I can see that the upload finished normally but nothing else happened:

43724	2014-04-12 02:59:31	n/a	Valery-Sh	Plugin uploaded: 1397285971_jetty-server-nb.zip
Comment 2 Valery-Sh 2014-04-14 10:56:45 UTC
Created attachment 146733 [details]
Contains two nbm files

The jetty server plugin nbm files
Comment 3 Jiri Kovalsky 2014-04-14 11:06:42 UTC
Hm, interesting. Did you try to publish your plugin at least twice? I have just tried it and it worked smoothly: http://plugins.netbeans.org/plugin/54456/?show=true

Please give it another try and then let us know. Thanks.
Comment 4 Jiri Kovalsky 2014-04-14 13:02:06 UTC
Excellent. I see that you were able to publish the plugin [1] in the end. Closing this bug.

[1] http://plugins.netbeans.org/plugin/54458
Comment 5 Valery-Sh 2014-04-14 13:14:54 UTC
(In reply to Jiri Kovalsky from comment #3)
> Hm, interesting. Did you try to publish your plugin at least twice? I have
> just tried it and it worked smoothly:
> http://plugins.netbeans.org/plugin/54456/?show=true
> 
> Please give it another try and then let us know. Thanks.

I've tried again. But I deleted the contents of "Long Description" and left there only one row. Now everything is fine.

Earlier content of the "Long Description" field contained with HTML4 tags but without tags such as html, head, body.

Are there any restrictions on the content of the field "Long Description"?
Comment 6 Jiri Kovalsky 2014-04-14 13:29:07 UTC
No, there shouldn't be any restrictions preventing to publish a plugin. Some tags are forbidden to avoid cross site scripting attacks but in general it should work normally for the typical end user.
Comment 7 Valery-Sh 2014-04-14 13:50:19 UTC
(In reply to Jiri Kovalsky from comment #6)
> No, there shouldn't be any restrictions preventing to publish a plugin. Some
> tags are forbidden to avoid cross site scripting attacks but in general it
> should work normally for the typical end user.

Thank You.

Why the field "Supported NetBeans Version" is a Radio Buttons and not Check Boxes?
This allows us to specify only one NetBeans version.
Comment 8 Jiri Kovalsky 2014-04-14 14:08:50 UTC
(In reply to Valery-Sh from comment #7)

> Why the field "Supported NetBeans Version" is a Radio Buttons and not Check
> Boxes? This allows us to specify only one NetBeans version.

Because Plugin Portal needs individual plugin binaries for individual NetBeans versions. Go to MyPlugins [1] and click "Add binary" if you want to add 8.0 to supported NetBeans versions.

[1] http://plugins.netbeans.org/my-plugins
Comment 9 Valery-Sh 2014-04-14 14:16:46 UTC
(In reply to Jiri Kovalsky from comment #8)
> (In reply to Valery-Sh from comment #7)
> 
> > Why the field "Supported NetBeans Version" is a Radio Buttons and not Check
> > Boxes? This allows us to specify only one NetBeans version.
> 
> Because Plugin Portal needs individual plugin binaries for individual
> NetBeans versions. Go to MyPlugins [1] and click "Add binary" if you want to
> add 8.0 to supported NetBeans versions.
> 
> [1] http://plugins.netbeans.org/my-plugins

Thank You very much.
Comment 10 Jiri Kovalsky 2014-04-15 07:26:46 UTC
You are welcome!
Comment 11 Valery-Sh 2014-04-15 09:38:44 UTC
(In reply to Jiri Kovalsky from comment #10)
> You are welcome!

Hi, Jiri.

Sorry to disturb You.

I tried to edit my pluging: Plugins -> My Plugins -> jetty-server-nb -> Edit general plugin info. 

Then I copy my html text into the field "Long Description″.  I get an Error page with a message "Application Error″.

I tried another way: Plugins -> My Plugins -> jetty-server-nb -> Edit. (Binaries column)

I copy the same html text into the field "What's new in this version (HTML tags OK)″. Everything is alright.

Maybe this information will be useful.
Comment 12 Jiri Kovalsky 2014-04-15 09:56:20 UTC
Can you please put the HTML text here?
Comment 13 Valery-Sh 2014-04-15 09:58:54 UTC
(In reply to Jiri Kovalsky from comment #12)
> Can you please put the HTML text here?

        <h3>Purpose</h3>
        <p>
            Allows to develop web projects with <code><b>Jetty Http Server</b></code>.
            Supports <i>starting</i>, <i>debugging</i> and <i>profiling</i> 
            <code><b>ant-based and/or maven-based</b></code> web application 
            (similar to the <code><b>Tomcat</b></code> server) . 
        </p>
        <p>
            Plugin provides  API for <code><b>Incremental deployment</b></code>
            (<i>compile on save</i> and <i>deploy on save</i>) and 
            <code><b>jsp</b></code> compilation.        
        </p>
        <h3>System Requirements</h3>
        The plugin supports <code><b>Jetty version 9.1</b></code> and
        above. The recommended version of 
        <code><b>Jetty</b></code> is <code><b>9.1.2</b></code> or higher, 
        as earlier versions contain errors and 
        startup of some web applications (<code><b>JSF, CDI</b></code>) may fail. 
        The plugin does not contain any Jetty distribution kit and if the 
        latter is not already installed on your computer, it can be downloaded
        from <a href="http://download.eclipse.org/jetty/"><b>here</b></a>    . 
        <p>
            The Jetty distribution kit does not require any special tools 
            to install, it is a zip archive that may be unpacked to any directory 
            of your file system.
        </p>
        <p>

            To install the plugin, you need to have 
            <code><b>Java Developer Kit (JDK)  v1.7.0</b></code> or higher and 
            <code><b>NetBeans IDE v7.4</b></code> and above pre-installed  on the user computer.        
        </p>

        <h3>Installation</h3>
        <h4>How to create a Server Instance</h4>
        <h5 id="option1">Option 1.</h5>     
        To create and register a Server Instance in a usual  NetBeans IDE 
        manner, use the menu <code><b>Tools → Servers → Add Server</b></code>. 
        In the dialog box <code><b>"Add Server Instance"</b></code>  
        select <code><b>"Jetty Server"</b></code> item 
        from the <code><b>"Choose Server"</b></code> list and click 
        <code><b>"Next"</b></code>.     
        <ul><li>
                Specify the name of the directory that will be used to configure and to customize the Server Instance. 
                As you may know, Jetty 9.1 introduced the concept of 
                <code><b>Jetty Base</b></code> and <code><b>Jetty Home</b></code>. 
                This means that it is now  possible to separate the installation 
                of the jetty <i>standalone server</i> in a certain directory (known  
                as <code><b>${jetty.home)</b></code>) and the customizations for your 
                specific environment (known as <code><b>${jetty.base}</b></code>). 
                Specify the directory for NetBeans to create 
                <code><b>jettybase</b></code> subdirectory in the 
                <code><b>‘Jetty Base Folder’</b></code> box; 
                such subdirectory corresponds to the concept of 
                <code><b>${jetty.base}</b></code>.
            </li>
            <li>
                Specify the path to the root directory with the binary 
                installation of the standalone Jetty in the <code><b>‘Jetty Home’</b></code> 
                box.
            </li>
            <li>
                If required, change <code><b>http port, debug port</b></code> 
                and <code><b>stop (shutdown) port</b></code> 
                fields in the <code><b>Connection</b></code> tab ). 
                If necessary, change the default values ​​for 
                <code><b>Http Timeout</b></code>.            
            </li>
        </ul><p>
            The <code><b>Settings</b></code> dialog box also contains tabs 
            <code><b>SPDY / SSL, JSF</b></code> and <code><b>CDI</b></code>.
        </p>
        <p>
            The <code><b>SPDY/SSL</b></code> tab contains two JCheckBox-type fields. 
            The <i>first</i> one is used to enable the use of the 
            <code><b>SPDY</b></code>. 
            If selected, it will automatically activate <code><b>SSL</b></code>. 
            The <i>second</i> field may be selected if you choose not to use 
            <code><b>SPDY</b></code>. 
        </p>        
        <p>
            To learn more about what happens behind the scenes, refer to the 
            section <b>SSL Support</b> and <b>SPDY Support</b>.
        </p>
        <p>
            The <code><b>JSF</b></code> tab contains a single JCheckBox-type field . 
            If it is selected, the <i>server instance</i> must be created 
            to provide support for <code><b>Java Server Faces (JSF)</b></code>. 
            For more information refer to <b>JSF Support</b>.
        </p>
        <p>
            The <code><b>CDI</b></code> tab contains a single JCheckBox-type field. 
            If it is selected, the server instance must be created to provide 
            support for Contexts and <code><b>Dependency Injection (CDI)</b></code>. 
            For more information refer to <b>CDI Support</b>.
        </p>
        <p>
            If there are no errors found, then once you click 
            <code><b>Finish</b></code> the plugin creates a directory and inside it 
            another directory named <code><b>jettybase</b></code>. 
            The <code><b>jettybase</b></code> directory structure is consistent 
            with the <b>Jetty Base</b> concept and contains the settings of 
            the server instance and other files required for the 
            plugin.
        </p>
        <p>
            It is necessary to make an important note. 
            NetBeans IDE recognized the created directory  as an 
            object of <code><b>Project</b></code> type, 
            and therefore may be opened in 
            the <code><b>Project Explore</b></code> tab. 
            The project has a simple structure and currently does not extend 
            any known types of NetBeans project. It also doesn't create 
            <code><b>nbproject</b></code> directory and such files as 
            <code><b>project.xml, 
                    build.xml</b></code> and <code><b>build-impl.xml</b></code>.
        </p>
        <h5>Option 2</h5>
        We mentioned above, registration of a server instance in a 
        standard manner leads to the <i>creation of a project</i>. 
        Therefore, the plugin allows the creation of such 
        a project by using the menu <code><b>File -> New Project</b></code>. 
        In the dialog window in the <code><b>Choose Project</b></code> panel, 
        go to the <code><b>Categories</b></code> list,choose  
        <code><b>JettyServer</b></code> and 
        then click the <code><b>Next</b></code> button. 
        A new window is then opened containing the same fields and tabs 
        as described in <a href="#option1">Option 1.</a>. 
        Use of <code><b>Option 2</b></code> results in registration 
        of a new <code><i>Server Instance</i></code> and creation of a new corresponding 
        <code><b>Project</b></code> containing the <code><b>jettybase</b></code> subdirectory .

        <h5>How to Start a Web Project</h5>
        Creation and launch of <code>web projects</code> for <code><b>Jetty</b></code> is 
        no different from the creation and launch of other servers, 
        such as <code><b>Tomcat</b></code> or <code><b>GlassFish</b></code>.
        <p>
            Create  an <code><b>ant-based</b></code> or  a <code><b>maven-based</b></code>
            <code>web project</code> in NetBeans IDE. Assign it a registered <i>Server Instance</i>
            of the <code><b>Jetty server</b></code>. After that, you may run 
            project  activities such as <code><b>Run, Debug, Profile, Deploy</b></code> <i>etc</i>.        
        </p>

        <h4>Changing the settings of the server instance</h4>
        There is a number of subdirectories and files in the 
        <code><b>jettybase</b></code> subdirectory that the developer can edit
        either manually or interactively. 
        These are files such as  <code><b>start.ini</b></code>, and directories such as 
        <code><b>start.d, etc, etc-cm</b></code>, or <code><b>modules</b></code>. 
        <p>
            To modify the settings of a <i>Jetty Server Instance</i> use the 
            <code>popup menu</code> for the project. To do this, <i>right-click</i> the 
            project in the <code><b>Project Explore</b></code> and select 
            <code><b>Properties</b></code>.  Or go to the 
            <code><b>Services</b></code> tab, 
            then sequentially choose <code><b>Servers</b></code> and the 
            requested <code><i>Server Instance</i></code>. <i>Right Click</i>  on the 
            <code><i>Server Instance</i></code> and select 
            the <code>popup menu item</code> <code><b>Properties</b></code>.        
        </p>

        <h3>JSF Support</h3>

        <code>Jetty Server API</code> does not provide a built-in support 
        for <code><b>Java Server Faces (JSF)</b></code>. 
        Therefore, this support is disabled by default on 
        creation of a server instance. However, <code><b>JSF</b></code> 
        can be enabled. To do that, you should check 
        the JCheckBox flag in the <code><b>JSF</b></code> tab  
        when you create a server instance or change the 
        settings through the <code><b>Properties</b></code> dialog. 
        In this case, the file <code><b>jsf.ini</b></code>  will be created
        in the <code><b>${jetty.base}/start.d</b></code> directory with 
        the following content:                 
        <pre><code>
        #
        # Initialize module Java Server Faces (jsf)
        #
        <b>--module=jsf</b>        
        </code></pre>

        <h4>Modules</h4>

        The module <code><b>jsf.mod</b></code> is placed in the directory 
        <code><b>${jetty.base}/modules/jsf</b></code>. 
        Presented below is the module’s content:
        <pre>
        <code>
        <b>[depend]</b>
        jsf-mojarra
        <b>[lib]</b>
        lib/jsf/*.jar
        <b>[files]</b>
        lib/
        lib/jsf/
        <b>[ini-template]</b>
        </code>
        </pre>

        As you can see the <code><b>jsf.mod</b></code> module depends 
        on another module - <code><b>jsf-mojarra.mod</b></code>, 
        which is placed in the same directory:
        <pre><code>
        <b>[name]</b>
        jsf-mojarra
        <b>[files]</b>
        http://repo1.maven.org/maven2/org/glassfish/javax.faces/2.2.5/javax.faces-2.2.5.jar:lib/jsf/javax.faces-2.2.5.jar
        <b>[ini-template]</b>  
        </code></pre>
        There is a reference to the <code><b>maven</b></code> repository 
        which contains the  <code><b>javax.faces-2.2.5.jar</b></code> archive , 
        and there is an indication of where you should place this file and 
        how to name it. By default, the <code><b>javax.faces-2.2.5.jar</b></code>
        archive is placed in <code><b>${jetty.base}/lib/jsf</b></code> under the <i>same</i> name.
        <p>
            Currently only <code><b>Mojarra JSF</b></code> is supported. 
            However, the developer may manually modify <code><b>jsf.mod</b></code> in 
            order for it to support other implementations of 
            <code><b>JSF</b></code>, such as <code><b>MyFaces</b></code>.
        </p>
        <p>
            Archive downloads via network  either on the start of 
            the server of a web-application, or on execution 
            of the <code><b>Refresh Libraries</b></code> menu item. Please note, 
            that in case <code><b>javax.faces-2.2.5.jar</b></code> file is already 
            on your computer, you may copy it to the 
            <code><b>${jetty.base}/lib/jsf</b></code>  directory, and the network 
            download will not start.
        </p>

        <h4>Run sample Web Applications</h4>
        NetBeans installation contains examples of web applications, 
        including jsf-applications. 
        By default, these applications use the <code><b>GlassFish</b></code> server, 
        but some of them can also be run on <code><b>Jetty Server</b></code> using 
        NetBeans IDE and this plugin.
        Go to the <code><b>File -> New Project -> Samples -> Java EE</b></code> 
        and select the <code><b>HTML5 JSF application</b></code>. 
        After the project is open, select it in the
        <code><b>Project Explore</b></code>, call the 
        popup menu by clicking
        the right mouse button,execute the 
        <code><b>Properties</b></code> menu item and then click 
        <code><b>Run</b></code> in the <code><b>Categories</b></code> panel. 
        A dialog box appears where you can specify
        <i>Jetty Server Instance</i>  instead of <code><b>GlassFish</b></code>. 
        Now you can work with this application in 
        the way usual for NetBeans IDE  

        <h3>CDI Support</h3>

        <code>Jetty Server API</code> does not provide a built-in support for 
        <code><b>Context and Dependency Injection (CDI)</b></code>. 
        Therefore, on creation of a server instance, this support is 
        disabled by default. 
        However, you may enable <code><b>CDI</b></code>. 
        To do this,  check the JCheckBox labeled as 
        <code><b>Support Context and Dependency Injection (CDI)</b></code> 
        as selected in the
        <code><b>CDI</b></code> tab when you create a server instance or change
        the settings through the 
        <code><b>Properties</b></code> dialog. In this case, the 
        <code><b>cdi.ini</b></code> file  will be created in the 
        <code><b>${jetty.base}/start.d</b></code> directory. 
        Presented below is the content of the 
        <code><b>cdi.ini</b></code> file:
        <pre><code>
        <b>--module=cdi</b>   
        </code></pre>

        <h4>Modules</h4>

        The <code><b>cdi.mod</b></code> module is placed in the 
        <code><b>${jetty.base}/modules/jsf</b></code> directory. 
        Presented below is the module’s content:
        <pre><code>
        <b>[depend]</b>
        cdi-weld
        <b>[lib]</b>
        lib/cdi/*.jar
        <b>[files]</b>
        lib/
        lib/cdi/
        <b>[ini-template]</b>

        </code></pre>

        As you can see the <code><b>cdi.mod</b></code> module depends
        on another module - <code><b>cdi-weld.mod</b></code>, 
        which is placed in the <i>same</i> directory:
        <pre><code>        
        <code><b>[name]</b></code>
        cdi-weld
        <code><b>[files]</b></code>
        http://central.maven.org/maven2/org/jboss/weld/servlet/weld-servlet/2.1.2.Final/weld-servlet-2.1.2.Final.jar:lib/cdi/weld-servlet-2.1.2.jar
        <code><b>[ini-template]</b></code>
        </code></pre>

        There is a reference to the <code><b>maven</b></code> 
        repository which contains the  
        <code><b>weld-servlet-2.1.2.Final.jar</b></code> archive, 
        together with an indication of where you should place this 
        file and how to name it. By default, the 
        <code><b>weld-servlet-2.1.2.Final.jar</b></code> archive is placed in $ {jetty.base}/lib/jsf with a slightly different name -  
        <code><b>weld-servlet-2.1.2.jar</b></code>.
        Currently only <code><b>Weld</b></code> is supported
        (and, vice versa, <code><b>Weld</b></code> supports <code><b>Jetty</b></code>). 
        However, the developer can manually modify 
        <code><b>cdi.mod</b></code> to support other implementations of <code><b>CDI</b></code>.	
        <p>
            Archive downloads via network either on the start of the server or 
        web-application, or on execution of the 
        <code><b>Refresh Libraries</b></code> menu item. 
        </p>
        <p>
        Please note, that in case the 
        <code><b>weld-servlet-2.1.2.jar</b></code> file is already on your computer, 
        you may copy it to the  <code><b>${jetty.base}/lib/cdi</b></code> directory, 
        and the network download will not start.
        </p>

        <h4>Run Sample Applications</h4>

	NetBeans installation contains examples of web applications,
        including cdi-applications. By default, these applications 
        use the <code><b>GlassFish</b></code> server, 
        but some of them can be run on 
        <code><b>Jetty Server</b></code> using NetBeans IDE and this plugin.
        Go to the <code><b>File -> New Project -> Samples -> Java EE</b></code> 
        application and select 
        <code><b>Java Server Faces CDI (JavaEE 7)</b></code>. 
        After the project opens, select it in the 
        <code><b>Project Explore</b></code>, call the popup menu by clicking 
        the right mouse button, 
        execute the <code><b>Properties</b></code> menu item and then click 
        <code><b>Run</b></code> in the <code><b>Categories</b></code> panel. 
        A dialog box appears where you can specify 
        <code><b>Jetty Server Instance</b></code>  instead of <code><b>GlassFish</b></code>. 
        Now you can work with this application in the way usual for NetBeans IDE        
        
        <h3>SSL Support</h3>
        Various customization procedures are described 
        <a href="http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html">here</a>
        
        <h3>SPDY Support</h3>
	The current version of the plugin allows you to activate or 
        deactivate <code><b>SPDY</b></code> support , as well as to set or modify a 
        number of parameters. For browsers that do not support <code><b>SDPY</b></code>, 
        communication is performed via the ordinary <code><b>Http protocol</b></code>.
        <code><b>SPDY</b></code> can be activated either  on creation of a server 
        instance or on change of settings in <code><b>Properties</b></code>. 
        To do that, check the JCheckBox labeled as <code><b>Enable SPDY</b></code> in the 
        <code><b>SPDY</b></code> tab.  The results of the 
        <code><b>SPDY</b></code> activation are two files - 
        <code><b>spdy.ini</b></code> and <code><b>ssl.ini</b></code> created in the 
        <code><b>${jetty.base}/start.d</b></code> directory.
        <p>
            Note that activation of the <code><b>SPDY</b></code> automatically entails 
            <code><b>SSL</b></code> activation.
	Information on use and customization of 
        <code><b>SPDY</b></code> in <code><b>Jetty</b></code> may be found 
        <a href="http://www.eclipse.org/jetty/documentation/current/spdy.html#spdy-introduction">here</a>
        </p>

        <h3>HTTPS Support</h3>

	The current version of the plugin allows you to activate or 
        deactivate <code><b>HTTPS</b></code> support , as well as to set or modify a number of 
        parameters.
        <code><b>HTTPS</b></code> can be activated either on creation of a server instance or 
        on change of settings in <code><b>Properties</b></code>. The results of the 
        <code><b>HTTPS</b></code> activation are two files 
        <code><b>https.ini</b></code> and 
        <code><b>ssl.ini</b></code> created in the 
        <code><b>${jetty.base}/start.d</b></code> directory.
	<p>
        Note that activation of the 
        HTTPS automatically entails 
        SSL activation.
        </p>
(In reply to Jiri Kovalsky from comment #12)
> Can you please put the HTML text here?
Comment 14 Jiri Kovalsky 2014-04-15 10:21:10 UTC
Honzo, can you please take a look at this? I tried to create a reference type plugin entry with this long description and it didn't work. Thanks!