Re: convention plugin Issue
I am currently studying for the 1ZO-815. package name is called is namespace. package mypackge <--- namespace public class Main { public static void main(String[] args) { System.out.println("execute"); } } On 20/12/2019 05:02, John Bush wrote: I apologize for mistaking overriding method vs class in your description. I turned on debugging and it looks that all three classes are being found and struts actions are being created. The problem appears to be allowing the default process to create those - they get created with the same action name [hello-world] and namespace []. Struts in that case I believe takes the first encountered just like when using a struts.xml file. I don't use the Convention Plugin but I would suggest a solution might be to use the @Namespace annotation on the class or package. That way you would be able to specify a unique SCOPE when calling the action and get the result you need. John On 12/19/2019 12:52 AM, Zahid Rahman wrote: This is not overriding method. As you see when you declare the same functionality using the struts.xml Then only that explicitly declared method will be executed by the struts API [framework] in the explicitly declared package.class. Overriding methods in OOP means not using certain declared methods from inherited classes and super impose on inherited methods by writing your own methods. So you use some methods from the inherited class not all [Pick and choose, adapt] This is randomly picking up a class by matching the class names only. There is no way to match packages names same as stuts.xml due to design of annotation API. So I am suggesting do a match of same class names [ validation method in the annotations API ] and raising an error to the application developer of presence of duplicate class names. On Thu, 19 Dec 2019 at 05:59, John Bush wrote: Overriding methods *is **a valid feature* in Java and probably all object oriented languages. I'm confident, even at that lowest level, you wouldn't be able to avoid methods being overridden. Above those layers of code you have many more layers of code to provide the ability to communicate with and over web technologies. Again with a high probability of more methods being overridden. Eventually you get to the Struts framework which is not flat. It is again layers of code, with again a high probability of more methods being overridden. IMHO A developer needs to understand the technology stack used including the order of classpaths searched at execution time. A framework is intended to help you do a job which implies you know what it's doing. John On 12/18/2019 9:48 AM, Lukasz Lenart wrote: Feel free to register a ticket in JIRA, but this is something low priority rather. Regards Lukasz sob., 7 gru 2019 o 12:58 Zahid Rahman napisał(a): I think the convention plugin should perform a validation a check for the presence of multiple same class names within different package names. That ambiguity has been shown by my test. After all it is quite feasible and likely that we could have multiple same class names from different package names from jars which have been placed on the classpath. We cant have the convention plugin randomly (as shown by my test) executing random code. On Sat, 7 Dec 2019 at 10:51, Yasser Zamani wrote: Hi, I guess that the behavior of defining actions with same name and namespace is undefined. I think it's not an issue because Convention Plugin has no avenue to distinguish between them when you request http://localhost:8080/hello-world. Regards. -Original Message- From: Zahid Rahman Sent: Thursday, December 5, 2019 4:51 PM To: Struts Users Mailing List Subject: convention plugin Issue Hi, On this page https://struts.apache.org/plugins/convention/#setup if I have com.example.actions.HelloWorld.java and uk.mypackage.actions.HelloWorld.java with url http://localhost:8080/hello-world then uk.mypackage.actions.HelloWorld.java execute is run. If I have uk.example.actions.HelloWorld.java and com.example.actions.HelloWorld.java then com.example.actions.HelloWorld.java execute is run. uk.mypackage.actions.HelloWorld,java overrides the other two. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org -- www.backbutton.co.uk ¯\_(ツ)_/¯ Lynx my favourite text browser - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: convention plugin Issue
No need to apologise. The real question is how did I know to conduct that particular test and I was so sure of the result , even before I did. Believe me , it wasn't a random test. I was taught C & Unix by Mr. Dimitri. Over the years I realised the unix command he taught me are the most used in software development. The C part of the language he taught is most relevant to developing tools for software development. On Fri, 20 Dec 2019, 05:02 John Bush, wrote: > I apologize for mistaking overriding method vs class in your > description. I turned on debugging and it looks that all three classes > are being found and struts actions are being created. The problem > appears to be allowing the default process to create those - they get > created with the same action name [hello-world] and namespace []. Struts > in that case I believe takes the first encountered just like when using > a struts.xml file. I don't use the Convention Plugin but I would suggest > a solution might be to use the @Namespace annotation on the class or > package. That way you would be able to specify a unique SCOPE when > calling the action and get the result you need. > > John > > On 12/19/2019 12:52 AM, Zahid Rahman wrote: > > This is not overriding method. > > > > > class="org.apache.struts.helloworld.action.HelloWorldAction" > > method="execute"> > > > > As you see when you declare the same functionality using the > > struts.xml Then only that explicitly declared > > method will be executed by the struts API [framework] in the > > explicitly declared package.class. > > > > Overriding methods in OOP means not using certain declared methods > > from inherited classes and super impose on inherited methods by > > writing your own methods. > > So you use some methods from the inherited class not all [Pick and > > choose, adapt] > > > > This is randomly picking up a class by matching the class names only. > > There is no way to match packages names same as stuts.xml due to design > of > > annotation API. So I am suggesting do a match of same class names [ > > validation method in the annotations API ] and raising an error to the > > application developer of presence of duplicate class names. > > > > > > > > > > > > On Thu, 19 Dec 2019 at 05:59, John Bush wrote: > > > >> Overriding methods *is **a valid feature* in Java and probably all > >> object oriented languages. I'm confident, even at that lowest level, you > >> wouldn't be able to avoid methods being overridden. Above those layers > >> of code you have many more layers of code to provide the ability to > >> communicate with and over web technologies. Again with a high > >> probability of more methods being overridden. Eventually you get to the > >> Struts framework which is not flat. It is again layers of code, with > >> again a high probability of more methods being overridden. > >> > >> IMHO A developer needs to understand the technology stack used including > >> the order of classpaths searched at execution time. A framework is > >> intended to help you do a job which implies you know what it's doing. > >> > >> John > >> > >> On 12/18/2019 9:48 AM, Lukasz Lenart wrote: > >>> Feel free to register a ticket in JIRA, but this is something low > >>> priority rather. > >>> > >>> > >>> Regards > >>> Lukasz > >>> > >>> sob., 7 gru 2019 o 12:58 Zahid Rahman > napisał(a): > >>>> I think the convention plugin should perform a validation a check for > >> the > >>>> presence of multiple same class names within different > >>>> package names. That ambiguity has been shown by my test. > >>>> After all it is quite feasible and likely that we could have multiple > >> same > >>>> class names from different package names > >>>> from jars which have been placed on the classpath. > >>>> We cant have the convention plugin randomly (as shown by my test) > >>>> executing random code. > >>>> > >>>> On Sat, 7 Dec 2019 at 10:51, Yasser Zamani > >> wrote: > >>>>> Hi, > >>>>> > >>>>> I guess that the behavior of defining actions with same name and > >> namespace > >>>>> is undefined. I think it's not an issue because Convention Plugin has > >> no > >>>>> avenue to distinguish betw
Re: convention plugin Issue
I apologize for mistaking overriding method vs class in your description. I turned on debugging and it looks that all three classes are being found and struts actions are being created. The problem appears to be allowing the default process to create those - they get created with the same action name [hello-world] and namespace []. Struts in that case I believe takes the first encountered just like when using a struts.xml file. I don't use the Convention Plugin but I would suggest a solution might be to use the @Namespace annotation on the class or package. That way you would be able to specify a unique SCOPE when calling the action and get the result you need. John On 12/19/2019 12:52 AM, Zahid Rahman wrote: This is not overriding method. As you see when you declare the same functionality using the struts.xml Then only that explicitly declared method will be executed by the struts API [framework] in the explicitly declared package.class. Overriding methods in OOP means not using certain declared methods from inherited classes and super impose on inherited methods by writing your own methods. So you use some methods from the inherited class not all [Pick and choose, adapt] This is randomly picking up a class by matching the class names only. There is no way to match packages names same as stuts.xml due to design of annotation API. So I am suggesting do a match of same class names [ validation method in the annotations API ] and raising an error to the application developer of presence of duplicate class names. On Thu, 19 Dec 2019 at 05:59, John Bush wrote: Overriding methods *is **a valid feature* in Java and probably all object oriented languages. I'm confident, even at that lowest level, you wouldn't be able to avoid methods being overridden. Above those layers of code you have many more layers of code to provide the ability to communicate with and over web technologies. Again with a high probability of more methods being overridden. Eventually you get to the Struts framework which is not flat. It is again layers of code, with again a high probability of more methods being overridden. IMHO A developer needs to understand the technology stack used including the order of classpaths searched at execution time. A framework is intended to help you do a job which implies you know what it's doing. John On 12/18/2019 9:48 AM, Lukasz Lenart wrote: Feel free to register a ticket in JIRA, but this is something low priority rather. Regards Lukasz sob., 7 gru 2019 o 12:58 Zahid Rahman napisał(a): I think the convention plugin should perform a validation a check for the presence of multiple same class names within different package names. That ambiguity has been shown by my test. After all it is quite feasible and likely that we could have multiple same class names from different package names from jars which have been placed on the classpath. We cant have the convention plugin randomly (as shown by my test) executing random code. On Sat, 7 Dec 2019 at 10:51, Yasser Zamani wrote: Hi, I guess that the behavior of defining actions with same name and namespace is undefined. I think it's not an issue because Convention Plugin has no avenue to distinguish between them when you request http://localhost:8080/hello-world. Regards. -Original Message- From: Zahid Rahman Sent: Thursday, December 5, 2019 4:51 PM To: Struts Users Mailing List Subject: convention plugin Issue Hi, On this page https://struts.apache.org/plugins/convention/#setup if I have com.example.actions.HelloWorld.java and uk.mypackage.actions.HelloWorld.java with url http://localhost:8080/hello-world then uk.mypackage.actions.HelloWorld.java execute is run. If I have uk.example.actions.HelloWorld.java and com.example.actions.HelloWorld.java then com.example.actions.HelloWorld.java execute is run. uk.mypackage.actions.HelloWorld,java overrides the other two. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: convention plugin Issue
This is not overriding method. As you see when you declare the same functionality using the struts.xml Then only that explicitly declared method will be executed by the struts API [framework] in the explicitly declared package.class. Overriding methods in OOP means not using certain declared methods from inherited classes and super impose on inherited methods by writing your own methods. So you use some methods from the inherited class not all [Pick and choose, adapt] This is randomly picking up a class by matching the class names only. There is no way to match packages names same as stuts.xml due to design of annotation API. So I am suggesting do a match of same class names [ validation method in the annotations API ] and raising an error to the application developer of presence of duplicate class names. On Thu, 19 Dec 2019 at 05:59, John Bush wrote: > Overriding methods *is **a valid feature* in Java and probably all > object oriented languages. I'm confident, even at that lowest level, you > wouldn't be able to avoid methods being overridden. Above those layers > of code you have many more layers of code to provide the ability to > communicate with and over web technologies. Again with a high > probability of more methods being overridden. Eventually you get to the > Struts framework which is not flat. It is again layers of code, with > again a high probability of more methods being overridden. > > IMHO A developer needs to understand the technology stack used including > the order of classpaths searched at execution time. A framework is > intended to help you do a job which implies you know what it's doing. > > John > > On 12/18/2019 9:48 AM, Lukasz Lenart wrote: > > Feel free to register a ticket in JIRA, but this is something low > > priority rather. > > > > > > Regards > > Lukasz > > > > sob., 7 gru 2019 o 12:58 Zahid Rahman napisał(a): > >> I think the convention plugin should perform a validation a check for > the > >> presence of multiple same class names within different > >> package names. That ambiguity has been shown by my test. > >> After all it is quite feasible and likely that we could have multiple > same > >> class names from different package names > >> from jars which have been placed on the classpath. > >> We cant have the convention plugin randomly (as shown by my test) > >> executing random code. > >> > >> On Sat, 7 Dec 2019 at 10:51, Yasser Zamani > wrote: > >> > >>> Hi, > >>> > >>> I guess that the behavior of defining actions with same name and > namespace > >>> is undefined. I think it's not an issue because Convention Plugin has > no > >>> avenue to distinguish between them when you request > >>> http://localhost:8080/hello-world. > >>> > >>> Regards. > >>> > >>>> -Original Message- > >>>> From: Zahid Rahman > >>>> Sent: Thursday, December 5, 2019 4:51 PM > >>>> To: Struts Users Mailing List > >>>> Subject: convention plugin Issue > >>>> > >>>> Hi, > >>>> > >>>> On this page > >>>> https://struts.apache.org/plugins/convention/#setup > >>>> > >>>> if I have com.example.actions.HelloWorld.java > >>>> and > >>>> uk.mypackage.actions.HelloWorld.java > >>>> with url http://localhost:8080/hello-world then > >>>> uk.mypackage.actions.HelloWorld.java execute is run. > >>>> > >>>> If I have > >>>> uk.example.actions.HelloWorld.java > >>>> and > >>>> com.example.actions.HelloWorld.java > >>>> then com.example.actions.HelloWorld.java execute is run. > >>>> > >>>> uk.mypackage.actions.HelloWorld,java overrides the other two. > > - > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > > For additional commands, e-mail: user-h...@struts.apache.org > > >
Re: convention plugin Issue
Overriding methods *is **a valid feature* in Java and probably all object oriented languages. I'm confident, even at that lowest level, you wouldn't be able to avoid methods being overridden. Above those layers of code you have many more layers of code to provide the ability to communicate with and over web technologies. Again with a high probability of more methods being overridden. Eventually you get to the Struts framework which is not flat. It is again layers of code, with again a high probability of more methods being overridden. IMHO A developer needs to understand the technology stack used including the order of classpaths searched at execution time. A framework is intended to help you do a job which implies you know what it's doing. John On 12/18/2019 9:48 AM, Lukasz Lenart wrote: Feel free to register a ticket in JIRA, but this is something low priority rather. Regards Lukasz sob., 7 gru 2019 o 12:58 Zahid Rahman napisał(a): I think the convention plugin should perform a validation a check for the presence of multiple same class names within different package names. That ambiguity has been shown by my test. After all it is quite feasible and likely that we could have multiple same class names from different package names from jars which have been placed on the classpath. We cant have the convention plugin randomly (as shown by my test) executing random code. On Sat, 7 Dec 2019 at 10:51, Yasser Zamani wrote: Hi, I guess that the behavior of defining actions with same name and namespace is undefined. I think it's not an issue because Convention Plugin has no avenue to distinguish between them when you request http://localhost:8080/hello-world. Regards. -Original Message- From: Zahid Rahman Sent: Thursday, December 5, 2019 4:51 PM To: Struts Users Mailing List Subject: convention plugin Issue Hi, On this page https://struts.apache.org/plugins/convention/#setup if I have com.example.actions.HelloWorld.java and uk.mypackage.actions.HelloWorld.java with url http://localhost:8080/hello-world then uk.mypackage.actions.HelloWorld.java execute is run. If I have uk.example.actions.HelloWorld.java and com.example.actions.HelloWorld.java then com.example.actions.HelloWorld.java execute is run. uk.mypackage.actions.HelloWorld,java overrides the other two. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: convention plugin Issue
Feel free to register a ticket in JIRA, but this is something low priority rather. Regards Lukasz sob., 7 gru 2019 o 12:58 Zahid Rahman napisał(a): > > I think the convention plugin should perform a validation a check for the > presence of multiple same class names within different > package names. That ambiguity has been shown by my test. > After all it is quite feasible and likely that we could have multiple same > class names from different package names > from jars which have been placed on the classpath. > We cant have the convention plugin randomly (as shown by my test) > executing random code. > > On Sat, 7 Dec 2019 at 10:51, Yasser Zamani wrote: > > > Hi, > > > > I guess that the behavior of defining actions with same name and namespace > > is undefined. I think it's not an issue because Convention Plugin has no > > avenue to distinguish between them when you request > > http://localhost:8080/hello-world. > > > > Regards. > > > > >-Original Message- > > >From: Zahid Rahman > > >Sent: Thursday, December 5, 2019 4:51 PM > > >To: Struts Users Mailing List > > >Subject: convention plugin Issue > > > > > >Hi, > > > > > >On this page > > >https://struts.apache.org/plugins/convention/#setup > > > > > >if I have com.example.actions.HelloWorld.java > > >and > > >uk.mypackage.actions.HelloWorld.java > > >with url http://localhost:8080/hello-world then > > >uk.mypackage.actions.HelloWorld.java execute is run. > > > > > >If I have > > >uk.example.actions.HelloWorld.java > > >and > > >com.example.actions.HelloWorld.java > > >then com.example.actions.HelloWorld.java execute is run. > > > > > >uk.mypackage.actions.HelloWorld,java overrides the other two. > > - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: convention plugin Issue
I think the convention plugin should perform a validation a check for the presence of multiple same class names within different package names. That ambiguity has been shown by my test. After all it is quite feasible and likely that we could have multiple same class names from different package names from jars which have been placed on the classpath. We cant have the convention plugin randomly (as shown by my test) executing random code. On Sat, 7 Dec 2019 at 10:51, Yasser Zamani wrote: > Hi, > > I guess that the behavior of defining actions with same name and namespace > is undefined. I think it's not an issue because Convention Plugin has no > avenue to distinguish between them when you request > http://localhost:8080/hello-world. > > Regards. > > >-Original Message- > >From: Zahid Rahman > >Sent: Thursday, December 5, 2019 4:51 PM > >To: Struts Users Mailing List > >Subject: convention plugin Issue > > > >Hi, > > > >On this page > >https://struts.apache.org/plugins/convention/#setup > > > >if I have com.example.actions.HelloWorld.java > >and > >uk.mypackage.actions.HelloWorld.java > >with url http://localhost:8080/hello-world then > >uk.mypackage.actions.HelloWorld.java execute is run. > > > >If I have > >uk.example.actions.HelloWorld.java > >and > >com.example.actions.HelloWorld.java > >then com.example.actions.HelloWorld.java execute is run. > > > >uk.mypackage.actions.HelloWorld,java overrides the other two. >
RE: convention plugin Issue
Hi, I guess that the behavior of defining actions with same name and namespace is undefined. I think it's not an issue because Convention Plugin has no avenue to distinguish between them when you request http://localhost:8080/hello-world. Regards. >-Original Message- >From: Zahid Rahman >Sent: Thursday, December 5, 2019 4:51 PM >To: Struts Users Mailing List >Subject: convention plugin Issue > >Hi, > >On this page >https://struts.apache.org/plugins/convention/#setup > >if I have com.example.actions.HelloWorld.java >and >uk.mypackage.actions.HelloWorld.java >with url http://localhost:8080/hello-world then >uk.mypackage.actions.HelloWorld.java execute is run. > >If I have >uk.example.actions.HelloWorld.java >and >com.example.actions.HelloWorld.java >then com.example.actions.HelloWorld.java execute is run. > >uk.mypackage.actions.HelloWorld,java overrides the other two.
convention plugin Issue
Hi, On this page https://struts.apache.org/plugins/convention/#setup if I have com.example.actions.HelloWorld.java and uk.mypackage.actions.HelloWorld.java with url http://localhost:8080/hello-world then uk.mypackage.actions.HelloWorld.java execute is run. If I have uk.example.actions.HelloWorld.java and com.example.actions.HelloWorld.java then com.example.actions.HelloWorld.java execute is run. uk.mypackage.actions.HelloWorld,java overrides the other two.