thank you lofi..

i will try this and then get back to you..
hope it will solve my problem.  

On Wednesday, May 20, 2020 at 2:01:44 AM UTC+5:30, Dr. Lofi Dewanto wrote:
>
> Using Maven does not mean that you have to put your software product as 
> Open Source. So you can still do everything in house.
>
> For sure you need to teach the devs to build the software with Maven but 
> NetBeans has a very good Maven support: 
> - https://platform.netbeans.org/tutorials/nbm-maven-quickstart.html
> - https://platform.netbeans.org/tutorials/nbm-maven-quickstart.html
>
> Using Maven in NetBeans is actually quite straight forward... and using 
> Maven does not mean that you don't use NetBeans anymore:
> - Maven is a tool to do the *build* and *libs dependencies* for your app
> - NetBeans is an IDE and it can use Maven natively within NetBeans just 
> like Eclipse / IntelliJ / VisualStudio Code
>
> Now to your example:
>
> You have "client", "server" and "shared" (I always use the term API for 
> "shared") which is correct, see my example: 
> https://github.com/interseroh/demo-gwt-springboot
> It looks the same as your structure.
>
> BUT
>
> I assume that you have those packages just in *ONE NetBeans project*, 
> just like my example above (
> https://github.com/interseroh/demo-gwt-springboot/tree/master/src/main/java/com/lofidewanto/demo
> ).
>
> ... and this is the problem: since you mixed the client and server 
> classpath together in one NetBeans project. If you have a newer version of 
> Jetty for your server module, your GWT transpiler would maybe stop to work. 
> Therefore you need to separate them into *THREE NetBeans projects:*
>
> *(1) "client" project*
> *(2) "shared" project*
> *(3) "server" project*
>
> ... so they have their own classpath.
>
> The problem is now: you need Maven to handle the dependencies:
>
> (1) client depends on shared
> (2) server depends on shared
> (3) No dependencies between client and server
>
> Surely you could build 3 projects in NetBeans and put the Jar manually 
> into the libs directory or put it as dependency within NetBeans but that's 
> more manual work than just using Maven.
>
> Hope this helps.
> Lofi
>
> Am Samstag, 16. Mai 2020 08:42:24 UTC+2 schrieb Vineet Jaiswal:
>>
>> thank you Dr. Lofi for your quick response. the presentation is very 
>> helpful.
>>
>> but there are few hurdles in using maven:
>>
>> 1. the team has expertise in netbeans. they don't now how to use maven. 
>> to use it first we have to arrange the training sessions.
>> 2. company do not allow to move the code out of the company premises. 
>> they want the whole code to be kept only on there company server.
>>    
>> again I request, is there any way that we could continue netbeans. 
>>
>>
>> *secondly! as you said never mix client- and server-side.*
>> can you share any small example where we could see how we can keep client 
>> and server-side separately in gwt. 
>> because we are using the base architecture of gwt: 
>>
>> example: 
>>
>> *-demo.home.client *
>>   -Home.java
>>
>> *-demo.home.server*
>>   -Home_ServerImpl.java
>>
>> *-demo.home.shared*
>>   -Home_Model.java
>>   -Home_RemoteService.java
>>   -Home_AsyncService.java
>>
>>
>> *demo.home.shared.**Home_RemoteService.java (class)*
>> public interface *Home_RemoteService* extends RemoteService {
>>
>>     public List<Home_Model> getHome(String id, boolean flag);
>> }
>>
>> *demo.home.shared.**Home_AsyncService.java (class)*
>> public interface *Home_AsyncService* {
>>
>>     public void getHome(String id, boolean flag, AsyncCallback<List<
>> *Home_Model*>> result);
>> }
>>
>> *demo.home.shared.Home_Model.java (class)*
>> public class *Home_Model* implements Serializable, IsSerializable {
>>
>>     private String name, address, ............;
>>     
>>     public getter & setters ............;
>>
>> }
>>
>> *demo.home.server.Home_ServerImpl.java (class)*
>> public class *Home_ServerImpl* extends RemoteServiceServlet implements 
>> Home_RemoteService {
>>
>>     @Override
>>     public List<*Home_Model*>> getHome(String id, boolean flag) {
>>            ........................;
>>            ........................;
>>            ........................;
>>            ........................;
>>            return listHome_Model;
>>
>> }
>>
>> *demo.home.client.Home.java (class)*
>> public class *Home* implements IsWidget, ClickHandler {
>>
>>     private final ServiceInvoker<*Home_AsyncService*> srvAsync;
>>
>>     public Home() {
>>         srvAsync = new ServiceInvoker<*Home_AsyncService*>(GWT.create(
>> *Home_RemoteService*.class), "Home");
>>     }
>>
>>     public button_click() {
>>
>>         srvAsync.getHome(id, flag, new AsyncCallback<List<*Home_Model*>>() 
>> {
>>
>>                     @Override
>>                     public void onFailure(Throwable caught) {
>>                         ......................;
>>                         ......................;
>>                     }
>>
>>                     @Override
>>                     public void onSuccess(List<*Home_Model*> result) {
>>                         ......................;
>>                         ......................;
>>                         ......................;
>>                         ......................;
>>                     }
>>          });
>>     }
>> }
>>  
>>
>>
>> * we have many *Home_Model.java* like classes which hold many common 
>> functions that we use both server & client side.
>>
>> please suggest the architecture to separate the client & server side code 
>> in GWT. 
>>
>>
>>
>> On Saturday, May 16, 2020 at 3:53:03 AM UTC+5:30, Dr. Lofi Dewanto wrote:
>>>
>>> I would prefer just using:
>>>
>>> (1) Maven for everything, never depends on IDE plugins, you can use GWT 
>>> Maven plugin to run the transpiler and serve the HTML + JS files, no need 
>>> to use plugin. 
>>> (2) For debugging I'm using Chrome and it has a very good source map 
>>> debugger.
>>> (3) Best practice, never mix client- and server-side. Make a stand-alone 
>>> Maven project for your client-based webapp / webbrowser.
>>>
>>> Take a look at this presentation for the anatomy of GWT webapps: 
>>> https://bit.ly/gwtintropresentation
>>>
>>> Hope this helps,
>>> Lofi
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/045fa254-b474-4480-bd4f-dc20427d0765%40googlegroups.com.

Reply via email to